MOOC C++ 期末试题
1字典编码 题目内容: 编写程序,给一段文本中的每个单词一个整数编码,输出文本的整数编码序列。要求(1)编码从1开始,按单词出现的先后顺序依次编码;(2)重复单词不重复编码;(3)输出的每个编码占3位,不足的前面补0。 输入:一段英文文本,一行,其中只有单词,单词由一个或多个空格分隔末尾可能有多于的空格,文本中没有标点和数字。文本长度不超过1000,单词数不超过300,每个单词的字符个数不超过20,字母均小写。 输出:整数编码序列。 样例1输入: hello hello how are you 样例1输出: 001001002003004 #include #include #include using namespace std; int main() { string s,base[300],code[300]; getline(cin,s); int i = 0,count = 0,start; while(i < s.length()) { start = i; while(i < s.length() && s[i] != ' ') { i ++; } if(i != start) { base[count ++] = s.substr(start,i - start); } i ++; } int countCode = 0,j; bool b; for(i = 0; i < count; i ++) { b = false; for(j = 0; j < countCode; j ++) { if(code[j].compare(base[i]) == 0) { b = true; break; } } if(b) { cout< } else { code[countCode] = base[i]; countCode ++; cout< } } return 0; } 2成绩统计 题目内容: 输入若干学生的成绩,统计各班的成绩的平均值,并按班级名称的机内码从小到大排序输出。 学生成绩信息包括:班级,学号和成绩。班级名称是"000"'时表示成绩输入结束。 班级名称不超过20字符,学号不超过10个字符,成绩为整数,平均成绩为双精度实数,保留三位小数。班级数不超过10个,总人数不超过100个。 输入格式: 若干行,每行信息包括班级,学号和成绩,用空格隔开, 最后一行为:000 000 000 输出格式: 若干行,每行信息包括:班级和平均成绩,中间用一个空格隔开。行数由输入中的班级数确定。 输入样例: 航天 ?001 80 信计 ?001 90 航天 ?002 70 航天 ?003 80 信计 ?002 91 000 000 000 输出样例: 航天 76.667 信计 90.500 #include #include using namespace std; class su{ public : string name; string nub; double sum; int nuber; su() { nuber=0; sum =0; } }; int main() { su *chu=new su[10]; string name; string nub; int fenshu; int j = 0,t = 0,i,flag = 0; while(1){ flag=0; cin>>name>>nub>>fenshu; if(name=="000") { break; } for(i=0;i { if(name==chu[i].name) //如果找到,归类 { flag=1; chu[i].sum+=fenshu; chu[i].nuber++; } } if(flag==0) //如果没找到就创建新的 { chu[j].name=name; chu[j].sum+=fenshu; chu[j].nuber++; j++; } } for(i=0;i { for(t=0;t { if(chu[t].name>chu[t+1].name) { su tt; tt=chu[t]; chu[t] = chu[t+1]; chu[t+1]=tt; } } } for(i=0;i { cout< cout.setf(ios::fixed); cout.precision(3); cout<<1.0*chu[i].sum/chu[i].nuber< } delete []chu; return 0; } 3矩形类 题目内容: 定义一个矩形类,数据成员有宽度、高度和组成矩形的字符,类型分别为整型、整型和字符型,成员函数有void set(int,int,char)设置数据成员的值,void show()显示矩形。若宽度为7,高度为4,字符为“*”,则show()显示的矩形如下(四周为*,中间是空格): ******* *? ? ?* *? ? ?* ******* 编写主程序,声明矩形类的对象,输入矩形的宽度、高度和组成字符,调用成员函数set()设置矩形参数,调用成员函数show()显示矩形。 输入格式: 两个正整数和一个字符,用空格隔开。 输出格式: 由字符组成的空心矩形。 输入样例: 7 4 * 输出样例: ******* *? ? ?* *? ? ?* ******* 注意:(1)需考虑一些极端情况,(2)要用类实现。(3)可能由于显示格式的问题,题目页面的矩形会错位。只要按格式要求输出。如对样例来说,第2行,两头是“*”,中间是5个空格。 #include using namespace std; class Rectangle { int width,length; char a; public: Rectangle(int width,int length,char a) { this->width=width; this->length=length; this->a=a; } void set(int width,char a) { this->width=width; this->length=length; this->a=a; } void show() { for(int i=0; i { if(i==0||i==length-1) { for(int j=0; j cout< } else for(int x=0; x if(x==0||x==width-1)cout< else cout<<" "; cout< } } }; int main() { int width,length; char a; cin>>width>>length>>a; Rectangle b(width,length,a); b.show(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |