ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:21.27KB ,
资源ID:4516032      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4516032.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计报告学生成绩管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计报告学生成绩管理系统.docx

1、C语言课程设计报告学生成绩管理系统C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息. 二、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息。 同时也可以全部把各科的平均成绩,最高和最低分输出。三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。五、退出系统。六、附加

2、说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作.2、查询模块:可用stu lookdata(stu p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩. 3、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看

3、学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。 5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩

4、状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedefstruct student char nameMAX;intnumMAX; char sexMAX;intchinese;int mathematic;intenglish;int computer;struct student next; 程序代码:/原始密码是123456#includestdio.h”#includestddef.h”include”stddef。h”#includestring.h#define MAX 10typedefst

5、ruct student /定义结构体/ char nameMAX; /姓名/intnumMAX; / 学号/ char sexMAX; /性别/intchinese; /*语文*/int mathematic; /* 数学/intenglish; /*英语/int computer; /计算机/struct student next; /*结构体指针*/ stu;stu head; /头指针*/void print() /*显示或打印函数/ system(cls);printf(”tttScore Manage Systemn”); /成绩管理系统/ printf(”1Enter Recor

6、dt); /输入数据*/printf(”2Displayt”); /*显示/printf(Insertt); /插入数据/printf(”4Questt”); /*访问数据/printf(5Updatet); /*以前数据/printf(6Savet); /保留数据/printf(”Chinese Averaget); /语文平均成绩/printf(”9Math Averaget); /数学平均成绩/printf(”name);printf(”Enter num:n”);scanf(”%d,p1num);printf(Enter sex:n”);scanf(%s”,p1-sex);printf

7、(”Enter score:n”);printf(”Enter chinese:n”);scanf(”d,p1chinese);printf(”Enter math:n);scanf(”d”,p1mathematic);printf(”Enter English:n”);scanf(”d”,p1english);printf(”Enter Computer:n”);scanf(%d,&p1computer); stu cindata() /其他数据是否继续输入的函数/ stu *p1,*p2;int i=1; char ch; p1=(stu )malloc(sizeof(stu)); hea

8、d=p1; while(i) cin(p1);printf(Do you Want to Continue?yes or no”); /是否继续输入数据*/ch=getchar();ch=getchar(); if(ch=n|ch=N) i=0; p1next=NULL; else p2=p1; p1=(stu )malloc(sizeof(stu); p2-next=p1; return(p1-next);stu lookdata(stu *p1) /查看数据的函数/ while(p1!=NULL) printf(”Num:%dt,p1-num);printf(Name:%st,p1name

9、);printf(”Sex:%st”,p1sex);printf(”n);printf(”Chinese:dt,p1chinese);printf(”Math:dt”,p1mathematic);printf(”English:dt,p1english);printf(”Computer:dt”,p1computer);printf(”n”); p1=p1-next; return p1; void insert() /通过比较学号来插入数据的函数/ stu p1,p3,p2; char ch; p1=head; p3=(stu *)malloc(sizeof(stu); p3next=NUL

10、L; if(head=NULL) head=p3; return;cin(p3); while(p1!=NULL&(p1numnext=head; head=p3; return; p3next=p1; p2-next=p3; find(stu p2) /通过姓名查找查看数据的函数/ char name20;int b=0;printf(”Enter the name of the student you want to find:”); /通过姓名查看/scanf(”%s”,name); while(p2!=NULL) if(strcmp(name,p2-name)=0) printf(”T

11、he data you want has be foundn”);printf( Name:st”,p2name);printf(Num:dt,p2num);printf(”sex%st”,p2-sex);printf(”n);printf(”Chinese:dt”,p2chinese);printf(”Math:%dt”,p2-mathematic);printf(”English:dt”,p2english);printf(”Computer:%dt”,p2computer);printf(”n”); b=1; else if(b=0)printf(”sorry not find data

12、!”); p2=p2next; if(b=1) print();printf(”Find onen”); else print();printf(Not findn”); void caverage() /求各学生语文平均分、最高和最低分成绩的函数/ stu p1;int i; float max=0.0,min=200.0; float sum=0。0,aver=0; p1=head; if(p1=NULL)printf(not data!); else for(i=0;p1!=NULL;i+,p1=p1next) sum+=p1chinese; aver=sum/i; p1=head; f

13、or(i=0;p1!=NULL;i+,p1=p1next) if(maxp1-chinese) max=p1-chinese; p1=head; for(i=0;p1!=NULL;i+,p1=p1next) if(minp1chinese) min=p1chinese; printf(Chinese Average:%f”,aver);printf(”Chinese Max:f”,max);printf(”Chinese Min:%f,min); void maverage() /求各学生数学平均分、最高和最低分成绩的函数/ stu p1;int i; float max=0。0,min=20

14、0。0; float sum=0。0,aver=0; p1=head; if(p1=NULL)printf(”not data!”); else for(i=0;p1!=NULL;i+,p1=p1-next) sum+=p1mathematic; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1-next) if(maxp1mathematic) min=p1-mathematic; printf(”Mathe Average:f”,aver);printf(”Mathe Max:%f,max);printf(Mathe Min:f,min); vo

15、id eaverage() /求各学生英语平均分、最高和最低分成绩的函数/ stu p1;int i; float max=0.0,min=200.0; float sum=0。0,aver=0; p1=head; if(p1=NULL)printf(”not data!); else for(i=0;p1!=NULL;i+,p1=p1next) sum+=p1english; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1next) if(maxp1english) max=p1-english; p1=head; for(i=0;p1!=NUL

16、L;i+,p1=p1next) if(minp1english) min=p1english; printf(”English Average:f”,aver);printf(”English Max:f”,max);printf(”English Min:%f”,min); void comaverage() /求各学生计算机平均分、最高和最低分成绩的函数*/ stu p1;int i; float max=0。0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1=NULL)printf(not data!”); else for(i=0;p1!

17、=NULL;i+,p1=p1next) sum+=p1computer; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1-next) if(maxp1computer) max=p1-computer; p1=head; for(i=0;p1!=NULL;i+,p1=p1next) if(minp1computer) min=p1-computer; printf(”Computer Average:f”,aver);printf(”Computer Max:%f”,max);printf(”Computer Min:f,min); update(

18、stu p2) /*通过姓名查找来更新数据/ char name10; /*p2为指向结构体struct student的指针/int b=0;printf(”Enter The Name”); /输入姓名/scanf(%s”,name); while(p2!=NULL) if(strcmp(name,p2-name)=0) printf(Find you datan”);scanf(”Name:s”,p2name);scanf(”Num:%s,p2num);scanf(”Sex:s,p2-sex);scanf(”Chinese:d”,p2chinese);scanf(”Math:d”,p2m

19、athematic);scanf(”english:d”,p2english);scanf(”Computer:%d,p2computer);printf(Success!”); b=1; else if(b=0)printf(”Sorry not Find data!”); p2=p2next; if(b=0) print();printf(”Sorry not Find data!”); else print();printf(”Finish!”); save(stu p2) /保留数据函数/ FILE fp; char file10;printf(Enter file name”); /

20、*输入文件名/scanf(s,file);fp=fopen(file,”w”); while(p2!=NULL) fprintf(fp,s,p2name);fprintf(fp,”s”,p2num);fprintf(fp,s”,p2sex);fprintf(fp,d”,p2chinese);fprintf(fp,”%d”,p2-mathematic);fprintf(fp,”d”,p2english);fprintf(fp,”d”,p2computer); p2=p2-next; fclose(fp); char password7=”123456”; /定义初始密码/void main()

21、/*主函数/ int choice;stu *p2; char s8;int flag=0,i; /*标志项*/int n=3; do printf(”Enter password:n);scanf(%s”,s); if(!strcmp(s,password) /进行密码匹配验证*/ printf(PASSnnn); flag=1; break; elseprintf(”Error Enter again:n); n; while(n0); if(!flag) printf(you have Enter 3 times!); /*输入密码超过了3次!!*/ exit(0); /自动退出/ /*

22、密码验证成功后进入的界面*/printf(tttn”); /操作界面/printf(ttWelcom to the Misn”);printf(Author:-tClass:-tNum:-n); /作者,班级和号码/printf(”Adress:HGn); /*地址/printf(”%n);printf(”ttEnter OP:n);printf(”nnnn”);printf(=tt=n”);printf(=tt=n”);printf(ttEnter the MIS yes or non); /问进入系统与否*/scanf(%d”,&choice); if(choice=n|choice=N)

23、 exit(1); print(); while(1) printf(”Enter choice:”);scanf(”%d”,i); if(i1i13) printf(Enter num from 1 to 13:n”); /再从113中进行选择/ exit(1); switch(i) case 1: p2=cindata(); /其他数据是否继续输入的函数/ break; case 2: p2=lookdata(head); /*查看数据的函数/ break; case 3: insert(); /通过比较学号来插入数据的函数/ break; case 4: find(head); /*通过

24、姓名查找查看数据的函数/ break; case 5: update(head); /通过姓名查找来更新数据*/ break; case 6: save(head); /*保留数据函数/ break; case 7: print(); /*显示或打印函数/ break; case 8:caverage(); /*求各学生语文平均分、最高和最低分成绩的函数/ break; case 9:maverage(); /*求各学生数学平均分、最高和最低分成绩的函数*/ break; case 10:eaverage(); /*求各学生英语平均分、最高和最低分成绩的函数/ break; case 11:c

25、omaverage(); /*求各学生计算机平均分、最高和最低分成绩的函数*/ break; case 12: ; /空操作/ case 13: exit(1); /*退出/ break;scanf(”%d,i);程序中出现的问题及解决方法问题一、学生初始信息模块:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu p1)来实现此操作.当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决办法及步骤:1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有. 2、既然有此学生,那么检查循环判断是否有此学生的语句发现没有错 3、输出

26、用于循环检查语句中的学生信息,发现乱码 4、仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量.问题二、查询模块:可用stu lookdata(stu p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。 2、检查当我们在输入查找信息时,看是否我们输入的信息有误,若是这样的话,我们应当仔细输入查找信息.问题三、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。当我们输入插入信息时,系统却提示插入不进数据。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入插入信息看能否插入进去得到所要插入的学生信息以及

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1