天啊,我又答应帮别人做作业了么。不过同学求助也没什么拒绝的理由……
雷同学你那些作业太长了,少于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方式好了。
分享到:
相关推荐
Vue@某人,At某人,仿新浪微博@某人,@user,艾特,艾特某人
NoSQL数据库入门与实践第一章答案(以放宽ACID原则为代价,NoSQL采取的是最终一致性原则,而不是像关系型数据库那样地严格遵守着ACID的原则,这意味着如果在特定时间段内没有特定数据项的更新,则最终对其所有的访问...
1007 Numerical Summation of a Series 简单题,还是蛮有意思的 1045 HangOver 简单题 1049 I Think I Need a Houseboat 简单题 1028 Flip and Shift 简单题,可以DP/BFS/……,但是实际上有数学方法可直接判断...
新概念英语第一册直接引语和间接引语试题分享 本资源是一个英语测试题库,涵盖新概念英语第一册的直接引语和间接引语部分。该资源旨在帮助英语学习者提高英语能力,掌握英语语法和词汇。 直接引语 直接引语是指...
选项【B】:属于主动攻击,破坏信息的保密性 选项【C】:属于主动攻击,破坏信息的可用性 选项【D】:属于被动攻击,破坏信息的完整性 正确选项:A 奥鹏作业东财《计算机应用基础》单元作业三81全文共10页,当前为第1页...
格式化软盘 参考答案:C [单项选择题] 11、ISP的中文名称为() A.Internet软件提供者 B.Internet应用提供者 C.Internet服务提供者 D.Internet访问提供者 参考答案:A [单项选择题] 12、第一代计算机主要应用领域为...
C#课程设计的作业,附带解释文档,体现面向对象特性、委托、事件、继承和多态之类,用户名密码见users表。
1、资源内容:机器学习作业-利用对数几率回归进行判断某人是否患有心脏病+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行...
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是"晒网"。
在第一题中,我们可以看到,复合不定代词"something"被用来表示一种要求或愿望。这种情况下,我们可以使用"somthing"来表示"一些东西"。在第二题中,我们可以看到,复合不定代词"any"被用来表示一种否定或限制。这种...
A*算法A*算法A*算法A*算法A*算法A*算法A*算法A*算法A*算法A*算法
(2)public void stringOperate(),其中调用适当的字符串操作完成(a)判断两个字符传”abc”和”acb”是否相同,(b)输出"c:\\java\\jsp\\A.java"中第二次出现"\\j"的位置,并输出该位置起到串末的子串 3. 创建包...
计算机应用基础(二)作业4 计算机应用基础(二)作业4全文共11页,当前为第1页。计算机应用基础(二)作业4 计算机应用基础(二)作业4全文共11页,当前为第1页。 题目1 规范的讲,大家常说的某人网址是指某人的___________...
计算机应用基础(二)作业4(同名20889)(1) 计算机应用基础(二)作业4(同名20889)(1)全文共10页,当前为第1页。计算机应用基础(二)作业4(同名20889) 计算机应用基础(二)作业4(同名20889)(1)全文共10页,当前为第1页。 ...
1>某人在某个市场某个商家买了某台电脑,请用你熟悉的计算机语言表达出里面的关系. 其中有商家类,买家类,商品类。还要有买方法,卖方法。 2>一个完整的单例模式 3>曹操南下攻打刘备,刘备派关羽守锦州,关羽派...
2021年计算机应用基础(二)作业4 2021年计算机应用基础(二)作业4全文共10页,当前为第1页。计算机应用基础(二)作业4 2021年计算机应用基础(二)作业4全文共10页,当前为第1页。 题目1 规范的讲,大家常说的某人网址是...
1. 若 X 的概率密度函数为: 2. 科技馆上午 9 点钟开馆,从 10 点开始每隔半小时有一次同样的科普实验展示, 3. 某人被指控为一个新生儿的父亲 4.
大唐电信笔试题,考试时间一小时,第一部分是填空和选择: br 1.数列6,10,18,32,?,问?是几? br 2.某人出70买进一个x,80卖出,90买回,100卖出,这桩买卖怎么样? br 3.月球绕地球一圈,至少要多少时间?...
第四届“蓝桥杯”全国软件专业人才设计与创业大赛选拔赛 C/C++高职高专组 1、题目标题: 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。 一次,他参加...
计算机应用基础(二)作业4(同名20889) 计算机应用基础(二)作业4(同名20889)全文共11页,当前为第1页。计算机应用基础(二)作业4(同名20889) 计算机应用基础(二)作业4(同名20889)全文共11页,当前为第1页。 题目1 规范...