C++课程设计学生成绩管理系统_第1页
C++课程设计学生成绩管理系统_第2页
C++课程设计学生成绩管理系统_第3页
C++课程设计学生成绩管理系统_第4页
C++课程设计学生成绩管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、中南大学二。一二二。一三学年第二学期信息科学与工程学院C+班序设计语言课程设计报告课程名称:C+银序设计语言班级:电气信息类1206班学号:0909120629姓名:邬继阳指导教师:王磊二 0 一三年零七月目录1 .课程设计目的 32 .系统描述(需求分析) 32.1 需要处理的基础数据 32.2 系统的基本功能 32.3 可行性分析 43 .功能模块设计 43.1 类的分析与设计 43.1.1 Course 类43.1.2 Stu 类53.2 整体流程 64 .主要模块的算法说明 74.1 信息的保存和读取 74.2 对信息的处理 74.2.1 数据的录入和插入 74.2.2 数据的查询 7

2、4.2.3 数据的修改 74.2.4 数据的删除 74.2.5 数据的排序 85 .程序运行结果 85.1 菜单欢迎界面 85.3 信息的显示 95.4 信息的查询 95.5 信息的修改 105.6 信息的删除 115.7 按平均分降序排列 115.8 查看全部信息 125.9 输出不及格学生信息 125.10 退出系统 136 .课程设计总结 137 .参考文献 138 .附录(源代码) 1411 / 301 . 课程设计目的1.1 使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、 存储结构和操 作实现算法,以及它们在程序中的使用方法。1.2 使学生掌握软件设计的基本内容和设

3、计方法,并培养学生进行规范化软件设计的能力。1.3 使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。2 .系统描述(需求分析)2.1 需要处理的基础数据学生基本信息:如班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。学生选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。2.2 系统的基本功能数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;数据的插入:插入某个学生信息数据的查询:如按学号查询、按姓名查询等;数据的删除:如删除指定学号、或者

4、指定姓名的学生及其选修课的信息;平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;列出不及格学生清单(学号、姓名、不及格的课程和成绩)。考虑用文件把数据保存起来(可选)。2.3 可行性分析2.3.1 如上所示,该系统要求处理一些学生成绩的基本数据,包括两个方面:学生身份信息和学生成绩信息。 具体可以考虑创建两个类,一个学生基本信息类, 一个学科基本信息类。这样既可以保持二者的独立性,也可以使之相关联。2.3.2 该系统不仅要求能录入一些基本数据外,还要能对这些数据进行处理,比如修改,删除,插入,查询等。对这些操作的实现可以暂时放开面向对象,而采用面向过程的

5、方法。另外,因为对数据库了解不多, 可以考虑用文件保存的形式将数据保存起来,最后在查找的时候采用文件读取。3 .功能模块设计3.1 类的分析与设计由上面的需求分析可以知道,在本程序中,需要处理两大类数据:一个是学生的身份基 本信息,另一个是该同学的课程基本信息。 而且要求二者既要相互联系, 又不能太相互制约。 于是可以考虑创建两个类:Stu类(学生信息类)和 Course类(课程信息类)。为了使二者相互关联,可以让 Course的一个类对象作为 Stu对象的一个基本数据成员。具体如下:3.1.1 Course 类由于学生只需要一些课程信息,故在该类中只有一些基本的成员数据,不涉及成员函数之类的

6、对数据进行操作的函数。把对学生信息进行处理的函数放在Stu类中。成员成员属性访问类型course_num数据成员publiccourse_name数据成员publicregular_score数据成员publicFinal_score数据成员publicaverage_score数据成员publicstudy_score数据成员publicrebulid数据成员public由于这些数据信息是作为Stu类的一个信息的,为了使stu类中的函数可以访问这些成员数据,故要将访问类型定义为public型。3.1.2 Stu 类正如上面所述,Course类的一个对象作为 Stu类的一个数据成员,但是正常情

7、况下,一 个同学是不只一门科目的,所以要定义一个Course类的数组来存放同一学生的不同科目信息Course course20。为了其信息的隐蔽性,我们把所有的数据成员都声明为private。接下来,要处理的就是函数了。 有两种处理方式,但到底是采用成员函数还是采用友元 函数呢?在本例中,我采用的是友元函数。原因如下:(1)采用友元函数,可以使类的结构变得更加简单,有助于整个设计过程的思考。(2)使用友元函数,将函数独立于类的结构之外而采用类对象传参的方式,可以使该 函数的独立性大大提高,有助于在其他地方的使用。Stu类具体如下:成员成员属性访问类型Class_num数据成员privatenu

8、m数据成员privatename数据成员privatesex数据成员privateage数据成员privateroom数据成员privatetel数据成员privateaverage数据成员privateNum of course数据成员privateorder数据成员privateCourse20数据成员private友元函数:Input( Stu stud口)输入学生信息Statistic( Stu stud口)学生信息输出Lookup( Stu stud口)查找学生信息Modi伙 Stu stud口)修改学生信息Delete( Stu stud口)删除学生信息Output( Stu st

9、ud口)输出全部信息Sort( Stu stud口)对学生进行排序Insert( Stu stud口)插入学生信息Showfail( Stu stud口)查找不及格学生Write( Stu stud口)文件写入函数Read( Stu stud口)文件读取函数void menu()菜单函数,以供选择3.2 整体流程上面已经主要分开介绍了两个独立的类及其内部成员,现在来介绍整个学生系统功能实现的流程。查询删除显示不及格显示全部Switch语句选择输入修改插入排序查看学生成绩文件保存文件读取4 .主要模块的算法说明4.1 信息的保存和读取在本次课程设计中,因为还没有接触到数据库的有关知识,故采用文件

10、流来写入和读取信息。主要涉及到 fstream 类。在系统运行过程中,会利用该类将学生的基本身份信息和基本课程信息全部存到自定义的一个文件中,当需要使用这些数据时,例如查询,修改, 显示 等,再将需要的读取出来进行相关的操作。4.2 对信息的处理4.2.1 数据的录入和插入数据的录入和插入基本一样,这里只介绍录入。当在主菜单里选择信息录入时,会跳出录入页面,只需依次输入提示的信息即可。在整个大体框架上,采用一个while 语句判断是否继续录入。注意在录入学生成绩信息时。需要输入要登记的课程数目。 其中成绩信息的各科综合成绩和是否重修不需要手动录入, 它会在登记完平时成绩和末考成绩后自动生成。

11、当所有信息录入完成后, 该生所有科目的平均成绩average 也会自动计算。4.2.2 数据的查询所谓数据的查询,就是把存放在文档中的学生数据读取出来并加以输出。当只针对某个人的查询时,需要输入学号或姓名,再调用 read ()函数将相关的数据读 取出来,至于需要输出哪些,可以自己控制。当要输出所有学生的数据是时,首先调用read ()函数返回数据的个数count ,即学生的个数。最后采用 for 循环控制依次输出每一个学生的信息。4.2.3 数据的修改当修改数据时, 只需输入需要修改学生的学号即可。 首先会将该生的相关信息输出出来。然后再提示重新输入信息。执行到这里时基本就和前面的数据录入,

12、插入一样了。4.2.4 数据的删除本例中,对数据的删除比较简单。只需输入学号或姓名,当查找到该生的相关信息后。将后面一个学生的信息赋值给他,相当于该生的信息被覆盖,也就是删除。4.2.5 数据的排序在需求分析中,有一项功能,按学生成绩平均分降序排列。此功能还是比较好实现的。在输入学生数据时,当所有课程分数输入完毕,会自动生成一个平均分, 该数值就是学生类Stu中的average数据成员。然后采用冒泡法比较大小,把这些学生的数据重新排列,最后 再依次输出。5 .程序运行结果*+* 学华t*年 H *制 *丑* 本* 邛:tt * 邛* 宇* * +*t*+t+t+*+tt *乎主*率*章*本堂

13、辛格 毛样辛言小*韦率*军奉毛: * *件*亭*:* * *中* * 聿林*#* * 样*芭 *>t*Jft* 号*辛修辛:it *窄5s宗*L辆入学生成绩 Z显示统计放据 3杳找统计成余 工修改学生成绩 3园除学生成绩 fi插入学生成绩 7.按平均分降序排列 也显示学生详细唁息 9.显示不及格学生信息 。.安全退出李境本*好!I:*在*丰*/* »t*t+*t*tt* 样* * * * + * tt+ /* */* 本本*军车* 样题*洋"帘 *+*布*隼*科本尊本* 本*字*木* )<0*5(!*>:*六*本章聿本木辛林军宰*窜率修蟀5.1 菜单欢迎界

14、面请输入您的选择g 9:5.2 信息的录入=» 增加学生成绩= 班级:1206学号:1006 姓星:weif 年龄:18 性别:F 宿舍:145 电话请输入需要登记的学科数目:2 请登记第1门课的信息:请输入需要登记的学科数目:2请登记第1门课的信息:课程编号:001理程名称:C+平时成绩:90末考成绩:65学分工 4该门课的综合成绩是:72.5尾否重修,香如上所示,依次输入需要填写的信息,其中“该门课的综合成绩”和“是否重修”是不 需要输入,系统自动执行的。最后还会提示是否继续填写( YN)。5.3 信息的显示在这个功能里面主要显示全部同学的身份信息和平均

15、分:班堀学号姓名年龄性别宿舍电话平均成品1206.001叫jjinM13R:初西33 口96r IS1003quji20F.弓印:1465748087612061002shid21F13213427658096S5. 312061004ertr17F456124356S647669.612 口 6100Sew: u2DM12317X567陶0651. 712061006v*eifISf1151351765890379, 45惜接任意键继续.5.4 信息的查询信息的查询分两种方式:请输入查询方式,>按学号查询:1 <按姓名查询:2 < 储输入您的选择:匕当你选择1时,表示按学号

16、查询, 当你选择2时,表示按姓名查询。 下面介绍的是按学号查询。卜杳找学生成绩廨输入需要查找学生的学号:1001 班级:1206 学号:1001 姓名;wji年龄:19 性别:M宿舍:132电话+:95. 3yuwen:97 平均分;瓯15如上所示,当输入需要查询的同学的学号时,会输出该同学的身份信息以及每一门课的综合成绩,还有这些课的平均成绩。5.5 信息的修改当输入需要修改的学生学号时,会首先输出该同学现在的已经存在的信息:F=»修改学生成绩*=请输入需要修改成绩学生的学号:1001该学生的信息班级 学号 姓名 年龄 性别 宿舍 电话12061001 w

17、uji 19 M 13213875865330C+ : 95, 3yuwen;97平均分:96.15请重新输入该学生的信息班级:然后提示重新输入:输入完成后,会提示是否保存:忸否重修;舌请登记第2门课的信息.国程编号:002课程名称:dswu平时成绩;90末考成绩;95慢分: 3快门课的综合成绩是:93.5忸否重修:否该学生这几门课的平均分为二%. 9匡否保存数据? 3口)5.6 信息的删除信息的删除也分两种类型:请诜择用除学生信息的方式) 按学号删除1 - 一一)按姓名删除2 - 请输入您的选择:.选择不同的方式,进入不同的界面二=»删除学生成绩一 请输入需要删除学生的姓名: vj

18、uJ 1二二二二提示:已成功啊除!卜=提示工是否继续删除学生信息? d/W按姓名删除h=»删除学生成绩 «=请辍人需装忸1除学生的学号:1006卜二二提示,已成功删除!=提示:是否继续删除学生信息? (Y/N)按学号删除5.7 按平均分降序排列会输出学生的一些基本信息和平均分与名次。F»降字抖序成绩«班级学号姓名年龄性别宿舍电话平均分名次1:OC1001wuji18¥13213S7586533095.91IEg1UC3QUji20FS4174808/694. 8o12061皿2shid21F132134276580yb85. 331206HI0

19、1ertr17F15669. 6412061005in2nM1334567890651.75请按任意健继续.一5.8 查看全部信息=»显示全部学生成旗«=身份信息:班级 学号姓名年舲性别宿舍电话12051001wuji18M13213875865330或缴信息;C+重修r学分da1u重住?学分平均分弭3 否493. d否39b. 9身份信息:班级 学号姓名年龄性别宿当电话1205 1QO3qujiF6414607430876成急信息;C+重修?学分daw重修?学分平均分89.7 否10(J否94. 85身份信息:由于一个同学的全部信息较多,于是分成两部分输出:身份信息和成绩

20、信息在身份信息中,主要包括班级,学号,姓名,年龄,性别,宿舍,电话等。在成绩信息中, 包括该同学的各科成绩,是否重修,获得的学分,以及所有科目的平均分。5.9 输由不及格学生信息当选择该功能时,首先会输出该同学的学号,姓名和班级,然后再输出他的不及格科目以 及分数,如下所示。卜部分不及格学生信息显示如下:概级 学号 姓名 12061004 ertr其不及格科目如下:C-+162. b艇级学号姓名12061005ewiu其不及格科目如下:C+:48. 3ath :1请按任意键继续. .5.10退由系统jI =«感谢您使用学生成绩管理系统=二=请按任续.,.6 .课程设计总结(1)回顾此

21、次课程设计,感慨良多,从刚拿到题目时的一脸茫然,到最后能成功解决,觉 得此次课程设计我又学到了好多知识。首先在这里要感谢一下王磊指导老师,经过他的细心讲解,我才有了一个完整的设计思路。(2)在这次课程设计的过程中,最大的感觉就是对知识的不熟悉,一些C+基础知识似懂非懂,结果总要去查书才能写出不出错误的代码,结构就是耗费了大量的时间,事倍功半。经历这次教训,我想会对我以后的计算机语言学习起到一定的帮助。(3)在这次的课程设计过程中,通过查书的学习,对C+的了解又加深了不少,包括类的结构,以及怎样在类外访问类类的私有成员等,我想下次再写基于对象的程序时,一定会得心应手。(4)还有比较重要的收获就是

22、类的相互嵌套使用,就拿本例来说,在一个类中设置一个数 据成员,而该数据成员确是另一个类的对象。这对理解数据类型起到了不少的作用。(5)总的来说,这次程序设计让我获益匪浅,对C+语言也有了进一步的认识:语言功能高、表达能力强、使用灵活方便、目标程序效率高等等。C+语言是在国内外广泛使用的一种计算机语言, 相信除了以上优点, 还有许多我们还未发现, 希望能在以后的学习 中有更深入的认识。7 .参考文献(1) C+程序设计(第二版)谭浩强 编著(2) visual C+从入门到精通明日科技 编著(3) C+编程思想(美)埃克尔 编著 刘宗田 译8 .附录(源代码)#include <iostr

23、eam> #include <fstream>#include <stdlib.h>/ 后面的 exit 函数和 syetem 函数要用#include <string>using namespace std;class Course / 定义一个课程信息类public:int course_num; / 课程编号string course_name;/ 课程名称float regular_score;/ 平时成绩float final_score;/ 末考成绩float average_score;/ 综合成绩float study_score;/

24、学分string rebulid;/ 是否重修;class Stu / 把对类的私有成员的处理函数全部定义为友元函数public:/ 学生成绩录入函数 学生信息输出函数/ 学生成绩查找函数/ 学生成绩修改函数/ 学生信息删除函数/ 学生全部信息输出函数/ 学生成绩排序函数/ 学生成绩插入函数friend void Input(Stu stud) ;friend void Statistic(Stu stud);/ friend void Lookup(Stu stud) ; friend void Modify(Stu stud) ; friend void Delete(Stu stud)

25、; friend void Output(Stu stud) ; friend void Sort(Stu stud) ;friend void Insert(Stu stud) ;friend void Write(Stu stud,int n);/ 学生成绩写入档案函数friend int Read(Stu stud);/ 学生成绩信息读取函数friend void Showfail(Stu stud); / 查找不及格学生private:int class_num; / 班级号码int num;/ 学号string name;/ 姓名int age;/ 年龄char sex;/ 性别in

26、t room;/ 宿舍string tel;/ 电话 float average;/ 所有课程平均分 int num_of_course;/ 课程数目 int order;/ 名次Course course20;/ 课程信息数组;void Write(Stu stud,int n)/ 文件写入函数fstream myFile;/ 定义一个文件输入输出类myFile.open("D:student.dat.txt",ios:out|ios:binary);if(!myFile) cout<<"D:student.dat.txt can't ope

27、n!"<<endl; exit(1); int count=n;myFile<<count<<endl<<endl;for(int i=0; i<count; i+) myFile<<studi.class_num<<" "<<studi.num<<" "<<<<" "<<studi.age<<" "<<studi.sex&l

28、t;<""<<studi.room<<""<<studi.tel<<""<<studi.num_of_course<<" "<<studi.average<<" "<<endl; for(int j=0; j<studi.num_of_course; j+) myFile<<studi.coursej.course_num<<""&l

29、t;<studi.coursej.course_name<<""<<studi.coursej.regular_score<<""<<studi.coursej.final_score<<""<<studi.coursej.average_score<<" "<<studi.coursej.study_score<<" "<<studi.coursej.rebulid&l

30、t;<endl;myFile.close(); int Read(Stu stud)/ 文件读取函数fstream myFile;myFile.open("D:student.dat.txt",ios:in|ios:binary);if(!myFile)cout<<"D:student.dat.txt can't open!"<<endl;exit(1);int count;myFile.seekg(0);myFile>>count;for(int i=0; i<count; i+)myFile&g

31、t;>studi.class_num>>studi.num>>>>studi.age>>studi.sex>>studi.room >>studi.tel>>studi.num_of_course>>studi.average;for(int j=0; j<studi.num_of_course; j+) myFile>>studi.coursej.course_num>>studi.coursej.course_name>>stu

32、di.coursej.regularscore>> studi.coursej.final_score>>studi.coursej.average_score>>studi.coursej.study_score>>stu di.coursej.rebulid;myFile.close();return count ;/ 函数返回一个查询出来的数值void Input(Stu stud) / 学生成绩录入函授system("cls");调用系统命令cls,清除屏幕int i=0;/ int num;char sign;cou

33、t<<endl<<"=>> 请输入学生成绩<<="<<endl;while(sign!='n'&&sign!='N')cout<<" 班级 :"cin>>studi.class_num;loop:/loop 循环, VB 中的循环cout<<" 学号 :"cin>>studi.num;int c=0;while(c<i)c+;if(studi.num=studi-c.num)

34、cout<<" 你输入的学号已经存在!请重新输入。 "<<endl;goto loop;cout<<" 姓名 :"cin>>;cout<<" 年龄 :"cin>>studi.age;cout<<" 性别 :"cin>>studi.sex;cout<<" 宿舍 :"cin>>studi.room;cout<<" 电话 :"cin

35、>>studi.tel;cout<<"请输入需要登记的学科数目:"cin>>studi.num_of_course;int j;float sum=0;for(j=0; j<studi.num_of_course; j+)cout<<" 请登记第 "<<j+1<<" 门课的信息: "<<endl;cout<<" 课程编号:"cin>>studi.coursej.course_num;cout<&l

36、t;" 课程名称:"cin>>studi.coursej.course_name;cout<<" 平时成绩:"cin>>studi.coursej.regular_score;cout<<" 末考成绩:"cin>>studi.coursej.final_score;cout<<" 学分: "cin>>studi.coursej.study_score;studi.coursej.average_score=studi.coursej

37、.regular_score*0.3+studi.coursej.final_score*0 .7;cout<<" 该门课的综合成绩是: "<<studi.coursej.average_score<<endl;if(studi.coursej.average_score<60)studi.coursej.rebulid=" 是 "elsestudi.coursej.rebulid=" 否 "cout<<" 是否重修: "<<studi.course

38、j.rebulid<<endl; sum=sum+studi.coursej.average_score;)studi.average=sum/studi.num_of_course;cout<<"该学生这几门课白平均分为:"<<studi.average<<endl;cout<<"=>提示:是否继续写入学生成绩?(Y/N)"cin>>sign;i+; )Write(stud,i);调用文件写入函数,把信息写入文件)void Statistic(Stu stud)/学生成绩数据

39、输出函数system("cls");int n=Read(stud);cout<<"班级"<<"t"<<"学号"<<"t"<<"姓名"<<"t"<<"年龄"<<"t"<<"性别"<<"t"<<"宿舍 "<<"

40、;t"<<"电话"<<"tt"<<"平均成绩"<<endl;for(int i=0; i<n; i+)cout<<studi.class_num<<"t"<<studi.num<<"t"<<<<"t"<<studi.age<<"t"<<stu di.sex<&l

41、t;"t"<<studi.room<<"t"<<studi.tel<<"t"<<studi.average<<endl;system("pause"); )void Lookup(Stu stud)/学生成绩查找函数system("cls");int n=Read(stud);int s1;string s2;int i=0;int choose;cout<<"请输入查询方式:"<<

42、;endl<<endl;cout<<"> 按学号查询:1<"<<endl;cout<<"> 按姓名查询:2 <"<<endl;docout<<"请输入您的选择:"cin>>choose;while(choose!=1)&&(choose!=2);switch(choose) case 1:system("cls");cout<<endl<<"=>>

43、 查找学生成绩 <<="<<endl;cout<<"请输入需要查找学生的学号:"<<endl;cin>>s1;while(studi.num-s1)!=0&&i<n) i+; if(i=n) "<<endl;cout<<"=>提示:对不起,无法找到该学生的信息! elsecout<<""<<endl;cout<<"班级:"<<studi.class

44、_num<<endl;cout<<"学号:"<<studi.num<<endl;cout<<"姓名:"<<<<endl;cout<<"年龄:"<<studi.age<<endl;cout<<"性别:"<<studi.sex<<endl;cout<<"宿舍:"<<studi.room<<e

45、ndl;cout<<"电话:"<<studi.tel<<endl;for(int j=0; j<studi.num_of_course; j+) cout<<studi.coursej.course_name<<":"cout<<studi.coursej.average_score<<endl;cout<<"平均分:"<<studi.average<<endl; break;case 2:system(&qu

46、ot;cls");cout<<endl<<"=>> 查找学生成绩 <<="<<endl;cout<<”请输入需要查找学生的姓名:"<<endl;cin>>s2;int flag=0;for(i=0; i<n; i+)if(=s2)cout<<""<<endl;cout<<"班级:"<<studi.class_num<<endl;cout

47、<<"学号:"<<studi.num<<endl;cout<<"姓名:"<<<<endl;cout<<"年龄:"<<studi.age<<endl;cout<<"性另 k"<<studi.sex<<endl;cout<<"宿舍:"<<studi.room<<endl;cout<<&quo

48、t;电话:"<<studi.tel<<endl;for(int j=0; j<studi.num_of_course; j+)(cout<<studi.coursej.course_name<<":"cout<<studi.coursej.average_score<<endl;cout<<"平均分:"<<studi.average<<endl;flag=1;break;if(flag=0)cout<<"=&g

49、t;提示:对不起,无法找到该学生的信息!"<<endl;void Modify(Stu stud)/学生成绩修改函数(system("cls");int n=Read(stud);int s;int i=0;cout<<endl<<"=>> 修改学生成绩<<="<<endl;cout<<"请输入需要修改成绩学生的学号:"<<endl;cin>>s;while(studi.num-s)!=0&&i<

50、n) i+;if(i=n)( cout<<"=>提示:对不起,无该学生的成绩 "<<endl;else(cout<<"该学生白信息"<<endl;cout<<"班级"<<"t"<<"学号"<<"t"<<"姓名"<<"t"<<"年龄"<<"t"<

51、<"性另J "<<"t"<<" 宿舍"<<"t"<<"电话"<<endl;cout<<""<<endl;cout<<studi.class_num<<"t"<<studi.num<<"t"<<<<"t"<<studi.age&

52、lt;<"t"<<stu di.sex<<"t"<<studi.room<<"t"<<studi.tel<<endl;for(int j=0; j<studi.num_of_course; j+) (cout<<studi.coursej.course_name<<":" cout<<studi.coursej.average_score<<endl;cout<<"

53、; 平均分 :"<<studi.average<<endl;cout<<"请重新输入该学生的信息"<<endl;cout<<" 班级 :"<<endl;cin>>studi.class_num;cout<<" 学号 :"<<endl;cin>>studi.num;cout<<" 姓名 :"<<endl;cin>>;cout<&

54、lt;" 年龄 :"<<endl;cin>>studi.age;cout<<" 性别 :"<<endl;cin>>studi.sex;cout<<" 宿舍 :"<<endl;cin>>studi.room;cout<<" 电话 :"<<endl;cin>>studi.tel;cout<<" 请输入需要登记的学科数目: "cin>>studi.

55、num_of_course;int j;float sum=0;for(j=0; j<studi.num_of_course; j+)cout<<" 请登记第 "<<j+1<<" 门课的信息: "<<endl;cout<<" 课程编号:"cin>>studi.coursej.course_num;cout<<" 课程名称:"cin>>studi.coursej.course_name;cout<<&qu

56、ot; 平时成绩:"cin>>studi.coursej.regular_score;cout<<" 末考成绩:"cin>>studi.coursej.final_score;cout<<" 学分: "cin>>studi.coursej.study_score;studi.coursej.average_score=studi.coursej.regular_score*0.3+studi.coursej.final_score*0 .7;cout<<" 该门课

57、的综合成绩是: "<<studi.coursej.average_score<<endl;if(studi.coursej.average_score<60)studi.coursej.rebulid=" 是 "elsestudi.coursej.rebulid=" 否 "cout<<" 是否重修: "<<studi.coursej.rebulid<<endl;sum=sum+studi.coursej.average_score;studi.average=

58、sum/studi.num_of_course;cout<<" 该学这几门课的平均分为: "<<studi.average<<endl;char c;cout<<" 是否保存数据?(y/n)"<<endl;cin>>c;if(c!='n'&&c!='N') Write(stud,n);void Delete(Stu stud)/ 删除学信息函数system("cls");int s1;string s2;int n=

59、Read(stud);int i=0,j;char sign;cout<<"请选择删除学生信息的方式"<<endl<<endl;cout<<"> 按学号删除1<"<<endl;cout<<"> 按姓名删除2<"<<endl;int choose;docout<<"请输入您的选择:"cin>>choose;while(choose!=1)&&(choose!=2);swi

60、tch(choose)case 1:system("cls");cout<<endl<<"=>> 删除学成绩<<="<<endl;while(sign!='n'&&sign!='N') cout<<" 请输入需要删除学的学号:"<<endl;cin>>s1;while(studi.num-s1)!=0&&i<n) i+;/ 这种结构形式决定一次只能删除一个学if(i=n)

61、( cout<<"=>提示:对不起,无法找到该学生 "«endl; else (for(j=i; j<n-1; j+)( studj=studj+1;) cout<<"=>提示:已成功删除!"«endl;)n-;cout<<"=>提示:是否继续删除学生信息? ( Y/N) cin»sign;)Write(stud,n);break;case 2:system("cls");int flag=O;cout«endl«&

62、quot;=» 删除学生成绩«="«endl;while(sign!='n'&&sign!='N')(cout<<"请输入需要删除学生的姓名:"<<endl;cin»s2;for(i; i<n; i+)(if(=s2)(/ studi=studi+1; for(j=i;j<n-1 ;j+) (studj=studj+1;)cout<<"=>提示:已成功删除!"<<endl;

63、flag=1; break;) if(flag=O)"«endl;cout<<"=>提示:对不起,无法找到该学生break;)n-;cout<<"=>提示:是否继续删除学生信息? ( Y/N)" cin>>sign;)Write(stud,n);break;)void Insert(Stu stud)/学生信息插入函数system("cls");int flag;int n=Read(stud);char s;cout<<endl<<"=>

64、;> 增力口学生成绩 <<="<<endl;while(s!='n'&&s!='N')cout<<"班级:"cin>>studn.class_num;cout<<"学号:"cin>>studn.num;cout<<"姓名:";cin>>;cout<<"年龄:";cin>>studn.age;cout<<

65、"性别:";cin>>studn.sex;cout<<"宿舍:";cin>>studn.room;cout<<"电话:";cin>>studn.tel;cout<<"请输入需要登记的学科数目:"cin>>studn.num_of_course;int j;float sum=0;for(j=0; j<studn.num_of_course; j+) cout<<"请登记第"<<j+1

66、<<”门课的信息:"<<endl;cout<<"课程编号:"cin>>studn.coursej.course_num; cout<<" 课程名称: "cin>>studn.coursej.course_name;cout<<" 平时成绩:"cin>>studn.coursej.regular_score;cout<<" 末考成绩:"cin>>studn.coursej.final_sc

67、ore;cout<<" 学分: "cin>>studn.coursej.study_score;studn.coursej.average_score=studn.coursej.regular_score*0.3+studn.coursej.final_score *0.7;cout<<" 该门课的综合成绩是: "<<studn.coursej.average_score<<endl;if(studn.coursej.average_score<60)studn.coursej.rebulid=" 是"elsestudn.coursej.rebulid=" 否"cout<<" 是否重修: "<<studn

温馨提示

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

评论

0/150

提交评论