c++程序设计实验报告(参考答案)

合集下载

c程序设计实验报告册参考答案

c程序设计实验报告册参考答案

程序清单:1.// First c++ program#include<iostream>using namespace std; int main(){cout<<"Hello world!"<<endl; }2.#include<iostream>using namespace std ;int main(){cout<<”*”<<endl;cout<<”***”<<endl;cout<<”*****”<<endl;}3.#include<iostream> using namespace std;int main() {int i,j,k;cin>>i>>j;k=i*j;cout<<"i*j="<<k<<endl;}程序清单:3.#include <iostream> using namespace std; int main() { int x; cout<<"输入一个整数:"; cin>>x;cout<<"\n 此数的平方数是:"<<x*x<<endl;cout<<" 此数的立方数是:"<<x*x*x<<endl;cout<<endl;return 0;}4. #include <iostream>using namespace std; int main(){int n,x;cout<<"请输入一个三位以上的整数:"; cin>>n;x=(n/10)%10; cout<<"该数的十位数字为:"<<x<<endl;return 0;}5.#include <iostream> using namespace std; int main() {int n,a,b,c,d,e; cout<<"请输入一个三位正整数: "; cin>>n; a=n/100; // 得到百位b=(n/10)%10; // 得到十位c=n%10; // 得到个位cout<<c<<b<<a<<endl;return 0;}实验三程序清单1.方法一:#include <iostream>#include <iomanip>using namespace std;int main ( ){float h,r,l,s,sq,vq,vz;const float pi=3.1415926;cout<<"please enter r,h:";cin>>r>>h;l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=4.0/3.0*pi*r*r*r;vz=pi*r*r*h;cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2);cout<<"l= "<<setw(10)<<l<<endl;cout<<"s= "<<setw(10)<<s<<endl;cout<<"sq="<<setw(10)<<sq<<endl;cout<<"vq="<<setw(10)<<vq<<endl;cout<<"vz="<<setw(10)<<vz<<endl;return 0;}方法二:#include <iostream>using namespace std;#define PI 3.14 void main(){ double xiaoshu(double x);double r=1.5,h=3,c,s,S,v,sv; cout<<"请输入圆半径,输入圆柱的高: "<<endl;cin>>r>>h;c=2.0*PI*r;s=2.0*PI*r*r;S=4.0*PI*r*r;v=4.0/3*PI*r*r*r;sv=PI*r*r*h;cout<<"圆的周长为:"<<xiaoshu(c)<<endl;cout<<"圆的面积为:"<<xiaoshu(s)<<endl;cout<<"圆球的表面积为:"<<xiaoshu(S)<<endl;cout<<"圆球的体积为:"<<xiaoshu(v)<<endl;cout<<"圆柱的体积"<<xiaoshu(sv)<<endl; } double xiaoshu(double x){ int a;a=x*100; x=a/100.0;return x; }2.#include <iostream> using namespace std; void main(){ double c,f;cout<<"请输入一个华氏温度"<<endl;cin>>f; c=5.0/9*(f-32);c=int(c*100+0.5)/100.0; //取2位小数,并对第3位四舍五入cout<<"华氏温度转化成摄氏温度为:"<<c<<endl; }3.#include <iostream>using namespace std;int main ( ){int x,y;cout<<"please enter x:";cin>>x;if (x<1){ y=x;cout<<"x="<<x<<", y=x="<<y;}else if (x<10) // 1≤x<10{ y=2*x-1;cout<<"x="<<x<<", y=2*x-1="<<y;}else // x≥10{ y=3*x-11;cout<<"x="<<x<<", y=3*x-11="<<y;}cout<<endl;return 0;}注:三组检验数据:-1,5,124.方法一:#include <iostream>using namespace std;int main (){float score;char grade;cout<<"please enter score of student:";cin>>score;while (score>100||score<0) //保证输入一个合理的数据{ cout<<"data error,enter data again.";cin>>score;}switch(int(score/10)){ case 10:case 9: grade='A';break;case 8: grade='B';break;case 7: grade='C';break;case 6: grade='D';break;default:grade='E';}cout<<"score is "<<score<<", grade is "<<grade<<endl;return 0;}方法二:#include <iostream>using namespace std;int main (){float score;char grade;cout<<"请输入一个0到100之间的成绩:";cin>>score;while (score>100||score<0){ cout<<"data error,enter data again.";cin>>score;}if(score>=90) grade='A';else if(score>=80) grade='B';else if(score>=70) grade='C';else if( score>=60) grade='D';else grade='E';cout<<"score is "<<score<<", grade is "<<grade<<endl;return 0;}5. #include <iostream> using namespace std; void main(){ long i=1,sum=0;for(int j=1;j<=15;j++) { i=i*j;sum=sum+i; }cout<<"1!+2!+...+15!="<<sum<<endl; }6.#include <iostream>using namespace std;void main(){ int i,a,b,c; cout<<"100到999以内的\"水仙花数\"为:\n"; for(i=100;i<=999;i++) { a=i/100; //计算百位数字b=(i-a*100)/10; //计算十位数字c=i%10; //计算个位数字if (i==a*a*a+b*b*b+c*c*c)cout<<i<<endl;} } 7.#include <iostream>using namespace std;void main() {int i=0,x;bool key=false;cout<<"请输入一个6位数字的密码 : ";cin>>x;for(i=1;i<=3;i++){if(x==111111){ key=true;break;}cout<<"密码错,请重新输入 : ";cin>>x;}if(key)cout<<"欢迎使用财务报表软件!\n"; elsecout<<"拒绝使用财务报表软件!\n"; }8*************************方法一:#include <iostream>using namespace std;int main(){ int i,k;for (i=0;i<=3;i++) // 输出上面4行*号{ for (k=0;k<=2*i;k++)cout<<"*"; // 输出*号cout<<endl; //输出完一行*号后换行}for (i=0;i<=2;i++) // 输出下面3行*号{ for (k=0;k<=4-2*i;k++)cout<<"*"; // 输出*号cout<<endl; // 输出完一行*号后换行}return 0;}方法二:#include <iostream>#include <cmath>using namespace std;int main(){ int i,k;for (i=-3;i<=3;i++) // 控制行数{for (k=1;k<=7-2*abs(i);k++) // 控制*号个数cout<<"*";cout<<endl; //输出完一行*号后换行}return 0;}9.#include <iostream> using namespace std; void main(){ char x;float total=0,sum,m;int p=0;cout<<"请输入营业员的密码:";cin>>x;if(x=='1'||x=='2'||x=='3'||x=='4'||x=='5') //对输入的密码进行判断符合进入do //统计销售额{sum=0;cout<<"请分别输入用户购买商品的价格:"<<endl;for(int i=1;i<=10000;i++){ cout<<"第 "<<i<<" 商品价格为: ";cin>>m; //输入一个商品价格if(m>1000||m==0) //当价格为0或超过1000时结束统计break;sum=sum+m; //把输入的数(商品价格)进行相加运算}cout<<endl;cout<<" 请付款为:"<<sum;cout<<endl;p++; //对顾客(人数)进行累加total=total+sum; //把所有的顾客消费进行累加}while(m);else cout<<"请退出收银台,谢谢! ";cout<<"今天商店的营业额为: "<<total<<endl;cout<<"今天接待消费客人共: "<<p<<" 人 "<<endl;}实验四程序清单1.写一个判别素数的函数#include <iostream>using namespace std;int main(){ int prime(int); /* 函数原型声明*/int n;cout<<"input an integer:";cin>>n;if (prime(n))cout<<n<<" is a prime."<<endl;elsecout<<n<<" is not a prime."<<endl;return 0;}int prime(int n){ int flag=1,i;for (i=2;i<n/2 && flag==1;i++)if (n%i==0) flag=0;return(flag);}2. 编写一个函数divides,带两个整型参数,如果第二个整数能整除第一个整数(即余数为0),则返回true,否则返回false。

C实验报告答案

C实验报告答案

C程序设计初步一、实验目的(1) 熟悉C语言程序的运行环境(VC++ 。

(2) 掌握C语言程序的上机步骤,了解运行C程序的方法。

(3) 掌握C语言程序的书写格式和C语言程序的结构。

二、实验内容(均要求给出运行结果)1.程序改错题(1) 以下程序实现计算x×y的值并将结果输出。

请改正程序中的错误。

#include ""void main()/**********FOUND**********/{ int x=y=4;z=x*y;/**********FOUND**********/printf("z=%d/n", Z);}答案:=======(答案1)=======int x=,4,y=4,z;=======(答案2)=======printf("z=%d\n", z);(2) 以下程序实现输入圆的半径,求圆的周长。

请改正程序中的错误。

#include ""void main(){ int r;float l;printf("Enter r:");scanf("%d", &r);/**********FOUND**********/l=2πr/**********FOUND**********/printf("l=%d\n",l);}答案:=======(答案1)=======l=2**r;=======(答案2)=======printf("l=%f\n", l);2.程序填空题(1) 下面程序能对两个整型变量的值进行交换,请填空。

#include ""void main(){ int a=3,b=4,t;t=a;/***********SPACE***********/【】;/***********SPACE***********/【】;printf("a=%d,b=%d\n",a,b);}答案:=======(答案1)=======a=b=======(答案2)=======b=t(2) 下面程序不用第三个变量,实现两个数的对调操作。

C语言程序设计实验-答案

C语言程序设计实验-答案

C语言程序设计实验-答案(总17页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小---前言-/*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。

本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。

为回报度娘及众网友的帮助,本文档免费下载。

*//*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*//*努力吧,骚年以及学妹们!*//*整理ed by 口玉刀一 of GUET.*/=====================实验一 C语言程序初步=====================已知a=5,b=4,c=6,求出s并换行#include""main(){int a,b,c,s;a=5;b=4;c=6;s=(a+b+c)/3;printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s);}输入一个数字求他的平方#include<>main(){int r,s;scanf("%d",&r);s=r*r;printf("s=%d\n",s);}(1)#include<>main(){printf(" *\n");printf("***\n");printf(" *\n");}(2)main(){int v;int a,b,c;(2)#include<>main(){int m;double x;scanf("%d",&m);x=*m*m;printf("%f",x);}入a,b,c三个变量,计算数学公式(a*b)/cmain(){int a,b,d;float s,c;scanf("%d%d%f",&a,&b,&c);d=a*b;s=d/c;printf("%f",s);}=================================实验三顺序结构和输入输出方法=================================(1)main(){int m=345,t;float n=;t=*100;printf("m=%d,n*100=%d\n",m,t);}(2)main(){int a,b,c,s,v;scanf("%d%d%d",&a,&b,&c);s=a*b;v=a*b*c;printf("%d,%d,%d\n",a,b,c);printf("s=%d,v=%d\n",s,v);}(1)main(){int m,n;float x=,y=;scanf("%d,%d",&m,&n);printf("%6d,%6d",m,n); /*每个数的输出宽度为6,两个数之间逗号建个。

c程序设计实验报告参考答案

c程序设计实验报告参考答案
5、学习定义虚基类的方法,利用虚基类解决二义性问题。
二、实验内容
classarea_c1{
protected:
double height;
double width;
public:
area_c1(double r,double s)
{height=r;width=s;}
virtual double area()=0;
a) 使用成员函数实现对数据的输入、输出;
b) 使用构造函数和析构函数实现对数据的输入、输出。
三、实验要求
1、硬件设备:奔腾Ⅱ及以上计算机,局域网。
2、软件环境:WINDOWS XP、VC++6.0。
3、实验课前预习,课后及时完成实验报告。
4、实验过程及记录按题目格式要求填写在代码清单中。
四、代码清单或实验步骤
this.age=age;
}
E:\vctest\test2\main.cpp(25) : error C2228: left of '.num' must have class/struct/union type
E:\vctest\test2\main.cpp(26) : error C2228: left of '.name' must have class/struct/union type
};
class rectangle:public area_c1
{
public:
rectangle(double r,double s):area_c1(r,s)
{
}
double area()
{
return height*width;
}

(最新版)C程序设计实验报告(答案)

(最新版)C程序设计实验报告(答案)

《C程序设计》实验报告班级:学号:学期:学年第二学期姓名:《C程序设计》实验报告学期:学年第二学期教师姓名:教研室:软件工程教研室实验1 熟悉C语言程序的运行环境,掌握数据描述1.1 实验目的1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。

2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。

3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。

1.2 实验预习1.熟悉Turbo C的启动和退出及Turbo C中的编辑、编译、连接和运行命令。

2.了解下列命令及函数:include<stdio.h>、main、printf、scanf。

3.熟悉Turbo C环境下每个菜单项的功能及相关命令对应的操作。

4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。

int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。

6.常量与变量的区别和联系。

表1-1 Turbo C主菜单项功能表表1-2 Turbo C提示行功能表表1-3 Turbo C快捷操作表4.熟悉Turbo C环境下的块操作。

表1-4 基本光标命令功能操作表表1-5 快速光标移动命令功能操作表表1-6 插入与删除命令功能操作表表1-7 块操作命令功能操作表表1-8 其他命令功能操作表1.3 实验任务1.输入下列程序,记录在Turbo c 下的操作方法。

#include <stdio.h>main(){printf(“I am a student!”);}环境的启动操作:我的电脑—磁盘(各机房磁盘目录有所不同)—Turbo C文件夹—tc。

Exe 。

程序的编译方法:快捷键是 Alt+F9 ;菜单操作是Compile—compile to OBJ程序的保存方法:快捷键是 F2 ;菜单操作是 File--Save程序的运行方法:快捷键是Ctrl+F9;菜单操作是 Run运行结果的查看:快捷键是 Alt+F5 ;菜单操作是 Run—User Screen环境的退出操作:快捷键是 Alt+X ;菜单操作是 File--Quit2. 预测结果并上机验证3.运行程序输入5,-5;预测结果并上机验证4.现欲将编好的上例程序以文件名my.c保存至当前目录下,请阐述方法;当重新进入TC 对其进行简单修改后欲将其另存至C盘SY文件夹下(SY文件夹请自行创建),叙述方法。

《C语言程序开发》实验报告和参考答案

《C语言程序开发》实验报告和参考答案

《C语言程序开发》实验报告和参考答案1实实验报告课程名称:C语言程序开发学生姓名:学生学号:专业班级:指导教师:实验日期:2目录实验一循环结构程序设计(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。

实验二数组及其应用(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

实验三函数及其应用(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。

问第4个学生岁数,他说比第3个学生大2岁。

问第3个学生,又说比第2个学生大2岁。

问第2个学生,说比第1个学生大2岁。

最后问第1个学生,他说是10岁。

请问第5个学生多大。

(二)用选择法对数组中10个整数按由小到大排序,一维数组名作函数参数。

实验四指针及其应用(一)将若干字符串按字母顺序(由小到大)输出。

(二)有a个学生,每个学生有b门课程的成绩。

要求在用户输入学生序号以后,能输出该学生的全部成绩。

用指针函数来实现。

3实验一循环结构程序设计实验题目:(一)求1+2+3+.......+100,1100nn(二)输出100~200之间的不能被3整除的数。

实验目的1.掌握循环语句的执行过程及用法2.初步掌握循环程序设计的基本技巧3.掌握用while语句,do-while语句和for语句实现循环的方法4.掌握多重循环的使用(一)实验步骤1.题目分析2.源程序代码3.运行结果(二)实验步骤:1.题目分析源程序代码3.运行结果4实验二数组及其应用实验题目:(一)有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

(二)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

实验目的1.掌握一维数组的定义及其元素的引用方法2.掌握利用一维数组实现一些常用算法的基本技巧3.掌握二维数组的定义及其应用4.掌握字符数组和字符串函数的使用5.掌握有关二维数组的基本编程技巧(一)实验步骤:1.题目分析2.源程序代码:3.运行结果(二)实验步骤:1.题目分析2.源程序代码3.运行结果5实验三函数及其应用实验题目:(一)有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。

C实验报告5参考答案

C实验报告5参考答案

《高级语言程序设计》实验报告班级: 学号: 姓名: 成绩:实验5 循环结构程序设计一、实验目的1.掌握循环结构程序设计的3种控制语句——while 语句、do ···while 语句、for 语句的使用方法。

2.了解用循环的方法实现常用的算法设计。

二、实验内容1(1)下列程序的功能为:求1~100之和(和值为5050)并输出。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy5_1.c 保存。

#include <stdio.h>main(){int i,sum=0; i=1;while(i<100) while(i<=100) sum=sum+i; { sum=sum+i; i++; i++;} printf(“The sum from 1 to 100 is %d\n ”,sum); }(2)下列程序的功能为:倒序打印26个英文字母。

纠正程序中存在的错误,以实现其功能,程序以文件名sy5_2.c 保存。

#include <stdio.h> main() {char x; x='z';while(x!='a') while(x!='a'-1)或while(x >='a') {printf("%3d",x); printf("%3c ",x); x++;x - -; }}(3)下列程序的功能为:输入一个大写字母,打印出一个菱形。

该菱形中间一行由此字母组成,其相邻的上下两行由它前面的一个字母组成,按此规律,直到字母A 出现在第一行和最末行为止。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy5_3.c 保存。

例如,输入字母D ,打印出如下图形:#include <stdlib.h> main() { int i,j,k; char ch; scanf("%c",&ch); k=ch-'A'+1; for (i=1;i<=k;i++) {for (j=20;j>=i;j--)printf("%c",' ');for (j=1;j<=i-1;j++) for (j=1;j<=2*i-1;j++) printf("%c",'A'+i-1); printf("\n"); }k=ch-'A';for (i=k;i>=1;i--){ for (i=20;i>=i;i--) for (j =20;j >=i;j --) printf("%c",' ');for (j=1;j<2*i-1;j++) for (j=1;j <=2*i-1;j++) printf("%c",'A'+i-1); printf("\n"); }}2.程序填空题(1)用辗转相除法求两个正整数的最大公约数和最小公倍数。

C实验报告6参考答案

C实验报告6参考答案
void mai n()
{
int a[2][3],b[2][3],c[2][3],i,j; for(i=0;i<2;i++) for(j=0;j<3; j++) SCa nf("%d",&a[i][j]);
for(i=0;i<2;i++)
for(j =0;j<3; j++)
SCa nf("%d",&b[i][j]);
《高级语言程序设计》实验报告
班级:
学号:姓名:成绩:
实验6数组程序设计
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2.掌握字符数组和字符串函数的使用。
3.掌握与数组有关的算法。
二、实验内容
1.改错题(在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。)
(1)下列程―为指定的数组输入10个数据,并求这些数据之和。—序
#in clude<stdio.h>
#define N 4
#define M 4 main ()
int i,j,k,flag1,flag2,a[N][M],max,maxj;
for (i=0;i<N;i++)
for (j=0;j<M;j++)
SCan f("%d", &a[i][j]);
flag2=0;
printf("输入要删除字符: "); scanf("%c",&c); for(i=0,j=0;s[i]!='\0';i++) if (s[i]!=c)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验要求:对大纲中列出的四个实验要求:1.以面向对象的程序设计思想编程。

2.熟悉面向对象程序设计语言VC++编程环境。

3.在计算机上快速完成程序编写、调试、运行。

分别写出实验报告(三页以上),要求详尽描述根据实验内容要求,自己设计的上机编程源程序和结果,包括关键性截图。

完成实验报告和上交源程序。

备注:1.《计算机应用技术》(专)、《计算机应用基础》(专)、高级语言程序设计(一)(专)要求学生进行上机操作,保留上机操作原程序,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;2.《口语》(专)、《口译与听力》(本)要求考生进行现场练习,由试点院校教师录制相关材料,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;3. 论文,作业,实验报告,案例分析,前沿思考,学习报告等均要求A4严禁打印、复印;4.试点院校按百分制录入成绩,录入后打印学生成绩单;5.按照系统成绩单的顺序将上报的学习过程评价成绩材料排序并打捆;6.实践课程考核评估记录表》也需按照成绩单顺序排序,单独上报;7.有平时作业或测试试卷等可放入本人上报的材料中一并打捆上交。

交实验报告时间:10月8日假期后第一天上课,务必把按照要求书写完成,并装订好的实验报告交给我,一定!一定!切记不要耽误!实验一:简单类与对象一、实验目的1、熟悉VC++的编程环境,掌握VC++ 6.0的调试方法。

2、掌握简单的类与对象的定义。

二、实验内容用类定义,输入半径和高,输出圆柱体的底面积和体积。

三、实验要求1、硬件设备:奔腾Ⅱ及以上计算机,局域网。

2、软件环境:WINDOWS XP、VC++6.0。

3、实验课前预习,课后及时完成实验报告。

4、实验过程及记录按题目格式要求填写在代码清单中。

四、代码清单或实验步骤#include<iostream>using namespace std;const float PI=3.14159f;class Cylinder{private:float radius;float high;public:Cylinder(){}Cylinder(float r,float h){radius=r;high=h;}void setradius(float r){radius=r;}void sethigh(float h){high=h;}float bottomarea(){return PI*radius*radius;}float volumn(){return bottomarea()*high;}};void main(){float r,h;Cylinder onecylinder;cout<<"请输入半径:";cin>>r;cout<<"请输入高:";cin>>h;onecylinder.setradius(r);onecylinder.sethigh(h);cout<<"底面积为:"<<onecylinder.bottomarea()<<endl;cout<<"体积为:"<<onecylinder.volumn()<<endl;}五、实验中出现的问题及解决的方法1、数据类型的兼容问题程序代码:const float PI=3.14159;提示将double类型强制赋给float类型的警告解决方法:const float PI=3.14159f;六、讨论或体会或改进实验的建议这个实验比较简单,较容易的实现了。

实验二:类与对象一、实验目的1、熟悉VC++的编程环境,掌握VC++ 6.0的调试方法。

2、学习类、成员函数与对象的定义方法。

3、掌握构造函数和析构函数的使用。

4、掌握对象成员的使用方法。

二、实验内容定义一个学生类,其中有3个数据成员:学号、姓名、年龄,以及若干成员函数。

同时编写主函数使用这个类,实现对学生数据的赋值和输出。

要求:a) 使用成员函数实现对数据的输入、输出;b) 使用构造函数和析构函数实现对数据的输入、输出。

三、实验要求1、硬件设备:奔腾Ⅱ及以上计算机,局域网。

2、软件环境:WINDOWS XP、VC++6.0。

3、实验课前预习,课后及时完成实验报告。

4、实验过程及记录按题目格式要求填写在代码清单中。

四、代码清单或实验步骤#include<iostream>using namespace std;class Student{private:char num[10];char name[10];int age;public:Student(){}Student(char num[],char name[],int age){strcpy(this->num,num);strcpy(this->name,name);this->age=age;}void set(char num[],char name[],int age){strcpy(this->num,num);strcpy(this->name,name);this->age=age;}void print(){cout<<"学号:"<<num<<",姓名:"<<name<<",年龄:"<<age<<endl;}};void main(){char num[10],name[10];int age;Student zs;cout<<"请输入学号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;zs.set(num,name,age);zs.print();}五、实验中出现的问题及解决的方法Student(char num[],char name[],int age){strcpy(this.num,num);strcpy(,name);this.age=age;}E:\vctest\test2\main.cpp(25) : error C2228: left of '.num' must have class/struct/union typeE:\vctest\test2\main.cpp(26) : error C2228: left of '.name' must have class/struct/union typeE:\vctest\test2\main.cpp(27) : error C2228: left of '.age' must have class/struct/union type解决方法:将程序代码修改如下Student(char num[],char name[],int age){strcpy(this->num,num);strcpy(this->name,name);this->age=age;}程序调试完毕,输出结果如下:六、讨论或体会或改进实验的建议面向对象编程,必须要首先要分析类结构,便于实现该类。

本实验中的学生类的示意图如下:Student类num学号name姓名age 年龄Student()构造函数~Student()析构函数Set()输入函数Print()输出函数实验三:类与对象/继承与派生一、实验目的1、进一步熟悉VC++6.0编程环境,掌握程序的编写、调试和运行。

2、掌握const对象与const成员函数的用法。

3、掌握友元函数与友元类的用途。

4、熟悉不同派生方式的访问特性,掌握类层次中构造函数的定义方式和派生类构造函数和析构函数的调用次序。

5、学习定义虚基类的方法,利用虚基类解决二义性问题。

二、实验内容class area_c1{protected:double height;double width;public:area_c1(double r,double s){height=r;width=s;}virtual double area()=0;}要求:(1)建立基类area_c1的两个派生类rectangle与isosceles,让每一个派生类都包含一个函数area(),分别用来返回矩形与三角形的面积。

用构造函数对height与width进行初始化。

(2)写出主程序,用来求height与width分别为10.0与5.0的矩形面积,以及求height 与width分别为4.0与6.0的三角形面积。

(3)要求通过使用基类指针访问虚函数的方法(即运行时的多态性)分别求出矩形和三角形面积。

三、实验要求1、硬件设备:奔腾Ⅱ及以上计算机,局域网。

2、软件环境:WINDOWS XP、VC++6.0。

3、实验课前预习,课后及时完成实验报告。

4、实验过程及记录按题目格式要求填写在代码清单中。

四、代码清单或实验步骤#include<iostream>using namespace std;class area_c1{protected:double height;double width;public:area_c1(double r,double s){height=r;width=s;}virtual double area()=0;};class rectangle:public area_c1{public:rectangle(double r,double s):area_c1(r,s) {}double area(){return height*width;}};class isosceles:public area_c1{public:isosceles(double r,double s):area_c1(r,s){}double area(){return height*width/2;}};void main(){rectangle rectangle(10,5);isosceles isosceles(4,6);area_c1 *ptr;ptr=&rectangle;cout<<"矩形的面积为:"<<ptr->area()<<endl;ptr=&isosceles;cout<<"三角形的面积为:"<<ptr->area()<<endl;}五、实验中出现的问题及解决的方法父类area_c1中的两个成员派生到了两个子类中时,不能通过子类的构造函数直接对这两个成员进行初始化,必须通过调用父类的构造函数进行初始化才行,如下:.public:rectangle(double r,double s):area_c1(r,s){}六、讨论或体会或改进实验的建议C++中运行时多态是通过指向基类的指针和虚函数机制来实现的。

相关文档
最新文档