C语言课程设计-学生成绩管理系统(共17页).doc
《C语言课程设计-学生成绩管理系统(共17页).doc》由会员分享,可在线阅读,更多相关《C语言课程设计-学生成绩管理系统(共17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上青岛农业大学课程设计报告 题 目: 学生成绩管理系统 姓 名: 张洋 学 院: 理学与信息科学学院 专 业: 通信工程 班 级: 1班 学 号: 指导教师: 李吉忠 2013年9月4日 目 录一 设计目的.3二 课程设计的内容.3三 课程设计的要求与数据.3四 课程设计应完成的工作.4五 总体设计(包含几大功能模块).4六 详细设计(各功能模块的具体实现算法流程图).5七 调试分析(包含各模块的测试用例,及测试结果).6八 总结.16九 参考资料.17一 设计目的进一步加深、巩固所学专业课程(C语言程序设计)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解
2、决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。二 课程设计的内容对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。三 课程设计的要求与数据1、用C语言实现系统;2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息
3、输入、输出、查询、删除、排序、统计、退出.3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:1)输入记录模块。输入记录模块主要完成将数据存入单链表中的工作。在此成绩管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可从键盘逐个输入学生记录。学生记录由学生的基本信息和成绩信息字段构成。当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到单链表中。2)查询记录模块。查询记录模块主要完成在单链表中查找满足相关条件的学生记录。在此成绩管理系统中,用户可以按照学生的学号或姓名在单链表中进行查找。若找打该学生的记录,则返回指向该学生的指针。
4、否则,返回一个值为NULL的空指针,并打印出未找到该学生记录的提示信息。3)更新记录模块。更新记录模块主要完成对学生记录的维护。在此成绩管理系统中,它 实现了对学生记录的修改、删除、插入和排序操作。一般而言,系统进行论文这些操作之后,需要将修改的数据存入源数据文件。4)统计记录模块。统计记录模块主要完成对各门功课最高分和不及格人数的统计。5)输出记录模块。输出记录模块主要完成两个任务。第一,它实现对学生记录的存盘操作,即将单链表中的各节点中存储的学生记录信息写入数据文件中。第二,它实现将单链表中存储的学生记录信息以表格的形式在屏幕上打印出来。四 课程设计应完成的工作(1)编写算法;(2)算法测
5、试,并有具体的测试结果和结果分析;(3)撰写课程设计报告。内容包括:1) 封面扉页2) 设计任务书3) 目录4) 总体设计方案(包括流程图)5) 使用说明及运行实例(包括界面)6) 成员设计内容简介7) 项目源程序代码(注意注释的使用)8) 指导教师评语五 总体设计(包含几大功能模块) 1、成绩录入功能2、成绩查询功能3、成绩更新功能4、统计功能 5、输出功能 6、退出系统六 详细设计(各功能模块的具体实现算法流程图)6.1各函数的功能和实现1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数void input(STUDENT *data, int *len
6、)来实现此操作。 2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len):通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage()、maverage()、eaverage()和comaverage()来输出成绩的平均分数、最高和最低分数。3、成绩查询模块:可用void find(STUDENT *data, int len)来实现。找到就输出此学生全部信息。4、删除模块:用函数void delete_item(STUDENT *data, int *len)来实现5、排序模块:用函数void sort(STUDENT *
7、data, int len)来实现6、统计功能能:用函数void stat(STUDENT *data, int len) 来实现7、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。 如图结束开始输出菜单根据菜单输入n的值选择程序输入退出输出保存查找排序统计插入删除七 调试分析(包含各模块的测试用例,及测试结果) 7.1源程序#include #include#include #include #define LEN sizeof(Student)typedef struct studentint num;char name20;int
8、score4;int sum;struct student *next;Student;int n;Student *cin(void); Student *sort_1(Student *head,int); void sort_2(Student *head);void print(Student *head);Student *sort_all(Student *head);void find(Student *head);Student *add_new(Student *head);Student *cin()int flag; Student *head,*p1,*p2;n=0;h
9、ead=(Student *)malloc(LEN);p2=head;printf(n请输入第%d名学生的学号,学号为0表示结束输入:,n+1); scanf(%d,&flag);while(getchar()!=n);for(;flag;)n+;p1=(Student *)malloc(LEN);p1-num=flag;printf(请输入第%d名学生的姓名:,n);scanf(%s,p1-name); printf(请输入第%d名学生的高数成绩:,n);scanf(%d,&p1-score0);printf(请输入第%d名学生的英语成绩:,n);scanf(%d,&p1-score1);p
10、rintf(请输入第%d名学生的计算机成绩:,n);scanf(%d,&p1-score2);printf(请输入第%d名学生的物理成绩:,n);scanf(%d,&p1-score3);p1-sum=p1-score0+p1-score1+p1-score2+p1-score3;p2-next=p1;p2=p1;printf(n请输入第%d名学生的学号,没有此学生则输入0表示结束:,n+1); scanf(%d,&flag);p2-next=NULL;printf(nn);return head;Student *sort_all(Student *head)int choose;for(;
11、) printf(ntt# # # # # 学生成绩统计排序 # # # #n);printf(tt#t1.按学生学号排序t #n);printf(tt#t2.按学生总分排序t #n);printf(tt#t3.按学生高数成绩排序t #n);printf(tt#t4.按学生英语成绩排序t #n);printf(tt#t5.按学生计算机成绩排序t #n);printf(tt#t6.按学生物理成绩排序t #n);printf(tt#t7.单科高分及均分t #n);printf(tt#t8.显示当前学生成绩t #n);printf(tt#t0.返回上一级菜单t #n);printf(tt# # #
12、# # # - # # # #nn); printf(请输入你要执行的操作:);scanf(%d,&choose);while(getchar()!=n);switch(choose)case 1:case 2:case 3:case 4:case 5:case 6:head=sort_1(head,choose);break;case 7:print(head);sort_2(head);break;case 8:print(head);break;case 0:return head;default: printf(nn您的输入有误!请重新输入:nn);break;Student *sor
13、t_1(Student *head,int choose)Student *p1,*p2=head-next,*pm,*px;Student mid;if (!p2) return head;for(p1=p2;p1-next!=NULL;p1=p1-next)pm=p1;for(p2=p1-next;p2!=NULL;p2=p2-next)switch(choose)case 1:if (pm-nump2-num) pm=p2;break;case 2:if (pm-sumsum) pm=p2;break;case 3:if (pm-score0score0) pm=p2;break;cas
14、e 4:if (pm-score1score1) pm=p2;break;case 5:if (pm-score2score2) pm=p2;break;case 6:if (pm-score3score3) pm=p2;break;if (pm!=p1)mid=*pm;*pm=*p1;*p1=mid;px=pm-next;pm-next=p1-next;p1-next=px;printf(n排序后的成绩表为:n);print(head); return head;void sort_2(Student *head)Student *p=head-next;int max_1,max_2,ma
15、x_3,max_4,min_1,min_2,min_3,min_4;int max_sum,min_sum;int sum_1=0,sum_2=0,sum_3=0,sum_4=0;float aver_1,aver_2,aver_3,aver_4,aver_sum;if (!p) return;max_1=min_1=p-score0;max_2=min_2=p-score1;max_3=min_3=p-score2;max_2=min_2=p-score3;max_sum=min_sum=p-sum;for(;p;p=p-next)if (max_1score0) max_1=p-score
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 成绩管理系统 17
限制150内