首页 > 编程语言 >C/C++学生成绩管理系统[2023-01-16]

C/C++学生成绩管理系统[2023-01-16]

时间:2023-01-16 15:56:25浏览次数:55  
标签:专业 01 文件 通识 16 C++ 优秀学生 评优 基础课

C/C++学生成绩管理系统[2023-01-16]

《C\C++语言课程设计》指导书
一、课程设计概要
项目名称:学期评优方案设计
适用学期:2022年秋季学期
适用班级:07D229-07D22C班

二、项目背景
已知文本文件f1.txt中存放了某校若干名大一学生的相关信息,具体数据及存放格式为:每行存放一个学生的数据,数据之间用空格分隔(不一定只有一个空格,也可能有多个空格),共有11项,依次为:学号、姓名、专业编号、通识教育课一、通识教育课二、通识教育课三、公共基础课一、公共基础课二、公共基础课三、专业主干课一、专业主干课二等8门课程的成绩。f1.txt文件的格式截图如下。
成绩.png
其中,学号为5位数字字符(可能的最小学号是00001,可能的最大学号是06000,学号不一定是连续的,有的学号可能缺失,因为有的学生中途退学了);姓名为长度不超过10个的英文连续字符;专业编号为二位数字字符,编号从01-50;所有课程成绩均为0-100的整数。
该校的学期评优政策如下:
优秀学生分为两类:极级优秀学生与专业优秀学生。
优秀学生的必备条件:
任何一门通识教育课程成绩如果不及格,任何一门公共基础课成绩如果低于70分,任何一门专业主干课程成绩如果低于80分,出现这三种情况中的任何一种不能当选任何一类优秀学生。
校级优秀学生人数:按全校学生的5%比例评选校级优秀学生,小数部分四舍五入。
专业优秀学生人数:先按专业学生的10%比例评选专业优秀学生,小数部分四舍五入。然后剔除其中已经被评定为校优的学生(剔除后专业优秀学生比例有可能不到10%)。
评定成绩计算方法:通识教育课程不计算入评定成绩,仅仅作为是否具备评优资格的依据。公共基础课成绩的权值为0.8,专业主干课成绩的权值为1.2。计算公式:
评定成绩 = 0.8 * 三门公共基础课的总成绩 + 1.2 * 二门专业主干课程的总成绩。

三、设计内容与步骤
1、能够读取和显示f1文件
设计要求:
编写程序实现读取f1.txt文件并显示文件内容的功能。
设计提示:
(1)建立一个与f1文件格式对应的结构F1,结构成员变量包括:学号、姓名、专业编号、通识教育课一、通识教育课二、通识教育课三、公共基础课一、公共基础课二、公共基础课三、专业主干课一、专业主干课二等8门课程的成绩。
(2)建立f1文件的读取函数Readf1,该函数返回值为布尔型(代表是否成功读取了f1文件),函数参数是F1结构数组的首地址。函数功能是可以把f1文件的内容整体读入F1结构的实例数组,等待进一步处理。
2、能够生成校优秀和专业优秀的评优结果
设计要求:
请编写程序,根据文件f1.txt中的数据,生成评优结果文件f2.txt和f3.txt。文件f2.txt用以只存放评选出来的校级优秀学生的信息,文件f3.txt用以只存放评选出来的专业优秀学生的信息。存放格式为:每行存放一个优秀学生的数据,数据之间用空格分隔,共有13项,依次为:学号、姓名、专业编号、通识教育课一、通识教育课二、通识教育课三、公共基础课一、公共基础课二、公共基础课三、专业主干课一、专业主干课二等8门课程的成绩、评定总成绩、成绩排名(1是第一名、2是第二名,依次类推)。
f2和f3文件中的学号顺序与f1文件相同,不做改变;两文件中的成绩排名一律按评定总成绩排。
评优结果可以显示于屏幕,也可以保存到文件。
设计提示:
(1)从以上要求可知,文件f2和f3的格式只是在f1的文件格式基础上增加了两项:评定总成绩与成绩排名,因此可以建立一个新的结构F2,该结构嵌入一个F1结构类型的实例作为成员变量,并且新增两个成员变量:评定总成绩、成绩排名。
(2)F2结构类型对于f2和f3文件格式都是通用的,所以只需要两个F2的结构数组就可以分别存放校级优秀和专业优秀的评选结果,但是每个结构数组要存储多少元素事先是不知道的,可以考虑使用动态结构数组或结构矢量。
(3)可以设计函数来实现生成评优结果数组和保存成文件的功能。
3、能够生成分专业排序的评优结果
请编写程序,根据步骤2生成的校级优秀和专业优秀评选结果,生成分专业的评优结果文件f4.txt。文件f4.txt用以存放各专业的校级优秀和专业优秀学生信息。存放格式为:每行存放一个优秀学生的数据,数据之间用空格分隔,共有13项,依次为:专业编号、学号、姓名、通识教育课一、通识教育课二、通识教育课三、公共基础课一、公共基础课二、公共基础课三、专业主干课一、专业主干课二等8门课程的成绩、评定总成绩、成绩排名(仍同步骤2采用全校统一排名)、评优结果(校级优秀或专业优秀)。
即文件f4是对f2和f3文件内容的合并,但是f4文件要求按专业编号由小到大的顺序进行排序,而且先排完一个专业的所有优秀学生再排下一个专业的;同一个专业的学生按成绩排名的先后排。
评优结果可以显示于屏幕,也可以保存到文件。
设计提示:
可以设计一个排序函数来实现生成分专业排序的评优结果和保存成文件的功能。
4、评优统计功能
设计要求:
能够统计各个专业的专业总人数、校级优秀占比、专业优秀占比、不具备评优资格的学生人数占比,占比均以该项人数/专业总人数计算,精确到百分比值小数点后两位,例如:某专业的校优占比=该专业的校优人数/该专业的总人数。
能够统计校级优秀学生人数占比最大的专业编号、不具备评优资格人数占比最大的专业编号。
能够统计各个专业优秀学生的信息。
评优结果可以显示于屏幕,也可以保存到文件,文件和屏幕显示格式参考以下例表

专业编号	专业总人数	校级优秀占比	专业优秀占比	无评优资格占比
01	384	3.23%	11.12%	10.44%
02	526	5.64%	9.67%	8.77%
………………………………………………………………………………………
校级优秀占比最大的专业编号是:21
无评优资格占比最大的专业编号是:13

5、评优查询与分析功能
根据学生输入的学号及姓名,查询本人的评优结果是校级优秀、专业优秀还是未评上。(如果输入的学号与姓名不匹配,提示错误信息。如果只输入一项信息,禁止查询。)
对于未被评上校优的学生,能够分析出该学生未被评上校优的最主要原因。未被评上校优的原因有两种情况:无评优资格或虽有资格但成绩排名较低,但无论何种情况其根本原因都在于科目成绩较低。
若该生由于任何一门通识教育课程成绩如果不及格而导致无评优资格,则分数最低的通识教育课程成绩不及格是最主要因素;否则若该生任何一门公共基础课成绩如果低于70分,则分数最低的公共基础课成绩低于70分是最主要因素;否则若该生任何一门专业主干课程成绩低于80分,则分数最低的专业主干课程成绩低于80分是最主要因素;否则,公共基础课和专业主干课加权成绩排名在5%之后是主要原因。
评优结果查询与分析结果可以显示于屏幕,也可以保存到文件。
6、其他设计要求
基本要求:所有统计信息即可屏幕显示,也可以文件的形式存盘保存;
系统程序要有合理清晰的界面提示和显示。
程序设计质量和规范性要求:
(1) 合理运用函数、结构、类、文件等封装手段(各种封装手段不要求必须都用,只要合理),使得程序结构清晰、简洁、代码复用性好;
(2) 变量命名有意义,不易混淆,便于查错和可读性好;
(3) 程序缩进格式规范;
(4) 各函数、结构、类、文件等有必要的较为规范的头注释,便于使用;
(5) 复杂函数内部或复杂算法有分段注释语句,脉络思路清晰。
四、成绩评定方式
1、课设成绩的组成
平时考勤20%+考试(即程序验收)50%+实习报告30%
表1 程序验收表
验收项目 生成文件 屏幕显示 界面与显示格式 代码抽查提问 项目得分
读取和显示f1文件 7分 2分 1分
生成校优秀和专业优秀的评优结果 f2、f3:
4分 3分 2分 1分
生成分专业排序的评优结果 f4:4分 3分 2分 1分
评优统计功能 4分 3分 2分 1分
评优查询与分析功能 4分 3分 2分 1分
验收总分 代码抽查提问作为检验是否抄袭的参考依据

表2 实习报告质量评分细则
评分项目 评分依据 项目得分
课题分析 课题总体分析和把握要点的能力3分
设计思路 设计思路的完整性和表现手段5分
实现结果 实现结果的完成度和描述清晰3分
课设总结 总结的到位和具体2分
格式与排版 格式与排版的规范性2分
合理运用封装 封装手段运用是否合理清晰、层次分明6分
变量命名合理 变量命名合理规范,不随意命名和混淆3分
代码缩进格式 代码缩进格式规范3分
注释规范性 必要的注释及其规范性3分
报告总分
2、直接认定不及格的情况
出现以下六种情况中的任何一种,整个课程设计的成绩直接认定为不及格:
(1)6个实习单元的实习,考勤抽查出现2次(含)缺席的情况;
(2)上机玩游戏被抓住2次(含)的情况;
(3)程序检查被认定为抄袭的情况;
(4)实习报告被认定抄袭或雷同的情况;
(5)不参加考试(即程序考核及检查)的情况
(6)不交实习报告的情况。
3、考勤纪律要求
如果学生因各种原因不能参加某次实习,必须在上课刚开始的时候通过班委或本宿舍同学向任课老师进行口头请假,不允许在点名之后再以各种形式(包括书面请假条)进行请假。

C语言课程设计报告撰写要求
1 内容要求
整个报告由六个部分构成:
①课题简介:课题设计目标的简要描述
②课题分析:对于课题目标采用何种手段实现(例如自顶向下设计的抽象方式、采用何种封装、减少代码重复性、提高程序效率和可读性的考虑等总体分析)
③设计思路:用流程图、伪代码配合必要的文字描
④实现结果:运行结果贴图和必要的文字描述
⑤课设总结:课设心得和经验总结
⑥附录(源代码,如果使用多文件的要分文件列出)
2 篇幅要求
②-⑤合计不低于5页,⑥不低于5页。
篇幅没有上限要求,但原则上要求不超过30页。
标题字体字号格式:宋体,三号,加黑,单倍行距。
正文字体字号格式:宋体或Times New Roman,五号,单倍行距。
3 撰写要求
严禁出现抄袭和雷同。
报告出现抄袭或雷同的,整个课程设计成绩一律按不及格论处。
4 打印要求
A4纸张单面打印。
5 其它
封面格式附后。
报告电子档及源代码以班级为单位压缩为一个包。每个学生一个文件夹,文件夹的名字为学生姓名。每个学生的文件夹下内含两个文件,文件名为学生的姓名:一个是.doc的课设报告,一个是.c的源代码,例如张三.doc和张三.c。
报告上交时按序号排序。
打印的实习报告纸质版和压缩包以班级为单位统一于最后一次上机时上交。
统一交至任课老师指定地点。插班或跨专业选课的学生,以个人为单位按规定的时间上交。

中国地质大学(武汉)
C\C++语言课程设计报告书

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

标签:专业,01,文件,通识,16,C++,优秀学生,评优,基础课
From: https://www.cnblogs.com/codewriter/p/17055592.html

相关文章

  • C语言学生宿舍管理系统[2023-01-16]
    C语言学生宿舍管理系统[2023-01-16]用C语言开发一个简单的学生宿舍管理系统。[数据结构]1、学生住宿数据文件。每名学生的住宿信息包括:宿舍号,床位数,姓名,学号电话,寝室长......
  • C语言算术表达式求值[2023-01-16]
    C语言算术表达式求值[2023-01-16]4、算术表达式求值问题描述:编写程序,计算算术表达式串的值,具体要求如下:1.表达式串在运行时输入。2.表达式串支持+、-、、/(精确除)、......
  • [答疑精选]活动图,科主任经常性审签病历,非经常性处理医疗纠纷(2016/6/7)
    活动图,科主任经常性审签病历,非经常性处理医疗纠纷......
  • UML相关工具一览(2016年7月更新)
    UML相关工具一览(截止2016年7月) 整理最近2个月主要版本更新: BOUML6.11.1、CaseComplete2016、CubettoUML4.8.1、Gridraw0.12、HandyUML、Modelmaker11.10、OmniGraf......
  • UML相关工具一览(截止2016年5月)
    UML相关工具一览(截止2016年5月) 整理最近3个月主要版本更新: CubettoUML4.7.1、Modelio3.4、OmniGraffleforMac6.5.2、OmniGraffleforiOS2.7.2、PowerDesigner16.......
  • UML工具大全201601更新
    UML相关工具一览(截止2016年1月) 整理最近两个月主要版本更新:EnterpriseArchitect12.1、RationalSoftwareArchitect9.5、Rational Rhapsody8.1.4、VisualParadigmfo......
  • 01:Hello, World!
    ​​原题链接​​总时间限制:1000ms内存限制:65536kB描述对于大部分编程语言来说,编写一个能够输出“Hello,World!”的程序往往是最基本、最简单的。因此,这个程序常常作......
  • C/C++路面导航系统[2023-01-16]
    C/C++路面导航系统[2023-01-16]数据结构大作业:路面导航系统系统初始信息,保存在数据库或其他文件中:1.初始化地图,生成若干节点,具有节点名,坐标(x,y)等必要信息。节点间的......
  • C++通讯录[2023-01-16]
    C++通讯录[2023-01-16]内容描述参考题目:通讯簿,用于保存个人信息,可分类为同学(信息项包括:姓名、生日、电话号码、邮件地址、学院名称、年级专业)、同事(信息项包括:姓名......
  • 【2023.01.16】PVE创建集群并实现外网互联
    首先要确保有两台公网ip的机器,或者两台在内网的机器,在有公网ip的机器上创建集群一公网一内网拷贝以下内容取消辅助说明,输入你的公网域名到这里失败了,私网机器的连不......