大学正式上课的第一个月,学到了很多东西,收获颇多,刚入校只会用现成的,只会调用各种函数,把封装好的东西拿来用。现在可以自己不照抄代码,完全按照自己的思路写一个这个入门的项目了,虽然还要bug没被发现,但是总还会慢慢改好的。写个博客记录一下...
需求
1.用C语言实现 “学生成绩管理系统”或自拟题目。
2.设计“学生成绩管理系统”的用户界面,系统启动进入后,只能通过界面菜单指令才能退出。
3.“学生成绩管理系统”具有以下功能:
(1) 系统启动后,弹出一个用户界面,能实现人机交互的功能。而且只能通过界面菜单命令实现各种功能(包括系统退出功能),可以设计欢迎词。
(2) 成绩录入:录入信息包括班级、姓名、学号、五门课程成绩。
(3) 计算平均成绩:计算每门课程的平均成绩和学生五门课程的平均成绩并存档。
下面的功能必须是第(3)项功能完成以后才能进行:
(4) 成绩输出:输出学生的信息和对应的原始成绩以及平均成绩;
(5) 成绩排序(按平均成绩),输出排序后的学生信息以及对应的课程成绩和平均成绩。
(6) 成绩查找:两种查找方法,一是按学号查找,二是按姓名查找。
(7) 成绩修改:查找后修改成绩,修改后重新排序,并输出学生信息和对应课程成绩和平均成绩。
(8) 成绩追加:增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出平均成绩,增补以后重新排序,并输出新增学生信息和对应课程成绩和平均成绩。
附加功能:
(9) 删除成绩:删除不需要的学生对应的记录(包括姓名、学号、成绩等)。
(10) 成绩分段:将学生成绩分段。
(11) 文件存储:把学生信息和对应的课程成绩和平均成绩存入到文件中。
(12) 文件输出:输出文件中的内容。
(13) 文件导入:从文件中导入数据到成绩管理系统中,然后进行管理。
代码
6天赶完的项目存在许多bug,待慢慢发现再不断更改完善!
总结
15:14 2019-11-7
1.变量命名可以参考帕斯卡命名法,驼峰式命名法。
2.把用户当作傻瓜来设计程序。
3.注意代码的可读性重复代码最好多用函数,不要像我一样,暂时没能力缩减更多。
4.注意各模块之间的联系,不要起冲突,bug及时修!
11:21 2019-12-3
现在发现面向对象的优越性了,把一个个类封装起来,可以保护数据,不受外界干扰,隐藏对象的属性和实现细节,仅对外提供公共访问方法,提高复用性和安全性。不会像用C语言写这个程序的时候,一个模块写完,可能其他的模块就因为它出了bug。