1、第 - 1 - 页 共 30 页 目录目录 学生成绩管理程序学生成绩管理程序 题目要求题目要求 2 2 设计目的设计目的 2 2 总体设计总体设计 3 3 详细设计详细设计 3 3 调试与测试调试与测试 1212 源程序源程序 1414 总结 3030 第 - 2 - 页 共 30 页 学生成绩管理程学生成绩管理程序 序 一 题目要求 1. 问题描述: 对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号, 姓名,年龄,数学,英语,物理成绩,默认以学号为序存放. 2. 要求: (1)一个文件按以班为单位存储学生记录. (2)将允许的操作分为四种,以 A,B ,C,D,E,F 为标志:
2、 A:插入一个学生记录; B:修改学生记录; C:删除一个学生记录; D:查找一个学生记录; E:浏览学生成绩: F:退出 3. 计算学生的总成绩. 4. 按学号排序输出全班学生成绩表 . 二 设计目的 根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出 等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外 还应提供键盘式选择菜单实现功能选择. 三 总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删 除模块,查找模块,显示模块. 第 - 3 - 页 共 30 页 学生成绩管理系统 数据输入 数据显示 数据修改 数据删除 数据查找
3、 四 详细设计 1. 主函数: 主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用, 其中各功能模块用菜单方式选择. 流程图: 显示一系列功能模块 N 输入 n,判断 n 是否是 A-F Y 根据 n 的值调用各功能模块函数 程序: /#include “head.h“ int menu_select() char c; printf(“nn“); printf(“ | 1. 增加学生记录 5.统计信息 |n“); printf(“ | 2. 查询学生记录 6.打开文件 |n“); printf(“ | 3. 修改学生记录 7.保存文件 |n“); printf(“ | 4. 学生
4、纪录排序 8.显示记录 |n“); printf(“ | 0. 退出系统 |n“); printf(“nn“); printf(“请选择(0-8):“); c=getchar(); getchar(); return (c-0); 第 - 4 - 页 共 30 页 2. 输入模块: 分析: 单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数, 采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方 便信息管理. 如果要存放若干学生信息就用结构体数组: void addrecord(student stud) int i=0,j,num; char str5; if(numstus!=0) printf(“已有记录存在是否覆盖?(y/n)n“); gets(str); if(str0=Y|str0=y) i=0; else i=numstus; printf(“请输入增加的学生信息条目数:“); scanf(“%d“, if(i=0) numstus=num; else nu