成绩管理系统课程设计_第1页
成绩管理系统课程设计_第2页
成绩管理系统课程设计_第3页
成绩管理系统课程设计_第4页
成绩管理系统课程设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录 1 需求分析需求分析.1 1.1问题描述.1 1.2输入数据要求.1 1.3输出数据要求.1 1.4开发环境和工具.1 1.5成员分工.1 2 总体设计总体设计.2 2.1总体设计思路.2 2.2模块结构图.4 2.3模块说明.5 3 详细设计详细设计.5 3.1数据类型定义.5 3.2修改模块实现方法.10 3.3查询模块实现方法.12 4 测试结果及分析测试结果及分析.18 5 总结总结.19 参考文献参考文献.21 附录 21 1 需求分析需求分析 问题描述问题描述 1.1 数据需求数据需求 成绩表信息:学号,班级,姓名,语文,数学,英语 成绩信息存放在文件中,以学号的先后顺序存

2、放 1.21.2 处理需求处理需求 (1)打开:显示文件中的所有成绩记录,提供分页显示 (2)保存:将成绩表的更新结果存入文件 (3)更新:可插入、删除、修改各科目成绩 (4)查找:按学号,姓名、班级 (5)统计:求每门课程的平均分,求每个学生的平均分 (6)排序:按学号,某课程的分数,各人的平均分 1.31.3 其它要求其它要求 (1)提供菜单选择以上功能 (2)自学:文件的读写,清屏函数 1.41.4 开发环境和工具开发环境和工具 开发环境:windows 2000 开发工具:visual c+ 6.0 1.51.5 成员分工成员分工: 蜘蛛侠:总体设计、查询模块、排序模块、 超 人:系统

3、测试、主调模块、更新模块、 2 2 总体设计总体设计 2.12.1 总体设计思路总体设计思路 1.1.设计思路(设计思路(功能模块) 1 显示成绩 2 增加成绩 3 修改成绩 4 删除 5 姓名查找 6 学号查找 7 排序 a 学号 b 语文 c 英语 d 数学 e 平均 8 语文平均 9 数学平均 10 英语平均 11 退出 2.2.数据储存数据储存 文件存储 文件的储存是通过对两个函数的调用来实现的: 1 io_readinfo 即学生信息从文件中读取。 2 io_writeinfo 即将学生信息写入文件。 2.22.2 模块结构图模块结构图 学学 生生 成成 绩绩 管管 理理 系系 统统

4、 1 显 示 成 绩 2. 增 加 成 绩 3. 修 改 成 绩 4. 删 除 5 按 姓 名 查 询 6. 按 学 号 查 询 7. 排 序 8. 语 文 平 均 9 数 学 平 均 10 英 语 平 均 11 退 出 按 学 号 按 平 均 成 绩 按 英 语 按 数 学 按 语 文 2.32.3 模块说明模块说明 1 显示成绩模块:a 显示全部学生成绩信息(void student_display())包括:姓名,语文成绩,数学成绩,英语 成绩,平均成绩。 b 显示主界面 void homepage() 2 删除学生成绩模块:用 void student_delete()来实现。 3 平

5、均成绩模块:例如求语文成绩的平均分,具体用 float chinese_average(struct student students)来实现。 4 查询学生信息请模块:void student_selectbyname() 3.3.详细设计详细设计 3.13.1 数据类型定义数据类型定义 函数名称或其他部分功能 main总控函数 struct student students结构体数组 avg(struct student stu)平均成绩 student_modify()修改学生信息 student_delete()删除学生信息 student_displaysingle显示单条学生信息

6、student_selectbyname查询指定学生信息(姓 名) student_selectbynumber查询指定学生信息(学 号) student_sortbyaverage按平均成绩将学生排序 student_sortbynumber按平均成绩将学生排序 student_sortbychinese按语文成绩将学生信息 排序 student_display显示全部学生信息 io_readinfo学生信息从文件中读取 fclose(fp)关闭文件 io_writeinfo将学生信息写入文件 denglu()登陆 waiting等待界面 常数提供常数 system(clsn)清屏操作 sy

7、stem(color 3f)控制颜色 3.23.2 模块实现模块实现 1.1.算法思想算法思想 设计一个主函数(设计一个主函数(mainmain) ,定义一些功能子模块函数,在主函数中调,定义一些功能子模块函数,在主函数中调 用主页用主页(homepage)(homepage)函数,然后在主页函数中通过对各个子模块的函数的调用实函数,然后在主页函数中通过对各个子模块的函数的调用实 现各功能。外加一个登陆函数现各功能。外加一个登陆函数(denglu)(denglu)设置用户名和密码和一个等待函数设置用户名和密码和一个等待函数 (waiting)(waiting);在主函数末尾调用文件的读入和写入

8、函数实现对操作的保存。;在主函数末尾调用文件的读入和写入函数实现对操作的保存。1 1, 显示模块定义一函数对结构体数组中的成员输出。显示模块定义一函数对结构体数组中的成员输出。2 2 定义求语文成绩平均分函定义求语文成绩平均分函 数,对结构体数组中的成员数,对结构体数组中的成员 chinesechinese 求和,然后除以存储学生数得平均分。数求和,然后除以存储学生数得平均分。数 学,英语类似。学,英语类似。3 3 删除学生成绩,通过对类似与线性表的操作,将后一成员覆删除学生成绩,通过对类似与线性表的操作,将后一成员覆 盖到前一成员。盖到前一成员。4 4 查找,姓名返回数组下标查找。查找,姓名

9、返回数组下标查找。 2 2 具体实现具体实现 1 1 显示学生成绩显示学生成绩 void student_display() /*定义显示全部学生信息函数*/ int i; printf(%10s%10s%10s%10s%10s%10s%10sn,学号,班级, 姓名,语文成绩,数学成绩,英语成绩,平均成绩); printf( -); printf(-n); for (i=0;inum;i+) printf(%10d%10s%10s%10.2f%10.2f%10.2f%10.2fn, studentsi.number,studentsi.class,studentsi.name, student

10、si.chinese,studentsi.math,studentsi.english, studentsi.average); getch(); waiting(); homepage(); 2 2 学生平均成绩学生平均成绩 float chinese_average(struct student students) /*定义求语文成绩平均分函数*/ int i;float sum=0.0; for(i=0;inum;i+) sum=sum+studentsi.chinese; return (sum/num); float math_average(struct student stude

11、nts) /*定义求数学成绩平均分函数*/ int i;float sum=0.0; for(i=0;inum;i+) sum=sum+studentsi.math; return (sum/num); float english_average(struct student studens) /*定义求英语成绩平均分函数*/ int i;float sum=0.0; for(i=0;inum;i+) sum=sum+studentsi.english; return (sum/num); 3 3 删删 3 3 删除学生成绩删除学生成绩 void student_delete() /*定义删除

12、学生信息函数*/ int i; while(1) int number; int index; printf(请输入要删除的学生的学号:); scanf(%d, getchar(); index=student_searchbyindex(number); /*调用通过学号返回数组下标函数*/ if (index=-1) printf(没有该学生的信息!n); else printf(你要删除的学生信息为:n); student_displaysingle(index); /*调用显示单条学生信息函数*/ printf(是否真的要删除?(y/n); if (getchar()=y) for (

13、i=index;inum-1;i+) studentsi=studentsi+1; num-; getchar(); printf(还要删除其他同学的信息吗?(y/n); io_writeinfo(); if (getchar()=n) waiting(); homepage(); break; 4 4 查询信息模块查询信息模块 void student_selectbyname() /*定义按姓名查询学生信息函数*/ while(1) char name20; int index; printf(请输入要查询的学生的姓名:); scanf(%s, getchar(); index=stude

14、nt_searchbyname(name); /*调用按姓名返回数组下标函数*/ if (index=-1) printf(该学生的信息不存在!n); else printf(你要查询的学生信息为:n); student_displaysingle(index); /*调用显示单条学生信息函数*/ printf(还要查询其他同学的信息吗?(y/n); if (getchar()=n) waiting(); homepage(); break; void student_selectbynumber() /*定义按学号查询学生信息函数*/ while(1) int number; int index; printf(请输入要查询的学生的学号:); scanf(%d, getchar(); index=student_searchbyindex(number); /*调用按学号返回数组下标函数*/ if(index=-1) printf(该学生的信息不存在!n); else printf(你要查询的学生信息为:n); student_displaysingle(index); /*调用显示单条学生信息函数*/ printf(还要查询其他同学的信息吗?(y/n); if(getchar()=n) waiting();

温馨提示

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

评论

0/150

提交评论