版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计课内实验013信息与计算科学1205王平蒋宁15实验06 数组、指针与字符串(4学时)(第6章 数组、指针与字符串)一、实验目的(1) 学习使用数组数据对象。(2) 学习字符串数据的组织和处理。(3) 学习标准C+库的使用。(4) 掌握指针的使用方法。(5) 练习通过调试功能观察指针的内容及其所指的对象的内容。(6) 练习通过动态内存分配实现动态数组,并体会指针在其中的作用。(7) 分别使用字符数组和标准C+库练习处理字符串的方法。二、实验任务6_1(习题6-25)编写并测试33矩阵转置函数,使用数组保存33矩阵。6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n
2、阶方阵),使用指针实现函数的功能。6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。6_4 使用string类声明字符串对象,重新实现上一小题。6_5(习题6-27)声明一个Employee类。其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee类型的对象。6_7 修改实验4中的people(人员)类。具有的属性如下:姓名c
3、har name11、编号char number7、性别char sex3、生日birthday、身份证号char id16。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中声明people类的对象数组,录入数据并显示。三、实验步骤1.(编程,习题6-25)编写矩阵转置函数,输入参数为33整型数组。使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:lab6_1.cpp。参考运行结果: 程序及运行结果:/lab6
4、_1.cpp#include using namespace std;void move (int matrix33)int i,j,k;for(i=0;i3;i+)for (j=0;ji;j+)k=matrixij;matrixij=matrixji;matrixji=k;int main()int i,j;int data33;cout输入矩阵的元素endl;for(i=0;i3;i+)for (j=0;j3;j+)cout第i+1行第j+1dataij;cout输入的矩阵为:endl;for(i=1;i3;i+)for (j=0;j3;j+)coutdataij;coutendl;mov
5、e(data);cout转置后的矩阵为:endl;for(i=1;i3;i+)for (j=0;j3;j+)coutdataij;coutendl;return 0;2.(编程,习题6-26)编写nn阶矩阵转置函数,参数为整型指针。使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过调试功能观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。注:可使用一维动态数组,或二维动态数组。 程序及运行结果:(1) 使用一维动态数组表示方阵。/lab6_2.cpp#include using namespace std;void move (int*
6、matrix,int n)int i,j,k;for(i=0;in,i+;)for (j=0;ji;j+)k=*(matrix+i*n+j);*(matrix+i*n+j)=*(matrix+j*n+i);*(matrix+j*n+i)=k;int main()int n,i,j;int*p;coutn;p=new intn*n;cout请输入矩阵的元素endl;for(i=0;in;i+)cout第i+1行第j+1pi*n+j;cout输入的矩阵为:endl;for(i=0;in;i+)for (j=0;jn;j+)coutpi*n+j;coutendl;move(p,n);cout转置后的
7、矩阵为:endl;for(i=0;in;i+)for (j=0;jn;j+)coutpi*n+j;coutendl;return 0;(2) 使用二维动态数组表示方阵。(参考实验提示)/lab6_2.cpp3.(编程)实现两字符串的连接。声明字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。/ 字符串的结束标志0参考运行结果: 程序及运行结果:/lab6_3.cpp4.(编程)使用string类声明字符串对象,实现两字符
8、串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 程序及运行结果:/lab6_4.cpp5.(编程,习题6-27)声明Employee类并应用。在employee.h文件中声明Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,都可以用字符数组来表示。成员函数:构造函数 用来初始化所有成员数组,对字符数组的赋值可以使用字符串拷贝函数strcpy(char *, char *name);display() 使用cout显示姓名、街道地址、城市和邮编等属性;change_name() 改变类中表示姓
9、名属性的字符数组类型的数据成员。在主程序中声明这个类的对象并对其进行操作。程序名:lab6_5.cpp。参考运行结果: 程序及运行结果:/lab6_5employee.h#include #include using namespace std;class Employeeprivate:char name30;char street30;char city18;char zip6;public:Employee(char*n,char*str,char*ct,char*z);void setName(char*n);void display();Employee: Employee (cha
10、r*n,char*str,char*ct,char*z);strcpy(name,n);strcpy(street,str);strcpy(city,ct);strcpy(zip,z);void Employee:setName (char*n)strcpy(name,n);void Employee:display ()coutnametstreett;coutcitytzip;int main()Employee e1(姓名:张山,街道:海甸三西路13号,城市:海口市,邮编:);e1.display();coutendl;e1.setName(姓名:李世);e1.display();cou
11、tendl;return 0;/lab6_5.cpp6.(编程,习题6-27)使用上一小题中的Employee类声明对象数组emp5。使用循环语句把数据显示出来。程序名:lab6_6.cpp。参考运行结果: 程序及运行结果:/lab6_6.cpp7.(编程)修改实验4中的people(人员)类。程序名:lab6_7.cpp。参考运行结果: 程序及运行结果:(1) lab6_7.h:People(人员)类的声明及成员函数的实现/lab6_7.h(2) lab6_7.cpp:主函数(输入、输出和拷贝构造函数测试)/lab6_7.cpp(3) 结果四、实验提示步骤2提示二维数组动态分配空间示例1 mn矩阵#includeusing namespace std;void main()int i,j,m,n,*A;coutmn;A=new int*m; /m行for(i=0;im;i+) Ai=new intn; /n列cout输入mn矩阵endl;for(i=0;im;i+)cout第i+1行:;for(j=0;jAij;/数组形式coutn输入的矩阵为:endl;for(i=0;im;i+)for(j=0;jn;j+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册会计师审计中舞弊风险应对程序的设计实施
- 《猫》的课文解读及任务串教学设计
- 某金属冶炼厂能耗管理准则
- 2026云南玉溪易门县科学技术协会招聘2人备考题库含答案详解(满分必刷)
- 2026南方科技大学生物医学工程系诚聘海内外高层次人才备考题库及答案详解(全优)
- 2026湖北孝感市孝南区事业单位人才引进春季校园招聘44人备考题库带答案详解(突破训练)
- 2026华中农业大学校园建设与安全保卫部劳动聘用制人员招聘3人备考题库(湖北)含答案详解(培优a卷)
- 2026g广西柳州市柳北区白露街道办事处招聘公益性岗位2人备考题库及答案详解【易错题】
- 某造船厂焊接作业准则
- 2026广东广州南沙人力资源发展有限公司现向社会招聘编外人员备考题库带答案详解ab卷
- 《工业机器人技术基础》课件 2.3.1 工业机器人的内部传感器
- 2025年副高卫生职称-公共卫生类-健康教育与健康促进(副高)代码:091历年参考题库含答案解析(5套)
- 林地勘界协议书
- 2025年成人教育线上学习模式创新中的学习成果认证与转换研究报告
- 物业管家的一天培训课件
- 2025年高考江苏卷物理真题(原卷版)
- 科学防癌与健康生活-肿瘤防治科普指南
- 冠状动脉粥样硬化性心脏病猝死防治专家共识解读 2
- 供水考试试题及答案
- T/CHES 69-2022抗旱需水分析技术导则
- 办理证件合同协议书
评论
0/150
提交评论