【基本要求】
(1)学生信息包括:
学生基本信息文件(student.txt)(注: 该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下:
学号 姓名 性别 宿舍号码 电话号码
01 张成成 男 501 87732111
02 李成华 女 101 87723112
03 王成凤 女 101 87723112
04 张明明 男 502 87734333
05 陈东 男 501 87732111
06 李果 男 502 87734333
07 张园园 女 102 87756122
… … … … ………
(2)学生成绩基本信息文件(score.dat)及其内容如下:((注: 该文件内容需要编程录入数据,具体做法见下面的要求)
学号 课程编号课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分
01 A01 大学物理 3 66 78 82
02 B03 高等数学 4 78 -1 90
01 B03 高等数学 4 45 -1 88
02 C01 VF 3 65 76 66
… … …… … … … …
(3)需要实现的功能
1)数据录入和计算功能: 对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据, 综合成绩、实得学分由程序根据条件自动运算。
综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70% 。
实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。
2)查询功能:分为学生基本情况查询和成绩查询两种
(1)学生基本情况查询:
①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下:
②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。(格式如上所示)
(2)成绩查询:
①、 输入一个学号时,查询出此生的所有课程情况,格式如下:
学 号:xx 姓 名:xxxxx
课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx
课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx
课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx
… … … … … … … …
共修:xx科,实得总学分为: xxx
(3)删除功能:
提供待删除学生的学号,则在student.txt和score.dat中删除所有与该学生有关的信息。
(4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
【程序设计的具体说明】
(1) 将与两个文件对应的信息分别定义两种结构体类型来表示,也可以用类来定义;
(2) 对score.dat文件的写入,从键盘上输入的是前七项,后两项数据项根据计算方法算出后,得到完整的结构体信息,作为一个整体写入(可调用write函数)。
(3) 删除功能中可以将删除相关信息后得到的文件生成新文件存储,也可以在原文件的基础上作删除
(4) 可以用面向过程方法或是面向对象的方法实现。
(5) 主界面提供菜单选择的方法选择实现某一功能,一次运行程序能进行多次选择执行不同的功能。