C++程序设计实验研究
2019-02-19钱进吴剑
钱 进 吴 剑
(辽宁省沈阳市东北大学 110819)
《C++程序设计》作为数学系学生的一门专业基础课程,其内容包括类、构造函数、拷贝构造函数、继承与多态性、操作符重载和模板,是后续程序开发的基础.该课程目标是使学生理解并掌握面向对象的概念与思想,知道与C语言之间的不同和联系,并熟练编写程序.
一、前言
传统的课堂教学,学生只是听教师授课,注重知识点的讲解,忽略编程实践,不能激发学生主动性学习.学生学到知识后,不能灵活运用知识,只是记住了概念,这并不是我们想培养学生编程的目的.只有通过上机训练,学生才能明白自己知识的不足,才能有的放矢,更加深刻地理解知识点.
在2017-2018第二学期,我对数学三个专业的学生实施了《C++程序设计》课程教学改革,改革的方式采用从实际问题出发,2到3个人为一组,自行选题.老师同意选题后,给2周时间进行编程.由于程序较大,采用模块多人协作的形式,编写一个工程包含多个文件,来共同完成.完成后,每人15分钟进行报告并展示程序.老师进行提问,并依据学生完成的情况,给予点评.
拿一组学生的选题为例: 利用模拟退火算法对学费寻优模型的建立与求解.
二、模型的建立过程
基于对高等教育学费的计算和合理度评价,考虑对现有的学费选择模型进行优化,从而达到更合理的水平.
一个最佳的学费标准应该是既能顾及学生、学校、政府的利益,又能考虑到近期的利益和远期的利益.于是我们主要考虑以下几个因素:
目标一:学生近期利益最大
目标二:学校近期利益最大
目标三:政府近期利益最大
目标四:个人远期收益率最大
目标五:社会远期收益率最大
(1)目标一:学生近期利益最大
(2)目标二:学校近期利益最大
学校所能得到的总学费作为学校近期利益的体现,由前面的研究有:f0=f×N.
(3)目标三:社会近期利益最大
(4)目标四:个人远期收益率最大
(5)目标五:社会远期收益率最大
下面考虑约束条件:
(1)约束条件1:学生支付能力约束
所谓学生支付能力,就是指学生交学费的能力,我们认为该能力与该学生的家庭纯收入,国家生均拨款,还有学生获得的奖学金有关,于是得到如下约束:f≤W+A+J(其中,W为学生的家庭年纯收入,A为国家生均拨款,J为奖学金).
(2)约束条件2:学校教育经费需求约束
政府财政拨款可以认为是前文中定义的A×N,定义学校自筹费用为Z1, 社会捐赠费用为Z2,事业收入的非学费收入部分为Z3,学费收入为f×N,则有如下约束:A×N+Z1+Z2+Z3+f×N≥F(其中,F为高校一年的教育经费).
综上,解决该问题的模型转化为:
该组学生通过本题的练习, 熟悉了C++的一些重要性质,利用封装、继承、虚函数和多态性等特性,实验学习如何对各类图元的属性和方法进行合理的封装.
这种实践教学的方式,不仅能激发学生的学习兴趣,而且能够使学生真正意义上编写程序解决实际问题.学生通过这样的训练过程,能更好地理解书本上的知识,学以致用!
通过这次《C++程序设计》教学改革,学生的反响很不错,对于编程不再胆怯.能熟练地掌握知识点,灵活运用编程技巧,解决问题,对以后的计算机等级考试,也打下了一个良好的基础.