




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐C上机实验报告实验四试验四数组、指针与字符串
1.试验目的
1.学习使用数组
2.学习字符串数据的组织和处理
3.学习标准C++库的使用
4.把握指针的使用办法
5.练习通过Debug观看指针的内容及其所指的对象的内容
6.联系通过动态内存分配实现动态数组,并体味指针在其中的作用
7.分离使用字符数组和标准C++库练习处理字符串的办法
2.试验要求
1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。
2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。
3.编程实现两字符串的衔接。要求使用字符数组保存字符串,不要使用系统函数。
4.使用string类定义字符串对象,重新实现上一小题。
5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()转变对象的姓名属性。实现并测试这个类。
6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。
7.(选做)修改试验4中的选做试验中的people(人员)类。具有的属性如下:姓名charname[11]、编号charnumber[7]、性别charsex[3]、生日birthday、身份证号charid[16]。其中“诞生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚拢。在测试程序中定义people类的对象数组,录入数据并显示。
3.试验内容及试验步骤
1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注重在循环语句中毕竟需要对哪些元素举行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。
2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素举行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观看指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。
3.编程实现两字符串的衔接。定义字符数组保存字符串,在程序中提醒用户输入两个字符串,实现两个字符串的衔接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注重,字符串的结束标志是ASCII码0,使用循环语句举行字符串间的字符拷贝。
4.使用string类定义字符串对象,编程实现两字符串的衔接。在string类中已重载了运算符“+=”实现字符串的衔接,可以使用这个功能。程序名:lab6_4.cpp。
5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化全部数据成员;display()中使用cout显示姓名、街道地址、城市和邮编等属性,change_name()转变类中表示姓名属性的数据成员。在主程序中定义这个类的对象并对其举行操作。程序名:lab6_5.cpp。
6.使用上一小题中定义的Employee类定义对象数组emp[5],使用循环语句把数据显示出来。程序名:lab6_6.cpp。
4.思量题
1.如何存储和处理字符串?
(1)可以利用字符数组存储和处理字符串;
(2)利用系统提供的string类存储和处理字符串。
2.头文件和头文件有何区分?
包含头文件后,可以使用系统的字符串处理函数,如strcat(衔接).strcpy(复制).strcmp(比较).strlen(求长度).strlwr(转换为小写).strupr(转换为大写)等等;而包含头文件后,则可以定义string类,并且使用系统提供的string类操作符对string类型的对象举行处理。
3.有几种办法来表示和处理数组元素?
(1)数组下标办法,如a[i]
(2)指针的办法,如int*p=
inta[3][3];
voidshowTrans()
{
inti,j;
cout>a[i][j];
}
}
}
intmain()
{
input();
showTrans();
return0;
}
2.lab6_2.cpp
#includeusingnamespacestd;
int*p[9];
voidshowTrans()
{
inti,j;
cout>n;
p[i]=newint(n);
}
}
intmain()
{
input();
showTrans();
inti;
for(i=0;i
//不使用系统自带函数strcpyusingnamespacestd;
chara[20]={"/0"},b[20]={"/0"},c[45]={"/0"};intmain()
{
inti,j,k;
cout
#include
usingnamespacestd;
chara[20]={"/0"},b[20]={"/0"};
intmain()
{
cout
#include"Employee.h"usingnamespacestd;
Employee::Employee(){}
Employee::Employee(charn,chara,charc,intp){
name[0]=n;
name[1]='\0';
address[0]=a;
address[1]='\0';
city[0]=c;
city[1]='\0';
postcode=p;
}
Employee::~Employee(){}voidEmployee::change_name()
{
cout>postcode;
}
voidEmployee::display()
{
cout
#include"Employee.h"usingnamespacestd;
Employee::Employee(){}
Employee::Employee(charn,chara,charc,intp)
{
name[0]=n;
name[1]='\0';
address[0]=a;
address[1]='\0';
city[0]=c;
city[1]='\0';
postcode=p;
}
Employee::~Employee(){}
voidEmployee::change_name()
{
cout>postcode;
}
voidEmployee::display()
{
cout
#include
usingnamespacestd;
//Date类
classDate
{
private:
intyear;
intmonth;
intday;
public:
Date();
Date(inty,intm,intd);
Date(Date
~Date();
voidsetDate();
voidshowDate();
};
//People类,其中含Date类型的数据classPeople
{
private:
charname[11];
charnumber[7];
charsex[3];
Datebirthday;
charid[16];
public:
People();
People(char*n,char*nu,char*s,Dateb,char*i);
People(People
~People();
voidsetName();
voidsetNumber();
voidsetSex();
voidsetId();
voidshowPeople();
};
//Date构造函数
Date::Date(){}
Date::Date(inty,intm,intd)
{
year=y;
month=m;
day=d;
}
Date::Date(Date
month=p.month;
day=p.day;
}
//析构
inlineDate::~Date(){}
//Date成员函数,设置诞生年代日voidDate::setDate()
{
inty,m,d;
cout>y;
cout>m;
cout>d;
year=y;
month=m;
day=d;
}
//Date内联成员函数,输出年代日
inlinevoidDate::showDate()
{
cout<<"Birthdayis"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
}
//People构造函数
People::People(){};
People::People(char*n,char*nu,char*s,Dateb,char*i)
{
strcpy(name,n);
strcpy(number,nu);
strcpy(sex,s);
birthday=b;
strcpy(id,i);
}
People::People(People
strcpy(number,p.number);
birthday=p.birthday;
strcpy(id,p.id);
}
//People析构
inlinePeople::~People(){}
//People成员函数,设置各类数据
voidPeople::setName()
{
cout<<"Pleaseinputtheperson'sname:";
cin.getline(name,11,'\n');
}
voidPeople::setNumber()
{
cout<<"Inputnumber:";
cin.getline(number,7,'\n');
}
voidPeople::setSex()
{
cout<<"Inputsex:";
cin.getline(sex,3,'\n');
}
voidPeople::setId()
{
cout<<"Inputid:";
cin.getline(id,16,'\n');
}
//People内联成员函数,输出人员信息
inlinevoidPeople::showPeople()
{
cout<<"Name:"<<name<<endl;
cout<<"Number:"<<number<<endl;
cout<<"Sex:"<<sex<<endl;
cout<<"ID:"<<id<<endl;
}
intmain()
{
inti;
charspaceA;
//生成3个Date类型的对象
Datedate[3]={Date(0,0,0),Date(0,0,0),Date(0,0,0)};
//生成3个People类型的对象
Peopleperson[3]={People("0","0","0",date[0],"0"),People("0","0","0",date[1],"0"),People("0","0","0",date[2],"0")};
//设置这3个对象的各
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西师范大学《篮球》2023-2024学年第二学期期末试卷
- 池州学院《智能采油装备》2023-2024学年第二学期期末试卷
- 哈尔滨信息工程学院《人力资源开发与管理》2023-2024学年第二学期期末试卷
- 南京医科大学《铁路与轨道交通车站工程》2023-2024学年第二学期期末试卷
- 内江职业技术学院《Photoshop海报设计》2023-2024学年第二学期期末试卷
- 金肯职业技术学院《学前教育统计学》2023-2024学年第二学期期末试卷
- 广东女子职业技术学院《安装工程预算》2023-2024学年第二学期期末试卷
- 湖南农业大学《材料的腐蚀与防护》2023-2024学年第二学期期末试卷
- 新乡学院《人权法》2023-2024学年第二学期期末试卷
- 杭州万向职业技术学院《高级管理研究》2023-2024学年第二学期期末试卷
- 建筑力学(绪论)课件
- excel表格水池侧壁及底板配筋计算程序(自动版)
- DB1301∕T 369-2021 设施蔬菜有机肥替代化肥技术规程
- 商业写字楼运营费用
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- FEMA:潜在的失效模式及影响分析解析课件
- 三腔二囊管的应用和护理--PPT课件 (3)
- 流体力学第二版蔡增基课件
- 英语书写模板
- 湖北省机关事业单位劳动合同制工人
- 云南省普通初中学生成长记录.doc
评论
0/150
提交评论