- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1
C 语言程序设计报告
课题:学生成绩管理
时间:
一、需求分析
任务要求:
自学C语言中有关链表及外部文件的内容,设计出学生成绩管理。具体要求如下:
1.主要功能:
(1)能按学期、按班级完成对学生成绩的录入、修改
(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序
(3)能查询学生成绩,不及格科目及学生名单
(4)能按班级输出学生的成绩单
系统功能需求分析:
1、定义一个结构体类型,成员包括学期、班级、各科成绩、建立链表,定义该结构体类型的指针,用于指向各结点;
2、分别建立具有添输入、修改、查询、总分及平均分、排序等功能的子函数,完成相应功能,对程序实现模块化。
二、概要设计
系统总体设计框架:
对程序进行模块化,建立输入、修改、查询、查找和显示功能的子函数,各子函数中运用链表存储数据。
系统功能模块图:
输入学生信息
输入学生信息
成绩管理
成绩查询
添加信息
修改记录
求总分平均分排序
输出结果
成绩查询
不及格科目
学生名单
三、详细设计
主要功能模块的算法设计思路如下:
1、输入信息函数
(1)定义指向结构体变量的指针;
(2)移动指针,找到插入结点;
(3)在要插入的结点输入信息;
(4)返回头指针。
2、修改信息
(1)定义指向结构体变量的指针;
(2)用指针检验链表中是否有记录,若没记录,出现报错,然后要求重新输入;
(3)根据要修改的编号查找对应结点;
(4)修改信息;
(5)修改成功。
3、排序函数
(1)定义所要排序的班级和链表的头指针为形参;
(2)调用排序函数,把班级和链表的头指针赋给形参;
(3)在子函数中进行排序;
(4)输出排序结果。
4、显示学生成绩信息(void Disp(Link l))
(1)选择想要查询的项目(学生各科成绩、不及格科目、班级成员);
(2)用指针检验是否有记录;
(3)若无记录,输出提示信息,返回主函数;
若有记录,移动指针,依次输出记录;
5、查询班级成绩信息(void Find(Link l))
(1)选择所要查询的班级;
(2)输入班级:
(3)在链表中寻找相应结点;
(4)输出结点信息。
以上各个函数的流程图如下:
主函数
定义程序所需变量
调用CREAT函数创建一个信息链表并返回指针
继续进行操作
1、修改信息
2、统计成绩并排序
3、查找信息
4、输出成绩
输入所需修改学生的姓名
输入班级
查询
分数
查询科目
查询班级
输入班级序号
调用add并赋值给P-sum
查找班内成员
调用average函数
输入姓名并查找学生
输出不及格学生的姓名及成绩
输入班级序号并输出班级成员的名字
逐个输出他们的各科成绩
并赋值给P-ave
输出排序前的学生成绩
调用sort 进行排序
输出排序后的学生成绩
是否继续操作
子函数
排序:
f!=p-class
p=p-next
f==r-class
f==s-next-classs-next
交换结构体内各成员的值
求和:
int sum
i==p-class
yes
no
sum==p-scor_1+ p-scor_2+ p-scor_3
return(sum)
求平均数:
float ave
int sum
sum==add(I,P)
ave==sum/3.0
return (ave)
四、主要源程序代码
#include stdio.h
#include malloc.h
#include string.h
#define NULL 0
#define LEN sizeof (struct student)
#define PRINT printf(======================main menu=======================\n)
#define PRIN printf(Please chose the number:\n)
#define PRI printf(Sorry,the number you chose is error,please chose again\n)
struct student \*定义一个结构体*\
{
int term; \*学期*\
int class; \*班级*\
char name[20]; \*姓名*\
int score_1; \*科目一*\
int score_2; \*科目二*\
in
您可能关注的文档
- 96.3m近海集装箱船船体结构规范设计.doc
- C语言 director常用语言.doc
- c语言课程设计报告.doc
- c语言课程设计报告--航班时刻表信息.docx
- c语言课程设计报告——机房管理系统.doc
- c语言课程设计---飞机订票系统.doc
- c语言课程设计——飞机订票系统.doc
- d7132电火花机工作台的设计.doc
- DAT 《纸质档案数字化规范》.doc
- DC-DC转换开关电源的建模,仿真和实验结果_文献综述.doc
- 老旧小区改造提升项目-小龙坎街道片区(一期)结构计算书(施工图).doc
- 南马石危岩治理工程施工图设计计算书.docx
- 南环大道三期--给水工程施工图设计说明.doc
- 汽车产业园综合服务配套及基础设施项目-办公用房工程-边坡结构部分施工图设计说明.doc
- 宏帆东路道路工程施工图设计说明.doc
- )库岸安全综合防护工程(乌杨岛区域)—库岸安全步道贯通项目-施工图计算书.docx
- 农村公路村道安防工程设计说明.doc
- 食品产业园项目(一期)—道路基础设施建设工程(三期支路一期)项目--排水管道工程施工图设计说明.doc
- 河湾村大坳至田湾公路改建及安防工程 总体设计说明书.doc
- 临港一路K2+050.00-K2+220.00段右侧边坡治理工程设计说明.docx
文档评论(0)