学生成绩管理系统数据结构_第1页
学生成绩管理系统数据结构_第2页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成绩: 指导教师: 年 月 日 洛阳理工学院 课程设计报告 课程名称 _ 数据结构课程设计 _ 设计题目 _ 学生成绩管理系统 _ 专 业 _ 计算机科学与技术 _ 课程设计任务书 设计题目: 学生成绩管理系统 _ 设计内容与要求: 编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。 建立一个 4 个学生的信息登记表,每个学生的信息包括:学号,姓名,和 3 门 课程的成绩(FOX,C,ENGLIS) 程序运行时显示一个简单的菜单,例如: (1) 信息输入(INPUT (2) 总分统计(COUNT (3) 总分排序(SORT (4) 查询(QUERY 其中: (1) 对 4 个学生的信

2、息进行输入; (2) 对每个学生的 3 门课程统计总分; (3) 对 4 个学生的总分按降序排序并显示出来; (4) 查询输入一个学号后,显示出该学生的有关信息; 成绩: 指导教师: 年 月 日 课程设计评语 一. 问题描述 . 0 二. 基本要求 . 0 三. 数据结构 . 0 四. 总体设计 . 1 1. 结构图 . 1 2. 流程图 . 1 五. 详纟田设计 . 1 1. 录入模块 . 1 2. 浏览模块 . 2 3. 排序模块 . 2 4. 查找模块. 2 六. 测试与调试 . 2 七. 源程序清单 . 3 一.问题描述 编写一个简单的学生信息管理程序,能实现对学生信息的简单管理 二.

3、基本要求 建立一个 4 个学生的信息登记表,每个学生的信息包括:学号,姓名,和 3 门课程的成绩(FOX,C,ENGLIS) 程序运行时显示一个简单的菜单,例如: (1) 信息输入(INPUT (2) 总分统计(COUNT (3) 总分排序(SORT (4) 查询(QUERY 其中: (1) 对 4 个学生的信息进行输入; (2) 对每个学生的 3 门课程统计总分; (3) 对 4 个学生的总分按降序排序并显示出来; (4) 查询输入一个学号后,显示出该学生的有关信息; struct stude nt char num10;/* 学号 */.数据结构 2.3 查询函数 创建输组入排信 按学号查

4、询 按姓名查询 2.4 按学号查询函数 2.5 按姓名查询函数 输出排序结存 L 闭文件号 输入要详细设计 1.1.录入模块 调用按姓 名查询函 stude nt 定义一个结构 struct 信N用来储存 N 个学生的所有信息(学 数 char name20;/* 姓名 */ int fgrade;/* 佛学成绩 */ int cgrade;/*C 语言成绩 */ int egrade;/* 英语成绩 */ int total;/* 总分 */ st100; 四.总体设计 1.1.结构图 学生信息管理系统 - 图 4.1 2.2.流程图 printf 语句提示需要输入的内容,接着用 seanf

5、 语句输入相应内容。输入完毕后 套用保存函数 save(m)将所输入的信息写入指定文件。 2.1 录入函数 菜单选择 信息录入 信开浏览 信息排序 信息查询 2.2 排序函数 _ i _ 创建文件 开始 V 2.2. 浏览模块 声明整形变量 i 和 count,其中记录输出的学生序数,count 用来接收调用浏 览函数时所传递过来的实参,将其值传递给导出函数 load(m),使得导出的学生 人数与浏览的学生人数保持一致。通过调用 load 函数后(即给 em 数组赋值),用 for循环输出每一个学生的各种信息。 3.3. 排序模块 声明整形变量 i,j 和结构体变量 struct studen

6、t temp ,用 for 循环实现排 序功能,利用冒泡法,以 sti.totalstj.total 为条件进行排序。最后用 printf 输出排序结果。 4.4. 查找模块 声明整型变量 k,先用 printf 语句显示查询菜单,用 scanf 输入选择的查询 方式的代号,用 switch(k)进入所选择的具体查询函数,包括学号查询,姓名查 询两种方式。 学号查询中,用 scanf 语句输入需要查询的学号,并赋值给 num 用 for 循 环,循环主体判断 emi.num 中是否有输入的学号。如果有,用 printf 语句输出 与学号相对应的该学生的所有信息,再跳出循环。按姓名查询与此方法类

7、似,不 再叙述。 六.测试与调试 1.1. 运行程序,进入主菜单 图 6.1 主菜单 2.2. 输入数字“1 1”创建学生信息 图 6.2 输入职工信息 3.3. 输入数字“ 2 2”,浏览学生信息 图 6.3 浏览职工信息 4.4. 输入数字“ 3 3”,按总分排序 5.5.输入数字“ 4 4” ,查询学生信按总分排序 5.1 选择查询方式“ 1” 5.2 选择查询方式“ 2” 图 6.5 按学号查询 图 6.6 按姓名查询 七.源程序清单 #i nclude #include #include struct student char num10;/* 学号 */ char name20;/

8、* 姓名 */ int fgrade;/* 佛学成绩 */ int cgrade;/*C 语言成绩 */ int egrade;/* 英语成绩 */ int total;/* 总分 */ st100; 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(); in

9、t 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( 您输入有误,请重新选择 !); while(flag=0); while(flag=1) switch(n) case 1:printf(n . .输入学 生 信 息 . . . n);printf(n);input();break; case 2:printf(n . .浏览学 生 信 息 . . . n);printf(n);display();b

10、reak; case 3:printf(n .按总 分 排 序 . . . n);printf(n);sort_total();break; case 4:printf(n . .查询学 生 信 息 . . . n);printf(n);search();break; case 0:exit(0);break; default:break; getchar(); printf(n); printf( 是否继续运行( y or n ):n); scanf(%c,&a); if(a=y) flag=1; system(cls); /* 清屏 */ menu(); /* 调用菜单函数 */

11、printf( 请再次选择你需要操作的步骤 (1-4):n); scanf(%d,&n); printf(n); else exit(0); printf(n); printf(n); void menu() /* printf( *n); printf( printf( printf( printf( printf( printf( *n); 菜单函数 */ * 1. 2. 3. 4. 0. 欢迎进入学生信息管理系统 录入学生信息 n); 浏览学生信息 n); 按总分排序 n); 查询学生信息 n); 退出n); * 谢谢使用 void input() /* 输入学生信息并保存 */

12、 int i; printf( 请输入需要创建信息的学生人数 (1-10):n); scanf(%d,&m); for(i=0;im;i+) printf( 请输入学号 :); scanf(%s,sti.num); printf( 请输入姓名 :); scanf(%s,); printf( 请输入佛学成绩 :); scanf(%d,&sti.fgrade); printf( 请输入 C 语言成绩 :); scanf(%d,&sti.cgrade); printf( 请输入英语成绩 :); scanf(%d,&sti.egrade); sti.to

13、tal=sti.fgrade+sti.cgrade+sti.egrade; /* 信息输入已经完成 */ save(m); return;/* 返回主界面 */ void display()/* 浏览学生信息 */ int i; int count=0; m=load(); printf(n 学号t 姓名t 佛学成绩tC 语言成绩t 英语成绩t 总分 n);/* 输出学生信息 */ for(i=0;im+count;i+) printf(n%st%st%dtt%dtt%dtt%dn,sti.num,,st i.fgrade,sti.cgrade,sti.egrade,sti.t

14、otal); void sort_total() /* 按总分排序 */ int i,j; struct student temp; /* 声明结构体变量 */ printf(t 学号t 姓名t 佛学成绩tC 语言成绩t 英语成绩t 总分 n); for(i=0;im;i+)/* 对数据进行排序 */ for(j=i+1;jm;j+) if(sti.totalstj.total) temp=sti; sti= stj; stj=temp; printf(nt%st%st%dtt%dtt%dtt%dn,sti.num,,sti .fgrade,sti.cgrade,sti.egr

15、ade,sti.total); void search() /* 查询函数 */ int k; /* 定义局部变量 */ m=load(); printf(n 按学号查询请按 1,t 按姓名查询请按 2n); printf(n 请输入查询方式 :); scanf(%d,&k); switch(k)/* 查询方式的选择 */ case 1:search_num();break;/* 按学号查询 */ case 2:search_name();break;/* 按姓名查询 */ printf(nPress any key to enter menu . ); getchar(); retu

16、rn; /* 返回主界面 */ void search_num()/*(1) 按学号查找 */ int i; char temp30; printf(n 请输入要查找的学号 :); scanf(%s,temp); for( i=0;im;i+) if(strcmp(temp,sti.num)=0) 学号t 姓名t 佛学成绩tC 语言成绩t 英语成绩t 总分n); printf(n%st%st%dtt%dtt%dtt%dn,sti.num,,st i.fgrade,sti.cgrade,sti.egrade,sti.total); void search_name()/*(2)

17、按姓名查找 */ int i; char temp30; printf(n 请输入要查找的姓名 :); scanf(%s,temp); for( i=0;im;i+) if(strcmp(temp,)=0) printf(n 学号t 姓名t 佛学成绩tC 语言成绩t 英语成绩 t 总分 n); printf(n%st%st%dtt%dtt%dtt%dn,sti.num,,st i.fgrade,sti.cgrade,sti.egrade,sti.total); int load() /* 导入函数 */ FILE*fp; int n=0; if(fp=fopen(student_list,rb)=NULL) printf(cannot open filen); exit(0); printf(n else do fread(&stn,sizeof(struct student),1,fp); n+; while(feof(fp)=0); fclose(fp);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论