C语言程序设计情况分析报告资料.doc
大连理工大学大连理工大学程序设计基础程序设计基础设计报告设计报告 程序设计基础程序设计基础成绩管理系统设计成绩管理系统设计 学 生 姓 名 杨晓欧 院系、班级 电信学部 电气 1404 学 号 201481098 联 系 电 话 18340833523 Email 完 成 日 期 2015.06.05 装 订 线 一、设计任务 随着信息时代的到来,办公趋向无纸化、高效化,对于学生成绩的管理更是如此, 基于此,我选择了程序设计基础学生成绩管理系统作为我的课题,希望能够模仿 教务系统中成绩的录入与查询功能,编写自己的成绩管理系统。从教师与学生两个角 度分别实现成绩的录入、删除、修改、排序、导出与查询功能。 二、 程序设计与实现 1. 程序结构 本程序面向两类用户即教师与学生,有两个入口,教师登录需密码,共有添加, 删除,修改,查找,密码修改五个功能,学生权限为查看本人详细成绩和本班排名。 系统程序组成框图如图 1.所示。 图 学生成绩管理系统程序功能组成框图 2. 数据描述 本系统使用的结构体。结构体类型定义及结构体成员含义说明如图;采用数组进 行数据存储。 图 结构体类型定义及结构体成员含义说明 程序设计基础学生成绩管理系统 教师入口学生入口 添加记录 查看本班成绩 查看本人成绩 密码修改 分类排序查找 修改记录 删除记录 该程序除结构体数组外还定义了全局变量 int tol,存储文件中学生记录总数,在每 次添加/删除操作后都会自增/自减,用来作为读取记录时结束的标志。 3. 功能模块设计 1 函数名void login 函数功能显示登录界面 入口参数无 出口参数无 算法描述用 if 判断用户输入跳转相应界面。 2 函数名void starint x 函数功能在屏幕上显示给定个数“*”,用于优化界面。 入口参数整型,给定的个数 出口参数无 算法描述用 for 循环显示*。 3 函数名 void pwd 函数功能密码输入界面 入口参数无 出口参数无 算法描述用 strcmp 对从键盘接收输入值与从文件读取的密码值进行比较 4 函数名void key 函数功能密码修改界面 入口参数无 出口参数无 算法描述将读入的新密码密码写入文件 5 函数名void file_wint t 函数功能将学生记录写入文件 入口参数整型,学生记录总数 出口参数无 算法描述for 与 fprintf 6 函数名void file_rint t 函数功能从文件中读入学生记录 入口参数整型,学生记录总数 出口参数无 算法描述for 与 fscanf 7 函数名void st 函数功能学生登录界面 入口参数无 出口参数无 算法描述获取学号,使用顺序查找在文件中查找该记录 8 函数名void st_scanint i 函数功能学生查看功能 入口参数整型,为学生该学生信息所在数组下标 出口参数无 算法描述 如图 图 st_scan函数流程图 开始 输出菜单 输入选择 e e0 返回上一级 e1 e2 输出个人成绩 输入班级 i总数 班级相同 输出该记录 i 结束 Y N N Y Y N N Y Y N 9 函数名void tec 函数功能教师功能菜单 入口参数无 出口参数无 算法描述switch 语句实现功能选择 10函数名void insert 函数功能添加记录 入口参数无 出口参数无 算法描述先将原有信息读入结构体数组,追加新记录,然后一起写入文件 11函数名void correct 函数功能修改记录 入口参数无 出口参数无 算法描述读取文件,查找要修改的记录,修改,重新写入文件 12函数名void del 函数功能删除记录 入口参数无 出口参数无 算法描述读取文件,查找要删除的记录,删除,重新写入文件 13函数名void scan 函数功能教师查看功能菜单 入口参数无 出口参数无 算法描述switch 语句进行功能选择 14函数名void scan_n 函数功能教师按学号查找功能 入口参数无 出口参数无 算法描述读入文件,顺序查找 15函数名void scan_c 函数功能教师按班级查看功能 入口参数无 出口参数无 算法描述读入文件,显示班级与输入值相同的学生信息 16函数名void scan_f 函数功能查看挂科同学名单 入口参数无 出口参数无 算法描述读入文件,显示挂科标志量 mem.flag 为 1 的同学 17函数名void scan_a 函数功能查看全部学生排名 入口参数无 出口参数无 算法描述读入文件,选择法排序后显示 三、 设计难点与解决方法 1.页面跳转不正常的问题。例如在密码输入多次错误时,会持续显示报错信息, 键盘无法输入指令。在添加了 fstdin语句后解决了问题。 密码修改问题。之前密码定义为常量,不能进行修改,为实现密码修改功能及加 密,将密码写入二进制文件,实现了修改,但是并没有做到加密。 四、设计效果与不足之处 系统启动界面,调用 system(“cls”);Sleep; 通过学号查看个人成绩 查看班级成绩 教师登录需要输入密码 教师登录后的菜单界面 删除记录功能 密码修改功能 教师查看功能子菜单 全部学生排名 存在的不足1.界面显示、数据输出不整齐 2.部分功能未实现屏蔽非法输入 五、对本课程学习体会及建议 C 语言是一门重视实践的课程,无论课堂上你听的有多仔细,上机实践还是会有 这样那样的问题,一些错误只有自己亲身经历,并努力解决才会影响深刻。从刚开始 的面对一堆 error 手足无措,到之后盯着调试窗口一点一点找逻辑错误,到现在想着如 何优化算法,输出友好界面,感谢 12 周以来老师的辛苦讲授让我成长,当然我们现在 的水平还只是入门,今后还有更多的挑战等着我们,但我相信只要多动脑,勤动手, 我们编程的水平会有更大的的提高 对课程的一点建议是希望上机与理论课能交替进行,及时训练巩固理论课所学知 识。 附录程序使用说明 1 程序运行环境本系统使用 C-Free 5.0 开发。 2 文件夹设置文件夹内共包含一个源程序(*.c),一个可执行文件(*.),一个密 码记录文件(*.dat),三个文本文档记录数据及说明(*.txt),三个程序导出的成 绩单(*.doc)。 3 操作说明教师初始密码为 123456;本系统最大可容纳 100 人,学生信息录入按 以下格式即可“201481098 杨晓欧 男 电气 1404 88 88 88”,其余操作按 照提示即可。