《C语言程序设计报告资料.doc》由会员分享,可在线阅读,更多相关《C语言程序设计报告资料.doc(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、|大连理工大学程序设计基础设计报告程序设计基础成绩管理系统设计学 生 姓 名: 杨晓欧 院系、班级 : 电信学部 电气 1404 学 号 : 201481098 联 系 电 话: 18340833523 Email : 完 成 日 期: 2015.06.05 装订线|一、 设计任务随着信息时代的到来,办公趋向无纸化、高效化,对于学生成绩的管理更是如此,基于此,我选择了程序设计基础学生成绩管理系统作为我的课题,希望能够模仿教务系统中成绩的录入与查询功能,编写自己的成绩管理系统。从教师与学生两个角度分别实现成绩的录入、删除、修改、排序、导出与查询功能。二、 程序设计与实现1. 程序结构本程序面向
2、两类用户即教师与学生,有两个入口,教师登录需密码,共有添加,删除,修改,查找,密码修改五个功能,学生权限为查看本人详细成绩和本班排名。系统程序组成框图如图 1.所示。图 学生成绩管理系统程序功能组成框图2. 数据描述本系统使用的结构体。结构体类型定义及结构体成员含义说明如图;采用数组进行数据存储。图 结构体类型定义及结构体成员含义说明程序设计基础学生成绩管理系统教师入口 学生入口添加记录 查看本班成绩查看本人成绩密码修改分类排序查找修改记录删除记录|该程序除结构体数组外还定义了全局变量 int tol,存储文件中学生记录总数,在每次添加/删除操作后都会自增/自减,用来作为读取记录时结束的标志。
3、3. 功能模块设计(1) 函数名:void login ()函数功能:显示登录界面入口参数:无出口参数:无算法描述:用 if 判断用户输入跳转相应界面。(2) 函数名:void star(int x)函数功能:在屏幕上显示给定个数“*”,用于优化界面。入口参数:整型,给定的个数出口参数:无算法描述:用 for 循环显示*。(3) 函数名: void pwd()函数功能:密码输入界面入口参数:无出口参数:无算法描述:用 strcmp 对从键盘接收输入值与从文件读取的密码值进行比较(4) 函数名:void key()函数功能:密码修改界面入口参数:无出口参数:无算法描述:将读入的新密码密码写入文件
4、(5) 函数名:void file_w(int t)函数功能:将学生记录写入文件入口参数:整型,学生记录总数出口参数:无算法描述:for 与 fprintf(6) 函数名:void file_r(int t)函数功能:从文件中读入学生记录|入口参数:整型,学生记录总数出口参数:无算法描述:for 与 fscanf(7) 函数名:void st()函数功能:学生登录界面入口参数:无出口参数:无算法描述:获取学号,使用顺序查找在文件中查找该记录(8) 函数名:void st_scan(int i)函数功能:学生查看功能入口参数:整型,为学生该学生信息所在数组下标出口参数:无算法描述: 如图图 st
5、_scan()函数流程图 开始输出菜单输入选择 ee=0? 返回上一级e=1?e=2?输出个人成绩输入班级i总数?班级相同?输出该记录i+结束YNNYYNNYYN|(9) 函数名:void tec()函数功能:教师功能菜单入口参数:无出口参数:无算法描述:switch 语句实现功能选择(10)函数名:void insert()函数功能:添加记录入口参数:无出口参数:无算法描述:先将原有信息读入结构体数组,追加新记录,然后一起写入文件(11)函数名:void correct()函数功能:修改记录入口参数:无出口参数:无算法描述:读取文件,查找要修改的记录,修改,重新写入文件(12)函数名:voi
6、d del()函数功能:删除记录入口参数:无出口参数:无算法描述:读取文件,查找要删除的记录,删除,重新写入文件(13)函数名:void scan()函数功能:教师查看功能菜单入口参数:无出口参数:无算法描述:switch 语句进行功能选择(14)函数名:void scan_n()函数功能:教师按学号查找功能入口参数:无出口参数:无算法描述:读入文件,顺序查找|(15)函数名:void scan_c()函数功能:教师按班级查看功能入口参数:无出口参数:无算法描述:读入文件,显示班级与输入值相同的学生信息(16)函数名:void scan_f()函数功能:查看挂科同学名单入口参数:无出口参数:无
7、算法描述:读入文件,显示挂科标志量 mem.flag 为 1 的同学(17)函数名:void scan_a()函数功能:查看全部学生排名入口参数:无出口参数:无算法描述:读入文件,选择法排序后显示三、 设计难点与解决方法1.页面跳转不正常的问题。例如在密码输入多次错误时,会持续显示报错信息,键盘无法输入指令。在添加了 fflush(stdin)语句后解决了问题。|密码修改问题。之前密码定义为常量,不能进行修改,为实现密码修改功能及加密,将密码写入二进制文件,实现了修改,但是并没有做到加密。四、 设计效果与不足之处系统启动界面,调用 system(“cls”);Sleep();|通过学号查看个人成绩查看班级成绩教师登录需要输入密码教师登录后的菜单界面|删除记录功能密码修改功能教师查看功能子菜单全部学生排名