




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.专业整理.数据结构课程设计报告信息工程学院计算机科学与技术专业题目:学生成绩管理系统(线性表应用)班级:计算机111班第11组组长::葛学谦学号:2011306010311组员::冷 冰学号:2011306010316指导老师:曲、郭晓利、志颖日期:2012年12月20日程序设计书目录一、程序设计目标二、问题描述三、需求分析主程序四、概要设计(说明课程设计中用到的抽象数据类型的定义、的流程以及各程序模块之间的调用关系等)五、详细设计六、软件说明书七、源程序清单八、测试报告九、课程设计总结数据结构课程设计、课程设计目的1.数据结构课程设计,使我们能够将学到的面向对象的设计思想运用在具体的工作和
2、学习 中,加深对类和对象的理解,2 .要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和 多态的概念。3 .通过课程设计掌握面向对象语言程序设计的编程思想,为后续课程打下基础。4 .培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。二、课程设计的容1、课程设计的题目及简介文本界面为管理员1 .输入信息2 .保存信息3 .查询信息4 .修改并保存5 .显示全部6 .删除信息7 .退出系统学生1信息查询(1)输入(2)输入学号2退出系统三、需求分析(说明课程设计的任务)提供身份验证,和使用系统的权限设置、判定。教师用户能实现本班同学各学期各科 成绩的录入、编辑,数据
3、必须保存在文件中,以便反复使用。学生用户提供对学号或,各学 期、各学科成绩的查询。 学生和教师用户能按各学期、各学科分数排序输出。教师用户能统 计各科成绩分数段的分布,并输出。四、概要设计(说明课程设计中用到的抽象数据类型的定义、程序的流程以及各程序模块之间的调用关系等)1 .调用函数Node* Create()判断是否等于一如果是可创建链表输入相应的学生成绩如果不是则需要运用Insert(p)函数插入结点增加学生成绩的,并通过chundang(p)函数进行存档,2 .调用函数 Node* Delete(Node* head , int num)删除学生的成绩则必须对链表结点进行删除意味着将某
4、个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务3 .打开存档文件ifstream Filein("out.txt");输出说存档的学生成绩4 .调用函数 Node* sousuo(Node* head , char na20),按学生的进行搜索五、详细设计(1)程序流程图各功能模块的实现流程图:1增加学生成绩调用函数Node* Create()判断是否等于一如果是可创建链表输入相应的学 生成绩如果不是则需要运用Insert(p)函数插入结点增加学生成绩的,并通过chundang(p)函数进行存档,具体流程如下图所示流程图.学习帮手.调
5、用函数 Node* Delete(Node* head , int num)删除学生的成绩则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务流程图调用函数 Node* sousuo(Node* head , char na20)流程图:搜索学生成绩按照提示输 入学生的姓 名进行搜索输出所以查询的学生成绩退出该功»能,返回主菜单,继续选择,按学生的进行搜索5成绩的统计,按学生的进行搜索调用函数 Node* sousuo(Node* head , char na20)调用函数 Node* paixu(Node* hea
6、d)完成排序功能它的主要思想的:首先设置英语成绩的最大值100,最小值0 (也可以使150或者其他)然后让输入的学生成绩英语成绩一次比较进行比较,(如果有相等的就输出排名 1 ,然后排名加1),否则最大值减1,然后再次进行比较(如果等于99且上次没有等于100的, 就输出排名1,然后排名加1,如果上次有等于100的排名为2),如果没有与99相等的., 则继续循环流程图:总功能模块图:功能模块图学生管理系统.2.3.4.菜单2、输入要删除的学 生的编号,删除学生 成绩。7保存学生成成功5统计各种专4、输入你要查 找你学生姓名业、男女、相应绩:提示保存1输入学生的成 绩:姓名、性别、
7、 专业、出生日期、 家庭地址、英语新增学生成绩 删除学生成绩 导入学生成绩 学生成绩搜索 学生成绩统计 学生成绩保存 退出年龄的人数7、退出系统3、输出学生的编号、 姓名、性别、专业、 出生日期、家庭地 址、英语成绩各功能显示效果模块图:学生和管理员输入管理员进入界面后增加学生成绩和导入学生成绩保存学生成绩学生进入界面后,按学生查询并输出成绩六、软件说明书总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。系统以菜单界面方式 (至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计
8、算机的对话方式进行(1)首先,看题目要求,每一条记录包括一个学生的、性别、专业、出生日期、 家庭住址、英语成绩。同时,应具备以下功能:1、输入功能:一次可以完成自定义学生人数的学生成绩记录的输入。2 .保存功能:对指定学生的成绩进行保存3 .查询功能:选择某种方式并输入该成绩查询符合条件的学生成绩4、修改并保存功能:对指定学生的成绩进行修改保存。5.显示功能:将以上功能操作后的学生成绩显示出来。6、删除功能:对指定学生的成绩进行删除7.退出主菜单。七、源程序清单#include <iostream>#include <string>#include <fstrea
9、m> using namespace std;#define password 123456;/人员类基类people.hint getage();/年龄char* getname();/char* getsex();/性别void display。;/输出信息void peosearch();/查询信息void peosave();/保存信息class stupeople public:private:char name20;char sex4;int age;;/student.hclass stustudent:public stupeoplepublic:intgetnumber
10、();学号double getcscore();/double getmscore();/高数double getescore();/外语double getpscore();C+double getdscore();/数据库double getsscore();/体育double getave();/平均成绩double getsum();/总成绩voidstuenterinfo();输入信息voiddisplay。,输出信息voidstusearch();查找信息voidstusave();/保存信息voidstuload();/加载信息private:int number;double
11、cscore;double mscore;double escore;double dscore;double pscore;double sscore;double sumscore;double avescore;/admin.h管理员类class stuadmin:public stustudent /派生类public:void change。;/ 更改信息void del();/删除信息private:int newage;int newnumber;char newsex;char newname;char changename20;double newcscore;double
12、newmscore;double newescore;double newdscore;double newpscore;double newsscore;double newsumscore;double newavescore;int i,j,p6;char A,B,x;stuadmin sa;struct studentinfointnumber;charname20;charsex4;intage ;double cscore;double mscore;double escore;double pscore;doubledscore;double sscore;doublesumsc
13、ore;doubleavescore;int flag;s;/人员类的相关函数的定义int stupeople:getage()return age;char* stupeople:getname()return name;char* stupeople:getsex()return sex;/学生类的相关函数的定义int stustudent:getnumber()return number;double stustudent:getcscore()return cscore;double stustudent:getmscore()return mscore;double stustude
14、nt:getescore()return escore;double stustudent:getpscore()return pscore;double stustudent:getdscore()return dscore;double stustudent:getsscore()return sscore;double stustudent:getsum()sumscore=cscore+mscore+escore+pscore+dscore+sscore;return sumscore;double stustudent:getave()平均成绩avescore=sumscore/6;
15、return avescore;)void stustudent:stuenterinfo()/输入信息(cout<<"请输入学号:";cin>>s.number;cout<<endl;cout<<"请输入:"cin>>;cout<<endl;cout<<"请输入性别:"cin>>s.sex;cout<<endl;cout<<"请输入年龄:";cin>>s.age;cout
16、<<endl;cout<<"请输入各科成绩:"<<endl;cout<<"语文:";cin>>s.cscore;cout<<endl;cout<<"高数:"cin>>s.mscore;cout<<endl;cout<<"夕卜语:";cin>>s.escore;cout<<endl;cout<<"C+:"cin>>s.pscore;
17、cout<<endl;cout<<"数据库:";cin>>s.dscore;cout<<endl;cout<<"体育:";cin>>s.sscore;cout<<endl;cout<<"信息输入成功!"<<endl;s.flag=0;s.sumscore= s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore;s.avescore=s.sumscore/6;)void stu
18、student:stusave()/ 保存信息(ofstream out("information.txt",ios二app|ios:binary);if(out)out.write(char*)&s, sizeof s);cout<<"信息保存成功!"<<endl;else cout<<"文本为空!"<<endl; out.close();void stustudent:display()显示信息ifstream ifile;ifile.open("informati
19、on.txt",ios:binary);if(ifile) while(ifile.read(char*)&s,sizeof s)!=0) if(s.flag=0) cout<<" 学号:"<<s.number<<":"<<<<"性另1J :"<<s.sex<<" 年龄:"<<s.age<<" 语文:"<<s.cscore<<"
20、;高数:"<<s.mscore<<"外语:"<<s.escore<<"C+:"<<s.pscore<<" 数据库:"<<s.dscore<<"体 育:"<<s.sscore<<"总 分:"<<s.sumscore<<”平 均分:"<<s.avescore<<endl; elsecout<<"
21、;文本为空!"<<endl; ifile.close();void stustudent:stusearch()/查询信息char stuname20;int e=0;cout<<"请输入您要查找的:";cin>>stuname;ifstream ifile;ifile.open("information.txt",ios:binary);if(ifile)(while(ifile.read(char*)&s,sizeof s)!=0) (if(strcmp(stuname,)=0)&am
22、p;& s.flag=0) cout<<" 学号:"<<s.number<<":"<<<<" 性另1J :"<<s.sex<<" 年 龄:"<<s.age<<" 语 文 :"<<s.cscore<<" 高 数 :"<<s.mscore<<" 夕卜 语:"<<s.escor
23、e<<"C+:"<<s.pscore<<"数据库:"<<s.dscore<<"体育:"<<s.sscore<<" 总分:"<<s.sumscore<<" 平均分:"<<s.avescore<<endl;e=1;break; else cout<<"文本未建立!"<<endl;ifile.close();if(e=0)cou
24、t<<"没有相关信息!"<<endl;/管理员类的相关函数的定义void stuadmin:change() char changename20;int e;cout<<"请输入您要修改的:";cin>>changename;fstream ifile("information.txt",ios:in|ios:out);while(ifile.read(char*)&s,sizeof s)!=0) if(strcmp(changename,)=0)&&
25、s.flag=0)cout<<" 学号:"<<s.number<<":"<<<<" 性另1J :"<<s.sex<<"年龄:"<<s.age<<" 语 文 :"<<s.cscore<<" 高 数 :"<<s.mscore<<" 外 语:"<<s.escore<<&qu
26、ot;C+:"<<s.pscore<<"数据库:"<<s.dscore<<"体育:"<<s.sscore<<" 总分:"<<s.sumscore<<"平均分:"<<s.avescore<<endl;e=1;break;)if(e=0)cout<<"没有相关信息!"<<endl;if(e=1)int choose;cout<<&quo
27、t;t请选择修改方式:"<<endl<<endl;cout<<"1.修改学号:"<<endl;cout<<"2.修改:"<<endl;cout<<"3.修改f别:"<<endl;cout<<"4.修改年龄:"<<endl;cout<<"5.修改语文成绩:"<<endl;cout<<"6.修改高数成绩:"<&
28、lt;endl;cout<<"7.修改外语成绩:"<<endl;cout<<"8.修改 C+成绩:"<<endl;cout<<"9.修改数据库成绩:"<<endl;cout<<"10.修改体育成绩:"<<endl;cout<<endl;cout<<"请选择:"<<endl;cin>>choose;switch(choose)case 1:cout<
29、<"请输入学生学号:"<<endl;cin>>s.number;break;case 2:cout<<"请输入学生:"<<endl;cin>>;break;case 3:cout<<"请输入学生性别 <m男n女>:"<<endl;cin>>s.sex;break;case 4:cout<<"请输入学生年龄:"<<endl;cin>>s.age;break;
30、case 5:cout<<"请输入学生语文成绩:"<<endl;cin>>s.cscore;break;case 6:cout<<"请输入学生高数成绩:"<<endl;cin>>s.mscore;break;case 7:cout<<"请输入学生外语成绩:"<<endl;cin>>s.escore;break;case 8:cout<<"请输入学生C+成绩:"<<endl;cin>
31、;>s.pscore;break;case 9:cout<<"请输入数据库成绩:"<<endl;cin>>s.dscore;break;case 10:cout<<"请输入学生体育成绩:"<<endl;cin>>s.sscore;break;"default:cout<<"t 输入错误,返回主菜单 !"<<endl;adminwelcome();*/cout<<"信息输入成功!"<<
32、;endl;s.flag=0;s.sumscore= s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore;s.avescore=s.sumscore/6;ifile.seekp(-(sizeof s),ios:cur);ifile.write(char*)&s,sizeof s);cout<<"信息已修改并保存!"<<endl;ifile.close();void stuadmin:del()/删除信息char delname20;int e=0;cout<<"请输
33、入您要删除的学生:"<<endl;cin>>delname;fstream ifile;ifile.open("information.txt",ios:in|ios:out);while(ifile.read(char*)&s,sizeof s)!=0) if(strcmp(delname,)=0)&&s.flag=0) cout<<" 学号:"<<s.number<<":"<<<<"
34、;性另1J :"<<s.sex<<" 年龄:"<<s.age<<" 语 文:"<<s.cscore<<"高 数 :"<<s.mscore<<" 夕卜语:"<<s.escore<<"C+:"<<s.pscore<<"数据库:"<<s.dscore<<" 体育:"<<s.s
35、score<<" 总 分:"<<s.sumscore<<”平 均分:"<<s.avescore<<endl;e=1; break; if(e=0)cout<<"没有相关信息!"<<endl;if(e=1) s.flag=1;ifile.seekp(-(sizeof s),ios:cur);ifile.write(char*)&s,sizeof s); cout<<"信息删除成功!"<<endl;ifile.cl
36、ose();/欢迎界面void studentwelcome()学生欢迎界面cout<<"*"<<endl;cout<<"*欢迎使用学生信息管理系统I*"<<endl;*cout<<"* *"<<endl;cout<<"tt 1.查询信息tt 2.退出系统"<<endl;cout<<"*"<<endl;I*cout<<"*"<<end
37、l;cout<<"*欢迎使用学生信息*"<<endl;cout<<"I*"<<endl;cout<<"t1.输入信息t2."<<endl;cout<<"t5. 显 示全部保存信息t3. 查询信息 t4.t6.删除信息t7.管理系统修改并保存退出系统docout<<"请输入您要进行的操作编号(1或2):"cin>>i;cout<<endl;if(i<1|i>2)cout<
38、<"对不起,请输入1或2这两个选择数字!"<<endl;while (i<1|i>2);switch(i)case 1: sa.stusearch();studentwelcome();break;case 2:exit(0);break;void adminwelcome()/管理员欢迎界面I*cout<<"*"<<endl;"<<endl;I*do(1-7):"cout<<"请输入您要进行的操作编号 cin>>j;cout<<endl;if(j<1|j>7)cout<<"对不起,请输入1-7这几个选择数字!"<<endl; while(j<1|j>7);switch(j)case 1: sa.stuenterinfo();adminwelcome();break;case 2:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度车辆借出免责与环保责任协议
- 二零二五年度双向转诊医疗综合管理与服务合同
- 二零二五年度中式烧烤连锁品牌加盟合同
- 二零二五年度校园体育赛事志愿者招募培训合同
- 二零二五年度餐厅消费儿童优惠合同
- 医院二零二五年度与医疗康复人员签订的康复治疗劳动合同书
- 2025年度消防工程设计咨询与施工合同
- 专业排水沟清理与应急抢修二零二五年度专项合同
- 二零二五年度影视作品知识产权归属确认协议
- 二零二五年度音乐培训机构学员安全协议及家长责任书
- 部编版小学六年级道德与法治下册课堂达标检测试卷全册含答案
- 岩土工程中的非线性问题分析
- 《普洱茶的定义》课件
- 储备土地管护投标方案 (技术方案)
- TensorFlow+Keras深度学习人工智能实践应用
- 学技能如何打逃生绳结固定绳结
- 自驱型成长:如何培养孩子的自律力
- 特殊教育:康复训练课程标准(年版)
- DCMM理论知识考试试题及答案
- 谈心谈话记录100条范文(6篇)
- 中学生心理辅导-第一章-绪论
评论
0/150
提交评论