天啊,我又答应帮别人做作业了么。不过同学求助也没什么拒绝的理由……
雷同学你那些作业太长了,少于100行的作业我还能考虑下是不是帮忙做个。我自己也忙啊 T T
Anyway,题目:
引用
一、 分数统计(10)
要求:(1)输入某班级学生的姓名、分数;
(2)对(1)的分数进行降幂排列并输出;
(3)具有输入输出界面。
(初学C++的你们,会心一笑了么?)
不太明白什么叫“具有输入输出界面”。连是CUI还是GUI都不说清楚,不得不说这出题的人真搓。
简短解答:
a.h:
#ifndef A_H
#define A_H
#include <cstring> // for memset() and strcpy()
#include <vector>
#define BUFFER_SIZE 256
struct Student {
char m_name[BUFFER_SIZE];
int m_score;
Student() { memset(m_name, 0, BUFFER_SIZE); }
};
// RAII-style
class ResourceManager {
public:
ResourceManager(std::vector<Student*>* pList) : m_pList(pList) {}
~ResourceManager() {
for (std::vector<Student*>::iterator it = m_pList->begin();
it < m_pList->end();
it++) {
delete *it;
}
}
std::vector<Student*>* getList();
private:
std::vector<Student*>* m_pList;
};
#endif // end A_H
a.cpp:
#include <cstdlib> // for atoi()
#include <iostream> // for cin, cout and getline()
#include <string>
#include "a.h"
using namespace std;
vector<Student*>* ResourceManager::getList() {
return m_pList;
}
struct LessScore {
bool operator() (Student* first, Student* second) {
return (first->m_score < second->m_score);
}
};
void promptInput(vector<Student *>* list) {
cout << "Enter student information. Press Ctrl+Z and ENTER to end." << endl;
string input;
while (true) {
cout << "Enter name: ";
getline(cin, input);
if (!input.compare("")) return; // end loop on EOF or empty line
Student* s = new Student;
strcpy(s->m_name, input.c_str());
cout << "Enter score: ";
getline(cin, input);
s->m_score = atoi(input.c_str());
list->push_back(s);
}
}
void sortStudentList(vector<Student*>* list) {
sort(list->rbegin(), list->rend(), LessScore());
}
void printStudentList(vector<Student*>* list) {
cout << "Result:" << endl;
for (vector<Student*>::iterator it = list->begin();
it < list->end();
it++) {
cout << "Name: " << (*it)->m_name << ", "
<< "Score: " << (*it)->m_score << endl;
}
}
int main() {
ResourceManager res(new vector<Student*>);
promptInput(res.getList());
sortStudentList(res.getList());
printStudentList(res.getList());
return 0;
}
其实应该对输入的数字做更详细的检查……
也应该对Ctrl+Z(EOF)做
真的检查的……
不过算了,懒
P.S. 我写C++代码果然不行了啊,太久没写了。居然在这么短的代码里也搞得内存泄漏了,太丢脸了 T T
// 现在改了,在main()的最后显式析构了那个vector。郁闷嗯。
<- 不,又改了一遍,这次决定还是用
RAII方式好了。
分享到:
相关推荐
例如第1题考察的是“when引导的时间状语从句,主句用一般将来时,从句用一般现在时”的规则,正确答案是D(be, grows)。第2题则考察了“practice doing sth.”的固定搭配,正确答案是C(playing)。 2. 词汇和短语...
1. **介词的用法**:题目中的第1题考察了介词“for”和“of”的用法。在这种句型"It's + 形容词 + for/of sb. to do sth."中,如果形容词描述的是行动的性质,则用介词"for";如果形容词描述的是执行行动的人的品质...
- 第1题考查冠词的用法,university是以辅音音素开头的单词,故用不定冠词"a"。 - 第2题考察时间介词,年份前用"in",具体日期前用"on"。 - 第3题考查因果关系连词,由于rain是名词,所以用"because of"连接。 -...
首先,作业中的选择题第1题,展示了组合的基本应用。在6名男医生和5名女医生中选择2名男医生和1名女医生,这个问题可以分解为两个独立的选择过程:首先从6名男医生中选2名,然后从5名女医生中选1名。使用组合数公式C...
例如,第1题考查的是固定搭配"take care of"(照顾),正确答案是A。第2题中,money是不可数名词,不能用many修饰,a lot后面接of才能修饰名词,a few修饰可数名词,any用于否定句或疑问句,所以答案是D。第3题是...
1. **比较级的用法**:在第1题和第3题中,考察了形容词比较级的正确形式。例如"more cheaper"是错误的,应该用"much cheaper","not so...as"结构中使用原级"interesting"。 2. **固定搭配与代词的使用**:第2题中...
新世纪研究生公共英语教材阅读A答案解析课后题全 本文档是研究生公共英语教材阅读A答案解析课后题全,涵盖了多个语言知识点和阅读理解题目。 词汇学习 1. permanent:永久的,长久的 永久性是指某事物或状态长期...
这份文档是针对山东省临沂市费县2020届九年级学生的英语上学期第一次月考试题,使用的是人教新目标版教材。试卷分为选择题(第Ⅰ卷)和非选择题(第Ⅱ卷),总分100分。考生在答题前需用0.5毫米黑色签字笔填写个人...
1. 倒装句:题目中的第1小题是一个典型的倒装句。在"Not until"引导的状语从句位于句首时,主句需要部分倒装,即把助动词或情态动词放到主语之前。正确答案是B. did I come。 2. 形容词辨析:第2小题考查的是形容词...
这篇文档是江苏省大丰市七年级英语下学期的第一次月考试题,主要涵盖中学阶段的基础英语语法、词汇和句型运用。以下是对试卷部分内容的详细解释: 1. 选择题第1题考察介词的使用,正确答案是C. next to,表示“紧邻...
例如,第1题是"洗澡",用英文表达是"take a shower";第2题是"做作业",对应的英文是"do my homework";第3题是"下课后",可以翻译成"afterschool";第4题"从周一到周五"为"from Monday to Friday";第5题是"起床",...
1. 选择最佳答案填空题是常见的英语考试题型,第一题考察的是比较级的用法。题目中提到“如果污染更多,我们城市的空气将会更脏”,因此正确答案是B. more; much,more用于形容词或副词的比较级前,much可以修饰比较...
这篇文档是四川省西昌市裕隆中学2013-2014学年七年级英语下学期的第一次月考试题,主要包含了听力理解和单项选择两大部分,旨在测试学生的英语听说读写能力。 听力理解部分包含听对话回答问题和听短文完成表格两...
1. 第一题考查动词短语辨析。"insist on"表示坚持要求,符合句意,建议签订书面协议,即使交易很小。 2. 第二题涉及动词的用法。"be admitted to"是被允许进入的意思,与餐馆着装要求相符,表示没有领带不允许进入...
- 第1题的`have sb. do sth.`结构,表示让某人去做某事,用动词原形:`have Nancy clean` - 第2题的`see sb. doing sth.`结构,表示看到某人正在做某事:`see him reading` - 第3题的`want sb. to do sth.`结构,...
1. 单项选择题第1题涉及到动词短语"拍照"的正确形式,答案是C. takes photos,表示Lisa经常给她的孩子们拍照。 2. 第2题考查乐器前的定冠词使用,正确的表达是C. play the piano,表示小女孩不会弹钢琴。 3. 第3题...
第1题中第一句适合用such,第二句适合用so,第三句用so。具体为:such a clever boy that...;so clever a boy that...;so little money that... - as a result 和 as a result of 区别在于,as a result后面接的...
这篇文档是陕西省渭南市希望高级中学2012-2013学年八年级英语下学期第一次月考试题,是一份针对初中生的英语测试卷,旨在检验学生对英语基础知识的掌握程度,包括词汇、语法、句型等多个方面。下面将详细解析试卷中...
如第一题中,“be anxious about”表示对...感到焦虑,而“be anxious for”则表示为了...而焦虑。第二题中,“would you like me to do sth.”是请求某人做某事的表达,而“be used to doing sth.”表示习惯于做某...
这份资料是针对人教新目标版八年级英语下学期的第一次月考试题,主要测试学生对英语语法、词汇和句型的理解与应用能力。以下是试卷中涉及到的一些知识点: 1. 比较级的使用:第1题考察了比较级在健康饮食中的应用,...