学生成绩管理系统数据结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
洛阳理工学院
课程设计报告
课程名称数据结构课程设计
设计题目学生成绩管理系统
专业计算机科学与技术
课程设计任务书
设计题目:学生成绩管理系统
设计内容与要求:
编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。
程序运行时显示一个简单的菜单,例如:
(1)信息输入(INPUT)
(2)总分统计(COUNT)
(3)总分排序(SORT)
(4)查询(QUERY)
其中:
(1)对4个学生的信息进行输入;
(2)对每个学生的3门课程统计总分;
(3)对4个学生的总分按降序排序并显示出来;
(4)查询输入一个学号后,显示出该学生的有关信息;
课程设计评语
成绩:
指导教师:_______________
年月日
目录
一.问题描述 (2)
二.基本要求 (2)
三.数据结构 (2)
四.总体设计 (3)
1.结构图 (3)
2.流程图 (3)
五.详细设计 (5)
1.录入模块 (5)
2.浏览模块 (5)
3.排序模块 (5)
4.查找模块 (5)
六.测试与调试 (5)
七.源程序清单 (9)
一.问题描述
编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
二.基本要求
建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。
程序运行时显示一个简单的菜单,例如:
(1)信息输入(INPUT)
(2)总分统计(COUNT)
(3)总分排序(SORT)
(4)查询(QUERY)
其中:
(1)对4个学生的信息进行输入;
(2)对每个学生的3门课程统计总分;
(3)对4个学生的总分按降序排序并显示出来;
(4)查询输入一个学号后,显示出该学生的有关信息;
三.数据结构
struct student
{
char num[10];/*学号*/
char name[20];/*姓名*/
int fgrade;/*佛学成绩*/
int cgrade;/*C语言成绩*/
int egrade;/*英语成绩*/
int total;/*总分*/
}st[100];
四.总体设计1.结构图
2.流程图
2.1录入函数
图4.2
2.2 排序函数
2.3 查询函数
2.4 按学号查询函数
图4.3 图4.4
2.5 按姓名查询函数(同上)
五.详细设计
1.录入模块
定义一个结构struct student和数组st[N]用来储存N个学生的所有信息(学号st[i].num、姓名st[i].name、佛学成绩st[i].fgrade、C语言成绩st[i].cgrade、英语成绩st[i].egrade)。通过for循环输入所有学生信息。用printf语句提示需要输入的内容,接着用scanf语句输入相应内容。输入完毕后套用保存函数save(m)将所输入的信息写入指定文件。
2.浏览模块
声明整形变量i和count,其中记录输出的学生序数,count用来接收调用浏览函数时所传递过来的实参,将其值传递给导出函数load(m),使得导出的学生人数与浏览的学生人数保持一致。通过调用load函数后(即给em数组赋值),用for循环输出每一个学生的各种信息。
3.排序模块
声明整形变量i,j和结构体变量struct student temp,用for循环实现排序功能,利用冒泡法,以st[i].total 4.查找模块 声明整型变量k,先用printf语句显示查询菜单,用scanf输入选择的查询方式的代号,用switch(k)进入所选择的具体查询函数,包括学号查询,姓名查询两种方式。 学号查询中,用scanf语句输入需要查询的学号,并赋值给num。用for循环,循环主体判断em[i].num中是否有输入的学号。如果有,用printf语句输出与学号相对应的该学生的所有信息,再跳出循环。按姓名查询与此方法类似,不再叙述。 六.测试与调试 1.运行程序,进入主菜单 图6.1 主菜单2.输入数字“1”,创建学生信息 图6.2 输入职工信息3.输入数字“2”,浏览学生信息 图6.3 浏览职工信息4.输入数字“3”,按总分排序 图6.4 按总分排序 5.输入数字“4”,查询学生信息 5.1 选择查询方式“1” 图6.5 按学号查询5.2 选择查询方式“2” 图6.6 按姓名查询 七.源程序清单 #include #include #include struct student { char num[10];/*学号*/ char name[20];/*姓名*/ int fgrade;/*佛学成绩*/ int cgrade;/*C语言成绩*/ int egrade;/*英语成绩*/ int total;/*总分*/ }st[100]; void menu(); void input(); void save(int m); void save(); void display(); void search(); void search_num(); void search_name(); void sort_total(); int load();/*定义各函数*/ int m; void main() { menu(); int n=0,flag; char a; do { printf("请选择你需要操作的步骤(1--4):\n"); scanf("%d",&n); if(n>=0&&n<=4) { flag=1; break; } else { flag=0; printf("您输入有误,请重新选择!");