【苏大C++期中模拟题】

您所在的位置:网站首页 kohler招聘 【苏大C++期中模拟题】

【苏大C++期中模拟题】

2023-10-10 12:45| 来源: 网络整理| 查看: 265

目录

1.题目

2. 解题代码

3. 问题总结

1.题目

考试说明

考试时间:合计2小时。允许提前交卷。考试过程中,不能连接未经指定网站或服务器。闭卷考试部分,不能查阅任何类型的参考资料。开卷考试部分,可以查阅纸质文档,不能查阅任何类型的电子文档。考试过程中,不得使用任何形式的电子存储设备,不可使用手机。违反上述2-5条者,视为考试作弊。

编程题提交方式(100分,开卷)

提交前务必关闭vs2005、vs2008或vs2010编程环境。所有源程序内容必须仅包含在一个源程序文件(CPP文件)中。在浏览器的地址栏中输入http://192.168.125.3,点击相应链接进入提交页面。按要求输入两遍自己的学号。点击“选择文件”按钮,选择自己的源程序文件。点击“提交”按钮提交。如提交成功,系统会显示相关信息。如果提交不成功,请重复步骤16-18。提交成功后,可点击“查看内容”按钮检查提交的内容。

按以下要求编写程序

题目说明

请各位考生从课程信息发布网站下载数据文件input.txt,然后将该数据文件手动保存在D盘根目录下。该文件中的数据以文本形式存储,其中包含了若干个同学的期中考试成绩记录,每个人最多有三门课,分别为Math、English和C++,每门课的成绩占一行,每行包括学号、课程名称和成绩,三者之间用‘\t’分开。

请按要求依次完成如下操作:

编写一个函数ReadFile。读取input.txt文件中的所有记录,并将它们存放在struct mark结构体类型的marks向量中。编写一个函数ShowData。显示第1步中生成的marks向量的前5条。要求学号占15列左对齐,课程名称占10列左对齐,成绩占8列右对齐,本函数如果调用时不指定显示条数,则显示marks向量的前3条(当数据不足3条时,则全部显示)。编写一个函数Filter,将marks向量中所有不合法的数据删除,所谓不合法的数据就是考试成绩小于0或者大于100,然后在屏幕上显示删除的条数。编写一个函数FillData,将marks向量中所有数据按学号和课程名称汇总到struct student类型的向量stus中,汇总规则是:1)在stus中每个学号的学生只有一个元素;2)在stus中每个元素有三个成绩;3)汇总时如果某个学号在marks中不足三个成绩,对应stus中元素的对应成绩数据填0。编写一个函数SortData,对向量stus按照三门课的总分从高到低排序,当总分相同时,按照学号从小到大排序。编写一个函数ShowData,将stus向量中的最后5行数据显示在屏幕上(如果不足5行,则显示全部),要求学号占15列左对齐,Math成绩占5列右对齐,English占5列右对齐,C++占5列右对齐。编写一个函数WriteFile。将经过第5步处理的向量stus中所有数据写入到指定文本文件result.txt中,要求学号占15列左对齐,Math成绩占5列右对齐,English占5列右对齐,C++占5列右对齐。

涉及结构体定义如下:

struct mark

{

string xh;//学号

string kc;//课程名称

int    cj;//成绩

};

struct student

{

string xh; //学号

int math; //数学成绩

int english; //英语成绩

int cplusplus; //C++成绩

};

main函数如下:

int main()

{

vector marks;

ReadFile("d:\\input.txt", marks); //读取文件的数据到marks

cout



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3