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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C语言大作业(成绩管理系统).doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言大作业(成绩管理系统).doc

1、计算机科学学院计算机科学与应用系C程序设计报告 成 绩 管 理 系 统 设 计 学生姓名:* * 学 号:1004681082 班 级:计 科102 指导老师:* * 报告日期:2011--02--16 1.题目与要求 1)问题提出 本人计划编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。 2)本系统涉及的知识点 单链表、结构体、函数、循环、指针、选择 3)功能要求 (1)建立学生信息,每个学生的信息包括:学号、姓名、成绩。 (2)求出每个

2、学生的总分和平均分。 (3)查找:根据学号、姓名、成绩、总分、平均分中任一项查询该生的基本信息。 (4)排序:根据学号或总分将学生的信息按照一定的顺序进行排序。 (5)根据需要修改学生的基本信息。 (6)根据实际情况删除某生的信息。 (7)根据实际情况插入某生的信息。 (8)输出。 2.功能设计 1)算法设计 (1)利用switch语句设计如图所示的主菜单。 请输入选项编号 1——查 找 2——排 序 3——学生信息的修改 4——链表的删除 5——链表的插入 6——链表的

3、输出 7——退 出 图1 学生信息管理系统主菜单 (2)选择1后,调用查找函数search,进入查找函数后利用switch语句实现如图所示的查找子菜单。该菜单中每个选项调用一个函数(除选项10外)。 查找菜单 请输入选项编号 1——按学号查找 2——按姓名查找 3——按C语言分数查找 4——按高数分数查找 5——按英语分数查找 6——按总分查找 7——按平均分查找 8——总分前三名 9——不及格者 10——班级成绩情况 11——退出

4、 图2 查找子菜单 (3)选项2后, 调用排序函数arrange,进入查找函数后利用switch语句实现如图所示的查找子菜单。该菜单中每个每个选项调用一个函数(除3外)。 排序菜单 输入选项编号 1——按学号排序 2——按总分排序 3——退 出 图3 排序子菜单 (4)选择3后,调用修改函数correct,修改某个学生的信息。 (5)选择4后,

5、调用删除函数del,根据需要删除某个学生的信息。 (6)选择5后,调用插入函数insert,根据需要插入某个学生的信息。 (7)选择6后,调用输出函数output,将每个学生的信息全部输出。 (8)选择7后,退出学生信息管理系统。 (9)根据所选菜单编号编写相应代码。 (a)函数welcome:欢迎用户使用。 (b)函数about: 简要介绍本程序。 (c)函数create:创建单链表,采用循环输入的方式输入学生的基本信息。 (d)函数SnoSearch:根据学号查找,输出该生的基本信息。 (e)函数NameSearch:根据姓名查找,输出该生的基本信息。 (f)函数CYu

6、YanSearch:根据C语言成绩成绩查找,输出该生的基本信息。 (g)函数GaoShuSearch:根据高数成绩查找,输出该生的基本信息。 (h)函数YingYuSearch:根据英语成绩查找,输出该生的基本信息。 (i)函数ZongFenSearch:根据总分查找,输出该生的基本信息。 (j)函数AverageSearch:根据平均分查找,输出该生的基本信息。 (k)函数QSMSearch:查看班级前三名学生信息情况。 (l)函数BuJiGeSearch:查看班级不及格学生信息情况。 成绩菜单 输入选项编号 1——C语言不及格者 2——高数不及格者 3——英

7、语不及格者 4——不及格者 5——全不及格者 6——退出 图4 成绩子菜单 (m)函数ClassScore:查看班级成绩平均分整体情况。 (n)函数SnoArrange:按照学号将学生信息进行排序。 (o)函数ZongFenArrange:按照总分将学生信息进行排序。 (n)函数over:感谢用户使用。 2)画模块图 按学号查找 显示欢迎界 面 按姓名查找 显示程序介 绍 按C语言不及格者查 找 按成绩查找

8、 输 入 成 绩 按高数不及格者查 找 按总分查找 查 找 排 序 主 模块 按平均分查 找 修改学生信 息 按英语不及格者查 找 按前三名查 找 删除学生信 息 按不及格查 找 插入学生信 息 按不及格者查 找 按学号排序 输出学生信 息 按全不及格者查 找 按总分排序 显示结束界 面 图5 成绩管理系统模块图

9、 3)画部分模块的流程图 开始 输入学生信息 pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3 pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3 输入学生信息 结束 p->next=NULL Y N a==pnew->sno 图6 creat函数流程图

10、 开始 输入a t++ t==num+1 Y N a==p->sno p=p->next N Y 输出学生信息 结束 图7 SnoSearch函数流程图 开始 输入b t=0;flag=0;p=head; t++

11、 N Y t==num+1 k==0 Y flag==0 N Y N 结束 flag=1 输出学生信息 p=p->next 图8 NameSearch函数流程图 开始 s=0;r=0;w=0;t=0 m=0;n=0;p=head; N Y s!=num p=head;s=0 s++ N Y s!=num tscore N s++

12、Y t=p->score t==p->score N p=p->next Y 输出学生信息 p=head p=p->next …… 结束 图9 QSMSearch函数流程图 开始 p=head 输入b N a==1 N Y a>1&&an

13、ext N Y n=3 i=0 j=0 N i!=a-2 N j!=a-2 Y Y p=p->next p=p->next i++ j++ p->next=NULL p->next=p->next->next num=num-1 结束 图10 del函数流程图 3.程序代码设计 1.main函数: (1)函数原型:void main() (2)功

14、能:分别调用 welcome函数、about函数、create函数、search函数、del函数、insert函数、output函数和over函数。 (3)变量及类型: int m,n; //switch选择变量 (4)说明:main函数中用到system("cls"),其作用是清除屏幕上的文字。 2.welcome函数: (1)函数原型:void welcome() (2)功能:显示欢迎用户使用界面。 (3)说明:getchar()函数用于使屏幕停止,按下Enter键后再执行下面程序。 3.about函数: (1)函数原型:vo

15、id about() (2)功能:简要介绍本程序。 (3)说明:getchar()函数用于使屏幕停止,按下Enter键后再执行下面程序。 4.create函数: (1)函数原型:void create() (2)功能:利用单链表、while循环和 scanf函数完成对学生信息的输入(学号、姓名、三门成绩),并计算出总分和平均分,再存入单链表中。 (3)变量及类型: int a=0; //判断学生信息输入是否结束(学号是否为0) struct student *p,*pnew; //结构体指针指向结点 (4)说明:学生的人数不

16、受限制,输入结束符号即可。 5.search函数: (1)函数原型:void search() (2)功能:通过选项来选择调用不同函数,完成不同的功能。 (3)变量及类型: int m,n; //switch选择变量 6.SnoSearch函数: (1)函数原型:void SnoSearch() (2)功能:通过学号来查找该生的基本信息。 (3)变量及类型: int a,t; //a用来存储学号;t用来计数,以便跳出循环 struct student *p; //

17、指针p用于指向头结点 7.NameSearch函数: (1)函数原型:void NameSearch() (2)功能:通过姓名来查找该生的基本信息。 (3)变量及类型: int k,t,flag; //k用于判断;t用于计数;flag起标记作用 char b[20]; //数组b用于存放姓名 struct student *p; //指针p用于指向头结点 8.CYuYanSearch函数: (1)函数原型:void CYuYanSearch() (2)功能:通过C语言成绩来查

18、找该生的基本信息。 (3)变量及类型: int t,flag; //t用于计数;flag起标记作用 float a; //a用于存放C语言成绩 struct student *p; //指针p用于指向头结点 9.GaoShuSearch函数: (1)函数原型:void GaoShuSearch() (2)功能:通过高数成绩来查找该生的基本信息。 (3)变量及类型: int t,flag; //t用于计数;flag起标记作用 float b;

19、 //b用于存放高数成绩 struct student *p; //指针p用于指向头结点 10.YingYuSearch函数: (1)函数原型:void YingYuSearch() (2)功能:通过英语成绩来查找该生的基本信息。 (3)变量及类型: int t,flag; //t用于计数;flag起标记作用 float c; //c用于存放英语成绩 struct student *p; //指针p用于指向头结点 11.Zongfen

20、Search函数: (1)函数原型:void ZongfenSearch() (2)功能:通过总分来查找该生的基本信息。 (3)变量及类型: int t,flag; //t用于计数;flag起标记作用 float d; //d用于存放总分 struct student *p; //指针p用于指向头结点 12.AverageSearch函数: (1)函数原型:void AverageSearch() (2)功能:通过平均分来查找该生的基本信息。 (3)变量及类型: int t,fla

21、g; //t用于计数;flag起标记作用 float e; //e用于存放平均分 struct student *p; //指针p用于指向头结点 13.QSMSearch函数: (1)函数原型:void QSMSearch() (2)功能:显示前三名的基本信息 (3)变量及类型: int s=0,r=0,w=0; //s,r,w均用做计数 float t=0,m=0,n=0; //t,m,n均用做记录最高分 struct student

22、p; //指针p用于指向头结点 14. BuJiGeSearch函数: (1)函数原型:void BuJiGeSearch() (2)功能:通过switch选择输出不及格情况。 (3)变量及类型: int n,m,r,s,t,k,h,flag; //n,m为switch选择变量;r,s,t,k,h用做计数;flag起标记作用 struct student *p; //指针p用于指向头结点 15.ClassScore函数: (1)函数原型:void ClassScore() (2)功能:查看班级成绩的整体情况。 (

23、3)变量及类型: int i; //i用于for循环 float a=0,b=0,c=0,d,e; //a,b,c,d,e均用于中间变量 struct student *p; //指针p用于指向头结点 16.arrange函数: (1)函数原型:void arrange() (2)功能:通过选项来选择调用不同函数,完成不同的功能。 (3)变量及类型: int a,m; //a,m均为switch选择变量; 17.SnoArrange函数: (1)函数

24、原型:void SnoArrange() (2)功能:将学生信息按照学号进行排序。 (3)变量及类型: int a,c,i,j; //a为switch选择变量;c用于计数;i,j用于for循环 struct student *p,*q,*k,*newp,*newhead; //指针p,q,k,newp,newhead均用于创建新链表 18.ZongFenArrange函数: (1)函数原型:void ZongFenArrange() (2)功能:将学生信息按照总分进行排序。 (3)变量及类型: int a,c,i,j;

25、 //a为switch选择变量;c用于计数;i,j用于for循环 struct student *p,*q,*k,*newp,*newhead; //指针p,q,k,newp,newhead均用于创建新链表 19. correct函数: (1)函数原型:void correct() (2)功能:修改某生的信息。 (3)变量及类型: int t,a,b,m,flag; // t用于计数;a用于判断;b,m为switch选择变量;flag起标记作用 struct student *p; //指针p用于指向头

26、结点 20.del函数: (1)函数原型:void del() (2)功能:删除单链表中某生的基本信息。 (3)变量及类型: int a,n,i,j; //a存放要删除的结点;n为switch选择变量;i,j用于for循环 struct student *p; //指针p用于指向头结点 21.insert函数: (1)函数原型:void insert() (2)功能:将某生的基本信息插入单链表中。 (3)变量及类型: int a,n,i,j; // a存放要插入的结点;n为swi

27、tch选择变量;i,j用于for循环 struct student *p,*q; //指针p用于指向头结点;指针q用于指向新生信息的结点 22.output函数: (1)函数原型:void output() (2)功能:输出每个学生的基本信息。 (3)变量及类型: int s=0; //s用于计数 struct student *p //指针p用于指向头结点 23.over函数: (1)函数原型:void over() (2)功能:显示感谢用户使用界面。

28、 4.C程序设计总结 (1)程序调试情况 在编写完程序后,执行时总会出现很多错误,便又重新检查程序,改写程序,再经过不断的调试,最终将程序改写完成。 (2)本人在程序中的感想 程序在编写时总是感觉非常难,而且还会出现很多小错误,从而导致出很多麻烦,最终经过耐心检查,才将问题解决。 5.结束语 由于本人完成此程序是在家中完成,又无网络可以查询,故只能参考课本,在本人的独立下完成此程序,在此须感谢白燕老师。 6.参考文献 [1]尹业安 白燕.C语言程序设计.国防科技大学出版社,2008.8

29、 7.附录:程序清单 #include #include #include void welcome(); void about(); void create(); void search(); void SnoSearch(); void NameSearch(); void CYuYanSearch(); void GaoShuSearch(); void YingYuSearch(); void ZongFenSearch(); void AverageSear

30、ch(); void QSMSearch(); void BuJiGeSearch(); void ClassScore(); void arrange(); void SnoArrange(); void ZongFenArrange(); void correct(); void del(); void insert(); void output(); void over(); struct student { int sno; char name[20]; float score1; float score2; float score3;

31、 float score; double avg; struct student *next; }; struct student *head; int num=0; void main() { int m,n; welcome(); about(); system("cls"); create(); system("cls"); Z: printf("1——查找\n"); printf("2——排序\n"); printf("3——学生信息的修改\n"); printf("4——链表的删除\n"); printf("5——链表的插入

32、\n"); printf("6——链表的输出\n"); printf("7——退出\n"); scanf("%d",&n); switch(n) { case 1: system("cls"); search(); system("cls"); goto Z; case 2: system("cls"); arrange(); system("cls"); goto Z; case 3: system("cls"); correct(); system("cls"); goto Z; c

33、ase 4: system("cls"); del(); system("cls"); goto Z; case 5: system("cls"); insert(); system("cls"); goto Z; case 6: system("cls"); output(); system("cls"); goto Z; case 7: system("cls"); F: printf("你真的想退出吗\n 1——是 2——否\n"); scanf("%d",&m); sw

34、itch(m) { case 1: break; case 2: goto Z; default: system("cls"); printf("你的输入有误\n"); goto F; } break; default: system("cls"); printf("你的输入有误\n"); goto Z; } system("cls"); over(); } void welcome() { printf("\n\n\n"); printf("

35、 【】————————————————————【】\n"); printf(" ||————————————————————||\n"); printf(" || 欢迎使用 ||\n"); printf(" || ||\n"); printf(" ||

36、 ||\n"); printf(" || 学 生 成 绩 管 理 系 统 ||\n"); printf(" || ||\n"); printf(" || ||\n"); printf(" ||

37、 ||\n"); printf(" || 制作人:** ||\n"); printf(" || 指导老师:** ||\n"); printf(" || ||\n"); printf(" ||———

38、—————————————————||\n"); printf(" 【】————————————————————【】\n"); getchar(); } void about() { system("cls"); printf("\n\n\n"); printf("\t\t\t关于学生管理系统的说明\n\n\n"); printf(" 本程序采用链表和函数编写完成,主要功能有查找,链表的删除,链表的插入和链表的输出.\n"); printf("程序中主要运用链表部分和函数的知识.程序优点是:学生人数可以根据实际情况进行更改;\

39、n缺点是:部分程序过于复杂,程序功能不太齐全;"); printf("本程序已经经过多次测试,尚未出现问题.\n\n若在使用中出现错误,还请谅解!"); getchar(); } void create() { int a=0; struct student *p,*pnew; head=pnew=p=(struct student *)malloc(sizeof(struct student)); printf("请依次输入每位同学的学号,姓名和3门成绩,按0键结束\n"); printf(" 学号 姓名 C语言 高数 英语\n") ; sc

40、anf("%d%s%f%f%f",&pnew->sno,pnew->name,&pnew->score1,&pnew->score2,&pnew->score3); pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3.0; pnew->avg=(double)( (int)(pnew->avg*100)*0.01 ); while(1) { num++; p->next=pnew; p=pnew; pnew=(struct student *)mall

41、oc(sizeof(struct student)); scanf("%d",&pnew->sno); if(a==pnew->sno) break; scanf("%s%f%f%f",pnew->name,&pnew->score1,&pnew->score2,&pnew->score3); pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3.0; pnew->avg=(double)( (int)(pnew->avg*100)*0.01 );

42、} p->next =NULL; } void search() { int m,n; A: printf("1——按学号查找\n"); printf("2——按姓名查找\n"); printf("3——按C语言分数查找\n"); printf("4——按高数分数查找\n"); printf("5——按英语分数查找\n"); printf("6——按总分查找\n"); printf("7——按平均分查找\n"); printf("8——总分前三名\n"); printf("9——不及格者\n"); printf("10——

43、班级成绩情况\n"); printf("11——退出\n"); scanf("%d",&n); switch(n) { case 1: SnoSearch(); goto A; case 2: NameSearch(); goto A; case 3: CYuYanSearch(); goto A; case 4: GaoShuSearch(); goto A; case 5: YingYuSearch(); goto A; case 6: ZongFenSearch(); goto

44、 A; case 7: AverageSearch(); goto A; case 8: QSMSearch(); goto A; case 9: BuJiGeSearch(); goto A; case 10: ClassScore(); goto A; case 11: system("cls"); D: printf("你真的想退出吗\n 1——是 2——否\n"); scanf("%d",&m); switch(m) { case 1: break; case 2

45、 goto A; default: system("cls"); printf("你的输入有误\n"); goto D; } break; default: system("cls"); printf("你的输入有误\n"); goto A; } } void SnoSearch() { int a,t; struct student *p; system("cls"); printf("请输入学号:"); S: scanf("%d",&a); t=0;p=head; printf

46、"\n学号为%d的成绩如下:\n",a); printf(" 学号 姓名 C语言 高数 英语 总分 平均分\n"); while(1) { t++; if(t==num+1) { system("cls"); printf("你输入的学号有误\n请重新输入学号:"); goto S; } if(a==p->sno) { printf("%d %s %.2f %.2f %.2f %.2f %.2lf\n",p->sno,p

47、>name,p->score1,p->score2,p->score3,p->score,p->avg); break; } p=p->next; } printf("\n\n\n"); } void NameSearch() { int k,t,flag; char b[20]; struct student *p; system("cls"); printf("请输入姓名:"); T: scanf("%s",b); t=0;flag=0;p=head; printf("\n姓名为%s的成绩如下:\n",b); prin

48、tf(" 学号 姓名 C语言 高数 英语 总分 平均分\n"); while(1) { t++; if(t==num+1) { if(flag==0) { system("cls"); printf("你输入的姓名有误\n请重新输入姓名:"); goto T; } else break; } k=strcmp(p->name,b); if(k==0) { flag=1; printf("%d

49、s %.2f %.2f %.2f %.2f %.2lf\n",p->sno,p->name,p->score1,p->score2,p->score3,p->score,p->avg); } p=p->next; } printf("\n\n\n"); } void CYuYanSearch() { int t,flag; float a; struct student *p; system("cls"); printf("请输入C语言成绩:"); U: scanf("%f",&a); t=0;flag=0;

50、p=head; printf("\nC语言成绩为%.2f的成绩如下:\n",a); printf(" 学号 姓名 C语言 高数 英语 总分 平均分\n"); while(1) { t++; if(t==num+1) { if(flag==0) { system("cls"); printf("你输入的C语言成绩有误\n请重新输入C语言成绩:"); goto U; } else break; } if(a==p->sc

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服