C++实验二

题目一

 编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。

#include <iostream>

using namespace std;

int main()
{
   int a[3][3],i,j;
   for(i=0;i<3;i++)for(j=0;j<3;j++)cin>>a[i][j];
   for(j=0;j<3;j++){for(i=0;i<3;i++)cout<<a[i][j]<<' '; cout<<endl;}
    return 0;
}

题目二

改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。

#include <iostream>

using namespace std;
void fun(int **p){
int i,j;

for(j=0;j<3;j++){for(i=0;i<3;i++)cout<<p[i][j]<<' '; cout<<endl;}
}
int main()
{

   int **p=new int *[3];
   int i,j ;
for(  i = 0;i <= 2;i++)
{
p[i]=new int[3];
}
   for(i=0;i<3;i++)for(j=0;j<3;j++)cin>>p[i][j];
   fun(p);
   delete [] p;
    return 0;
}

题目三

编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。

#include <iostream>
using namespace std;
int main()
{
    char a[100] ,b[100];
    int i,j;
  cin>>a>>b;
    for (j = 0;;j++)
    {
        if (a[j] == '\0')break;
    }
    for (i =0; ;i++)
    {
        a[j] = b[i];
        j++;
        if (b[i] == '\0')break;
    }
    cout << a;
}

题目四

使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。

#include <iostream>
#include<string.h>

using namespace std;

int main()
{
     string s1,s2;  cin>>s1>>s2;
string s3 = s1 + s2;
cout<<s3;



    return 0;
}

题目五

定义Employee类,Employee类具有姓名、街道地址、城市和邮编等私有数据成员,display()中使用cout显示姓名、街道地址、城市和邮编等属性,change_name()改变类中表示姓名属性的数据成员。在主程序中定义这个类的对象并对起进行操作。

#include <iostream>
#include<string.h>
using namespace std;
class Employee{
public:
    Employee(string Name,string Address,string City, string Postalcode){
    name=Name; address=Address; city=City;postalcode=Postalcode;};
    void display();
    void change_name(string newname);
private:
    string name,address,city,postalcode;
};
void Employee::display(){ 

cout<<"name:"<<name<<endl;
cout<<"address:"<<address<<endl;
cout<<"city:"<<city<<endl;
cout<<"postalcode:"<<postalcode<<endl;
}
void Employee::change_name(string newname){
name=newname;}
int  main()
{
        string  n,a,c,p;
        cin>>n;
        cin>>a;
        cin>>c;
        cin>>p;
        Employee emp(n,a,c,p);
        emp.display();
        cin>>n;
        emp.change_name(n);
        emp.display();
}

题目六

在上一题定义的Employee类基础上使用Employee类定义对象数组emp[5],并在录入对象数组的信息后使用循环语句把数据显示出来。

#include <iostream>
#include<string.h>
using namespace std;
class Employee{
public:
    Employee(string Name,string Address,string City, string Postalcode);
    Employee(){};
    Employee( Employee&a){name=a.name;address=a.address;city=a.city;postalcode=a.postalcode;}
    void display();
private:
    string name,address,city,postalcode;
};
Employee::Employee(string Name,string Address,string City, string Postalcode){
    name=Name; address=Address; city=City;postalcode=Postalcode;}
void Employee::display(){
cout<<"name:"<<name<<endl;
cout<<"address:"<<address<<endl;
cout<<"city:"<<city<<endl;
cout<<"postalcode:"<<postalcode<<endl;
}
 int  main()
{
        string  n,a,c,p;
        int  i;
        Employee  emp[5];
        for(i=0;i<5;i++)
        {
        cin>>n;
        cin>>a;
        cin>>c;
        cin>>p;
        emp[i]=Employee(n,a,c,p);
        }
        for(i=0;i<5;i++)
        {
        cout<<"Employee"<<i+1<<endl;
        emp[i].display();
        }
}

选做题 

修改实验一的选做实验中的people(人员)类。具有的属性如下:

姓名 char name[11]

编号 char number[7]

性别 char sex[3]

出生日期 birthday,“出生日期”定义为一个“日期(date)”类内嵌对象

身份证号 char id[16]

用成员函数实现对人员信息的录入和显示。

要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。

#include <iostream>
#include <string.h>
using namespace std;
class date {
private:
	int year;
	int month;
	int day;
public:
	date(int a,int b,int c):year(a),month(b),day(c){}
	date(const date& a) {
		year = a.year;
		month = a.month;
		day = a.day;
	}
	void show() {
		cout << year<<" " << month <<" "<< day << endl;
	}
	date() {}
	~date(){}
};
class people {
private:
	char name[11];
	char number[7];
	char sex[3];
	date m;
	char id[16];
public:
	people(char a[11], char b[7], char c[3],  date T, char d[16])
		 {
		strcpy(name, a);
		strcpy(number, b);
		strcpy(sex, c);
		m=T;
		strcpy(id, d);
	}
	people(){};
	people(const people& d) {
		strcpy(name, d.name);
		strcpy(number, d.number);
		strcpy(sex, d.sex);
		strcpy(id, d.id);
		m = d.m;
	}
	~people(){}
	void show() {
		cout << name << endl;
		cout << number << endl;
		cout << sex << endl;
		m.show();
		cout << id << endl;
	}

};
int main()
{
	char name[11];
	char number[7];
	char sex[3];
	char id[16];
	int x, y, z;
	 cin>>name>>number>>sex>>id;
	cin >> x >> y >> z;
date E(x,y,z);
	people a(name,number,sex, E,id);
  people b[2];
    b[0]=a;
    a.show();
  b[0].show();
}

上一篇:oracle listagg() 函数


下一篇:MySQL单表查询、聚合函数、多表连接查询、子查询