西安交通大学 计算机程序设计(C++)期末编程题

C++MOOC 期末考试 西安交通大学

1. 
行程编码(20分) 
题目内容: 
输入一段由英文字母组成的文字,将这段文字的前面一半逆序(当文字长度为奇数时,前一半的长度是stringlength/2取整),然后写出其行程编码。

编码方法是:将字符串中k个连续相同的字母X记为kX。当k=1时,省略。

输入格式: 
一段由英文字母组成的文字,长度小于200.

输出格式: 
编码字符串,一行,无空格

输入样例: 
AAAABCCCCC

输出样例: 
B4A5C 
时间限制:500ms内存限制:32000kb时间限制:500ms内存限制:32000kb

#include
#include
using namespace std;
string nixu(string a)
{
	int len=0;
	while(a[len]!='\0')
	{
		len++;
	}
	int k=len/2;
	string b;
	int j=k-1;
	for(int i=0;i>a;
	int len=0;
	while(a[len]!='\0')
	{
		len++;
	}
	if(len==1)
	cout<

    //要考虑一些一些特殊情况,如只有一个字符


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 
时间限制:500ms内存限制:32000kb



#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;ichu[t+1].name)
		   {
			    su tt;
		    	    tt=chu[t];
                            chu[t] = chu[t+1];
                            chu[t+1]=tt;
	      	}
	   }
	}
	for(i=0;i

   //要注意排序

3
矩形类(10分)

题目内容:

定义一个矩形类,数据成员有宽度、高度和组成矩形的字符,类型分别为整型、整型和字符型,成员函数有void set(int,int,char)设置数据成员的值,void show()显示矩形。若宽度为7,高度为4,字符为“*”,则show()显示的矩形如下(四周为*,中间是空格):

*******

*     *

*     *

*******

编写主程序,声明矩形类的对象,输入矩形的宽度、高度和组成字符,调用成员函数set()设置矩形参数,调用成员函数show()显示矩形。


输入格式:

两个正整数和一个字符,用空格隔开。


输出格式:

由字符组成的空心矩形。


输入样例:

7 4 *


输出样例:

*******

*     *

*     *

*******


注意:(1)需考虑一些极端情况,(2)要用类实现。(3)可能由于显示格式的问题,题目页面的矩形会错位。只要按格式要求输出。如对样例来说,第2行,两头是“*”,中间是5个空格。,

时间限制:500ms内存限制:32000kb


#include
using namespace std;
class ju{
	   int w;
	   int h;
	   char c;
	public :
		void set(int w1,int h1,char c1)
		{
			w=w1;h=h1;c=c1;
		}
		
		void show()
		{
			if(h!=1)
			{
			if(w!=1)
			{
				
			for(int k=0;k>h>>w>>c;
	j.set(h,w,c);
	j.show();return 0}

//考虑只有一列或者只有一行的情况

你可能感兴趣的:(C++,西安交通大学,mooc)