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

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上辽 宁 科 技 大 学课程设计报告 设计题目: 学生成绩管理 学院、系: 电子与信息工程学院 专业班级: 计算机 11-2 班 学生姓名: 赵月 指导教师: 龙艳彬 成 绩: 2013年 1 月 8 日目 录一、需求分析-3二、概要设计-3三、详细设计-53.1系统流程图-53.2界面设计-63.3各功能模块的设计-7四、测试与分析-9五、总结-15六、附录(源代码)-161. 需求分析11问题描述本系统实现了学生成绩管理的功能,具有学生成绩的输入、读取、查询、修改、插入、删除、排序,统计等功能。12基本要求 (1) 输入的形式和输入值的范围; 首先输入学生

2、个数,按回车键。按照提示选择,将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后再对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。输入数据类型主要是char、int、float等数据类型,输入内容包括:学期、学号、姓名、高等数学成绩,数据机构成绩,大学英语成绩总分,平均分等数据。 (2) 输出的形式;学期、学号、姓名、高等数学成绩,数据结构成绩,大学英语成绩,总分,平均分等数据。 (3) 程序所能达到的功能;1. 数据输入功能,输入的数据能最终保存在文

3、件中;2.数据删除功能,能最终从文件中删除;3. 排序功能,根据自己设计的数据结构,设计排序算法4.多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;6. 学生信息的修改(比如修改学生姓名,修改学生某门课程的成绩) 7. 其它功能(如各种统计,统计每个学生所有课程的平均分,统计某门课程所有学生的平均分等等)2、 概要设计1. 数据结构:数组(顺序存储结构)2. 程序模块:(1)先编入系统所需的库函数,使程序可运行#include <iostream.h>#include <stdlib.h>#include <iomanip.h> /主要是对ci

4、n,cout之类的一些操纵运算,是I/O流控制头文件。 #include <conio.h>/文件和标准控制台的输入输出#include <stdio.h> (2) 主界面的设计在主界面中包括“输入学生信息并保存到文件 读取文件并输出学生信息 按学号及学期查询 按姓名及学期查询 按学号及学期修改信息 插入信息 按学号及学期删除信息 按数据结构降序(冒泡)排序 按总分降序(选择)排序 统计各科成绩的总分和平均分 11退出”等全部的功能。每个函数体如下:void input(Student *r); /输入void output(Student *r); /输出void s

5、earchnum(Student *r); /按 学号及学期 查找void searchname(Student *r); /按 姓名及学期 查找void change(Student *r); /按 学号及学期 修改信息Student *insert(Student *r); /插入信息void shanchu(Student *r); /按 学号及学期 删除信息void maopao(Student *r); /按数据结构降序(冒泡)排序void xuanze(Student *r); /按总分降序(选择)排序void tongji(Student *r); /统计各科总分和平均分信息(3

6、) Main()函数的设计 在main()函数中主要运用do-while循环语句和switch()-case选择判断语句来调用相关功能模块。系统的运行是在一个循环里进行的,只有在主界面并选择“退出”时,才会跳出循环,并退出程序。void main()cout<<"输入学生的个数:"cin>>num; /全局变量Student *p=(Student *)new Studentnum;/定义指针数组,存放学生个数int m;docout<<endl;cout<<endl;cout<<"t*->菜单栏&

7、lt;-*n"<<endl;cout<<"t* <1> 输入学生信息并保存到文件 <2> 读取文件并输出学生信息 *"<<endl;cout<<"t* <3> 按学号及学期查询 <4> 按姓名及学期查询 *"<<endl;cout<<"t* <5> 按学号及学期修改信息 <6> 插入信息 *"<<endl;cout<<"t* <7> 按学

8、号及学期删除信息 <8> 按数据结构降序(冒泡)排序 *"<<endl;cout<<"t* <9> 按总分降序(选择)排序 <10> 统计各科成绩的总分和平均分*"<<endl;cout<<"t* <11> 退出 *"<<endl;cout<<"t*-*n"<<endl;cout<<"请选择:"cin>>m;switch(m)case 1: input

9、(p); /输入break;case 2:output(p);break;case 3: searchnum(p);break;case 4: searchname(p);break;case 5: change(p);break;case 6: p=insert(p);break;case 7: shanchu(p);break;case 8: maopao(p);break;case 9:xuanze(p);break;case 10: tongji(p);break;case 11: /退出break;while(m!=11); 3、详细设计1、系统流程图输入学生个数主界面输入学生成绩输

10、出学生成绩查询学生成绩修改学生成绩插入学生成绩删除学生信息按总分排序按单科排序统计分数退出退出2、界面设计在此界面用户可以选择要操作的选项,回车之后即可进入相关的页面进行操作(例如:选择1,即可进入输入学生信息页面)3、各功能模块的设计主函数模块: 用函数void main()来实现 主要是来显示主菜单,使用户选择操作。首先定义一个指针数组(全局使用)Student *p=(Student *)new Studentnum;在此处num是指学生个数,并不是学号,在这里应用了do-while和switch-case语句来进行选择。最后若选择“11”则是保存记录并退出循环。输入学生记录模块:用函数

11、void input(Student *r);来实现 主要功能用来对学生的成绩进行输入。首先会有个提示“输入学生的个数”,之后跳出主菜单,选择"1",进入输入模块输入所需学生个数的学生信息,比如学期,学号,姓名,成绩等。输完之后会自动跳出主菜单。期间会有一些提示语,按照提示操作。根据if和for语句来判定是否有重复学号输入,在本操作中,允许有重复学生姓名出现。t=1表示找到了与之重复的学号,t=0表示未出现重复学号。在此期间会根据语句算出总分和平均分,并默认按学号排序保存到文件中去。之后返回主菜单。输出学生记录模块: 用函数void output(Student *r);来

12、实现 主要功能是用来输出学生的信息。在系统已经录入了学生资料的前提下,用该功能可以显示学生的信息资料。同时也会自动跳出主菜单进行后续操作。其中stew()指的是两字节之间的间隔,在括号中填入数字就会有相应的间隔。按学号及学期来查找学生记录模块: 用函数void searchnum(Student *r);来实现 主要功能时用来查找学生记录。首先会有提示输入学号及学期,再用for循环语句和if判断语句来进行查找,if(rm.num=n&&rm.term=k)若找到则显示学生记录并跳出循环;if(rm.num!=n&&rm.term!=k)若没有则提示“该学号不存在

13、,或没有这个学期的成绩!”。按姓名及学期来查找学生记录模块: 用函数void searchname(Student *r)来实现 主要功能也是用来查找学生记录的。首先会有提示输入姓名及学期,再用for循环语句和if判断语句来进行查找,if(0 = n0) && (rm.term = k)若找到则显示学生记录并跳出循环;if(0!=n0&&rm.term!=k)若没有则提示"该姓名不存在,或没有这个学期的成绩!"按学号及学期修改信息: 用函数void change(Student *r)来实现 主要功能是用来修改学生

14、记录。首先也要有个判断语句,判断学生是否存在,这个是通过学号及学期来判断的,这里会有提示输入学号及学期,之后是for和if语句,if(rm.num=n && rm.term=k)若存在则先输出修改之前的信息,查看是否正确。若正确,则修改此学生记录,这里有个while循环语句,和switch-case选择语句,用来选择修改哪科成绩,和是否进行再修改记录(通过选择Y或y来实现)。最后将修改过后的记录保存到文件中去,并输出提示"文件已修改并写入"。插入学生资料模块: 用函数Student *insert(Student *r);实现 主要功能是用来添加学生资料,成

15、绩。若显示没有此学生的信息,就可以使用本模块来进行添加。在此模块代码中定义了另一个指针数组:Student *y = (Student *)new Studentnum+1;用来存放新添加的学生记录。再利用for循环进行输入新学生记录,for(m=0;m<num;m+)最后会有一个提示语句cout<<"是否继续输入?(继续,输入y,否则输入其他)"<<endl;若输入y则继续输入,否则将返回主菜单。按学号及学期删除学生记录模块 用函数void shanchu(Student *r)来实现 主要功能是用来删除学生记录。首先有个读文件的操作,之后会

16、有判断语句,根据所输入的学号及学期,来显示删除前的信息记录,添加for循环语句,循环把后一位的信息提前一位,整体数量减一,来进行全局变量的修改,之后再把修改过后的信息记录保存到文件中去。按数据结构成绩(冒泡)降序排序模块用函数void maopao(Student *r) 来实现 主要功能时是用来对学生的记录来按单科成绩(这里以数据结构成绩为例)进行排序。这样方便对某科成绩有个大致的了解。首先会有一个读文件操作,为排序做基础。本排序使用冒泡排序。它有两个优点:一是很容易写出代码;二是具有稳定性,这里的稳定性是指原序列中相同两元素的相对顺序仍然保持到排序后的序列。冒泡排序时进过n-1趟子排序完成

17、的,第i趟子排序从第1个数至第n+1个数,若第i个数比后一个数大(则升序,小则降序。本程序一律采用降序)则交换两数。排序之后,将排序之后的结果写入文件,再打开文件的时候,里面显示的就是按单科成绩排序后的结果。按总分(选择)降序排序: 用函数void xuanze(Student *r)来实现 主要功能时是用来对学生的记录来按总分成绩进行排序。这样方便对学生总体有个大致的了解。首先会有一个读文件操作,为排序做基础。本排序使用选择排序。其基本思想是:n个记录的文件的直接选择排序可进过n-1趟直接选择排序得到有序结果:初始状态,无序区为R1.n,有序区为空。第一趟排序 在无序区R1.n中选出关键字最

18、小的记录Rk,将它与无序区的第一个记录R1交换,使R1.n和R2.n分别变为记录个数增加1个的新有序区记录和记录数减少1个的新无序区。 . 第i趟排序 第i趟排序开始时,当前有序区和无序区分别为R1.i-1和R(1in-1)。该趟排序从当前无序区中选出关键字最小的记录Rk,将它与无序区的第一个记录与R交换,使R1.i和R分别变成为记录个数增加1个的新有序区和记录个数减少1个的新无序区。这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。统计各科总分及平均分模块: 用函数void tongji(Student *r)来实现 主要功能是计算总分和各科平均分,计算完之后将总分保

19、存到文件中。4、 测试与分析进入主界面选择<1>输入学生信息输入结束后的界面:Student.txt:23 赵月 89.0 92.0 88.0 3 269.0 89.712 李丽 92.0 85.0 88.0 3 265.0 88.331 王虎 87.0 79.0 45.0 3 211.0 70.3选择<2>,输出了学生信息:选择<3>,按学号及学期查询学生信息:选择<4>,按姓名及学期查询学生信息:选择<5>,按学号及学期修改学生信息:Student.txt:23 赵月 89.0 92.0 88.0 3 269.0 89.712 李

20、丽 92.0 85.0 88.0 3 265.0 88.331 王虎 87.0 79.0 85.0 3 211.0 70.3选择<6>,插入学生信息:Student.txt:23 赵月 89.0 92.0 88.0 3 269.0 89.712 李丽 92.0 85.0 88.0 3 265.0 88.331 王虎 87.0 79.0 85.0 3 211.0 70.317 王万 78.0 79.0 86.0 3 243.0 81.0选择<7>,按学号及学期删除学生信息:Student.txt:23 赵月 89.0 88.0 88.0 3 269.0 89.712 李丽

21、 92.0 88.0 88.0 3 265.0 88.317 王万 78.0 86.0 86.0 3 243.0 81.0选择<8>,按数据结构降序<冒泡>排序:Student.txt:23 赵月 89.0 88.0 88.0 3 269.0 89.712 李丽 92.0 88.0 88.0 3 265.0 88.317 王万 78.0 86.0 86.0 3 243.0 81.0选择<9>,按总分降序<选择>排序:Student.txt:23 赵月 89.0 88.0 88.0 3 269.0 89.712 李丽 92.0 88.0 88.0

22、3 265.0 88.317 王万 78.0 86.0 86.0 3 243.0 81.选择<10>,统计各科成绩的总分和平均分:选择<11>,退出:5、 总结 课程设计终于结束了感觉有很多的收获,通过课程设计我又一次巩固了所学的知识,对学习到的理论知识进行了巩固,真正的理解及体会了。平时有很多知识都是似懂非懂,通过平时上机操作,自己也了解了一些,但在这次的课设上,之前的困惑也通过这次的课设解决了一些,虽然还是不能够全面的理解,但是有进步就很有成就感。在课程设计中遇到不少困难,通过查阅资料,询问同学,在应用课本的前提下,拓展课外知识,完成了此次课程设计,虽然还有许多不足

23、之处,但是从中我学到了许多东西。我懂得了我们不能拘泥于所学知识,应对其灵活运用。 通过此次课程的设计使我认识到对知识的掌握不全面,而且感觉我们在学习专业知识的同时还需要再加强其他方面知识的学习,因为编程有时候涉及到其他方面的知识,只有了解了其他方面的知识才能收集资料,然后编程。在编程的过程中,又重新复习了课本,从中学到了许多以前未学到的知识,感觉非常有成就感,特别当自己把程序一点点完善时,让我对自己更加有信心,让我对数据结构这门课程也更感兴趣了,以前我一直感觉枯燥难学的数据结构,在编程的过程中我也愿意去认真研究学习了。 这次数据结构课程设计中,多亏了同学的耐心帮助。如果没有同学的指导改错,我会

24、花更多的时间去找错误。在以后的学习过程中,我一定会认真负责地对待课本中的每一个知识点,进一步充实自己,提高自己。争取在不断的练习中提高自己的层次。也希望可以在以后的专业课当中多增加一些实践的内容,只有多动手,我们才能不断提高。6、附录:源程序清单 #include <iostream.h>#include <stdlib.h>#include <iomanip.h> /主要是对cin,cout之类的一些操纵运算,是I/O流控制头文件。 #include <conio.h> /文件和标准控制台的输入输出#include <stdio.h>

25、; /数组、结构体struct Student /结构体int term; /学期int num; /学号char name12; /姓名float mark1; /成绩1float mark2; /成绩2float mark3; /成绩3float sum; /总分float average; /平均分;int num=0;/声明void input(Student *r); /输入void output(Student *r); /输出void searchnum(Student *r); /按 学号及学期 查找void searchname(Student *r); /按 姓名及学期 查

26、找void change(Student *r); /按 学号及学期 修改信息Student *insert(Student *r); /插入信息void shanchu(Student *r); /按 学号及学期 删除信息void maopao(Student *r); /按数据结构降序(冒泡)排序void xuanze(Student *r); /按总分降序(选择)排序void tongji(Student *r); /统计各科总分和平均分信息void main()cout<<"输入学生的个数:"cin>>num; /全局变量Student *p

27、=(Student *)new Studentnum;/定义指针数组,存放学生个数int m;docout<<endl;cout<<endl;cout<<"t*->菜单栏<-*n"<<endl;cout<<"t* <1> 输入学生信息并保存到文件 <2> 读取文件并输出学生信息 *"<<endl;cout<<"t* <3> 按学号及学期查询 <4> 按姓名及学期查询 *"<<end

28、l;cout<<"t* <5> 按学号及学期修改信息 <6> 插入信息 *"<<endl;cout<<"t* <7> 按学号及学期删除信息 <8> 按数据结构降序(冒泡)排序 *"<<endl;cout<<"t* <9> 按总分降序(选择)排序 <10> 统计各科成绩的总分和平均分*"<<endl;cout<<"t* <11> 退出 *"<&l

29、t;endl;cout<<"t*-*n"<<endl;cout<<"请选择:"cin>>m;switch(m)case 1: input(p); /输入break;case 2:output(p);break;case 3: searchnum(p);break;case 4: searchname(p);break;case 5: change(p);break;case 6: p=insert(p);break;case 7: shanchu(p);break;case 8: maopao(p);bre

30、ak;case 9:xuanze(p);break;case 10: tongji(p);break;case 11: /退出break;while(m!=11); /输入信息void input(Student *r)FILE *fp;int n=0;int i;int t=0;/t为标志位,1为找到,0为未找到 cout<<endl<<"-> 请输入学生信息 <-"<<endl;for(i=0;i<num;i+)cout<<"请输入学期:"cin>>ri.term;cout

31、<<"请输入第"<<i+1<<"个人的学号:"cin>>ri.num; if(i>=1)for(n=0;n<i;n+)if(rn.num=ri.num) cout<<"该学号已存在!"<<endl;t=1;if(t=1)/表示有重复i-;t=0;continue;cout<<"请输入姓名:"cin>>;cout<<"请输入 高等数学 成绩:"cin>>

32、ri.mark1;cout<<"请输入 数据结构 成绩:"cin>>ri.mark2;cout<<"请输入 大学英语 成绩:"cin>>ri.mark3;ri.sum=ri.mark1+ri.mark2+ri.mark3;ri.average=(ri.mark1+ri.mark2+ri.mark3)/3;fp=fopen("student.txt","w+");if(!fp) cout<<"文件不能打开"<<endl;exi

33、t(0); for(n=0;n<i;n+)fprintf(fp,"%d %s %.1f %.1f %.1f %d %.1f %.1f",rn.num,,rn.mark1,rn.mark2,rn.mark3,rn.term,rn.sum,rn.average);fprintf(fp,"n");fclose(fp);cout<<"文件已经写入"<<endl;/输出信息void output(Student *r) int m;system("cls"); /清屏if(num&

34、gt;0)FILE *fp;if(fp=fopen("student.txt","r")=NULL) /r只读cout<<"文件不能打开"<<endl;exit(0); for(int n=0;n<num;n+)fscanf(fp,"%d%s%f%f%f%d%f%f",&rn.num,,&rn.mark1,&rn.mark2,&rn.mark3,&rn.term,&rn.sum,&rn.average);fclose

35、(fp); /关闭文件cout<<"文件已经读入"<<endl;cout<<"-> 学生信息如下 <-"<<endl;cout<<"学号"<<setw(6)<<"姓名"<<setw(10)<<"高等数学"<<setw(10)<<"数据结构"<<setw(10) /setw(6) 设置输出宽度<<"大学

36、英语"<<setw(6)<<"学期"<<setw(6)<<"总分"<<setw(8)<<"平均分"<<endl;cout<<"-"<<endl;for(m=0;m<num;m+)cout<<rm.num<<setw(6)<<<<setw(7)<<rm.mark1<<setw(10)<<rm.mar

37、k2<<setw(10)<<rm.mark3<<setw(8)<<rm.term<<setw(6)<<rm.sum<<setw(6)<<rm.average<<endl;cout<<"00"<<endl;elsecout<<"未输入任何信息!"<<endl;/按学号及学期查找void searchnum(Student *r)int n,k;system("cls"); /清屏if

38、(num>0)cout<<"请输入要查找学生的学号:"cin>>n;cout<<"请输入学期号:"cin>>k;for(int m=0;m<num;m+)if(rm.num=n&&rm.term=k)/如果找到了输出并跳出循环cout<<endl;cout<<"-> 要查找的信息如下 <-"<<endl;cout<<"学号"<<setw(6)<<"

39、姓名"<<setw(10)<<"高等数学"<<setw(10)<<"数据结构"<<setw(10)<<"大学英语"<<setw(6)<<"学期"<<setw(6)<<"总分"<<setw(8)<<"平均分"<<endl;cout<<rm.num<<setw(6)<<rm.nam

40、e<<setw(7)<<rm.mark1<<setw(10)<<rm.mark2<<setw(10)<<rm.mark3<<setw(8)<<rm.term<<setw(6)<<rm.sum<<setw(8)<<rm.average<<endl;break;if(rm.num!=n&&rm.term!=k)/若没找到提示不存在cout<<"该学号不存在,或没有这个学期的成绩!"<<

41、endl;elsecout<<"未输入任何信息!"<<endl;/按姓名及学期查找void searchname(Student *r)char n12;int k;system("cls"); /清屏if(num>0) /如果没输入就查找提示cout<<"请输入要查找学生的姓名:"cin>>n;cout<<"请输入学期号:"cin>>k;for(int m=0;m<num;m+)if(0 = n0) &&am

42、p; (rm.term = k) /如果找到了输出并跳出循环cout<<endl;cout<<"-> 要查找的信息如下 <-"<<endl;cout<<"学号"<<setw(6)<<"姓名"<<setw(10)<<"高等数学"<<setw(10)<<"数据结构"<<setw(10)<<"大学英语"<<setw(

43、6)<<"学期"<<setw(6)<<"总分"<<setw(8)<<"平均分"<<endl;cout<<rm.num<<setw(6)<<<<setw(7)<<rm.mark1<<setw(10)<<rm.mark2<<setw(10)<<rm.mark3<<setw(8)<<rm.term<<setw(6)

44、<<rm.sum<<setw(8)<<rm.average<<endl;break;if(0!=n0&&rm.term!=k) /若没找到提示不存在cout<<"该姓名不存在,或没有这个学期的成绩!"<<endl;elsecout<<"未输入任何信息!"<<endl;/按学号及学期修改信息 void change(Student *r) FILE *fp;int n=0;char chiose ='Y'if(num

45、>0)int n,k;int t=0;system("cls"); /清屏cout<<"输入要修改成绩的学生学号:"cin>>n;cout<<"所需修改的学期:"cin>>k;for(int m=0;m<num;m+)if(rm.num=n && rm.term=k)int j;cout<<endl;cout<<"-> 修改前的信息如下 <-"<<endl;cout<<"

46、学号"<<setw(6)<<"姓名"<<setw(10)<<"高等数学"<<setw(10)<<"数据结构"<<setw(10)<<"大学英语"<<setw(6)<<"学期"<<setw(6)<<"总分"<<setw(8)<<"平均分"<<endl;cout<&l

47、t;rm.num<<setw(6)<<<<setw(7)<<rm.mark1<<setw(10)<<rm.mark2<<setw(10)<<rm.mark3<<setw(8)<<rm.term<<setw(6)<<rm.sum<<setw(8)<<rm.average<<endl;cout<<endl;while (chiose='Y'|chiose='y')

48、cout<<"ttt-> 可以修改的项目如下 <-n"<<endl;cout<<"ttt 1.修改学生的 高等数学 成绩记录n"<<endl;cout<<"ttt 2.修改学生的 数据结构 成绩记录n"<<endl;cout<<"ttt 3.修改学生的 大学英语 成绩记录n"<<endl; cout<<"请选择:"cin>>j;switch(j)case 1:cou

49、t<<"输入新的 高等数学 成绩:"cin>>rm.mark1;break;case 2:cout<<"输入新的 数据结构 成绩:"cin>>rm.mark2;break;case 3: cout<<"输入新的 大学英语 成绩:"cin>>rm.mark3;break;t=1;cout<<"是否要继续修改此学生的其他成绩记录?(Y/N)"fflush(stdin);/清空输入缓冲区,通常是为了确保不影响后面的数据读取cin>&

50、gt;chiose;elsecout<<"未输入任何信息!"<<endl;if(fp=fopen("student.txt","w")=NULL) cout<<"文件不能打开"<<endl;exit(0); for(n=0;n<num;n+)fprintf(fp,"%d %s %.1f %.1f %.1f %d %.1f %.1f",rn.num,,rn.mark1,rn.mark2,rn.mark3,rn.term,rn.su

51、m,rn.average);fprintf(fp,"n");fclose(fp);cout<<"文件已修改并写入"<<endl;/插入Student *insert(Student *r) FILE *fp;int m;char n;doif(fp=fopen("student.txt","r")=NULL) cout<<"文件不能打开"<<endl;exit(0); for(int o=0;o<num;o+)fscanf(fp,"

52、%d%s%f%f%f%d%f%f",&ro.num,,&ro.mark1,&ro.mark2,&ro.mark3,&ro.term,&ro.sum,&ro.average);Student *y = (Student *)new Studentnum+1;/定义另一个数组,用于存放新添加的记录for(m=0;m<num;m+)ym=rm;r=y;cout<<"请输入学期:"cin>>rnum.term;cout<<"请输入学号:"ci

53、n>>rnum.num;cout<<"请输入姓名:"cin>>;cout<<"请输入 高等数学 成绩:"cin>>rnum.mark1;cout<<"请输入 数据结构 成绩:"cin>>rnum.mark2;cout<<"请输入 大学英语 成绩:"cin>>rnum.mark3;rnum.sum=rnum.mark1+rnum.mark2+rnum.mark3;/计算总分rnum.avera

54、ge=(rnum.mark1+rnum.mark2+rnum.mark3)/3;num+;cout<<"是否继续输入?(继续,输入y,否则输入其他)"<<endl;cin>>n;while(n='y');if(fp=fopen("student.txt","w+")=NULL)cout<<"文件不能打开"<<endl;exit(0); for(n=0;n<num;n+)fprintf(fp,"%d %s %.1f %.1f %.1f %d %.1f %.1f",rn.num,,rn.mark1,rn.mark2,rn.mark3,rn.term,rn.sum,rn.average);fprintf(fp,"n");fclose(fp);cout<<"文件已经写入&q

温馨提示

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

评论

0/150

提交评论