C 上机实验报告 实验四

合集下载

上机实验报告(精选11篇)

上机实验报告(精选11篇)

上机实验报告篇1用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.c的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a可读性:有注释。

b交互性:有输入提示。

c结构化程序设计风格:分层缩进、隔行书写。

3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。

请注意:过时不候哟!四、实验报告内容0.顺序表的插入。

1.顺序表的删除。

2.带头结点的单链表的\'插入。

3.带头结点的单链表的删除。

注意:1.每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。

例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。

2.实验报告中的源代码应是通过编译链接即可运行的。

3.提交到个人空间中的内容应是上机实验中的全部内容。

上机实验报告篇2一、《软件技术基础》上机实验内容1.顺序表的建立、插入、删除。

2.带头结点的单链表的建立(用尾插法)、插入、删除。

二、提交到个人10m硬盘空间的内容及截止时间1.分别建立二个文件夹,取名为顺序表和单链表。

2.在这二个文件夹中,分别存放上述二个实验的相关文件。

每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。

3. 截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。

三、实验报告要求及上交时间(用a4纸打印)1.格式:《计算机软件技术基础》上机实验报告用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.c的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a 可读性:有注释。

b 交互性:有输入提示。

C上机实验报告实验

C上机实验报告实验

C上机实验报告实验实验报告:C语言上机实验一、实验目的通过编写C语言程序,掌握C语言的基本语法及应用,提高对C语言程序设计的理解与掌握。

二、实验内容1.编写程序,计算并输出n的阶乘。

2.编写程序,判断输入的年份是否为闰年。

3.编写程序,判断输入的数是否为质数。

4.编写程序,判断输入的字符串是否为回文字符串。

5.编写程序,实现选择排序并输出排序结果。

三、实验过程及结果1.阶乘计算程序```c#include <stdio.h>//函数声明int factorial(int n);int maiint n;printf("请输入一个整数n:");scanf("%d", &n);printf("%d的阶乘为:%d\n", n, factorial(n)); return 0;int factorial(int n)if (n == 0 , n == 1)return 1;} elsereturn n * factorial(n-1);}```实验结果:程序能够正确计算并输出n的阶乘。

2.闰年判断程序```c#include <stdio.h>int isLeapYear(int year);int maiint year;printf("请输入一个年份:");scanf("%d", &year);if (isLeapYear(year))printf("%d是闰年\n", year);} elseprintf("%d不是闰年\n", year);}return 0;int isLeapYear(int year)if (year % 400 == 0 , (year % 4 == 0 && year % 100 != 0)) return 1;} elsereturn 0;}```实验结果:程序能够正确判断输入的年份是否为闰年。

C++上机实验报告 实验四

C++上机实验报告 实验四

C++上机实验报告实验四C++上机实验报告实验四一、实验目的本次实验旨在通过实际编程操作,进一步加深对 C++语言中类与对象、继承与多态等重要概念的理解和运用,提高编程能力和问题解决能力。

二、实验环境操作系统:Windows 10编程软件:Visual Studio 2019三、实验内容本次实验主要包括以下几个部分:1、类与对象的定义和使用创建一个名为`Student` 的类,用于表示学生的信息,包括姓名、学号、年龄和成绩等属性,并实现相应的成员函数用于设置和获取这些属性的值。

2、继承的实现从`Student` 类派生出一个名为`GraduateStudent` 的子类,增加研究方向和导师等属性,并重新定义一些成员函数以适应子类的特殊需求。

3、多态性的应用定义一个基类`Shape` ,以及派生类`Circle`(圆形)和`Rectangle`(矩形),通过虚函数实现不同形状的面积计算方法。

四、实验步骤及代码实现1、`Student` 类的定义与实现```cppinclude <iostream>include <string>class Student {private:std::string name;int id;int age;double score;public://设置属性值的函数void setName(std::string n) { name = n; }void setId(int i) { id = i; }void setAge(int a) { age = a; }void setScore(double s) { score = s; }//获取属性值的函数std::string getName(){ return name; }int getId(){ return id; }int getAge(){ return age; }double getScore(){ return score; }//打印学生信息的函数void printInfo(){std::cout <<"姓名: "<< name <<",学号: "<< id <<",年龄: "<< age <<",成绩: "<< score << std::endl;}};int main(){Student s;ssetName("张三");ssetId(1001);ssetAge(20);ssetScore(855);sprintInfo();return 0;}```2、`GraduateStudent` 类的定义与实现```cppinclude <iostream>include <string>class GraduateStudent : public Student {private:std::string researchDirection;std::string supervisor;public://设置子类特有属性值的函数void setResearchDirection(std::string rd) { researchDirection = rd; }void setSupervisor(std::string sv) { supervisor = sv; }//获取子类特有属性值的函数std::string getResearchDirection(){ return researchDirection; }std::string getSupervisor(){ return supervisor; }//打印研究生信息的函数void printInfo(){Student::printInfo();std::cout <<"研究方向: "<< researchDirection <<",导师: "<< supervisor << std::endl;}};int main(){GraduateStudent gs;gssetName("李四");gssetId(1002);gssetAge(22);gssetScore(900);gssetResearchDirection("计算机视觉");gssetSupervisor("王五教授");gsprintInfo();return 0;}```3、多态性的实现```cppinclude <iostream>class Shape {public:virtual double area()= 0;};class Circle : public Shape {private:double radius;public:Circle(double r) : radius(r) {}double area(){return 314159 radius radius;}};class Rectangle : public Shape {private:double length;double width;public:Rectangle(double l, double w) : length(l), width(w) {}double area(){return length width;}};int main(){Shape shapes2;shapes0 = new Circle(50);shapes1 = new Rectangle(40, 60);for (int i = 0; i < 2; i++){std::cout <<"面积: "<< shapesi>area()<< std::endl;delete shapesi;}return 0;}```五、实验结果与分析1、在`Student` 类的实验中,成功定义了学生的属性,并通过成员函数进行了设置和获取,打印出了正确的学生信息。

C语言上机实验报告

C语言上机实验报告

C语言上机实验报告实验题目:利用C语言实现学生信息管理系统一、实验目的1.熟悉C语言的基本语法和控制流程;2.掌握C语言的基本输入输出函数;3.学会使用C语言的数组和结构体来管理和操作学生信息。

二、实验环境1. 操作系统:Windows;2. 集成开发环境:Dev-C++。

三、实验内容和步骤1.设计学生结构体首先,定义一个学生结构体,包括学号、姓名、性别、年龄和成绩等字段。

2.实现学生信息的录入创建一个函数,用于输入学生的基本信息。

其中,输入学生的学号、姓名、性别、年龄和成绩。

3.实现学生信息的输出创建一个函数,用于输出学生的基本信息。

其中,输出学生的学号、姓名、性别、年龄和成绩。

4.实现学生信息的查询创建一个函数,用于根据学生的学号查询学生的基本信息。

5.实现学生信息的修改创建一个函数,用于根据学生的学号修改学生的基本信息。

6.实现学生信息的删除创建一个函数,用于根据学生的学号删除学生的基本信息。

7.实现学生信息的排序创建一个函数,用于按照学生的成绩对学生信息进行排序,并输出排序后的结果。

8.实现学生信息的保存和读取创建一个函数,用于将学生信息保存到文件中,并可以从文件中读取学生信息。

四、实验结果和分析1.学生信息的录入、输出、查询、修改、删除和排序等功能均能正常实现,并能正确显示结果。

2.学生信息的保存和读取功能能够正确将学生信息保存到文件中,并能从文件中读取学生信息并显示。

五、实验心得通过本次实验,我掌握了基本的C语言语法和控制流程,学会了使用数组和结构体来管理和操作学生信息。

在实验过程中,我遇到了一些问题,比如如何实现学生信息的排序和保存读取。

经过查阅资料和与同学的讨论,我成功解决了这些问题。

在实验过程中,我深刻体会到了C语言的强大和灵活性,同时也发现了一些C语言的不足之处。

在实验中,我发现了一些潜在的bug和改进的空间,比如输入验证不够严谨和错误处理不够完善等。

虽然本次实验只是一个简单的学生信息管理系统,但它给我提供了一个很好的机会来熟悉和掌握C语言的基本知识和技能。

C上机实验报告 实验四

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(人员)类。

具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。

其中“出生日期”定义为一个“日期”类内嵌对象。

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

要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。

在测试程序中定义people类的对象数组,录入数据并显示。

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

程序名:lab6_1.cpp。

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

大一C语言上机实验实验报告

大一C语言上机实验实验报告
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{printf("%d",* p);p++;}
}
void sort(int x[],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k]) k=j;
从1一直加到100.
2.确定数学模型
3.算法
i=1
当i≤100
sum+=i
i=i+1
输出5050
4.程序编码
#include<stdio.h>
void main()
{
int i,sum=0;
for(i=1;i<=100;i++)sum+=i;
printf("%d\n",sum);
}
5.调试程序
经过上机调试,运行情况如下:
void main()
{
int year;
scanf("%d",&year);
if(year/4==0&&year/100!=0)
printf("%d is a leap year.\n",year);
else if(year/400==0)
printf("%d is a leap year.\n",year);
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t;}

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)第一篇:C语言程序设计上机实验报告黔南民族师范学院 C语言程序设计上机实验报告系部:计算机科学系年级:2013 级班级:姓名:学号:实验时间:实验成绩:2013年月日实验三顺序结构程序的设计一实验名称:顺序结构程序的设计二.实验环境:windows XP系统,VC++6.0软件三.实验目的:四.实验内容:五.算法描述流程图六.源程序七.测试数据及运行结果八.实验心得实验成绩评分要求1、原创性发现抄袭或雷同成绩为0分2、正确性程序正确60分3、可读性格式清楚,有注释,变量命名规范20分4、健壮性对特殊测试数据有考虑有测试10分5、效率程序运行效率高10分第二篇:《c语言程序设计》上机实验报告要求《c语言程序设计》上机实验报告要求1.实验环境:软件系统:使用的软件环境硬件系统:机型说明2.实验目的:掌握如何编辑、编译、链接调试运行c程序3.实验内容:(1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7(2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~(3)循环结构程序设计(while, dowhile,for语句的用法)。

(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。

(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。

(6)熟悉指针含义及其使用。

(7)熟悉结构体和共用体的使用。

(8)熟悉文件的使用。

4.实验要求:(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改之。

(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。

(3)运行程序,输入数据,分析结果。

5.实验结果:输出程序清单和运行结果。

(要求把原题内容,调试好的程序和其结果一并打印),6.实验体会分析运行结果,本次调试程序取得的经验(遇到的问题,解决的方法等)。

第三篇:C程序设计上机实验报告10C程序设计实验报告实验名称:指针与数组学时安排:2课时实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.理解指针、地址和数组间的关系;2.掌握通过指针操作数组元素的方法;3.掌握数组名作为参数的编程方式。

c语言上机实验报告

c语言上机实验报告

c语言上机实验报告C语言上机实验报告引言:C语言是一门广泛应用于计算机编程领域的高级编程语言。

通过学习C语言,我们可以了解计算机程序的基本原理和实现方法。

在本次实验中,我们将进行一系列的C语言上机实验,旨在提高我们的编程能力和解决问题的能力。

实验一:基本语法和数据类型在这个实验中,我们首先学习了C语言的基本语法和数据类型。

我们了解了变量的定义和使用,以及常用的数据类型,如整数、浮点数和字符。

通过编写简单的程序,我们掌握了C语言的基本语法和运算符的使用方法。

实验二:流程控制和循环结构在这个实验中,我们学习了C语言的流程控制和循环结构。

我们了解了条件语句(if-else语句)和循环语句(for循环和while循环)的使用方法。

通过编写程序,我们掌握了如何根据不同的条件执行不同的代码块,以及如何使用循环结构重复执行一段代码。

实验三:数组和字符串在这个实验中,我们学习了C语言中数组和字符串的使用方法。

我们了解了如何定义和初始化数组,以及如何使用下标访问数组元素。

我们还学习了字符串的定义和常用的字符串处理函数。

通过编写程序,我们掌握了如何使用数组和字符串解决实际问题。

实验四:函数和指针在这个实验中,我们学习了C语言中函数和指针的使用方法。

我们了解了如何定义和调用函数,以及如何传递参数和返回值。

我们还学习了指针的概念和使用方法,包括指针的定义、指针的运算和指针的传递。

通过编写程序,我们掌握了如何使用函数和指针提高程序的模块化和灵活性。

实验五:文件操作在这个实验中,我们学习了C语言中文件操作的使用方法。

我们了解了如何打开和关闭文件,以及如何读取和写入文件。

我们还学习了文件指针和文件位置指示器的概念和使用方法。

通过编写程序,我们掌握了如何读取和处理文件中的数据,以及如何将数据写入文件。

总结:通过这一系列的C语言上机实验,我们深入学习了C语言的基本知识和编程技巧。

我们掌握了C语言的基本语法和数据类型,了解了流程控制和循环结构的使用方法,掌握了数组和字符串的操作技巧,学会了函数和指针的使用方法,以及文件操作的基本知识。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四数组、指针与字符串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.头文件<string.h>和头文件<string>有何区别?包含头文件<string.h>后,可以使用系统的字符串处理函数,如strcat(连接).strcpy(复制).strcmp(比较).strlen(求长度).strlwr(转换为小写).strupr(转换为大写)等等;而包含头文件<string>后,则可以定义string类,并且使用系统提供的string类操作符对string 类型的对象进行处理。

3.有几种方法来表示和处理数组元素?(1)数组下标方法,如a[i](2)指针的方法,如int*p=&a[0]5.源程序b6_1.cpp#include<iostream>usingnamespacestd;inta[3][3];voidshowTrans(){inti,j;cout<<"Thetranspositionmatrixis:"<<endl;for(j=0;j<3;j++){for(i=0;i<3;i++){cout<<a[i][j];cout<<"";}cout<<endl;}}voidinput(){inti,j;cout<<"Pleaseinputyour3*3matrix:"<<endl;for(i=0;i<3;i++){for(j=0;j<3;j++){cin>>a[i][j];}}}intmain(){input();showTrans();return0;}b6_2.cpp#include<iostream> usingnamespacestd;int*p[9];voidshowTrans(){inti,j;cout<<"Thetranspositionmatrixis:"<<endl; for(i=0;i<3;i++){for(j=i;j<9;j=j+3){cout<<*p[j];cout<<"";}cout<<endl;}}voidinput(){inti,n;cout<<"Pleaseinputyour3*3matrix:"<<endl; for(i=0;i<9;i++){cin>>n;p[i]=newint(n);}}intmain(){input();showTrans();inti;for(i=0;i<9;i++){deletep[i];}return0;}b6_3.cpp#include<iostream>//不使用系统自带函数strcpy usingnamespacestd;chara[20]={"/0"},b[20]={"/0"},c[45]={"/0"}; intmain(){inti,j,k;cout<<"Inputthefirststring:"<<endl;cin.getline(a,20,'\n');cout<<"Inputthesecondstring:"<<endl;cin.getline(b,20,'\n');intm=0,n=0;//将数组a中的字符串拷贝到数组c中for(k=0;k<45,a[m]!='\0';k++,m++){c[k]=a[m];}//将数组b中的字符串接着a,拷贝到数组c中for(;k<45,b[n]!='\0';k++,n++){c[k]=b[n];}cout<<c;return0;}b6_4.cpp#include<iostream>#include<cstring>usingnamespacestd;chara[20]={"/0"},b[20]={"/0"};intmain(){cout<<"Inputthefirststring:"<<endl;cin.getline(a,20,'\n');cout<<"Inputthesecondstring:"<<endl;cin.getline(b,20,'\n');strings1=a;strings2=b;strings3=s1+s2;cout<<s3;return0;}5.Employee.h#ifndefEmployee_H_INCLUDED#defineEmployee_H_INCLUDED classEmployee{private:charname[15];charaddress[25];charcity[10];intpostcode;public:Employee();Employee(charn,chara,charc,intp);~Employee();voidchange_name();voidchange_address();voidchange_city();voidchange_postcode();voiddisplay();};#endif//Employee_H_INCLUDEDEmployee.cpp#include<iostream>#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<<"Pleaseinputyourchangedname:"<<endl; cin.getline(name,15,'\n');}voidEmployee::change_address(){cout<<"Pleaseinputyourchangedaddress:"<<endl; cin.getline(address,25,'\n');}voidEmployee::change_city(){cout<<"Pleaseinputyourchangedcity:"<<endl; cin.getline(city,10,'\n');}voidEmployee::change_postcode(){cout<<"Pleaseinputyourchangedpostcode:"<<endl; cin>>postcode;}voidEmployee::display(){cout<<"Yourinformationshowsasfollow:"<<endl; cout<<"name:"<<name<<endl;cout<<"address:"<<address<<endl;cout<<"city:"<<city<<endl;cout<<"postcode:"<<postcode<<endl;}intmain(){Employeeperson(1,1,1,1);person.display();person.change_name();person.change_address();person.change_city();person.change_postcode();person.display();return0;}6.Employee.h#ifndefEmployee_H_INCLUDED#defineEmployee_H_INCLUDED classEmployee{private:charname[15];charaddress[25];charcity[10];intpostcode;public:Employee();Employee(charn,chara,charc,intp);~Employee();voidchange_name();voidchange_address();voidchange_city();voidchange_postcode();voiddisplay();};#endif//Employee_H_INCLUDEDEmployee.cpp#include<iostream>#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<<"Pleaseinputyourchangedname:"<<endl; cin.getline(name,15,'\n');}voidEmployee::change_address(){cout<<"Pleaseinputyourchangedaddress:"<<endl; cin.getline(address,25,'\n');}voidEmployee::change_city(){cout<<"Pleaseinputyourchangedcity:"<<endl; cin.getline(city,10,'\n');}voidEmployee::change_postcode(){cout<<"Pleaseinputyourchangedpostcode:"<<endl; cin>>postcode;}voidEmployee::display(){cout<<"Yourinformationshowsasfollow:"<<endl;cout<<"name:"<<name<<endl;cout<<"address:"<<address<<endl;cout<<"city:"<<city<<endl;cout<<"postcode:"<<postcode<<endl;}intmain(){Employeeemp[5]={Employee(1,1,1,1),Employee(2,2,2,2),Employee(3,3,3,3),Employee(4,4,4,4),E mployee(5,5,5,5)};inti;for(i=0;i<5;i++){emp[i].display();emp[i].change_name();emp[i].change_address();emp[i].change_city();emp[i].change_postcode();cin.get();}for(i=0;i<5;i++){cout<<"Theemp"<<i<<"";emp[i].display();}return0;}7.#include<iostream>#include<cstring>usingnamespacestd;//Date类classDate{private:intyear;intmonth;intday;public:Date();Date(inty,intm,intd);Date(Date&p);~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&p);~People();voidsetName();voidsetNumber();voidsetSex();voidsetId();voidshowPeople();};//Date构造函数Date::Date(){}Date::Date(inty,intm,intd){year=y;month=m;day=d;}Date::Date(Date&p){year=p.year;month=p.month;day=p.day;}//析构inlineDate::~Date(){}//Date成员函数,设置出生年月日voidDate::setDate(){inty,m,d;cout<<"Inputtheyear:";cin>>y;cout<<"Inputthemonth:";cin>>m;cout<<"Inputtheday:";cin>>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&p){strcpy(name,);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个对象的各类信息for(i=0;i<3;i++){person[i].setName();person[i].setNumber();person[i].setSex();person[i].setId();date[i].setDate();spaceA=getchar();}//输出这3个对象的各类信息for(i=0;i<3;i++){person[i].showPeople();date[i].showDate();}return0;}6.运行结果1.2.3.4.5.6.7.7.心得体会通过本次上机课,我对数组的理解进一步加深,并且学会了对字符串数据的组织和处理,能够运用字符串类对字符串进行直接的运算;并且进一步熟悉了标准C++库的使用和指针的使用方法;通过进一步的练习,对Debug的操作更加熟练;而且实践操作了利用指针和new 操作在堆区里开辟空间,然后利用delete释放空间,进一步加深了对不同类型存储空间的理解,提高了自己的实际操作能力。

相关文档
最新文档