成绩分析系统C语言.doc

上传人:钟*** 文档编号:5403918 上传时间:2020-01-28 格式:DOC 页数:34 大小:508.50KB
返回 下载 相关 举报
成绩分析系统C语言.doc_第1页
第1页 / 共34页
成绩分析系统C语言.doc_第2页
第2页 / 共34页
成绩分析系统C语言.doc_第3页
第3页 / 共34页
点击查看更多>>
资源描述
精选 word 范本 学生成绩分析系统 目录 摘 要 2 1 绪论 2 2 系统分析 2 2 1 可行性分析 3 2 1 1 技术分析 3 2 1 2 经济分析 3 2 1 3 操作可行性 3 2 2 需求分析 3 2 2 1 功能需求 3 2 2 2 数据需求 3 2 2 3 性能需求 3 3 总体设计 4 3 1 系统结构 4 3 2 功能模块设计 5 3 3 系统设计方案 5 3 4 系统设计方案 6 3 4 1 学生信息录入模块 6 3 4 2 学生信息的查询模块 7 3 4 3 学生信息修改模块 7 4 调试与测试 8 4 1 调试 9 4 2 测试 9 5 结论 10 结束语 10 参考文献 11 附录 1 用户手册 12 附录 2 源程序 15 精选 word 范本 摘 要 成绩分析系统是一个教育单位不可缺少的重要组成部分 它的内容对于学 校的教务管理人员来说至关重要 作为计算机应用的一部分 利用计算机进行 学生成绩信息的管理无疑是一条行之有效且高效的办法 学生成绩管理系统主要提供方便高效的管理功能以及网上的信息查阅平台 学生可以查阅相关的成绩和基本信息 管理员可以管理所有信息 包括浏览所 有用户信息以及相关的成绩信息 录入 修改 删除成绩和信息 注册新用户 功能 还包括对每系或每班各科成绩进行分析 对所开课程的成绩分析等 学生成绩管理系统是构建于 Visual C 6 0 平台上的 Windows 应用程序 具有平台构建免费 运行速度快 程序小 扩展性好 技术先进等特点 关键词 管理 信息 学生成绩分析系统 1 绪论 在现代 高科技的飞跃发展 计算机的大量普及 使得人们生活节奏越来 越快 因此对教育行业的多元信息进行有效的管理工作 也成为教育行业中的 重中之重 目前 学校工作繁杂 资料重多 虽然各类管理信息系统已进入高 校 但还未普及 而对于学生成绩管理来说 目前还没有一套完整的 统一的 系统 为各高校教务工作人员减轻负 提高工作效率 所以制作了学生成绩分 析系统 学生成绩分析系统依据开发要求主要应用于教育系统 完成对日常的教育 工作中学生成绩档案的数字化管理 比较系统地对教务 教学上的各项服务和 信息进行管理 使数据管理更现代化 自动化 智能化 人性化 同时 减轻 了学院教务人员管理的工作量 缩小开支 提高工作效率和准确率 使其变得 更具有条理性 科学性 为教育行业做出了巨大的贡献 也为今天的民办教育 在未来市场的竞争力有所提高 学生成绩分析系统使用了全新的成绩管理理念 系统从完善的基础信息管 理 和对创建新用户 已创建的成绩数据的录入 修改 浏览 统计等功能操 作 基本能够满足各高校教师的需要 根据课程设计任务书要求 本系统开发主要完成以下功能和性能 精选 word 范本 1 学生基本信息及成绩所选科目成绩的录入 2 基本信息的查询 分系 班级 分科目 与修改 3 对每系或每班各科成绩进行分析 即求单科平均成绩 及格率和优 秀率 4 对所开课程的成绩分析 求其平均成绩 最高分和最低分 2 系统分析 2 1 可行性分析 2 1 1 技术可行性分析 不管是从计算机软件环境或我们自己的技术能力的角度来看 学生成绩分 析系统的开发都是具有一定的可行性 2 1 2 经济可行性分析 这是个超小型的管理系统 从投入的人力 财力与物力来讲是非常之小的 只要一台电脑 一台打印机 这个系统就可以搞起来 考虑到学校里有电脑 现只要购置一台打印机就可以了 从节省人力方面 可以让管理人员从繁与复 杂的工作中解脱出来 做更多的工作 可以给教学管理提高一个层次 2 1 3 操作可行性可行性 本系统设计清晰 有良好的用户接口 操作简洁 符合教务管理的工作需 要 并达到操作过程中的直观 方便 实用 安全等要求 因此操作方面具有 可行性 综上所述 本系统的开发是可行的 2 2 需求分析 2 2 1 功能需求 设计一个学生成绩分析系统 有关该系统信息的描述 如 学号 姓名 班级 和所选科目及各科成绩等 主要内容如下 1 学生基本信息及成绩所选科目成绩的录入 2 基本信息的查询 分系 班级 与修改 精选 word 范本 3 对每系或每班各科成绩进行分析 即求单科平均成绩 及格率和优 秀率 4 对所开课程的成绩分析 求其平均成绩 最高分和最低分 2 2 2 数据需求 本次课程设计的题目为学生成绩分析系统 编程者要掌握学生的基本信 息 包括学号 姓名 班级 和所选科目及各科成绩等 并对录入的记录进行 添加 删除 修改等基本操作 还可按照分系 班级分别对基本信息进行查询 除此外 用户还可对所开课程进行成绩分析 2 2 3 性能需求 学生成绩分析系统记录了一些私人的事务 外不能打开该记录 这就要求 本系统要具备一定的安全性 根据用户的要求 学生的基本信息不会丢失或自 动更改 不能出现差错 确保记录的稳定性和可靠性 再就是学生成绩分析系 统的占用的电脑空间要小 便于携带 程序要简单 操作不会占用用户很多时 间 这就要求程序的响应速度要快 3 总体设计 3 1 系统结构 学生信息录入 基本信息的查询 基本信息的修改 对所开课程的成绩分析 学生成绩分析系统 精选 word 范本 3 2 功能模块设计 根据系统功能的要求 工作备忘录主要分为 5 个模块 分别执行要求 中的功能 学生基本信息及成绩所选科目成绩的录入 基本信息的查询 分系 班级 与修改 对每系或每班各科成绩进行分析 即求单科平均成绩 及格率 和优秀率 对所开课程的成绩分析 求其平均成绩 最高分和最低分 系 统管理中用于系统退出 1 学生信息录入 模块 在登录界面上输入学生信息 2 基本信息的查询 模块 在界面上输入用班级或系查询学生信息 3 记录修改模块 修改窗体上表中的工作记录表信息 并保存修改的信 息 4 课程程序分析模块 输入科目 显示其平均成绩 最高分和最低分 3 3 系统设计方案 根据系统功能的要求 制作了学生成绩分析系统界面 学生信息录入 基 本信息的查询 成绩分析等程序 建立如下结构 char number 6 char name 20 char sex 4 char clas 20 char xi 10 float subject numsubs float score float average int index student 定义函数 extern int numstus 学生数目 精选 word 范本 extern student pointer 指向结构体数组 extern int lens int menu select 函数声明 int openfile student stu int findrecord student stud int writetotext student stud void welcome void display1 void showtable void sort student stu void deleterecord student stu int i void addrecord student stud void display student stud int n1 int n2 void amendrecord student stud void count student stud void sortnum student stud void sortnum2 student stud void sortname student stud void sortname2 student stud void sortcount student stud void sortcount2 student stud void statistic student stud void display1 3 4 各功能模块设计与实现 3 4 1 学生信息录入模块 在界面上输入学生信息 流程图如下所示 精选 word 范本 主界面 按要求依次输入学 号 姓名 性别 班 级 系别和五科成 绩 是否继续输入 输入 1 N 3 4 2 学生信息的查询模块 在界面上输入用班级或系查询学生信息 进行查询 查询功能的流程如下 所示 开始 输入 查询 条件 显示记录信 息 结束 Y N 条件是否满 足 精选 word 范本 3 4 3 学生信息修改模块 将学生信息进行修改 再将修改的信息保存到数据库中 修改功能的流程图 如下所示 主界面 输入 3 按学号查询所要修 改的学生 是否删 除该学 生信息 Y 显示最新学 生信息 是 否继续修改 依次输入学号 姓名 性别 班级 系别和五科成绩 Y N N 4 调试与测试 系统的开发经过了问题的定义 可行性研究 需求分析 总体设计 详细 设计和编码阶段以后就进入系统的调试和测试阶段 在测试过程中发现系统中 精选 word 范本 存在的疏漏 要对程序做相应的修改和完善工作 由于系统中的缺陷通常是由 于某些特定情况考虑不周造成的 因此测试不是为了表明程序正确 测试的目 的是以尽可能少的代价和时间找出系统中潜在的错误和缺陷 4 1 调试 调试是软件开发过程中的一个重要环节 也是最复杂 对软件开发者者来 说也是最艰巨的任务 调试的任务是及时改正测试过程中发现的软件错误 具 体地说 调试过程由两个步骤组成 它从表示程序中存在错误的某迹象开始 首先确定错误的准确位置 也就是找出哪个模块或哪个语句引起的错误 然后 仔细研究推断代码以确定问题的原因 并设法改正 本系统调试过程中遇到问题 原因和解决方法如下面介绍 1 查询模块 当正确输入查找信息时 系统却不能够得到所要查找的学生信息 解决办法及步骤 1 检查所编写的程序代码是否完全正确 若不是 则改之 然后再继续正 确输入查找信息看能否得到所要查找的学生信息 2 检查当我们在输入查找信息时 看是否我们输入的信息有误 若是这样 的话 我们应当仔细输入查找信息 4 2 测试 测试时要遵循 录入数据时数据库是否正确录入 修改后的数据能否再正常录入数据库 处理数据时 数据库中的数据能否正常输出 查询数据时 数据能否从数据库中正常输出 删除数据时 数据能否从数据库中正常删除 精选 word 范本 在测试时 首先要仔细认真的输入正确数据 这样才能保证测试的正确性 和有效性 在修改数据库后 要注意数据能否正常录入 在修改数据库后 一 定不能忘了保存 处理数据时 要注意数据是否输出 如果不能的话 重新连 接数据库再试 查询数据时 要注意数据能否从数据库中正常输出 删除数据 时 要注意数据能否数据库中正常删除 若不能 则查看删除语句是否正确 测试该系统中的功能基本上符合设计要求 系统稳定性良好 运行正常 至此 本次测试圆满结束 5 结论 经过两周的努力 课程设计终于顺利完成 课程设计的任务书上要求的功 能也都成功实现 只是对每系或每班各科成绩进行分析 即求单科平均成绩 及格率和优秀率 由于能力有限无法完成十分遗憾 结束语 经过一周的课程设计 我学到了很多东西 巩固和加深了对编程的理解 提高综合运用本课程所学知识的能力 培养了我选用参考书 查阅手册及文献资料的能力 培养独立思考 深入研 究 分析问题 解决问题的能力 经过实际编译系统的分析设计 编程调试 掌握应用软件的分析方法和工程 设计方法 能够按要求编写课程设计报告书 能正确阐述设计和实验结果 正确绘制系 统和程序框图 课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会 有利于加强我们用知识理论来分析实际问题的能力 进而加强了我们对知识认 识的实践度 巩固了我们的理论知识 深化了对知识的认识 并为走向社会打 下一个良好的基础 在这次课程设计中我遇到许多问题和麻烦 得到了老师的帮助和指导 才能够 使得这次课程设计顺利的进行下去 另外 在程序调试过程中 也得到很多同 精选 word 范本 学的帮助 给我及时指出错误 提出许多宝贵意见 在此对老师和同学们表示 感谢 参考文献 1 谭浩强 C 语言程序设计 第三版 清华大学出版社 2 姜灵芝 余健 C 语言课程设计案例精编 清华大学出版社 2008 精选 word 范本 附录 1 用户手册 点击运行 首先出现的是登录界面 输入回车 界面如下 按所需要的功能输入对应数字 界面如下 精选 word 范本 学生成绩添加 界面如下 学生信息查询 界面如下 精选 word 范本 学生信息修改 界面如下 科目成绩分析 界面如下 精选 word 范本 附录 2 源程序 主要模块源代码清单 ifndef H STUDENT HH xxx 如果没有定义 xxx define H STUDENT HH xxx 定义 xx include stdio h include string h include malloc h define LEN sizeof struct message student 一个结构体数组元素的长度 define numsubs 5 学科数目 typedef struct message student 结构体定义 char number 6 char name 20 char sex 4 char clas 20 char xi 10 float subject numsubs float score float average int index student extern int numstus 学生数目 extern student pointer 指向结构体数组 extern int lens int menu select 函数声明 int openfile student stu int findrecord student stud int writetotext student stud void welcome void display1 void showtable 精选 word 范本 void sort student stu void deleterecord student stu int i void addrecord student stud void display student stud int n1 int n2 void amendrecord student stud void count student stud void sortnum student stud void sortnum2 student stud void sortname student stud void sortname2 student stud void sortcount student stud void sortcount2 student stud void statistic student stud void display1 endif include stdio h int menu select char c printf n n printf 1 增加学生记录 5 统计信息 n printf 2 查询学生记录 6 打开文件 n printf 3 修改学生记录 7 保存文件 n printf 4 学生纪录排序 8 显示记录 n printf 0 退出系统 n printf n n printf 请选择 0 8 c getchar getchar return c 0 include stdio h int findrecord student stud 查找信息 精选 word 范本 char str 2 int i num if numstus 0 printf 没有可被查找的记录 n return 1 else printf 以何种方式查找 n1 班级 t2 系 t3 名次 n gets str if str 0 1 按班级查找 printf 请输入班级 gets str for i 0 i numstus i if strcmp str stud i clas 0 display stud i i break else continue else if str 0 2 printf 请输入系 gets str for i 0 i numstus i if strcmp str stud i xi 0 display stud i i break else continue 精选 word 范本 else if str 0 3 按名次查找 printf 请输入名次 scanf d getchar for i 0 inumstus printf 没有查找所要的信息 n return 1 return i include stdio h int openfile student stu int i 0 j FILE fp char filename 20 str 2 if numstus 0 printf 已经有记录存在 是否保存 y n gets str if str 0 y str 0 Y writetotext stu printf 请输入文件名 精选 word 范本 gets filename numstus 0 if fp fopen filename rb NULL printf 无法打开该文件 n return 1 fscanf fp d fgetc fp while i numstus fscanf fp s stu i number fscanf fp s stu i name fscanf fp s stu i sex for j 0 j numsubs j fscanf fp f fscanf fp f fscanf fp f fscanf fp d i fclose fp printf 文件读取成功 n printf 是否显示纪录 y n gets str if str 0 y str 0 Y display stu 0 numstus 1 return 0 include stdio h void sort student stud int i j 0 char str 5 student p 精选 word 范本 p stud if numstus 0 printf 没有可供查询的记录 while 1 for i 0 i printf 请输入查询方式 printf 直接输入回车则结束查询操作 n printf 1 按照学号 t printf 2 按照姓名 t printf 3 按照名次 n gets str if strlen str 0 break if str 0 1 printf 请输入排序次序 n printf 1 升序排列 t printf 2 降序排列 n gets str if str 0 1 sortnum2 p else sortnum p display stud 0 numstus 1 else if str 0 2 printf 请输入排序次序 n printf 1 升序排列 t printf 2 降序排列 n gets str 精选 word 范本 if str 0 1 sortname2 p else sortname p display stud 0 numstus 1 else if str 0 3 printf 请输入排序次序 n printf 1 升序排列 t printf 2 降序排列 n gets str if str 0 1 sortcount2 p else sortcount p display stud 0 numstus 1 else printf 请输入 1 3 printf 是否退出排序 y n gets str if str 0 y str 0 Y break return void sortnum student stud int i j student temp student p p stud for i 0 i numstus i for j 0 j0 temp p j p j p j 1 p j 1 temp void sortnum2 student stud int i j student temp student p p stud for i 0 i numstus i for j 0 j0 temp p j p j p j 1 p j 1 temp void sortname student stud int i j student temp student p p stud for i 0 i numstus i for j 0 j0 精选 word 范本 temp p j p j p j 1 p j 1 temp void sortname2 student stud int i j student temp student p p stud for i 0 i numstus i for j 0 j0 temp p j p j p j 1 p j 1 temp void sortcount student stud int i j student temp student p p stud for i 0 i numstus i for j 0 jstud j index 精选 word 范本 temp p j p j p j 1 p j 1 temp void sortcount2 student stud int i j student temp student p p stud for i 0 i numstus i for j 0 jstud j 1 index temp p j p j p j 1 p j 1 temp include stdio h void statistic student stud 新增功能 输出统计信息 int i j 0 k 0 char c1 str 2 float average numsubs sum 0 if numstus 0 printf 没有可被查找的记录 n else while 1 精选 word 范本 printf 下面将统计考试成绩 n printf 请选择你要统计哪科的成绩 1 A t2 B t3 C t4 D t5 E n c1 getchar printf t 一共有个 d 记录 n numstus 总共记录数 switch c1 case 1 for i 0 istud i subject 0 k i if stud j subject 0 stud i subject 0 j i average 0 sum numstus printf t 科目 A 的最高分 n 最高分 printf t t 学号 s 姓名 s 分数 2f n stud j number stud j name stud j subject 0 printf t 科目 A 的最低分是 n 最低分 printf t t 学号 s 姓名 s 分数 2f n stud k number stud k name stud k subject 0 printf t 科目 A 的平均分是 5 2f n average 0 平均分 break case 2 for i 0 istud i subject 1 k i if stud j subject 1 stud i subject 1 j i average 1 sum numstus printf t 科目 B 的最高分 n 最高分 printf t t 学号 s 姓名 s 分数 2f n stud j number stud j name stud j subject 1 printf t 科目 B 的最低分是 n 最低分 printf t t 学号 s 姓名 s 分数 2f n stud k number stud k 精选 word 范本 name stud k subject 1 printf t 科目 B 的平均分是 5 2f n average 1 平均分 break case 3 for i 0 istud i subject 2 k i if stud j subject 2 stud i subject 2 j i average 2 sum numstus printf t 科目 C 的最高分 n 最高分 printf t t 学号 s 姓名 s 分数 2f n stud j number stud j name stud j subject 2 printf t 科目 C 的最低分是 n 最低分 printf t t 学号 s 姓名 s 分数 2f n stud k number stud k name stud k subject 2 printf t 科目 C 的平均分是 5 2f n average 2 平均分 break case 4 for i 0 istud i subject 3 k i if stud j subject 3 stud i subject 3 j i average 3 sum numstus printf t 科目 D 的最高分 n 最高分 printf t t 学号 s 姓名 s 分数 2f n stud j number stud j name stud j subject 3 printf t 科目 D 的最低分是 n 最低分 printf t t 学号 s 姓名 s 分数 2f n stud k number stud k name stud k subject 3 printf t 科目 D 的平均分是 5 2f n average 3 平均分 break 精选 word 范本 case 5 for i 0 istud i subject 4 k i if stud j subject 4 stud i subject 4 j i average 4 sum numstus printf t 科目 E 的最高分 n 最高分 printf t t 学号 s 姓名 s 分数 2f n stud j number stud j name stud j subject 4 printf t 科目 E 的最低分是 n 最低分 printf t t 学号 s 姓名 s 分数 2f n stud k number stud k name stud k subject 4 printf t 科目 E 的平均分是 5 2f n average 4 平均分 break default printf 输入错误 请输入 1 5 之间的数 n sum 0 getchar printf 是否继续进行统计 y n gets str if str 0 y str 0 Y else break include stdio h int writetotext student stud 将所有记录写入文件 int i 0 j FILE fp char filename 20 printf 输入文件名称 精选 word 范本 gets filename fp fopen filename w fprintf fp d n numstus while i numstus fprintf fp s s s stud i number stud i name stud i sex for j 0 j numsubs j fprintf fp f stud i subject j fprintf fp f f d stud i score stud i average stud i index i fclose fp printf 已成功存储 n display stud 0 numstus 1 numstus 0 return 0 include stdio h void welcome printf t n printf t t t t 欢迎进入学生成绩分析系统 t t t t t t t t 欢迎使用 n printf t n printf t t t t t t n n printf t t t t t t 制作人员列表 n printf t t t t t t 赵子豪 n t t t t t tB14130235 n printf 输入回车进入菜单栏 n printf n n getchar void showtable 精选 word 范本 printf n printf 学号 t 姓名 t 性别 t 班级 t 系 tA tB tC tD tE 总分 平均分 名次 n printf n void display student stud int n1 int n2 int i showtable 显示表头 for i n1 i n2 i printf s t s t s t s t s t 1f t 1f t 1f t 1f t 1f 1f 1f d t n stud i number stud i name stud i sex stud i clas stud i xi stud i subje ct 0 stud i subject 1 stud i subject 2 stud i subject 3 stud i subject 4 stud i score stud i average stud i index 通过循环输出数据 void display1 printf t t n n printf t t 制作人员列表 n printf t t t t t t 赵子豪 n t t t t t tB14130235 n printf t t t 欢迎下次使用 printf n n getchar include stdio h include void amendrecord student stud char str 5 供用户输入 int i 1 j if numstus 0 没有记录返回 printf 没有可供修改的记录 while i 0 printf 要删除这个学生的信息吗 y n gets str if str 0 y str 0 Y deleterecord stud i count stud else printf 确定要修改这个学生的信息吗 y n gets str if str 0 y str 0 Y printf 下面请重新输入学生的信息 n printf 请输入学号 gets stud i number printf 请输入姓名 gets stud i name printf 请输入性别 男 女 1 0 gets str if str 0 0 strcpy stud i sex 女 else strcpy stud i sex 男 stud i score 0 printf 请按顺序输入成绩 for j 0 j 0 for j i j numstus j stu j stu j 1 numstus printf 删除成功 n void count student stud int i j for i 0 i numstus i stud i index 1 for j 0 jstud i score stud i index 精选 word 范本 include stdio h void addrecord student stud int i 0 j num char str 5 if numstus 0 printf 已有记录存在是否覆盖 y n n gets str if str 0 Y str 0 y i 0 else i numstus printf 请输入增加的学生信息条目数 scanf d if i 0 numstus num else numstus num if numstus lens lens 50 pointer student realloc pointer lens LEN printf 请输入学生信息 n for i numstus i getchar printf 请输入学号 gets pointer i number printf 请输入姓名 gets pointer i name printf 请输入性别 男 女 1 0 gets pointer i sex 精选 word 范本 if pointer i sex 0 0 strcpy pointer i sex 女 else strcpy pointer i sex 男 printf 请输入班级 gets pointer i clas printf 请输入系 gets pointer i xi printf 请输入各科成绩 按 ABCDE 的顺序 stud i score 0 for j 0 j0 i menu select 控制菜单 精选 word 范本 switch i case 1 addrecord pointer break 增加学生信息 case 2 findrecord pointer break 查询学生信息 case 3 amendrecord pointer break 修改学生信息 case 4 sort pointer break 学生信息排序 case 5 statistic pointer break 统计信息 case 6 openfile pointer break 打开文件 case 7 writetotext pointer break 保存文件 case 8 display pointer 0 numstus 1 break 显示记录 case 0 if numstus 0 printf 是否保存当前记录 y n gets str if str 0 y str 0 Y writetotext pointer i 1 break 退出系统 default printf 请输入数字 0 8 n i 1 输入错误 printf t t 欢迎再次使用本系统 n display1 完成日期 2012 年 7 月 11 日
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!