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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机程序编程课程设计实验报告学生成绩.docx

1、计算机程序编程课程设计实验报告学生成绩计算机程序编程课程设计实验报告2 实验名称学生成绩管理系统学 院通信工程学院专业班级通信工程系11级25班姓 名梁仙友学 号52112507任课教师孙大洋实验时间2013/8/14 实验目的:使用标准C或C+实现学生成绩管理系统的录入、查询、删除、统计等基本操作。进一步巩固C语言的学习,以提高学生对开发环境的进一步认识和综合编程能力。系统功能模块结构图:数据结构设计及用法说明:数据结构定义如下 typedef struct St1 char IDNumber16;/*学号*/ char FamilyName16; /*姓*/char GivenName16

2、; /*名*/ int sex; /*性别(0代表“女”,1代表“男”)*/ int BirthYear; /*出生年*/int BirthMonth; /*出生月*/int BirthDay; /*出生日*/ float score4; /*成绩*/ float sum; /*总分*/ float average; /*平均分*/ struct St1 *next; StudentNode;需要处理的基础数据学生基本信息:学号(例如2003级12班6号写作20031206)、姓、名、性别、出生年月日、课程名称(外语SCORE0、高数SCORE1、C语言SCORE2、马哲SCORE3)、考试成

3、绩等。统计每个学生各门功课的平均成绩,并按平均成绩从高到低的次序排名输出每个学生各门功课的综合成绩和平均成绩(名次、学号、姓名、平均成绩、各门功课的考试成绩)。列出90分以上(包括90)、80分以上(包括80)、70分以上(包括70)、60分以上(包括60)、不及格学生清单(学号、姓名、不及格的课程和成绩)。统计并输出各门功课的平均成绩和总平均成绩。按班级统计并输出总成绩。(需要对学号进行解析)以下代码可以获取系统当前时间,用于判断年龄是否合理。#include time.h void main() struct tm* ptm; long ts; int y,m,d,h,n,s; ts =

4、time(NULL); ptm = localtime(&ts); y = ptm- tm_year+1900; /年 m = ptm- tm_mon+1; /月 d = ptm- tm_mday; /日 h = ptm- tm_hour; /时 n = ptm- tm_min; /分 s = ptm- tm_sec; /秒程序结构(画流程图):主函数:StudentNode *create ()StudentNode *Delete(StudentNode *head)void Print(StudentNode *head)StudentNode *Load()StudentNode *c

5、ompute(StudentNode *head)Search(head) StudentNode *Insert(StudentNode *head,StudentNode *New) 各模块的功能1、StudentNode *Create() :根据提示学生录入学生基本信息:学号(例如2003级12班6号写作20031206)、姓、名、性别、出生年月日、课程(外语SCORE0、高数SCORE1、C语言SCORE2、马哲SCORE3)成绩。2、StudentNode *Delete (StudentNode *head):根据所给学号删除对应学号学生对基本信息。3、void Print(St

6、udentNode *head):先根据学生干的平均成绩对学生进行排序,再根据平均成绩从高到低依次输出各个学生的基本信息,在统计列出90分以上(包括90)、80分以上(包括80)、70分以上(包括70)、60分以上(包括60)、不及格学生清单(学号、姓名、不及格的课程和成绩)。4、StudentNode *search(StudentNode *head):找出对应姓名的学生的基本信息并输出。5、StudentNode *Save(StudentNode *head):将链表中的记录依次保存到所指定的文件中。6、StudentNode *Load():从指定文件中读取学生的相关信息并依次输出。

7、7、StudentNode *compute(StudentNode *head):计算所有学生的总分和平均分并输出。8、StudentNode * CompositorByAverage (StudentNode *head):输出对应班级的学生的学号 姓 名 总分 平均分。9、StudentNode *Insert(StudentNode *head,StudentNode *New):将输入的学生的基本信息插入到对应链表中并按平均成绩排序后输出链表中学生的基本信息。试验结果(包括输入数据和输出结果)菜单界面显示界面文件查找:体会通过一个星期的C语言编程设计实验我学会了很多东西,初步了解了

8、学生成绩管理系统的编程过程,对编程有了更深一次的掌握,学会了如何分块把问题解决。使用标准C或C+实现学生成绩管理系统的录入、查询、删除、统计等基本操作。本次实验设计的成绩管理系统功能还有限,都是些基本功能,还有很多的功能有待完善,比如学生成绩是否符合正太分布,虽然完成的功能有限,但是感觉收获还是很大,写代码的时候需要集中精力,很多小细节可能导致大错误,比如大括号的丢失,程序调试也很费时间,最好是分布检查每个部分,确保准确的运行,再逐步释放代码,很容易发现问题所在。附录:程序清单及源程序软盘#include#include#include#include /*字符串函数*/ #include #

9、define LEN sizeof(StudentNode)typedef struct St1 char IDNumber16; /*学号*/ char FamilyName16; /*姓*/ char GivenName16; /*名*/ int sex; /*性别(0代表女,1代表男)*/ int BirthYear; /*出生年*/ int BirthMonth; /*出生月*/ int BirthDay; /*出生日*/ int score4; /*成绩*/ int sum; /*总分*/ int average; /*平均分*/ int rank; /*排名*/ struct St

10、1 *next; StudentNode;StudentNode *New;StudentNode *first() return NULL;int Menu() /菜单选择函数 int m; printf(n按回车键进入主菜单.press any button to enter menun); getchar(); printf(nn); printf(n); printf(tt欢迎使用学生管理系统n); printf(ntt Welcome to student database systemn); printf( MENUn); printf(ttt1 输入学生成绩记录 Enter li

11、stn); printf(ttt2 删除记录 Delete a record from listn); printf(ttt3 显示链表中所有记录 Print listn); printf(ttt4 按照姓名查找记录 Search record on namen); printf(ttt5 记录保存到文件 Save the filen); printf(ttt6 从文件中读入记录 Load the filen); printf(ttt7 计算总分和均分 Compute the scoren); printf(ttt8 按班级查询学生总分 Query by classn); printf(ttt

12、9 插入记录 Insert record to listn); printf(ttt10 退出 Quitn ); printf(nn); printf(nn); doprintf(nttt请输入你要操作的代号 Enter your select choice(110):);fflush(stdin);scanf(%d,&m);while(m10);return (m);StudentNode *Create() /信息的输入 int i,s=0; StudentNode *head=NULL,*p; system(cls); for(;) p=(StudentNode *)malloc(LEN

13、); if(!p) printf(n输出内存溢出.OUT OF MEMORY.); return (head); printf(请输入学号,please enter the num:(输入n结束输入); scanf(%s,p-IDNumber); if(p-IDNumber0=n) break; printf(请输入姓名:(姓名之间用空格间隔); scanf(%s %s,p-FamilyName,p-GivenName); do printf(请输入性别:0代表女,1代表男); scanf(%d,&p-sex); while(p-sex!=0)&(p-sex!=1); do printf(请输

14、入生日(年月日用空格分隔):); scanf(%d %d %d,&p-BirthYear,&p-BirthMonth,&p-BirthDay); while(p-BirthMonthBirthMonth13); printf(请输入4门成绩 please enter the scoren); for(i=0;iscorei); if(p-scoreiscorei100) printf(数据输入错误,请重新输入n); while(p-scoreiscorei100); s=s+p-scorei; p-sum=s; p-average=s/4; p-rank=0; p-next=head; hea

15、d=p; return (head); void Print(StudentNode *head) /信息的显示 int i=0; StudentNode *p; char s2; system(cls); p=head; printf(n学生信息n); printf(-n); printf(|Rec Num Fna Gna Sex Yea Mon Day Sc1 Sc2 Sc3 Sc4 Sum Ave Rank|n); printf(-n); while (p!=NULL) i+; printf(|%3d %4s %2s %2s %d %d %d %d %d %d %d %d %d %d %

16、d |n,i, p-IDNumber,p- FamilyName,p- GivenName,p-sex,p-BirthYear,p-BirthMonth, p-BirthDay,p-score0,p-score1,p-score2,p-score3,p-sum,p-average, p-rank); p=p-next; printf(-n); printf(ENDn); scanf(%s,s); printf(输入任意键返回菜单.n); void Search(StudentNode *head) /查找记录函数 StudentNode *p; char s2;char f2; system(

17、cls); printf(请输入姓:n); scanf(%s,s); printf(请输入名:n); scanf(%s,f); p=head; while(p!=NULL) if(strcmp(p-FamilyName,s)!=0)|(strcmp(p-GivenName,f)!=0) p=p-next; else break; if(p) printf(n已找到n); printf(-n); printf(| Num Name sc1 sc2 sc3 sc4 Sum Ave Rank|n); printf(-n); printf(| %4s %s %s %3d %3d %3d %3d %3d

18、 %d %-5d|n,p-IDNumber,p-FamilyName, p-GivenName,p-score0,p-score1,p-score2,p-score3,p-sum,p-average,p-rank); printf(-n); printf(结束n); else printf(n没有需要查找的%s %s学生,s, f); StudentNode *Sort (StudentNode *head) /排序函数 int i=0; StudentNode *p1,*p2,*t,*temp; temp=head-next; head-next=NULL; while(temp!=NULL

19、) 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-rank=i; p1=p1-next; printf(已排序成功.n); return(head);StudentNode *Insert(StudentNode *head,StudentNode *New) /信息的插入 Stu

20、dentNode *p0,*p1,*p2; /int n=0; int sum1,i; p1=head; p0=New; printf(输入学号:); scanf(%s,New-IDNumber); printf(输入姓:); scanf(%s,New-FamilyName); printf(输入名); scanf(%s,New-GivenName); printf(性别:); scanf(%d,&New-sex); printf(出生年:); scanf(%d,&New-BirthYear); printf(出生月:); scanf(%d,&New-BirthMonth); printf(出

21、生日:); scanf(%d,&New-BirthDay); printf(Please enter the 4 scores.n); sum1=0; for(i=0;iscorei); if(New-scorei100|New-scoreiscorei100|New-scoreiscorei; New-sum=sum1; New-average=sum1/4; New-rank=0; if(head=NULL) head=p0; p0-next=NULL; else while(p0-averageaverage)&(p1-next!=NULL) p2=p1; p1=p1-next; if(

22、p0-average=p1-average) if (head=p1)head=p0; else p2-next=p0; p0-next=p1; else p1-next=p0; p0-next=NULL; /n=n+1; head=Sort(head); printf(学生%s %s已被更新.n,New-FamilyName,New-GivenName); return(head); StudentNode *Delete (StudentNode *head) /删除记录函数 int n=0; StudentNode *p1,*p2; char c,s6; printf(请输入要删除的学生

23、学号:); scanf(%s,s); p1=p2=head; while(strcmp(p1-IDNumber,s)&p1!=NULL) p2=p1; p1=p1-next; if(strcmp(p1-IDNumber,s)=0) printf(找到了n); printf(-n); printf(-n); printf(结束n); printf(删除请按Y,退出请按N); for(;) scanf(%c,&c); if(c=n|c=N)break; if(c=Y|c=y) if(p1=head) head=p1-next; else p2-next=p1-next;n=n-1; printf(n%s学生的信息已被删除n,s); break; else printf(n没有此人信息n); return(head); void Save(StudentNode *head) /保存数据到文件 FILE *fp; StudentNode *p; char outfile10; printf(输入文件例如:c: score enter outfile name.n); scanf(%s,outfile); if(fp=fopen

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

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