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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

学生成绩管理系统.docx

1、学生成绩管理系统一、课程设计题目学生成绩管理系统的设计与实现二、要求1、整个系统均用C语言实现;2、利用指针、链表来实现学生成绩的数据结构设计;3、系统具有输入、显示、查询、排序的基本功能;4、系统的各个功能模块都用函数的形式来实现;三、内容1、每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。2、输入功能:可以一次完成无数条记录的输入。3、显示功能:完成全部学生记录的显示。4、查找功能:完成按姓名查找学生记录,并显示。5、排序功能:按学生平均成绩进行排序。6、有一个清晰美观界面来调用各个功能四、各功能模块的算法处理流程及相关说明整个系统除了主函数外,另外还有7个函数,实现八大功能:输入

2、功能、显示功能、查找功能、排序功能。各个函数的详细设计说明分别如下:1、 主函数 main()利用无限次循环for(;)和switch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。2、 初始化函数 STUDENT *init()这是一个无参函数,里面只有一个语句,它的作用是使链表初始化,使head的值为NULL。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码!3、 菜单选择函数 int menu_select();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择,中间还显示系

3、统当前的时间。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!4、 输入记录函数 STUDENT *create()这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。算法:先声明一个首节点head,并将head-next设为NULL。每输入一个数据就声明一个新节点p,把p-next设为NULL,并且链接到之前列表的尾端。N-S流程图如下:5、 显示记录函数 void print(STUDENT *head)这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生

4、成绩进行分页显示。算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。N-S流程图如下:6、 查找记录函数 void search(STUDENT *head)这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。算法:采用线性查找法往下一个节点查找。输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p-name,s) & p != NULL时,使p后移一个结点,如

5、果p!=NULL,输出p所指的结点。N-S流程图如下:7、排序函数 STUDENT *sort(STUDENT *head)这是一个有参函数,形参为“链表头的指针”,按学生成绩的平均分高低进行排序,还可以显示名次。N-S流程图:五、调试分析(1)刚开始没有那个初始化函数,程序运行后,没有输入任何数据就试得去执行显示功能,结果显示的是一些乱码!加入初始化函数后,这种现象也随之消失。(2)刚开始执行输入函数,按学号顺序输入十个学生的成绩,输完后执行显示功能,学生成绩记录是按学号的反顺序显示的,试着在其中增加一些语句,希望能把学号按正常顺序显示,但暂时没有成功,所以在输入成绩时只能按学号反顺序输入,

6、最后就按学号正常顺序输出了。(3)在输入函数中设了一个无限循环,可以输入无数个学生的成绩信息,当学号为0的时候则停止输入,并返回菜单。(4)输入太多个学生的成绩时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳。(5)在没有输入任何信息的情况下,去执行排序功能,最后显示有一个记录,学号、姓名为空白,成绩都为0,名次为1。(6)在输入选项时不能输入字母,否则会死循环,建议不要乱输字母。(7)程序在调试运行的时候发现益处问题不能解决,所以当输入的变量不合法或益处时程序出现错误多为死循环的结果六、调用关系七、心得体会通过这次自主设计软件的机会,我们有幸通过自己的努

7、力和老师的帮助第一次独立完成一个程序虽然程序本身并不好但重要的是过程,如:设计算法,之前一直认为编程最重要的是语法但现在才了解算法才是一个程序的灵魂。另外,在写程序的过程中发现了好多书上和老师都没有讲过的命令和函数,而这些又是一个程序所必要的组成部分所以加强自我学习和进步应该成为我们以后的目标而不是之跟着老师和书本走。这是我的第一个150行以上的程序,可以说写的相当一般但我还是很满意,我相信我会以此为基石一步一个脚印做的越来越好!八、源程序#include #include#include #include #include #include #include #define LEN size

8、of(STUDENT)typedef struct stu char num9;char name20;int score3;int sum;float average;int order;struct stu *next;STUDENT;STUDENT *init(); int menu_select(); STUDENT *create(); void print(STUDENT *head); void search(STUDENT *head); STUDENT *sort(STUDENT *head); main()STUDENT *head,new;head=init(); for

9、(;) switch(menu_select() case 1:head=create();break; case 2:print(head);break; case 3:search(head);break;case 4:head=sort(head);break; case 5:exit(0); STUDENT *init()return NULL; menu_select()int n;struct date d; getdate(&d); printf(welcome to use my system_!press anykey to continue_); getch(); clrs

10、cr(); printf(*n);printf(tt Welcome ton);printf(ntt The student score manage systemn);printf(*MENU*n);printf(ttt1. Enter the recordn); printf(ttt2. Print the recordn); printf(ttt3. Search record on namen); printf(ttt4. Sort to make new a filen); printf(ttt5. Quitn); printf(ntt Made by ender.n);printf

11、(nt liao ning gong cheng ji shu da xue JI HR 06 06bann);printf(*n);printf(tttt%d%d%dn,d.da_year,d.da_mon,d.da_day); doprintf(ntttEnter your choice(15):); scanf(%d,&n);while(n5); return(n); STUDENT *create()int i,s;STUDENT *head=NULL,*p; clrscr();for(;)p=(STUDENT *)malloc(LEN); if(!p) printf(nOut of

12、memory.); return (head); printf(Enter the num(enter o to go back):);scanf(%s,p-num);if(p-num0=0) break; printf(Enter the name:);scanf(%s,p-name);printf(Please enter the %d scoresn,3); s=0; for(i=0;iscorei); if(p-scoreiscorei100) printf(Data error,please enter again.n); while(p-scoreiscorei100); s=s+

13、p-scorei; p-sum=s; p-average=(float)s/3; p-order=0; p-next=head; head=p; return(head); void print(STUDENT *head)int i=0; STUDENT *p; clrscr();p=head; printf(n*STUDENT*n);printf(-n);printf(| Rec | Num | Name | english | chinese | math | Sum | Ave | Order |n);printf(-n);while(p!=NULL)i+;printf(| %3d |

14、 %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|n,i, p-num,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order);p=p-next;printf(-n);printf(*END*n);void search(STUDENT *head)STUDENT *p; char s5; clrscr();printf(Please enter name for searching.n);scanf(%s,s);p=head; while(strcmp(p-name,s) & p

15、 != NULL) p=p-next; if(p!=NULL) printf(n*FOUND*n);printf(-n);printf(| Num | Name |english | chinese| math | Sum | Ave | Order |n);printf(-n);printf(|%4s | %4s | %3d | %3d | %3d | %3d | %4.2f | %-5d|n,p-num,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order);printf(-n);printf(*END*n);elseprint

16、f(nThere is no num %s student on the list.n,s); STUDENT *sort(STUDENT *head)int i=0; STUDENT *p1,*p2,*t,*temp; temp=head-next; head-next=NULL; while(temp!=NULL) t=temp; temp=temp-next; p1=head; p2=head; while(t-averageaverage&p1!=NULL) p2=p1; p1=p1-next;if(p1=p2) t-next=p1; head=t; else t-next=p1; p2-next=t; p1=head; while(p1!=NULL) i+; p1-order=i; p1=p1-next; printf(Sorting is sucessful.n); return (head);九、参考文献c程序设计,c程序设计题解与上机指导,c和c+程序设计教程教师指导,网络资源。

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

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