




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C C C C 程序设计课程设计程序设计课程设计 设计说明书 学生成绩处理的设计与实现 计算机科学与技术系计算机科学与技术系 20102010 年年 7 7 月月 9 9 日日 学生姓名刘慧 学号0918014064 班级计本 092 班 成绩 指导教师林勇 C C C C 程序设计程序设计课程设计评阅书 题 目学生成绩处理的设计与实现学生成绩处理的设计与实现 学生姓名刘慧学号0918014064 指导教师评语及成绩 成绩 教师签名 年 月 日 答辩教师评语及成绩 成绩 教师签名 年 月 日 教研室意见 总成绩 室主任签名 年 月 日 注 指导教师成绩 60 答辩成绩 40 总成绩合成后按五级制记入 课程设计任务书 20092009 20102010 学年第学年第 二二 学期学期 专业 计算机科学与技术 学号 0918014064 姓名 刘慧 课程设计名称 c c 课程设计 设计题目 学生成绩处理的设计与实现 完成期限 自 2010 年 6 月 28 日至 2010 年 7 月 9 日共 2 周 设计依据 要求及主要内容 可另加附页 有如下表所示的若干个学生成绩 学号姓名C 语 言 数学英语总分平均 08001李强909580 08002张兵687558 08003刘英788064 根据学生成绩管理的需要 建立一个 学生成绩管理系统 以方便对成绩的各项管理操作 运用 C C 结构体 指针 文件等基知识 编程实现成绩管理系统 设计要求 1 阐述设计思想 画出流程图 2 能对成绩进行录入和修改 3 能计算每个学生的平均成绩以及各门功课的平均成绩 4 能根据学生的学号来查询该学生的成绩 5 统计每门课程中不及格人数 60 70 分 70 80 分 80 90 分以及 90 分以上人数 6 能根据每个学生的平均成绩来他们进行排序 最终设计成果形式为 1 设计好的软件一套 2 撰写一份课程设计说明书一份 打印并装订成册 指导教师 签字 教研室主任 签字 批准日期 年 月 日 摘 要 本设计借助 Visual C 6 0 设计了一个学生成绩处理软件 该学生成绩处理软件具有对学生成 绩录入与修改 计算每个学生的平均分和各科的平均分 统计各个成绩段的学生人数 以及对学生成 绩进行排名的功能 采用分模块处理算法来实现各个功能 界面清楚 操作简单 关键词 学生成绩处理 平均分 统计 排名 陕西理工学院课程设计 目目 录录 1 1 课题描述课题描述 1 2 2 设计过程设计过程 2 2 1 头文件设计 2 2 2 学生成绩管理系统子函数的设计 2 2 2 1 显示菜单设计 2 2 2 2 学生成绩的平均分 各科平均分 2 2 2 3 学生成绩查询 4 2 2 4 学生成绩统计 6 2 2 5 学生成绩排名 6 2 2 6 学生成绩修改 9 2 3 主函数的设计 11 2 4 程序代码 13 3 3 测试测试 19 3 1 程序主界面测试 19 3 2 子函数测试 19 4 4 结果分析结果分析 22 总总 结结 23 参考文献参考文献 24 陕西理工学院课程设计 1 1 课题描述 随着信息技术的高速发展 学校建立学生成绩处理系统当今发展的重要趋势 在成绩管理中 人 力资源是学校的宝贵资源 因此学生成绩管理是计算机信息管理系统的组成部分 实行电子化的学生 成绩管理 可以让人力资源管理人员从繁重琐碎的案头工作解脱出来 去完成更重要的工作 学生成 绩管理信息系统的实现可以减轻比较繁琐的手工成绩管理 学生成绩管理系统是学校常见的计算机信息管理系统 它的任务是对学生成绩的管理 如学生成 绩的输入 查询 修改 排名 求每个学生的平均分和各科的平均分 及对各个成绩段学生人数的统 计等功能 这些功能可分模块实现 开发工具 Visual C 陕西理工学院课程设计 2 2 设计过程 编程以基于 C 结构体应用程序来实现 使用结构体来定义学生信息 利用菜单使用户选择各个 功能模块 根据不同的选项进入不同的功能模块进行执行 执行完某个功能后 重新显示菜单 可将 菜单的显示放到循环结构中 2 1 头文件设计 头文件是程序设计不可或缺的一部分 但是各种程序的头文件所包含的内容也不近相同 此次程 序设计的头文件内容不仅包含一般程序所具有的头文件 还包含了字符串处理头文件 宏定义 关键 字等 include include define Num 80 宏定义 struct StudentMessage 结构体 int id 学号 char name 20 int score 3 double GPA1 每个学生的平均分 double GPA2 各科的平均分 2 2 学生成绩管理系统的子函数设计 2 2 12 2 1显示菜单设计显示菜单设计 cout endl endl cout 学生成绩管理 endl cout 1 学生成绩 平均分 各科平均分 endl cout 2 学生成绩查询 endl cout 3 学生成绩统计 endl cout 4 学生成绩排名 endl cout 5 学生成绩修改 endl cout endl 2 2 22 2 2 学生成绩的平均分 各科平均分学生成绩的平均分 各科平均分 该功能设计思想是对用户输入的学生成绩利用循环结构求平均分 求每个学生的平均分时 外层 是学生人数循环 内层是科目循环 求各科平均分时 外层是科目循环 内层是学生人数循环 流程图如图 2 1 所示 该功能实现的代码如下 void Show Studentscore int a int i j double sum1 sum2 for i 0 i a i sum1 0 陕西理工学院课程设计 3 inti j i 0 i a Y N i i 0 i 3 Y N i cout 学号 姓名 C语言 高数 英语 总成绩 平均分 endl sum1 0 j 0 j 3 Y N j i 0 i a Y N i sum2 0 cout C语言 数学 英语 各科的平均分 endl i 0 i 3 Y N cout stud i GPA2 sum1 sum1 stud i score j j 0 j a Y N j stud i GPA2 sum2 a cout stud i id stud i name sum2 sum2 stud j score i j 0 j 3 Y N j cout stud i GPA1 3 stud i GPA1 endl i cout stud i score j 陕西理工学院课程设计 4 图 2 1 学生成绩的平均分 各科平均分 for j 0 j 3 j sum1 sum1 stud i score j stud i GPA1 sum1 3 for i 0 i 3 i sum2 0 for j 0 j a j sum2 sum2 stud j score i stud i GPA2 sum2 a cout 学号 姓名 C 语言 高数 英语 总成绩 平均分 endl for i 0 i a i cout stud i id stud i name for j 0 j 3 j cout stud i score j cout stud i GPA1 3 stud i GPA1 endl cout C语言 数学 英语各科的平均分 endl for i 0 i 3 i cout stud i GPA2 2 2 32 2 3 学生成绩查询学生成绩查询 该功能设计思想是用户在选择查询功能时 用户可以通过输入要查找学生的学号 利用循环结构 进行查找 当找到时输出该学生的信息 流程图如图 2 2 所示 实现该功能的程序代码如下 void Search student int a int i j flag 0 d cout 请输入学号 d for i 0 i a i if d stud i id flag 1 break if flag cout stud i name for j 0 j 3 j cout stud i score j else cout 无此同学 endl 陕西理工学院课程设计 5 图 2 2 学生成绩查询 inti j flag 0 d i 0 i a Y N i Y flag N cout 无此同 学 endl cout stud i name j 0 j 3 Y N j flag 1 break cout stud i score j 陕西理工学院课程设计 6 2 2 42 2 4 学生成绩统计学生成绩统计 该功能设计思想是当用户输入学生成绩时 利用循环结构进行统计各个分数段的学生人数 外层 是科目循环 内层是学生人数循环 将统计结果输出 流程图如图 2 3 所示 实现该功能的程序代码如下 void Count student int a int i j n1 0 n2 0 n3 0 n4 0 n5 0 cout C 语言 数学 英语各科成绩分别在不及格 60 70 70 80 80 90 90 以上各阶段的人数 endl for i 0 i 3 i n1 n2 n3 n4 n5 0 for j 0 j a j if stud j score i 60 n1 if 60 stud j score i cout n1 n2 n3 n4 n5 endl 2 2 52 2 5 学生成绩排名学生成绩排名 该功能的设计思想是对用户输入的学生成绩首先计算出每个学生的平均分 然后利用循环结排序 构进行交换 外层从零循环到总学生人数减一 内层从一循环到总学生人数 输出排序后的学生信息 流程图如图 2 4 所示 实现该功能的程序代码如下 void PaiXu student int a int i j index sum1 struct StudentMessage temp for i 0 i a i sum1 0 for j 0 j 3 j sum1 sum1 stud i score j stud i GPA1 sum1 3 陕西理工学院课程设计 7 for i 0 i a 1 i inti j n1 0 n2 0 n3 0 n4 0 n5 0 i 0 i 3 Y N i n1 n2 n3 n4 n5 0 j 0 j a Y j cout n1 n2 n3 n4 n5 endl Y stud j score i 60 N Y 60 stud j score i i 0 i a Y N i i 0 i a 1 Y N i c o u t 学号姓名 C语言 数学英语平均分 e n d l i 0 i a Y N i s u m1 0 j 0 j 3 Y N j i n d e x i s u m1 s u m1 s t u d i s c o r e j j i 1 j a Y N j t e mp s t u d i n d e x s t u d i n d e x s t u d i s t u d i t e mp c o u t s t u d i i d s t u d i n a me j 0 j 3 Y N j c o u t s t u d i n d e x GP A1 N i n d e x j c o u t s t u d i s c o r e j 陕西理工学院课程设计 9 index i for j i 1 jstud index GPA1 index j temp stud index stud index stud i stud i temp cout 学号 姓名 C 语言 数学 英语 平均分 endl for i 0 i a i cout stud i id stud i name for j 0 j 3 j cout stud i score j cout stud i GPA1 cout endl 2 2 62 2 6 学生成绩修改学生成绩修改 该功能的设计思路是通过用户输入要修改的学生的学号 利用循环结构找到该学生然后输出该学 生的信息 再利用循环结构对错误的信息进行修改 修改是将用户输入正确的学生信息赋值给错误的 学生信息 将修改后的学生信息表输出 流程图如图 2 5 所示 实现该功能的程序代码如下 void XiuGai int a 修改学生成绩 int i j f g score 3 flag 0 char name 20 cout 请输入要修改的学号 f for i 0 i a i if f stud i id flag 1 break if flag cout stud i id stud i name 陕西理工学院课程设计 10 in ti j f s c o re 3 fla g 0 i 0 i a Y N i Y fl a g N c o u t 输出修改后的学生成绩管理 表 e n d l i 0 i a Y N i fla g 1 b r e a k c o u t s tu d i id s tu d i n a m e j 0 j 3 Y N j c o u t s tu d i id s tu d i n a m e c o u t e n d l c o u t 输入修改 后的姓名 Y N j j 0 j 3 N j c o u t sc o r e j stu d i sc o r e j s c o re j Y c o u t n a m e str c p y stu d i n a m e n a m e j 0 j 3 Y c o u t s tu d i s c o re j 陕西理工学院课程设计 11 图 2 5 学生成绩修改 for j 0 j 3 j cout stud i score j cout 输入修改后的姓名 name strcpy stud i name name for j 0 j 3 j cout 输入修改后的成绩 score j stud i score j score j cout 输出修改后的学生成绩管理表 endl for i 0 i a i cout stud i id stud i name for j 0 j 3 j cout stud i score j 2 3 主函数的设计 该主函数设计的思想是用户输入学生信息 显示主菜单 利用循环结构和多分支结构进行功能选 择 选择功能后主函数调用相应的子函数以实现其功能 流程图如图 2 6 所示 实现该功能的程序代码如下 int main int i j a choice cout 请输入学生个数 a cout 请输入学生的学号 姓名 C 语言 数学 英语成绩 endl for i 0 i stud i id stud i name for j 0 j stud i score j 陕西理工学院课程设计 12 图 2 6 主函数流程图 开始 inti j a choice i 0 i a Y i choice 0 N Y cout 谢谢使用 stud i id stud i name j 0 j 3 Y N j cout endl endl Y choice 1 N Y choice 2 N Y choice 3 N Y choice 4 N Y choice 5 N Show Studentscore a break Search student a break Count student a break PaiXu student a break XiuGai a break 结束 陕西理工学院课程设计 13 do cout endl endl 主菜单 cout 学生成绩管理 endl cout 1 学生成绩 平均分 各科平均分 endl cout 2 学生成绩查询 endl cout 3 学生成绩统计 endl cout 4 学生成绩排名 endl cout 5 学生成绩修改 endl cout endl cout endl 请选择功能 choice switch choice case 1 Show Studentscore a break case 2 Search student a break case 3 Count student a break case 4 PaiXu student a break case 5 XiuGai a break while choice 0 cout 谢谢使用 endl return 0 2 42 4 程序代码程序代码 include include using namespace std define Num 80 struct StudentMessage 陕西理工学院课程设计 14 int id 学号 char name 20 int score 3 double GPA1 每个学生的平均成绩 double GPA2 每门课的平均成绩 StudentMessage stud Num 定义一个结构体数组 void Show Studentscore int a 求学生的平均分和各科平均分 int i j double sum1 sum2 for i 0 i a i sum1 0 for j 0 j 3 j sum1 sum1 stud i score j stud i GPA1 sum1 3 for i 0 i 3 i sum2 0 for j 0 j a j sum2 sum2 stud j score i stud i GPA2 sum2 a cout 学号 姓名 C 语言 高数 英语 总成绩 平均分 endl for i 0 i a i cout stud i id stud i name for j 0 j 3 j cout stud i score j cout stud i GPA1 3 stud i GPA1 endl cout C 语言 数学 英语各科的平均分 endl for i 0 i 3 i cout stud i GPA2 void Search student int a 根据学号查找学生信息 陕西理工学院课程设计 15 int i j flag 0 d cout 请输入学号 d for i 0 i a i if d stud i id flag 1 break if flag cout stud i name for j 0 j 3 j cout stud i score j else cout 无此同学 endl void Count student int a 统计学生各科在每个成绩段的人数 int i j n1 0 n2 0 n3 0 n4 0 n5 0 cout C 语言 数学 英语各科成绩分别在不及格 60 70 70 80 80 90 90 以上各阶段的人数 endl for i 0 i 3 i n1 n2 n3 n4 n5 0 for j 0 j a j if stud j score i 60 n1 if 60 stud j score i cout n1 n2 n3 n4 n5 endl void PaiXu student int a 学生排名 int i j index sum1 陕西理工学院课程设计 16 struct StudentMessage temp 定义一个结构体变量 for i 0 i a i sum1 0 for j 0 j 3 j sum1 sum1 stud i score j stud i GPA1 sum1 3 for i 0 i a 1 i 比较 交换排序 index i for j i 1 jstud index GPA1 index j temp stud index stud index stud i stud i temp cout 学号 姓名 C 语言 数学 英语 平均分 endl for i 0 i a i cout stud i id stud i name for j 0 j 3 j cout stud i score j cout stud i GPA1 cout endl void XiuGai int a 修改学生成绩 int i j f g score 3 flag 0 char name 20 cout 请输入要修改的学号 f for i 0 i a i if f stud i id flag 1 break if flag 陕西理工学院课程设计 17 cout stud i id stud i name for j 0 j 3 j cout stud i score j cout 输入修改后的姓名 name strcpy stud i name name for j 0 j 3 j cout 输入修改后的成绩 score j stud i score j score j cout 输出修改后的学生成绩管理表 endl for i 0 i a i cout stud i id stud i name for j 0 j 3 j cout stud i score j int main int i j a choice cout 请输入学生个数 a cout 请输入学生的学号 姓名 C 语言 数学 英语成绩 endl for i 0 i stud i id stud i name for j 0 j stud i score j do cout endl endl 主菜单 cout 学生成绩管理 endl cout 1 学生成绩 平均分 各科平均分 endl cout 2 学生成绩查询 endl cout 3 学生成绩统计 endl cout 4 学生成绩排名 endl cout 5 学生成绩修改 endl cout endl 陕西理工学院课程设计 18 cout endl 请选择功能 choice switch choice case 1 Show Studentscore a break case 2 Search student a break case 3 Count student a break case 4 PaiXu student a break case 5 XiuGai a break while choice 0 cout 谢谢使用 endl return 0 陕西理工学院课程设计 19 3 测试 运行程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股票内部流转协议书
- 自愿放弃享受协议书
- 提升能力的2025年语文试题及答案
- 行政管理性别平等自考试题及答案
- 反复演练2025年执业护士考试试题及答案
- 行政法学前沿问题的探讨与试题及答案
- 2025年卫生资格考试实践题及答案
- 行政法学伦理学与试题答案的关系
- 2025年护士考试中的心理调适技巧试题及答案
- 2025年护理示范教学试题及答案
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 数字媒体技术概论(融媒体版) 课件 1融媒体技术基础
- 官话套话大全
- 机械行业六个典型事故案例分享
- run@rate表格实例
- 常减压蒸馏装置操作工操作技能试题(终).
- 《云南省建筑工程资料管理规程应用指南)(上下册)
- 上海建设工程通用硅酸盐水泥质量检验报告 - 上海水泥行业协会
- 餐饮服务六大技能培训.ppt
- 基于单片机的电话拨号系统的设计毕业论文
- 叉车产品数据表
评论
0/150
提交评论