c语言课程设计报告书--学生成绩管理

c语言课程设计报告书--学生成绩管理

ID:26437864

大小:435.68 KB

页数:15页

时间:2018-11-27

c语言课程设计报告书--学生成绩管理_第1页
c语言课程设计报告书--学生成绩管理_第2页
c语言课程设计报告书--学生成绩管理_第3页
c语言课程设计报告书--学生成绩管理_第4页
c语言课程设计报告书--学生成绩管理_第5页
资源描述:

《c语言课程设计报告书--学生成绩管理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言程序设计报告课题:学生成绩管理时间:2010/7/15-14-一、需求分析任务要求:自学C语言中有关链表及外部文件的内容,设计出学生成绩管理。具体要求如下:1.主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单系统功能需求分析:1、定义一个结构体类型,成员包括学期、班级、各科成绩、建立链表,定义该结构体类型的指针,用于指向各结点;2、分别建立具有添输入、修改、查询、总分及平均

2、分、排序等功能的子函数,完成相应功能,对程序实现模块化。二、概要设计系统总体设计框架:对程序进行模块化,建立输入、修改、查询、查找和显示功能的子函数,各子函数中运用链表存储数据。系统功能模块图:-14-输入学生信息成绩管理成绩查询添加信息修改记录求总分平均分排序输出结果成绩查询不及格科目学生名单三、详细设计主要功能模块的算法设计思路如下:1、输入信息函数(1)定义指向结构体变量的指针;(2)移动指针,找到插入结点;(3)在要插入的结点输入信息;(4)返回头指针。2、修改信息(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若

3、没记录,出现报错,然后要求重新输入;(3)根据要修改的编号查找对应结点;(4)修改信息;(5)修改成功。3、排序函数(1)定义所要排序的班级和链表的头指针为形参;(2)调用排序函数,把班级和链表的头指针赋给形参;(3)在子函数中进行排序;(4)输出排序结果。4、显示学生成绩信息(voidDisp(Linkl))(1)选择想要查询的项目(学生各科成绩、不及格科目、班级成员);(2)用指针检验是否有记录;-14-(3)若无记录,输出提示信息,返回主函数;若有记录,移动指针,依次输出记录;5、查询班级成绩信息(voidFind(Linkl))(1

4、)选择所要查询的班级;(2)输入班级:(3)在链表中寻找相应结点;(4)输出结点信息。以上各个函数的流程图如下:主函数定义程序所需变量调用CREAT函数创建一个信息链表并返回指针继续进行操作1、修改信息2、统计成绩并排序3、查找信息4、输出成绩输入所需修改学生的姓名输入班级查询分数查询科目查询班级输入班级序号调用add并赋值给P->sum查找班内成员调用average函数输入姓名并查找学生输出不及格学生的姓名及成绩输入班级序号并输出班级成员的名字逐个输出他们的各科成绩并赋值给P->ave输出排序前的学生成绩调用sort进行排序输出排序后的学

5、生成绩是否继续操作-14-子函数排序:f!=p->classp=p->nextf==r->classf==s->next->class&&s->next交换结构体内各成员的值求和:intsumi==p->classyesnosum==p->scor_1+p->scor_2+p->scor_3return(sum)求平均数:floataveintsumsum==add(I,P)ave==sum/3.0return(ave)四、主要源程序代码-14-#include#include#include

6、ng.h>#defineNULL0#defineLENsizeof(structstudent)#definePRINTprintf("======================mainmenu=======================")#definePRINprintf("Pleasechosethenumber:")#definePRIprintf("Sorry,thenumberyouchoseiserror,pleasechoseagain")structstudent*定义一个结构体*{intterm;*

7、学期*intclass;*班级*charname[20];*姓名*intscore_1;*科目一*intscore_2;*科目二*intscore_3;*科目三*floatave;*平均分*intsum;*总分*structstudent*next;};intn;structstudent*creat(void)*创建信息链表*{structstudent*head;structstudent*p1,*p2;n=0;p1=p2=(structstudent*)malloc(LEN);printf("Plea

8、seinputthestudentinformation:");printf("TermClassNameScore_1Score_2Score_3");scanf("%

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。