数据结构课程设计报告学生成绩管理系统_第1页
数据结构课程设计报告学生成绩管理系统_第2页
数据结构课程设计报告学生成绩管理系统_第3页
数据结构课程设计报告学生成绩管理系统_第4页
数据结构课程设计报告学生成绩管理系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构课程设计报告课题名称:学生成绩管理系统专业班级:学 号:姓 名:指导老师:一、课题名称学生成绩管理系统二、课题设计的基本思想,原理和算法描述、基本思想:建立一个学生成绩管理系统,能够实现每位学生的成绩的录入、删除、修改、查找、排 序(按成绩降序排序)等功能。2、原理:首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,然后完成主函数以验证各个函数功能并得出运行结果,最后调试改进。/3、算法描述定义项目的数据结构void display()coutsetw(6)name setw(3)num setw(3)scoreendl;/setw()设置输出宽度 输出项目占6个字

2、符的位置,它由头文件iomanip定义friend void insert();/定义插入(用友元函数方便调用类中成员)friend void del();/定义删除friend void search();/定义查找friend void change();/定义修改friend void sort();/定义每个学生数据private:char name15; /姓名int num;学号int score;/成绩;#include/使用标注命名空间调用函数,需要名空间的支持#include /I/O 流控制头文件#include/文件操作的类和方法头文件using namespace st

3、d; / 申请内存空间class studentpublic:/定义为公共成员函数void setdata()cinnamenumscore;三、源程序及注释#include#include#includeusing namespace std;/ 申请内存空间class studentpublic:/定义为公共成员函数void setdata()cinnamenumscore;void display()coutsetw(6)namesetw(3)numsetw(3)scoreendl;/setw()设置输出宽度输出项目占3个字符的位置,它由头文件iomanip定义friend void i

4、nsert();/插入friend void del();/删除friend void search。;/查找friend void change();/修 改friend void sort();/排序private:char name15;int num;int score;student stud1000;int N=0;void enter() 录入int i;coutN;cout请输入各学生的有关信息:endlendl;cout姓名 学号 成绩endlendl;for(i=0;iN;i+)studi.setdata();coutendl输出各学生的有关信息:endlendl;cout

5、姓名 学号成绩”endl;for(i=0;iN;i+)studi.display();void choice() /操作coutendl;cout操作完成! endl;coutendl;cout”请选择要继续进行的操作:1插入2删除3查找4修改5排序0取消操作; int main() 主函数char a;enter();couta;switch(a)case 1: insert();choice();break;/添 力口case 2: del();choice();break; 删除case 3: search();choice();break; /查找case 4: change();ch

6、oice();break;/修 改case 5: sort();choice();break; /排序case 0: break;return 0;void insert() /插入student t;cout请输入要插入的学生信息:endlendl;cout”姓名学号成绩t.numt.score;N+;studN-1=t;int i;if(N0)coutendl输出各学生的有关信息:endlendl;cout姓名 学号成绩”endl;for(i=0;iN;i+)studi.display();else coutendl不存在任何学生信息!”endl;void del()删

7、除int i,n=0,number;student t;if(N!=0)coutnumber;for(i=0;i0)(coutendl输出各学生的有关信息:endlendl;cout姓名 学号vv”成绩endl;for(i=0;iN;i+)(studi.display();else coutendl不存在任何学生信息!endl;void sort。/排序(int i,j;student t;for(i=0;iN-l;i+)for(j=0 ;j vN -l-i;j+)if (stud j.score0)(coutendl输出各学生的有关信息:endlendl;cout姓名 学号 vv”成绩end

8、l;for(i=0;i0) coutnumber;for(i=0;iN;i+)if(studi.num=number) n+;cout姓名 学号成绩”endl;coutsetw(6)setw(3)studi.numsetw(3)studi.scoreendl; if(!n) coutendl”该学生不存在! endl; else coutendl不存在任何学生信息!”0)coutnumber;for(i=0;iN;i+)if(studi.num=number)n+;studi.numstudi.score;if(!n) coutendl该学生不存

9、在!”endl;else coutendl不存在任何学生信息!”endl;四、运行示例及结果分析EifFffRJlfff #屈圳filt i清理件艘城也打的It沮 揩漓霹判查扶*悟理排序瞬成1恨一结果分析:实现功能主要有:录入学生数据输出学生数据1、插入学生数据输出学生数据2、删除学生数据输出删除后的学生数据3、查找学生输出改学生数据4、修改学生数据输出修改后的数据5、按成绩降序排序输出学生数据0退出五、调试和运行程序过程中产生的问题及采取的措施在做的时候,我把统计功能改成了排序,即对学生成绩进行降序排序。在修改了 main 函数后,功能界面被改成与老师所给的运行程序界面相一致。在进行完各种操

10、作后并不能直接把完成操作后的数据显示出来,我便在录入,插入,删 除,修改的功能函数后面增加了输出修改后的函数功能。这样便能够在每一次操作完成后输 出修改后的学生成绩数据了。由于做的比较简单,而且以前也做过类似的程序,因此在过程 中遇到的问题也都能自己想办法克服掉,虽然比较简单,但是仍不可疏忽大意。六、对课题相关算法的讨论、分析,改进设想在插入的时候,插入的是最后一个数据,未能完成在指定位置进行插入的功能,所以 这个方面仍需要改进。在做之前,我先看了老师给的运行程序界面与各种功能,运行界面, 我也是这么设计的,直接开始运行录入函数并输出,录入完毕再执行主函数各种选择功能。 这样界面可能不怎么友好

11、,不怎么美观。因此,还可以将main函数的输出界面设计的美观 一些。再有就是在做完后发现可以将输出直接定义一下friend void print();,这样就可以省去在 录入,插入,删除,修改的功能函数后增加输出修改后的函数,但是由于程序比较简单,因 此这样也是同样效果,差距不是很大,但是如果做的是一个很冗长的程序的话,可能就会很 浪费,并影响到运行速度,因此在以后的设计中,我会先尽量思考以最简练的编程来实现相 同的效果。七、总结实践出真知,在课堂上,接受理论的知识,且把每一个内容都细分切块,最终学到的却 不能完全有效的整合到一起,在做这个课程设计的时候,涉及到很多学过的内容,比如线性 表(虽然最终没有用线性表来构建,但是从中我知道了自己的基础知识还很不扎实,仍需好 好努力),友元函数,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论