学生成绩信息管理系统_第1页
学生成绩信息管理系统_第2页
学生成绩信息管理系统_第3页
学生成绩信息管理系统_第4页
学生成绩信息管理系统_第5页
已阅读5页,还剩28页未读, 继续免费阅读

下载本文档

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

文档简介

西安文理学院西安文理学院 信息工程学院信息工程学院 软件编程课程设计报告 设计题目 设计题目 学生成绩管理系统课程设计学生成绩管理系统课程设计 学生学号 学生学号 0204140137 专业班级 专业班级 物联网工程一班物联网工程一班 学生姓名 学生姓名 张旺阳张旺阳 学生成绩 学生成绩 指导教师 职称 指导教师 职称 课题工作时间 课题工作时间 2015 11 25 至至 2015 12 9 信息工程学院软件编程课程设计任务书信息工程学院软件编程课程设计任务书 学学生生姓姓名名张旺阳学学号号0204140137专专业业班班级级物联网工程一班 设设计计题题目目学生成绩管理系统设计 学生成绩信息包括 学期 学号 班别 姓名 四门课程成绩 语文 数学 英语和计算机 主要功能 1 能按学期 按班级完成对学生成绩的录入 修改 2 能按班级统计学生的成绩 求学生的总分及平均分 设计并输出统计报 表 3 能查询学生成绩 不及格科目及学生名单 4 能按班级输出学生的成绩单 5 能按班级 按课程 对学生成绩进行排序 指指导导教教师师 日日 期期 2 20 01 15 5 年年 1 11 1 月月 2 25 5 日日 成绩评定表 学生姓名 张旺阳 学号 0204140137 专业 班级 物 联网工程一班 类别 合计 分值 各项 分值 评分标准 实际 得分 合计 得分 备注 平时 表现 1010 按时参加设计指导 无违反纪律 情况 20 按设计任务书的要求完成了全部 任务 能完整演示其设计内容 符合要求 完成 情况 30 10 能对其设计内容进行详细 完整 的介绍 并能就指导教师提出的 问题进行正确的回答 15 报告文字通顺 内容翔实 论述 充分 完整 立论正确 结构严 谨合理 报告字数符合相关要求 工整规范 整齐划一 5 课题背景介绍清楚 综述分析充 分 5 设计方案合理 可行 论证严谨 逻辑性强 具有说服力 5 符号统一 图表完备 符合规范 要求 报告 质量 35 5 能对整个设计过程进行全面的总 结 得出有价值的结论或结果 10 在规定时间内能就所设计的内容 进行阐述 言简意明 重点突出 论点正确 条理清晰 答辩 情况 25 15 在规定时间内能准确 完整 流 利地回答教师所提出的问题 总评成绩 分 指导教师 签字 日 期 年 月 日 西安文理学院信息工程学院 课程设计报告 目目 录录 1 概述 1 1 1 课题背景 1 1 2 系统功能 3 1 3 设计要求 4 2 概要设计 5 2 1 系统功能模块 5 2 2 各模块流程图 6 3 详细设计 8 3 1 程序中使用的数据结构 8 3 2 函数列表 10 4 设计结果与分析 12 5 总结与体会 15 参考文献 X 附录 主要程序代码 X 1 1 1 课题背景 随着计算机的普及 计算机在生活中得到越来越多的应用 其中在计算机上 运行的各种软件在解决生活中的实际问题中起到重大的作用 而目前在编写应 用程序时 c 以其高效及灵活性成为大多数程序设计者的首选 其次对于普通 用户者 利用 c 语言设计出适用的小型软件对解决生活中的繁琐问题有很大 的作用 在学校或班级 教师经常会对某次考试中的所有学生的成绩进行统计和管理 由于学生数目经常繁多 所以在处理统计学生总成绩和平均成绩时工作会相对 繁琐 所以针对这种情况 同时我分析了成绩管理所需要的功能 在利用 C 语言及 VC 6 0 程序运行平台之下 设计一种小型的学生成绩管理系统 1 2 系统功能 1 录入 2 修改 3 求总分 4 求平均分 5 查询 6 排序 1 3 设计要求 学生成绩信息包括 学期 学号 班别 姓名 四门课程成绩 语文 数学 英语和计算机 主要功能 1 能按学期 按班级完成对学生成绩的录入 修改 2 能按班级统计学生的成绩 求学生的总分及平均分 设计并输出统 计报表 3 能查询学生成绩 不及格科目及学生名单 4 能按班级输出学生的成绩单 5 能按班级 按课程 对学生成绩进行排序 要求 使用二进制文件方式存储数据 系统以菜单方式工作 第二章 概要设计 2 1 系统功能模块 1 创建主菜单 2 实现学生成绩信息录入 3 实现学生成绩信息查询 4 实现学生成绩信息修改 一 修改某个学生的成绩 2 a 按学期查询学生的成绩 b 按班级查询学生的成绩 c 按学号查询学生的成绩 二 查询不及格的科目和学生名单 5 实现学生成绩统计 a 按班级统计学生的总分 b 按班级统计学生的平均分 6 实现学生成绩信息输出 7 保存学生的成绩信息于文件 2 2 系统功能流程图 第三章 详细设计 3 1 主要数据结构 typedef struct studentMark 3 int term int classes char name 10 int number char sex 7 float chinese float math float english float computer struct studentMark next MARK 这是定义一个结构体 主要包括学期 班级 姓名 学号 性别 语文成绩 数学成绩 英语成绩 计算机成绩 以及包括一个结构体指针 另外还用了 typedef 这个关键字 因此 在程序的后面也可以用 MARK 来定义结构体变量或 结构体指针变量 int term 定义学期 学期只能是第一学期或者第二学期 例如 int 1 则表示第一学期 int classes 定义班级 班级只能是一班或者二班 例如 int 2 则是表示定义为二班 char name 10 定义姓名 在数组中存放字符串 例如 char name yang 则该学生的姓名为 yang int number 定义学号 例如 int 1 则该学生学号为 1 号 char sex 7 定义姓别 其性别最大长度为 7 例如 char sex man 说明该学生为男生 同样 可以这样定义女生 float chinese 定义语文成绩 float math 定义数学成绩 float english 定义英语成绩 float computer 定义计算机成绩 struct studentMark next 定义一个结构体指针 3 1 1 主函数 int main 主函数 程序的入口 4 void m MARK head 主菜单的函数原型 在函数 m head 中主要有选择创建学生成绩信息 查询学生成绩信息 修改学生成绩信息 统计学生成绩信息 输出学生成绩信 息 存储学生成绩信息于文件 以及退出体统等选项可供用户选择 MARK creat void 创建函数的函数原型 在函数 creat 中用户可以输入初始的学生信息 其中包括学生的学期 班级 姓名 学号和性别以及学生的语文 数学 英语 和计算机等相关信息 3 1 2 查询函数 void searchMark MARK head 查询菜单的函数原型 在函数 searchMark head 中用户可以自由选择是 查询某一个学生的成绩还是查询不及格学生的成绩 而这通过调用函数 searchMarkStusentone head 和函数 searchMarkFail head 完成操作 void searchMarkStusentone MARK head 查询某个学生成绩的函数原型 在函数 searchMarkStusentone head 中 用户可以按学号或班级或者是按学期来查找某个学生的成绩 通过函数 searchnumber head 和函数 searchclasses head 以及函数 searchterm head 完成操作 void searchnumber MARK head 按学号查找学生的函数原型 void searchclasses MARK head 按班级查找学生的函数原型 void searchterm MARK head 按学期查找学生的函数原型 void searchMarkFail MARK head 查询没有及格的学生的函数原型 通过这个函数可以查找学生不及格科目 及学生名单 3 1 3 修改函数 MARK changeMark MARK head 修改学生成绩信息的函数原型 可以修改学生的学期 班级 姓名 学号 和性别以及学生的语文 数学 英语和计算机等相关信息 3 1 4 统计函数 void conuntMark MARK head 统计学生成绩的函数原型 在函数 conuntMark head 中用户可以统计 学生的总成绩以及平均成绩 通过调用函数 totalMark head 和函数 aveMark head 完成操作 5 3 1 5 输出函数 void totalMark MARK head 统计学生总成绩的函数原型 void aveMark MARK head 统计学生平均成绩的函数原型 void printClassMark MARK head 输出学生成绩信息的函数原型 通过此函数可以输出学生的学期 班级 姓名 学号和性别以及学生的语文 数学 英语和计算机等相关信息到屏幕上 void saveFileMark MARK head 存储学生成绩信息于文件的函数原型 通过此函数可以输出学生的学期 班级 姓名 学号和性别以及学生的语文 数学 英语和计算机等相关信息与 文件中 第四章设计 结果及分析 4 1 程序设计结果 4 1 1 源程序如下 include include include include define MAR struct studentMark malloc sizeof struct studentMark typedef struct studentMark int term int classes char name 10 int number char sex 7 float chinese float math float english float computer 6 struct studentMark next MARK void m MARK head MARK creat void void searchMark MARK head void searchMarkStusentone MARK head void searchnumber MARK head void searchclasses MARK head void searchterm MARK head void searchMarkFail MARK head MARK changeMark MARK head void conuntMark MARK head void totalMark MARK head void aveMark MARK head void printClassMark MARK head void saveFileMark MARK head int main void MARK head NULL printf n printf 欢迎进入学生成绩信息管理系统 n printf n printf n head creat m head return 0 7 void m MARK head int choose while 1 printf n printf 学生成绩信息管理 n printf n printf 1 创建成绩信息 n printf 2 查询成绩信息 n printf 3 修改成绩信息 n printf 4 统计成绩信息 n printf 5 按班级输出学生信息 n printf 6 保存成绩信息于文件 n printf 7 退出系统 n printf n fflush stdin printf 请选择 scanf d if 1 choose head creat else if 2 choose searchMark head else if 3 choose head changeMark head else if 4 choose conuntMark head else if 5 choose 8 printClassMark head else if 6 choose saveFileMark head else printf 退出系统 break 创建一个学生成绩信息系统 MARK creat MARK head NULL p1 NULL p2 NULL char ch fflush stdin printf 请问是否输入信息 y 或 n n scanf c head p1 p2 MAR while p1 NULL printf 请输入要录入学生信息的学期 学期只能为 1 或 2 fflush stdin scanf d while p1 term 1 printf 输入错误 请重新输入 scanf d 9 printf 请输入要录入学生成绩信息的班级 fflush stdin scanf d while p1 classes 1 printf 输入错误 请重新输入 scanf d printf 请输入该班的学生信息 n printf 请输入学生学号 fflush stdin scanf d printf 请输入学生姓名 fflush stdin scanf s p1 name printf 请输入学生姓别 fflush stdin scanf s p1 sex fflush stdin printf 请输入语文成绩 0 100 scanf f fflush stdin printf 请输入数学成绩 0 100 scanf f fflush stdin printf 请输入英语成绩 0 100 scanf f fflush stdin 10 printf 请输入计算机成绩 0 100 scanf f p2 next p1 p2 p1 printf 是否还要输入信息 y n fflush stdin scanf c p2 next NULL 链表结尾 return head 查找学生成绩信息 void searchMark MARK head int choose1 while 1 printf n printf 查询学生成绩信息 n printf 1 查询某个学生成绩 n printf 2 查询不及格学生成绩 n printf 3 返回主菜单 n printf n fflush stdin printf 请选择 scanf d if 1 choose1 searchMarkStusentone head else if 2 choose1 11 searchMarkFail head else printf 返回主菜单 break 修改学生成绩信息 按学期或按学号修改 MARK changeMark MARK head int choose2 MARK p head next char name 10 char ch int number printf n printf 你所需要修改的 n printf 1 修改学号 n printf 2 修改姓名 n printf 3 修改班级 n printf 4 修改性别 n printf 5 修改成绩 n printf n fflush stdin printf 请选择 scanf d while 1 while p NULL 12 if 1 choose2 printf 你要修改的信息是 学号 n 按姓名修改学号 fflush stdin printf 请输入你要修改的学生姓名 scanf s name if strcmp name p name 0 fflush stdin printf 请输入该学生新的学号 输入新学号 scanf d printf 修改学生的学号后 n printf s 学生的新学号是 d n p name p number break else if 2 choose2 printf 你要修改的信息是 姓名 n fflush stdin printf 请输入你要修改的学生的学号 scanf d if number p number 输入学号 判断条件 fflush stdin 13 printf 请输入该学生的姓名 scanf s p name 输入要做修改的学生姓名 printf 修改学生的姓名后 n printf s 是该学生的新姓名 n p name break else if 3 choose2 printf 你要修改的信息是 班级 n 按学号修改班级 fflush stdin printf 请输入你要修改的学生的学号 scanf d if number p number fflush stdin printf 请输入该学生的班级 输入要做修改的班级 scanf d printf 修改班级后 n printf 该学生的新班级为 d n p classes break else if 4 choose2 printf 你要修改的信息是 性别 n 14 按学号修改性别 fflush stdin printf 请输入你要修改的学生的学号 scanf d if number p number fflush stdin printf 请输入该学生的性别 输入要做修改的性别 scanf s p sex printf 修改该学生的性别后 n printf 该学生的新性别为 s n p sex break else if 5 choose2 printf 你要修改的信息是 成绩 n 按学号修改成绩 fflush stdin printf 请输入你要修改的学生的学号 scanf d if number p number 输入学号 fflush stdin printf 请输入该学生新的语文成绩 n scanf f 15 fflush stdin printf 请输入该学生新的数学成绩 n scanf f 输入新的四门成绩 fflush stdin printf 请输入该学生新的英语成绩 n scanf f fflush stdin printf 请输入该学生新的计算机成绩 n scanf f printf 修改后的成绩 n printf 该学生新的语文成绩 f n p chinese printf 该学生新的数学成绩 f n p math printf 请该学生新的英语成绩 f n p english printf 该学生新的计算机成绩 f n p computer break else p p next printf 是否还要继续修改信息 y n n 判断 是否还要修改信息 跳出循环 fflush stdin if ch getchar n break return head 16 统计学生成绩总分和平均分 void conuntMark MARK head MARK p head next int classes char ch1 ch2 fflush stdin printf 请输入要统计成绩的班级 1 或 2 scanf d printf 正在统计该班级学生的总分 请稍侯 n while 1 totalMark p printf 是否还要继续统计其他学生的成绩 y n fflush stdin if ch1 getchar n break printf 是否统计该班级学生平均分 y n fflush stdin if ch2 getchar n printf 正在统计该班学生平均分进行统计 请稍侯 n aveMark p 调用平均分函数 printf n 17 按班级输出学生信息 void printClassMark MARK head MARK p p head next printf n printf 学期 t 学号 t 班别 t 姓名 t 性别 t 语文 t t 数学 t t 英语 t t 计算机 t t n printf n while p NULL printf d t p term printf d t p number printf d t p classes printf s t p name printf s t p sex printf f t p chinese printf 1f t p math printf 1f t p english printf 1f t p computer p p next printf n printf n 18 保存学生成绩信息于文件 void saveFileMark MARK head char fileName FILE stu MARK p head next if p NULL printf 没有任何信息 请先存入信息 n printf 请按任意键返回主菜单 n getchar else fileName char malloc sizeof char fflush stdin printf 请输入你要保存的文件名 n gets fileName fileName strcat fileName txt stu fopen fileName wb while p NULL fprintf stu d d p term p classes fprintf stu s d p name p number fprintf stu s p sex fprintf stu f f f f p chinese p math p english p computer 19 p p next fclose stu printf 已经保存文件在 s 中 n fileName printf 请按任意键返回主菜单 n getchar 查找某个学生的成绩 void searchMarkStusentone MARK head char ch1 ch2 MARK p head next if p NULL printf 没有任何信息 请先存入信息 n printf 请按任意键返回主菜单 n getchar else while 1 printf 你要选择何种方式查询成绩 n printf n printf a 学号 n printf b 班级 n printf c 学期 n printf 20 n fflush stdin scanf c switch ch1 case a searchnumber head break case b searchclasses head break case c searchterm head break printf n printf 是否还要继续查询学生的信息 y n fflush stdin if ch2 getchar n break 查询不及格学生 void searchMarkFail MARK head MARK p head next char name 10 int number flag 0 int choose5 do fflush stdin printf 请输入 1 按姓名查询 2 按学号查询 3 返回 n scanf d 21 switch choose5 case 1 fflush stdin printf 请输入要查找的名字 n gets name while p NULL if strcmp name p name printf 姓名 学号 n printf s d n p name p number if p chinese name if p math name if p english name if p computer name flag printf n p p next 22 if flag 0 printf 没有你要找的信息 n break case 2 fflush stdin printf 请输入你想要查找的学号 n scanf d while p NULL if number p number printf 姓名 学号 n printf s d n p name p number if p chinese name if p math name if p english name if p computer name flag printf n p p next if flag 0 printf 没有你要找的信息 n break 23 case 3 printf 请按任意键返回 n getchar break default printf 你输入的有误 请重新选择 n break while choose5 1 printf 按任意键返回 n getchar 按学号查询 void searchnumber MARK head MARK p head next int number i 0 printf 请输入你要查询的学生学号 n scanf d while p NULL if number p number printf n printf t 学期 t 学号 t 班别 t 姓名 t 性别 t 语文 t 数学 t 英语 t 计算机 t n printf n printf d t p term 24 printf d t p number printf d t p classes printf s t p name printf s t p sex printf 1f t p chinese printf 1f t p math printf 1f t p english printf 1f t p computer i 2 p p next if i 0 printf 没找到该学生的信息 按班级查询成绩 void searchclasses MARK head int classes i 0 MARK p head next printf 请输入你要查询成绩的班级 scanf d printf 请输出 d 班所有同学的成绩 n classes printf n printf t 学期 t 学号 t 班别 t 姓名 t 性别 t 语文 t 数学 t 英 语 t 计算机 t n printf n while p NULL 25 if classes p classes printf d t p term printf d t p number printf d t p classes printf s t p name printf s t p sex printf 1f t p chinese printf 1f t p math printf 1f t p english printf 1f t p computer printf n printf n i 2 p p next if i 0 printf 没找到学生信息 n 按学期查询 void searchterm MARK head int term i 0 MARK p head next printf 请输入你要查询成绩的学期 scanf d printf 请输出第 d 学期所有班级的信息 n 26

温馨提示

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

评论

0/150

提交评论