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

下载本文档

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

文档简介

••学习帮手.《数据结构》课程设计报告信息工程学院

计算机科学与技术专业题目:学生成绩管理系统(线性表应用)班级:计算机111班第11组组长::葛学谦学号:2011306010311组员::冷冰学号:2011306010316指导老师:曲、郭晓利、志颖日期:2012年12月20日程序设计书目录一、程序设计目标二、问题描述三、需求分析四、概要设计(说明课程设计中用到的抽象数据类型的定义、主程序的流程以及各程序模块之间的调用关系等)五、详细设计六、软件说明书七、源程序清单八、测试报告九、课程设计总结数据结构课程设计一、课程设计目的数据结构课程设计,使我们能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。通过课程设计掌握《面向对象语言程序设计》的编程思想,为后续课程打下基础。培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。二、课程设计的容1、课程设计的题目及简介文本界面为管理员输入信息保存信息查询信息修改并保存显示全部删除信息退出系统学生1信息查询(1)输入(2)输入学号2退出系统三、需求分析(说明课程设计的任务)提供身份验证,和使用系统的权限设置、判定。教师用户能实现本班同学各学期各科成绩的录入、编辑,数据必须保存在文件中,以便反复使用。学生用户提供对学号或,各学期、各学科成绩的查询。学生和教师用户能按各学期、各学科分数排序输出。教师用户能统计各科成绩分数段的分布,并输出。四、概要设计(说明课程设计中用到的抽象数据类型的定义、主

程序的流程以及各程序模块之间的调用关系等)1•调用函数Node*Create()判断是否等于一如果是可创建链表输入相应的学生成绩如果不是则需要运用Insert(p)函数插入结点增加学生成绩的,并通过chundang(p)函数进行存档,调用函数Node*Delete(Node*head,intnum)删除学生的成绩则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务打开存档文件ifstreamFilein("out.txt");输出说存档的学生成绩调用函数Node*sousuo(Node*head,charna[20]),按学生的进行搜索五、详细设计1)程序流程图各功能模块的实现流程图:1增加学生成绩调用函数Node*Create()判断是否等于一如果是可创建链表输入相应的学生成绩如果不是则需要运用Insert(p)函数插入结点增加学生成绩的,并通过chundang(p)函数进行存档,具体流程如下图所示流程图新增学生成绩生成绩是新增成绩判断以前是否存储了学按提示:输入学个的各种成绩按格式显示输入的学生成绩退出该功能,返回主菜单,继续选择2删除学绩调用函数Node*Delete(Node*head,intnum)新增学生成绩生成绩是新增成绩判断以前是否存储了学按提示:输入学个的各种成绩按格式显示输入的学生成绩退出该功能,返回主菜单,继续选择2删除学绩调用函数Node*Delete(Node*head,intnum)使前后指针变量重新连接,完成链表结点的删除任务删除学生的成绩则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点使前后指针变量重新连接,完成链表结点的删除任务流程图3.导入学生成绩打开存档文件ifstreamFilein("out.txt");输出说存档的学生成绩4、学生成绩的搜索调用函数Node*sousuo(Node*head,charna[20]),按学生的进行搜索打开存档文件ifstreamFilein("out.txt");输出说存档的学生成绩4、学生成绩的搜索调用函数Node*sousuo(Node*head,charna[20]),按学生的进行搜索流程图:

搜索学

生成绩5成绩的统计调用函数Node*sousuo(Node*head,charna[20]),按学生的进行搜索6、按英语成绩进行排序:调用函数Node*paixu(Node*head)完成排序功能它的主要思想的:首先设置英语成绩的最大值100,最小值0(也可以使150或者其他)然后让输入的学生成绩英语成绩一次比较进行比较,(如果有相等的就输出排名1,然后排名加1),否则最大值减1,然后再次进行比较(如果等于99且上次没有等于100的,就输出排名1,然后排名加1,如果上次有等于100的排名为2),如果没有与99相等的.,则继续循环……流程图:总功能模块图:功能模块图学生管理系统7保存学生成\绩:提示保存T成功V-1输入学生的成绩:姓名、性别、专业、出生日期、家庭地址、英语Z绩4、输入你要查找你学生姓名.5.6.7.菜单.新增学生成绩.删除学生成绩.导入学生成绩.学生成绩搜索.学生成绩统计.学生成绩保.退出5统计各种专业、男女、相应年龄的人数2、输入要删除的学生的编号,删除学生成绩。7、退出系统3、输出学生的编号、姓名、性别、专业、出生日期、家庭地址、英语成绩各功能显示效果模块图:学生和管理员输入严择您的登陆身驾学生诜择"或E):暗理员管理员进入界面后增加学生成绩和导入学生成绩.专业整理.专业整理.••学习帮手.保存学生成绩C;YDocm&ntsandSe11ings\Ad>inistrator\'学生成舞B管理员Xkkkkkkkkkkkkkkkkkkkmzmzmzmzmzmzmzmzmzmzmzxxxxxxxxxxkekekekekekekekekekekickickickickickzkmzkmzkmzke鑒退出系统址址址址址址址址址址址比址比址比址買H買H買C;YDocm&ntsandSe11ings\Ad>inistrator\'学生成舞B管理员Xkkkkkkkkkkkkkkkkkkkmzmzmzmzmzmzmzmzmzmzmzxxxxxxxxxxkekekekekekekekekekekickickickickickzkmzkmzkmzke鑒退出系统址址址址址址址址址址址比址比址比址買H買H買H買H買H買H買H買H買H買HXHXHXHXHXHNXNXNXNX借输入您異进行的操作编号<i^2>=i选择佃或町汕KKKKKKKKKKKKKKKKKKKKMZMZMZMZMZMZMZMZMZMZIOCXXXXXXXXXKEKEKEKEKEKEKEKEKEKEKJCWJCWJCWJCWJCWJCMJCMJCMJCE[•查询信息融择您的登陆身弩学生”沁沁沁沁嗨论论论论汁哒哒哒洽牡I迎谖用羊生信恳营理系妾计“Hummm珈*)0()0()0(XKXK)0(X)()0()0(loot3C)C]C)OOC^j^j【卩使用■学•生■信」息、管系罗jjHXHKHKEKEKlCKlCKlCKlCKlCKZKMZKMZKMZKW学生进入界面后,按学生査询并输出成绩葡入您更查找的姓名:王松占丽JL即2边姓名g王松性别:男年龄:㈱语文诃8高数讀8外语=88C**=88数据库旳8体育.伽汴制平均分诃8.专业整理.专业整理...学习帮手.六、软件说明书总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行(1)首先,看题目要求,每一条记录包括一个学生的、性别、专业、出生日期、家庭住址、英语成绩。同时,应具备以下功能:1、输入功能:一次可以完成自定义学生人数的学生成绩记录的输入。2.保存功能:对指定学生的成绩进行保存3.查询功能:选择某种方式并输入该成绩查询符合条件的学生成绩4、修改并保存功能:对指定学生的成绩进行修改保存。5.显示功能:将以上功能操作后的学生成绩显示出来。6、删除功能:对指定学生的成绩进行删除。7.退出主菜单。七、源程序清单#include<iostream>#include<string>#include<fstream>usingnamespacestd;#definepassword123456;//people.hclassstupeople//人员类基类{public:intgetage();//年龄char*getname();//char*getsex();//性别voiddisplay();//输出信息voidpeosearch();//查询信息voidpeosave();//保存信息privatecharname[20];charsex[4];intage;};//student.hclassstustudent:publicstupeople{public:intgetnumber();//学号doublegetcscore();//语文doublegetmscore();//高数doublegetescore();//夕卜语doublegetpscore();//C++doublegetdscore();//数据库doublegetsscore();//体育doublegetave();//平均成绩doublegetsum();//总成绩voidstuenterinfo();//输入信息voiddisplay。;//输出信息voidstusearch();//查找信息voidstusave();//保存信息voidstuload();//加载信息private:intnumber;doublecscore;doublemscore;doubleescore;doubledscore;doublepscore;doublesscore;doublesumscore;doubleavescore;};//admin.hclassstuadmin:publicstustudent//派生类管理员类{public:voidchange();//更改信息voiddel();//删除信息private:intnewage;intnewnumber;charnewsex;charnewname;charchangename[20];doublenewcscore;doublenewmscore;doublenewescore;doublenewdscore;doublenewpscore;doublenewsscore;doublenewsumscore;doublenewavescore;};inti,j,p[6];charA,B,x;stuadminsa;structstudentinfo{intnumber;charname[20]charsex[4];intage;doublecscore;doublemscore;doubleescore;doublepscore;doubledscore;doublesscore;doublesumscore;doubleavescore;intflag;}s;//人员类的相关函数的定义intstupeople::getage(){returnage;}char*stupeople::getname(){returnname;}char*stupeople::getsex(){returnsex;}//学生类的相关函数的定义intstustudent::getnumber(){returnnumber;}doublestustudent::getcscore(){returncscore;}doublestustudent::getmscore(){returnmscore;}doublestustudent::getescore(){returnescore;}doublestustudent::getpscore(){returnpscore;}doublestustudent::getdscore(){returndscore;}doublestustudent::getsscore(){returnsscore;}doublestustudent::getsum(){sumscore=cscore+mscore+escore+pscore+dscore+sscore;returnsumscore;}doublestustudent::getave()//平均成绩{avescore=sumscore/6;returnavescore;}voidstustudent::stuenterinfo()//输入信息{cout〈〈〃请输入学号:〃;cin>>s.number;cout〈〈endl;cout〈〈"请输入:";cin>>;cout〈〈endl;cout〈〈〃请输入性别:〃;cin>>s.sex;cout〈〈endl;cout〈〈"请输入年龄:";cin>>s.age;cout〈〈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;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;}voidstustudent::stusave()//保存信息{ofstreamout("information.txt",ios::app|ios::binary);if(out){out.write((char*)&s,sizeofs);cout〈〈"信息保存成功!"〈〈endl;}elsecout〈〈"文本为空!"〈〈endl;out.close();}voidstustudent::display。//显示信息{ifstreamifile;ifile.open("information.txt",ios::binary);if(ifile){while(ifile.read((char*)&s,sizeofs)!=0){if(s.flag==0){cout〈〈"学号:"〈〈s.number〈〈":"〈〈〈〈"性别:"〈〈s.sex〈〈"年龄:"〈〈s.age〈〈"语文:"<<s.cscore<〈"高数:"〈〈s.mscore〈〈"外语:"〈〈s.escore〈〈"C++:"〈〈s.pscore〈〈"数据库:"〈〈s.dscore〈〈"体育:"〈〈s.sscore〈〈"总分:"〈〈s.sumscore〈〈"平均分:"〈〈s.avescore〈〈endl;}}}elsecout〈〈"文本为空!"〈〈endl;ifile.close();}voidstustudent::stusearch()//查询信息{charstuname[20];inte=0;cout〈〈"请输入您要查找的:";cin>>stuname;ifstreamifile;ifile.open("information.txt",ios::binary);if(ifile){while(ifile.read((char*)&s,sizeofs)!=0){if((strcmp(stuname,)==0)&&s.flag==0){cout〈〈"学号:"〈〈s.number〈〈":"〈〈〈〈"性别:"〈〈s.sex〈〈"年龄:"〈〈s.age〈〈"语文:"〈〈s.cscore〈〈"高数:"〈〈s.mscore〈〈"外语:"〈〈s.escore〈〈"C++:"〈〈s.pscore〈〈"数据库:"〈〈s.dscore〈〈"体育:"〈〈s.sscore〈〈"总分:"〈〈s.sumscore〈〈"平均分:"〈〈s.avescore〈〈endl;e=1;break;}}}elsecout〈〈"文本未建立!"〈〈endl;ifile.close();if(e==0)cout〈〈"没有相关信息!"〈〈endl;}//管理员类的相关函数的定义voidstuadmin::change(){charchangename[20];inte;cout〈〈"请输入您要修改的:";cin>>changename;fstreamifile("information.txt",ios::in|ios::out);while(ifile.read((char*)&s,sizeofs)!=0){if((strcmp(changename,)==0)&&s.flag==0){cout〈〈"学号:"〈〈s.number〈〈":"〈〈〈〈"性别:"〈〈s.sex〈〈"年龄:"〈〈s.age〈〈"语文:"〈〈s.cscore〈〈"高数:"〈〈s.mscore〈〈"外语:"〈〈s.escore〈〈"C++:"〈〈s.pscore〈〈"数据库:"〈〈s.dscore〈〈"体育:"〈〈s.sscore〈〈"总分:"〈〈s.sumscore〈〈"平均分:"〈〈s.avescore〈〈endl;e=1;break;}}if(e==0)cout〈〈"没有相关信息!"〈〈endl;if(e==1){intchoose;cout〈〈"\t请选择修改方式:"〈〈endl〈〈endl;cout〈〈"1.修改学号:"〈〈endl;cout〈〈"2.修改:"〈〈endl;cout〈〈"3.修改性别:"〈〈endl;cout〈〈"4.修改年龄:"〈〈endl;cout〈〈"5.修改语文成绩:"〈〈endl;cout〈〈"6.修改高数成绩:"〈〈endl;cout〈〈"7.修改外语成绩:"〈〈endl;cout〈〈"8.修改C++成绩:"〈〈endl;cout〈〈"9.修改数据库成绩:"〈〈endl;cout〈〈"10.修改体育成绩:"〈〈endl;cout〈〈endl;cout〈〈"请选择:"<<endl;cin>>choose;switch(choose){case1:cout〈〈"请输入学生学号:"〈〈endl;cin>>s.number;break;case2:cout〈〈"请输入学生:"〈〈endl;cin>>;break;case3:cout〈〈"请输入学生性别〈m男n女〉:"〈〈endl;cin>>s.sex;break;case4:cout〈〈"请输入学生年龄:"〈〈endl;cin〉〉s.age;break;case5:cout〈〈"请输入学生语文成绩:"〈〈endl;cin〉〉s.cscore;break;case6:cout〈〈"请输入学生高数成绩:"〈〈endl;cin〉〉s.mscore;break;case7:cout〈〈"请输入学生外语成绩:"〈〈endl;cin>>s.escore;break;case8:cout〈〈"请输入学生C++成绩:"<<endl;cin>>s.pscore;break;case9:cout〈〈"请输入数据库成绩:"〈〈endl;cin>>s.dscore;break;case10:cout〈〈"请输入学生体育成绩:"〈〈endl;cin>>s.sscore;break;/*default:cout〈〈"\t输入错误,返回主菜单!"〈〈endl;adminwelcome();*/}cout〈〈"信息输入成功!"〈〈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(-(sizeofs),ios::cur);ifile.write((char*)&s,sizeofs);cout〈〈"信息已修改并保存!"〈〈endl;}ifile.close();}voidstuadmin::del()//删除信息{chardelname[20];inte=0;cout〈〈"请输入您要删除的学生:"〈〈endl;cin>>delname;fstreamifile;ifile.open("information.txt",ios::in|ios::out);while(ifile.read((char*)&s,sizeofs)!=0){if((strcmp(delname,)==0)&&s.flag==0){cout〈〈"学号:"〈〈s.number〈〈":"〈〈〈〈"性别:"〈〈s.sex〈〈"年龄:"〈〈s.age〈〈"语文:"〈〈s.cscore〈〈"高数:"〈〈s.mscore〈〈"外语:"〈〈s.escore〈〈"C++:"〈〈s.pscore〈〈"数据库:"〈〈s.dscore〈〈"体育:"〈〈s.sscore〈〈"总分:"〈〈s.sumscore〈〈"平均分:"〈〈s.avescore〈〈endl;e=1;break;}}if(e==0)cout〈〈"没有相关信息!"〈〈endl;if(e==1){s.flag=1;ifile.seekp(-(sizeofs),ios::cur);ifile.write((char*)&s,sizeofs);cout〈〈"信息删除成功!"〈〈endl;}ifile.close();}//欢迎界面voidstudentwelcome()//学生欢迎界面{nz-v-I1-4~//ff)1II、、**********"〈〈endl;cout〈〈"****************************欢迎使用学生信息管理系统****************************"〈〈endl;nz-v-I1-4~//ff)1II、、**********"〈〈endl;cout〈〈"\t\t1.查询信息\t\t2.退出系统"〈〈endl;nz-v-I1-4~//ff)1II、、**********"〈〈endl;docout〈〈〃请输入您要进行的操作编号(1或2):〃;cin>>i;cout〈〈endl;if(i〈1||i>2)cout〈〈"对不起,请输入1或2这两个选择数字!"〈〈endl;}while(i〈1||i>2);switch(i){case1:sa.stusearch();studentwelcome();break;case2:exit(0);break;}}voidadminwelcome()//管理员欢迎界面{n/-V-I1-4~//ff)1II、、**********"〈〈endl;cout〈〈"****************************欢迎使用学生信息管理系统****************************"〈〈endl;nz-v-I1-4~//ff)1II、、**********"〈〈endl;cout〈〈"\tl.输入信息\t2.保存信息\t3

温馨提示

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

评论

0/150

提交评论