5、 总结
课程设计终于结束了感觉有很多的收获,通过课程设计我又一次巩固了所学的知识,
对学习到的理论知识进行了巩固,真正的理解及体会了。平时有很多知识都是似懂非懂,通过平时上机操作,自己也了解了一些,但在这次的课设上,之前的困惑也通过这次的课设解决了一些,虽然还是不能够全面的理解,但是有进步就很有成就感。在课程设计中遇到不少困难,通过查阅资料,询问同学,在应用课本的前提下,拓展课外知识,完成了此次课程设计,虽然还有许多不足之处,但是从中我学到了许多东西。我懂得了我们不能拘泥于所学知识,应对其灵活运用。
通过此次课程的设计使我认识到对知识的掌握不全面,而且感觉我们在学习专业知识的同时还需要再加强其他方面知识的学习,因为编程有时候涉及到其他方面的知识,只有了解了其他方面的知识才能收集资料,然后编程。在编程的过程中,又重新复习了课本,从中学到了许多以前未学到的知识,感觉非常有成就感,特别当自己把程序一点点完善时, 让我对自己更加有信心,让我对数据结构这门课程也更感兴趣了,以前我一直感觉枯燥难学的数据结构,在编程的过程中我也愿意去认真研究学习了。
这次数据结构课程设计中,多亏了同学的耐心帮助。如果没有同学的指导改错,我会花更多的时间去找错误。在以后的学习过程中,我一定会认真负责地对待课本中的每一个知识点,进一步充实自己,提高自己。争取在不断的练习中提高自己的层次。也希望可以在以后的专业课当中多增加一些实践的内容,只有多动手,我们才能不断提高。
6、附录:源程序清单
#include
#include
//文件和标准控制台的输入输出
//主要是对cin,cout之类的一些操纵运算,是I/O流控制头
16
//数组、结构体 struct Student { };
int num=0; //声明
void input(Student *r); //输入 void output(Student *r); //输出
void searchnum(Student *r); //按 学号及学期 查找 void searchname(Student *r); //按 姓名及学期 查找
void change(Student *r); //按 学号及学期 修改信息
Student *insert(Student *r); //插入信息
void shanchu(Student *r); //按 学号及学期 删除信息
void maopao(Student *r); //按数据结构降序(冒泡)排序 void xuanze(Student *r); //按总分降序(选择)排序
void tongji(Student *r); //统计各科总分和平均分信息
void main() {
cout<<\输入学生的个数:\
cin>>num; //全局变量 Student *p=(Student *)new Student[num]; int m; do{
cout< cout<<\ 菜 单 栏 //定义指针数组,存放学生个数 int term; int num; //学期 //学号 //姓名 //成绩1 //成绩2 //成绩3 //总分 //平均分 //结构体 char name[12]; float mark1; float mark2; float mark3; float sum; float average; <-----------------------------*\\n\ cout<<\<1> 输入学生信息并保存到文件 <2> 读取文件并输出学生信息 *\ 17 cout<<\ cout<<\请选择:\cin>>m; switch(m) { case 1: input(p); break; output(p); break; searchnum(p); break; searchname(p); break; change(p); break; p=insert(p); break; shanchu(p); break; maopao(p); break; xuanze(p); break; //输入 cout<<\<3> 按学号及学期查询 <4> 按姓名及学期查询 cout<<\<5> 按学号及学期修改信息 <6> 插入信息 cout<<\按学号及学期删除信息 <8> 按数据结构降序(冒泡)排序 cout<<\按总分降序(选择)排序 <10> 统计各科成绩的总分和平均分 *\*\*\*\*\ cout<<\ <11> 退出 case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: 18 } //输入信息 void input(Student *r) { FILE *fp; int n=0; int i; int t=0; cout< cout<<\请输入学期:\cin>>r[i].term; cout<<\请输入第\个人的学号:\cin>>r[i].num; if(i>=1) { } if(t==1) { } cout<<\请输入姓名:\cin>>r[i].name; cout<<\请输入 高等数学 成绩:\ i--; t=0; continue; //表示有重复 for(n=0;n if(r[n].num==r[i].num) { } cout<<\该学号已存在!!\t=1; //t为标志位,1为找到,0为未找到 } tongji(p); break; break; case 11: //退出 }while(m!=11); 19 fprintf(fp,\ } //输出信息 void output(Student *r) { int m; system(\清屏 if(num>0) { FILE *fp; if((fp=fopen(\只读 { } for(int n=0;n cout<<\文件不能打开\exit(0); } fclose(fp); cout<<\文件已经写入\ fprintf(fp,\ rk1,r[n].mark2,r[n].mark3,r[n].term,r[n].sum,r[n].average); } fp=fopen(\if(!fp) { } for(n=0;n cout<<\文件不能打开\exit(0); cin>>r[i].mark1; cout<<\请输入 数据结构 成绩:\cin>>r[i].mark2; cout<<\请输入 大学英语 成绩:\cin>>r[i].mark3; r[i].sum=r[i].mark1+r[i].mark2+r[i].mark3; r[i].average=(r[i].mark1+r[i].mark2+r[i].mark3)/3; fscanf(fp,\ } [n].term,&r[n].sum,&r[n].average); 20