题目一
编写矩阵转置函数,输入参数为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();
}