学生成绩系统的开发实验报告_第1页
学生成绩系统的开发实验报告_第2页
学生成绩系统的开发实验报告_第3页
学生成绩系统的开发实验报告_第4页
学生成绩系统的开发实验报告_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

C++程序设计课程设计汇报(--第二学期)学生成绩系统开发学生成绩系统开发设计汇报需求分析:用数组或链表数据结构完成一个学生成绩管理系统,此系统详细功效要求以下:(1)学生信息录入功效

1)用户从键盘输入每个学生信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理五门课成绩。

2)可插入一个或多个学生信息到当前编辑班级数据中。3)可删除一个或多个学生信息。(2)文件保留功效

1)学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和重新保留。

2)用户输入学生信息可随时保留数据文件。

(3)文件打开功效

1)程序只能对当前打开数据文件进行编辑。

(4)查询功效

1)浏览全部学生信息;

2)按学号查询学生信息;

3)按姓名查询学生信息;

4)查询一个班总成绩和平均成绩;

5)查询一个班某一门课总成绩和平均成绩;

6)查询某一门课分数段(<60,60-69,70-79,80-89,>90)学生数。

(5)报表输出功效

1)按学号输出一个班学生信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理成绩和总成绩,到屏幕和文件。

2)按总成绩输出从高到低输出学号、姓名信息。

注:以上功效以菜单形式供用户使用,并有一定容错功效。功效描述整体框架:整个学生成绩管理系统采取链表作为基本数据结构,创建一个类student用于保留学生数据且是链表中一个节点。类list作为保留整个链表之用。主函数经过switch语句来依照用户需要连接各个模块,以实现用户需要。模块基本介绍:用户输入模块在此模块中,用户将依照菜单提醒结合自己需求输入一个0~11值,来实现一定功效。学生信息录入模块此模块能够让用户从键盘输入每个学生信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理五门课成绩。用户可插入一个或多个学生信息到当前编辑班级数据中。用户可删除一个或多个学生信息。3.文件保留功效模块

用户在确定以录入成绩无误之后,能够将学生信息以每一班为单位存为一个数据文件。用户输入学生信息可随时保留数据文件。4.文件打开功效模块用户能够用此模块将数据文件在程序中打开、编辑,程序只能对当前打开数据文件进行编辑。5.查询功效模块在此模块里,用户可实现以下操作:1.浏览全部学生信息;2.按学号查询学生信息;3.按姓名查询学生信息;4.查询一个班每个人总成绩和平均成绩;5.查询一个班某一门课每个人总成绩和平均成绩;6)进行成绩统计分析:包含总人数,每门课最高成绩、最低成绩、平均成绩、各个分数段人数(100-90、89-80、79-70、69-60、59-50、50以下)、及格人数。6.报表输出功效模块在此模块中,用户能够浏览全部学生信息,或者能够按学号输出一个班学生信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理成绩和总成绩,到屏幕和文件。也能够按总成绩输出从高到低输出学号、姓名信息。

开始m开始m值1,3,4值8值9值7,2,6,5值10,11文件保留功效模块学生信息录入模块文件打开功效模块查询功效模块报表输出功效模块用户输入,并将值保留至m中m结束总体设计主要功效模块算法设计思绪:1.用户输入模块设计提醒用户输入一个0~11值,并存放在一个整型变量m中。2.学生信息录入模块设计经过应用list中instu()函数,来新建一个链表中节点,即一个新学生信息,来进行成绩录入功效。成绩修改功效,能够依照姓名或学号进行查询并修改对应课程成绩,使用了voidsearch(chars[10],int)和voidsearch1(chars[20],int)函数进行操作。search函数依照姓名查找,search1函数依照学号进行查找。因为学号和姓名,都是存放在字符数组中,所以都是经过字符串比较进行查找。然后依照整形参数进行对应课程成绩修改。成绩删除功效,也是能够依照姓名或学号进行删除,查询算法和成绩修改功效查询方法是一样,当找到要删除节点时,因为节点都是在堆内存中保留,所以能够直接delete掉,并将前一个节点next指针指向被删掉节点next指针所指向节点。3.文件保留功效模块先提醒用户输入保留文件文件名及班级名称。文件前两行分别是班级名称和成绩单开头,然后经过ofstream变量output来进行学生信息输出,一项一项输出,并设定格式,直到输出节点为NULL为止,之后关闭output。4.文件打开功效模块先提醒用户输入要打开数据文件名称,然后经过一个ifstream变量input来进行文件操作。首先判断文件是否存在,假如不存在则输出"Filedoesnotexist",并跳出switch语句。文件存在话,则能够进行数据存入了。因为数据文件具备固定格式,即开头两行是班级名称和表头,则能够先用两次input.getline(temp,80);语句来将input设置到第三行,此时能够将数据经过input读入链表中。先用input.eof()判断文件中是否有数据,若有数据,则进行数据读入,直到文件结束。5.查询功效模块能够依照姓名或学号进行查找,搜索方法和前几个模块相同。经过outstu1(char*n)和outstu(char*n)来进行输出。总成绩和平均成绩查询经过函数voidoutsum(char*)和voidoutsum1(char*)来完成。经过函数scanall()来浏览全部学生信息。经过函数think()来进行成绩统计分析。6.报表输出功效模块经过建立一个新类classstucopy用于拷贝student数据,并实现排序功效。创建一个stucopystu[M]数组,将原链表数据拷贝与数组中,然后用选择排序方法将数组排序,然后用output按照标准格式输出或保留为数据文件。四,调试分析调试是整个程序编写过程中十分主要也是很困难一部分,在这个过程中用了不少时间进行程序调试,在调试过程中碰到相关问题以下:一、语法错误1、语句最终忘记了加上“;”,使程序发生错误。2、把“<<”与“>>”写反,以及字符与字符串操作问题,这些是比较简单错误,很轻易分辨出来,并改过之。3、函数返回值问题,也是比较轻易找出并处理问题。二、逻辑错误1、文件写入与读出,刚开始对文件操作不太明白,一致不能很好操作文件,其中最大问题是对已存在文件读取问题,经过“显示全部学生成绩”将数据从文件中读取,可是在使用过程中总是出现读犯错误,出现乱码。2、内存分配问题,这也是迷惑了我很久问题。对于我们初学者来说对内存分配和释放问题是比较抽象和含糊难题,原来使用链表方式存放数据,然而待到排序时出现了交换数据困难问题,以及分配空间繁琐释放空间不及时问题,造成空间浪费使得程序运行效率低问题。所以最终采取了次序存放统计方式,这么就能改变前述问题。整个调试过程中主要是这么几个问题,其余是一些小问题,很轻易就调试出来了。五,测试结果主界面2,录入统计3,查询统计修改统计删除统计总成绩和平均成绩查询统计排序统计六,用户使用说明用户运行程序后进入系统主界面,在主界面用户能够打开或者新建数据文件。用户新建或者打开文件要符合操作系统要求,假如用户打开不存在文件,那么系统将按照用户打开文件名作为新数据文件名,并对其进行相关操作。本系统同时只能对一个数据文件进行相关操作,不能同时打开多个数据文件,其类似于单用户操作系统。当用户指定当前文件后可对其进行显示,插入,删除,修改,计算平均分等相关功效。用户在操作过程中可随时对当前文件进行保留到文件操作,以预防修改数据丢失。操作完当前文件后,用户能够关闭该文件,在不退出本系统前提下另行打开或者新建数据文件对其进行相关操作。七,课程设计总结两个星期课程设计,即使有些疲劳和困倦,但带给我很多收获。C++已经学了一个学期了,有许多知识都存在似懂非懂现象,这种现象经过实际上机操作,已经降低了许多。对这些知识也有了更深了解和很好掌握。也有很多理论上说得过去代码,但到了实际操作,却是行不通。这种迷惑,有许多已经经过实际操作处理了,并能够深刻认识,但也有很多没有明白。只能避过这些方法,换方法实现。在课程设计之前,因为有了综合试验经验与教训,明白了写代码这一步是非常主要,因为当你把代码输入电脑,并用编译器将其运行,发觉经过不了,再来检验找出问题,这是一件非常辛劳事情,也很浪费时间。于是在课程设计时候,我花了两天时间来规划与写代码,将要实现内容分析清楚,才把代码输入电脑。我以为写程序,应该先找到该程序中关键地方,用多个方法来实现该关键,这才可能防止等到发觉逻辑上或者编译器不支持上错误,才来想补救方法,这么花费时间在想补救方法是很不值得。此次任务完成,也表现出同学之间团结精神。实践是检验真理唯一标准。没有实践,就不会发觉和深刻体会它真实所在。只有经过检验真理,在自己心里,才会认可它真实性。面向对象程序设计完成,使我们知道了真理主要性,理论和实际相结合,才能真正把握所学和所掌握知识。八,附录源代码:#include<iostream.h>#include<string.h>#include<iomanip.h>#include<fstream.h>constintM=20;classstucopy//这类用于拷贝student数据,用于排序功效实现{public: charid[20]; charsex[10]; charname[10]; doublegrade[5]; doublesumsum;//总成绩 doubleaverage;//平均成绩};classstudent//用于保留学生信息类{friendclasslist;public:charid[20];//保留学号charsex[10];//保留性别charname[10];//保留名字doublegrade[5];//保留成绩student(){ next=0; for(inti=0;i<20;i++) id[i]=0; for(i=0;i<10;i++) sex[i]=0; for(i=0;i<10;i++) name[i]=0;}voids();voidsetid(charid1[20]){ for(inti=0;i<20;i++) id[i]=id1[i];}voidsetsex(charsex1[10]){ for(inti=0;i<10;i++) sex[i]=sex1[i];}voidsetname(charname1[10]){ for(inti=0;i<10;i++) name[i]=name1[i];}voidsetgrade(doublegrade1[5]){ for(inti=0;i<5;i++) grade[i]=grade1[i];}student*next;//next指向下一个学生,组成链表char*outid(){returnid;};char*outsex(){returnsex;};char*outname(){returnname;};doubleoutsum(){ doublesum=0; for(inti=0;i<5;i++) sum+=this->outgrade(i); returnsum;}doubleoutav(){returnthis->outsum()/5;}doubleoutgrade(inti){returngrade[i];};voidintgrade(int);};voidstudent::intgrade(intj)//用于修改学生成绩{ switch(j) { case1: cout<<"请输入数学成绩:\n"; cin>>grade[0];break; case2: cout<<"请输入英语成绩:\n"; cin>>grade[1];break; case3: cout<<"请输入政治成绩:\n"; cin>>grade[2];break; case4: cout<<"请输入程序设计基础成绩:\n"; cin>>grade[3];break; case5: cout<<"请输入物理成绩:\n"; cin>>grade[4];break; }}voidstudent::s()//用于录入学生信息{cout<<"请输入学号:\n";cin>>id;cout<<"请输入姓名:\n";cin>>name;cout<<"请输入性别:\n";cin>>sex;cout<<"请输入数学成绩:\n";cin>>grade[0];cout<<"请输入英语成绩:\n";cin>>grade[1];cout<<"请输入政治成绩:\n";cin>>grade[2];cout<<"请输入程序设计基础成绩:\n";cin>>grade[3];cout<<"请输入物理成绩:\n";cin>>grade[4];}classlist//这类为链表{private:doublehigh[5],low[5];public:student*last,*first;//链表开头和结尾doubletotoal;list(){last=0;first=0;};~list();voidinstu();//新建一个学生数据voidoutstu(char*);//依照姓名输出一个学生信息intdelstu(char*n);//依照姓名删除一个学生信息voidoutstu1(char*);//依照学号输出一个学生信息intdelstu1(char*n);//依照学号删除一个学生信息voidoutsum(char*);//依照姓名输出一个学生总成绩和平均成绩voidoutsum1(char*);//依照学号输出一个学生总成绩和平均成绩voidthink();//用于输出班级成绩统计分析voidsearch(chars[10],int);//依照姓名修改一个学生成绩voidsearch1(chars[20],int);//依照学号修改一个学生成绩doublehi(inti);//求某门课最高分doublelo(inti);//求某门课最低分voidav(inti);//求某门课平均分voidev(inti);//用于班级成绩统计分析人数分布输出voidscanall();//输出全部学生信息};list::~list()//析构函数,将全部创建学生对象删掉{if(first!=0){student*p=first,*temp;while(p!=NULL){temp=p;p=p->next;deletetemp;cout<<"ok\n";}}}voidlist::instu(){student*p=newstudent();p->s();if(first==0){first=last=p;}else{last->next=p;last=p;}}voidlist::outstu(char*n){ if(first==0){cout<<"班级无组员!查无此人!"<<endl;return;} student*temp=first;for(;temp!=NULL;temp=temp->next) if(strcmp(temp->outname(),n)==0) { cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<<setw(6) <<"英语"<<setw(6)<<"政治"<<setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<endl; cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(6)<<temp->outsex()<<setw(6) <<temp->outgrade(0)<<setw(6)<<temp->outgrade(1)<<setw(6)<<temp->outgrade(2)<<setw(14) <<temp->outgrade(3)<<setw(6)<<temp->outgrade(4);return;} cout<<"查无此人!"<<endl; return;}voidlist::outstu1(char*n){ if(first==0){cout<<"班级无组员!查无此人!"<<endl;return;} student*temp=first;for(;temp!=NULL;temp=temp->next) if(strcmp(temp->outid(),n)==0) { cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<<setw(6) <<"英语"<<setw(6)<<"政治"<<setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<endl; cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(6)<<temp->outsex()<<setw(6) <<temp->outgrade(0)<<setw(6)<<temp->outgrade(1)<<setw(6)<<temp->outgrade(2)<<setw(14) <<temp->outgrade(3)<<setw(6)<<temp->outgrade(4);return;} cout<<"查无此人!"<<endl; return;}intlist::delstu(char*n){ if(first==0){cout<<"无数据!"<<endl;return0;} student*temp=first; student*p; if(strcmp(first->outname(),n)==0) {first=first->next;deletetemp; cout<<"\n删除成功\n";return0;} elsefor(;temp->next!=NULL;temp=temp->next) {if(strcmp(temp->next->outname(),n)==0) {p=temp->next;temp->next=temp->next->next;deletep; cout<<"\n删除成功\n";return0;}} cout<<"\n查无此人,删除失败\n"; return0;}intlist::delstu1(char*n){ if(first==0){cout<<"无数据!"<<endl;return0;} student*temp=first; student*p; if(strcmp(first->outid(),n)==0) {first=first->next;deletetemp; cout<<"\n删除成功\n";return0;} elsewhile(temp->next!=NULL) {if(strcmp(temp->next->outid(),n)==0) {p=temp->next;temp->next=temp->next->next;deletep; cout<<"\n删除成功\n";return0;} elsetemp=temp->next;} cout<<"\n查无此人,删除失败\n"; return0;}voidlist::think(){ if(first==0){cout<<"无数据!"<<endl;return;}inti=0; student*p=first; while(p!=NULL) { p=p->next; i++; } totoal=i;cout<<"人数:"<<i<<endl;cout<<"数学\n";cout<<"最高分:"<<hi(0)<<""<<"最低分:"<<lo(0)<<""<<"平均分:";av(0);ev(0);cout<<"英语\n";cout<<"最高分:"<<hi(1)<<""<<"最低分:"<<lo(1)<<""<<"平均分:";av(1);ev(1);cout<<"政治\n";cout<<"最高分:"<<hi(2)<<""<<"最低分:"<<lo(2)<<""<<"平均分:";av(2);ev(2);cout<<"程序设计基础\n";cout<<"最高分:"<<hi(3)<<""<<"最低分:"<<lo(3)<<""<<"平均分:";av(3);ev(3);cout<<"物理\n";cout<<"最高分:"<<hi(4)<<""<<"最低分:"<<lo(4)<<""<<"平均分:";av(4);ev(4);}doublelist::hi(inti){high[i]=0.00;student*temp=first;while(temp!=0){if(temp->outgrade(i)>high[i])high[i]=temp->outgrade(i);temp=temp->next;}returnhigh[i];}doublelist::lo(inti){low[i]=100;student*temp=first;while(temp!=0){if(temp->outgrade(i)<low[i])low[i]=temp->outgrade(i);temp=temp->next;}returnlow[i];}voidlist::av(inti){ doubleaver=0; student*temp=first; while(temp!=NULL) { aver+=temp->outgrade(i); temp=temp->next; } cout<<aver/totoal<<endl;}voidlist::ev(inti){inta=0,b=0,c=0,d=0,e=0,f=0;student*temp=first;while(temp!=0){switch((int)temp->outgrade(i)/10){case10:a++;break;case9:a++;break;case8:b++;break;case7:c++;break;case6:d++;break;case5:e++;break;default:f++;}temp=temp->next;}cout<<"100-90人数:"<<a<<"89-80人数:"<<b<<"79-70人数:"<<c<<"69-60人数:"<<d<<"59-50人数:"<<e<<"50以下人数:"<<f<<"及格人数:"<<(a+b+c+d)<<"不及格人数:"<<(e+f)<<endl;}voidlist::search(chars[10],intn){student*temp=first;for(;temp!=NULL;temp=temp->next)if(strcmp(temp->outname(),s)==0)temp->intgrade(n);}voidlist::search1(chars[20],intn){ student*temp=first;for(;temp!=NULL;temp=temp->next) if(strcmp(temp->outid(),s)==0)temp->intgrade(n);}voidlist::outsum(char*n){ if(first==0){cout<<"无数据!"<<endl;return;} student*temp=first;for(;temp!=NULL;temp=temp->next) if(strcmp(temp->outname(),n)==0) { cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"总成绩"<< setw(10)<<"平均成绩"<<"\n"; cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(8) <<temp->outsex()<<setw(8)<<temp->outsum()<<setw(10)<<temp->outav(); return; } cout<<"查无此人!"<<endl; return;}voidlist::outsum1(char*n){ doublesum=0; inti=0; doubleav=0; if(first==0){cout<<"无数据!"<<endl;return;} student*temp=first;for(;temp!=NULL;temp=temp->next) if(strcmp(temp->outid(),n)==0) { cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"总成绩"<< setw(10)<<"平均成绩"<<"\n"; cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(8) <<temp->outsex()<<setw(8)<<temp->outsum()<<setw(10)<<temp->outav(); return; } cout<<"查无此人!"<<endl; return;}voidlist::scanall(){ student*temp; for(temp=first;temp!=NULL;temp=temp->next) cout<<setw(8)<<temp->outid()<<setw(8)<<temp->outname()<<setw(6) <<temp->outsex()<<setw(6)<<temp->outgrade(0)<<setw(6)<<temp->outgrade(1) <<setw(6)<<temp->outgrade(2)<<setw(14)<<temp->outgrade(3)<<setw(6) <<temp->outgrade(4)<<setw(8)<<temp->outsum()<<setw(10)<<temp->outav()<<endl;}voidmain(){ stucopystu[M];//复制整个链表数据于数组,用于排序 stucopystutemp;//暂时变量 listwill;//整个链表 student*p,*p1=newstudent(),*q;//暂时变量 ifstreaminput;//输入 ofstreamoutput;//输出 charfile[20],classname[20],temp[80],id[20],name[9],sex1[10];//暂时变量 intm=0,n=0,j=0,i=0;//暂时变量 doublegrade1[5];//暂时变量 for(i=0;i<20;i++)id[i]=0; for(i=0;i<9;i++)name[i]=0;//初始化do{cout<<"//----------------------------------------------------------\\\n"<<"0、退出系统。\n"<<"1、成绩录入:包含学生学号、姓名、性别和各门课程成绩录入。\n"<<"2、成绩查询:能够依照学号或姓名查询某个学生成绩。\n"<<"3、成绩修改:能够依照学号或姓名来修改对应学生成绩。\n"<<"4、数据删除:能够依照学号或姓名指定删除某个学生数据。\n"<<"5、成绩统计分析:包含总人数、最高成绩、最低成绩、平均成绩、\n"<<"各个分数段人数(100-90、89-80、79-70、69-60、59-50、50以下)、及格率。\n"<<"6、总成绩和平均成绩查询:能够依照学号或姓名查询。\n"<<"7、浏览全部学生信息。\n"<<"8、将全部学生信息保留成文件。\n"<<"9、打开指定数据文件。\n"<<"10、按总成绩排序输出学生信息。\n"<<"11、按学号次序输出学生信息,并可保留成文件。\n"<<"//----------------------------------------------------------\\\n";cout<<endl<<"请输入:";cin>>m;switch(m){case1:will.instu();break;case2: cout<<"1.依照学号查询2.依照姓名查询"<<endl<<"请输入:"; cin>>n; switch(n){ case1: cout<<"请输入学号\n"; cin>>id; will.outstu1(id); cout<<"\n";break; case2: cout<<"请输入姓名\n"; cin>>name; will.outstu(name); cout<<"\n";break;}break;case3: cout<<"1.依照学号查询2.依照姓名查询"<<endl<<"请输入:"; cin>>n; switch(n){ case1: cout<<"请输入学号\n"; cin>>id; will.outstu1(id); cout<<"\n"; cout<<setw(6)<<"1.数学"<< setw(6)<<"2.英语"<<setw(6)<<"3.政治"<< setw(14)<<"4.程序设计基础"<<setw(6)<<"5.物理"<<endl; cout<<"请输入要修改课程编号:"; cin>>j; will.search1(id,j);break; case2: cout<<"请输入姓名\n"; cin>>name; will.outstu(name); cout<<"\n"; cout<<setw(6)<<"1.数学"<< setw(6)<<"2.英语"<<setw(6)<<"3.政治"<< setw(14)<<"4.程序设计基础"<<setw(6)<<"5.物理"<<endl; cout<<"请输入课程编号:"; cin>>j; will.search(name,j);break;}break;case4: cout<<"1.依照学号删除2.依照姓名删除"<<endl<<"请输入:"; cin>>n; switch(n){ case1: cout<<"请输入学号\n"; cin>>id; will.outstu1(id); will.delstu1(id);break; case2: cout<<"请输入姓名\n"; cin>>name; will.outstu(name); will.delstu(name);break;}break;case5:will.think();break;case6: cout<<"1.依照学号查询2.依照姓名查询"<<endl<<"请输入:"; cin>>n; switch(n){ case1: cout<<"请输入学号\n"; cin>>id; will.outsum1(id);break; case2: cout<<"请输入姓名\n"; cin>>name; will.outsum(name);break;}break;case7: cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<< setw(6)<<"英语"<<setw(6)<<"政治"<< setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<setw(8)<<"总成绩"<< setw(10)<<"平均成绩"<<"\n"; will.scanall(); break;case8: cout<<"请输入文件名:"<<endl; cin>>file; cout<<"请输入班级名称:"<<endl; cin>>classname; output.open(file); p=will.first; output<<classname<<"成绩单"<<endl<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(6)<<"数学"<< setw(6)<<"英语"<<setw(6)<<"政治"<< setw(14)<<"程序设计基础"<<setw(6)<<"物理"<<setw(8)<<"总成绩"<< setw(10)<<"平均成绩"<<endl; for(;p!=NULL;p=p->next) output<<setw(8)<<p->outid()<<setw(8)<<p->outname()<<setw(6) <<p->outsex()<<setw(6)<<p->outgrade(0)<<setw(6)<<p->outgrade(1) <<setw(6)<<p->outgrade(2)<<setw(14)<<p->outgrade(3)<<setw(6) <<p->outgrade(4)<<setw(8)<<p->outsum()<<setw(10)<<p->outav()<<endl; output.close(); break;case9: cout<<"请输入文件名:"<<endl; cin>>file; input.open(file); if(input.fail()) { cout<<"Filedoesnotexist"<<endl; break; } input.getline(temp,80); input.getline(temp,80); if(input.eof()){cout<<"文件中无数据!"<<endl;break;} input>>id>>name>>sex1>>grade1[0]>>grade1[1]>>grade1[2]>> grade1[3]>>grade1[4]; input>>temp; input>>temp;//将总成绩和平均成绩输入进暂时变量 p1->setid(id); p1->setname(name); p1->setsex(sex1); p1->setgrade(grade1); will.first=p1; will.last=will.first; while(!input.eof()) { p=newstudent(); q=will.last;will.last->next=p; will.last=p; input>>id>>name>>sex1>>grade1[0]>>grade1[1]>>grade1[2]>> grade1[3]>>grade1[4]; will.last->setid(id); will.last->setname(name); will.last->setsex(sex1); will.last->setgrade(grade1); input>>temp; input>>temp;//将总成绩和平均成绩输入进暂时变量 } will.last=q; will.last->next=NULL; input.close();break;case10: p=will.first; for(i=0;i<20&&p!=NULL;i++,p=p->next) { for(j=0;j<20;j++) { stu[i].id[j]=p->id[j]; } for(j=0;j<10;j++) { stu[i].name[j]=p->name[j]; } for(j=0;j<10;j++) { stu[i].sex[j]=p->sex[j]; } stu[i].sumsum=p->outsum(); stu[i].average=p->outav(); } for(n=0;n<i-1;n++) for(j=1;j<i;j++) { if(stu[n].sumsum<stu[j].sumsum) { stutemp=stu[j]; stu[j]=stu[n]; stu[n]=stutemp; } } cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(6)<<"性别"<<setw(8)<<"总成绩"<< setw(10)<<"平均成绩"<<"\n"; for(j=0;j<i;j++) cout<<setw(8)<<stu[j].id<<setw(8)<<stu[j].name<<setw(6)

温馨提示

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

评论

0/150

提交评论