计算概论A大作业实验报告
--选课系统
设计思路:主要是依靠链表和文件操作相关知识,借助c++面向对象的特性进行设计。将主要功能携程“类”。一共有五个类:账号密码类,界面类,课程类,学生类,教务类。账号密码类用于储存学生注册的学号和密码。界面类顾名思义,有,主要实现界面的一些功能,如选择和跳转,不过我也将注册放到了这个类里。学生类里包括查看个人信息,选课退课等。教务类里包括添加课程 ,删除课程,查看课程等。课程类里有查看,添加,删除,修改等。教务的功能是调用了这个类里的功能。最后main函数只是短短几行启动类。
功能:设计思路里已经提及,包括了选课系统的基本功能,额外增加了一些贴合实际情况,便于操作的功能。
程序亮点:与别的一些同学的程序不同,我的程序使用的是链表,有些同学是结构体数组,链表在某些情况下更便于操作且节省空间。而且利用链表,可以大大减少txt文档的创建,最终我的程序只需要4个txt文档保存数据即可。此外我在设计程序时利用了面向对象的编程思想,将程序分为多个cpp和头文件,使得程序更简明易懂,更加符合c++的本质。
关于实验过程:实验中还是遇到了不少坎坷,比如考虑输入是否合法时要频繁引入getline函数,但换行符会有很大的干扰,给编写程序造成了一些麻烦,还有便是面对如何利用最少txt文档实现学生模块功能的实现的问题时遇到了一些困难,借鉴了网络上的一些方法,即链表嵌套,我在此方案上进一步优化,结合文件指针的运用,最终克服了这个困难。
实验总结:由于对链表的操作运用不是那么熟练和,对类的理解不是那么深刻,有些功能的实现放在了本不应该放在的类里,造成程序有一点混乱,没有完全地摒弃掉面向过程的编程思想,这是本次大作的一个遗憾。但总的来说,这次大作业大大强化了自己对链表的运用和对类的运用,是一个提升自己编程能力的难得的机会。