4、主要功能逻辑过程和实现算法 1)生成.txt文件的算法:
cout<<\输入1.将上述信息保存成文件; 输入0:返回\ cin>>m; if (m==1) { cout<<\请输入文件名:\ cin>>file; cout<<\请输入班级名称:\ cin>>classname; output.open(file); output< stucopy stu[M]; stucopy stutemp; list will; student *p, *p1=new student(),*q; ifstream input; ofstream output; char file[20],classname[20],temp[80],id[20],name[9],sex1[10]; int m=0,n=0,j=0,i=0; double grade1[5]; for(i=0;i<20;i++) id[i]=0; for(i=0;i<9;i++) name[i]=0; 5、界面设计 主界面如图(1): 用户将程序运行后,出现如图主界面,输入相应阿拉伯数字执行对应功能。 图(1) 主界面 6、系统测试 1)数据录入 运行程序,出现主界面,按提示输入数字1,进行数据录入,图(2)。 图(2)数据录入 三、小组成员分工说明 独立完成 四、课程设计总结或结论 1 课程设计过程中出现的技术难点和解决方法: 1、文件的写入与读出,刚开始对文件的操作不太明白,一致不能很好的操作文件,其中最大的问题是对已存在的文件读取问题,通过“显示全部学生成绩” 将数据从文件中读取,可是在使用过程中总是出现读出错误,出现乱码。 2、内存的分配问题,这也是困惑了我好久的问题。对于我们初学者来说对内存的分配和释放问题是比较抽象和模糊的难题,本来使用链表的方式存储数据,然而待到排序时出现了交换数据困难的问题,以及分配空间繁琐释放空间不及时的问题,造成空间浪费使得程序运行效率低的问题。因此最后采用了顺序存储记录的方式,这样就能改变前述问题。 整个调试过程中主要是这么几个问题,其余的是一些小问题,很容易的就调试出来了。 2 课程设计期间的主要收获: 一个星期的课程设计,虽然有些疲劳和困倦,但带给我很多的收获。C++已经学了一个学期了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我花了两天的时间来规划与写代码,将要实现的内容分析清楚,才把代码输入电脑。我觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。 附:源代码如下:#include const int M = 20; class stucopy//此类用于拷贝student的数据,用于排序功能的实现 { public: char id[20]; char sex[10]; char name[10]; double grade[5]; double sumsum;//总成绩 double average;//平均成绩 }; class student//用于保存学生信息的类 { friend class list; public: char id[20];//保存学号 char sex[10];//保存性别 char name[10];//保存名字 double grade[5];//保存成绩
相关推荐: