C++实验一-类与简单对象
- 格式:doc
- 大小:83.50 KB
- 文档页数:13
实验一类和对象一、实验目的:掌握类的设计和对象的创建及相关知识点如对象数组、类聚合、友元函数、静态成员。
二、实验内容:1、设计圆类,求两个圆的位置关系;2、设计圆类和直线类,求直线与圆的位置关系;3、设计学生类,求某班学生成绩的最高分、最低分及平均分;4、设计部门类和教师类,其中部门类成员为教师类的子对象;5、设计家庭银行账户类,其中账户资金为静态数据成员,为家庭成员共享;6、设计复数类,友元函数实现复数的加减。
三、实验过程:1、根据实验题目确定需要设计哪些类、各类中包含哪些数据成员和函数成员,设计各成员的访问权限,设计数据成员的数据类型,设计函数成员的函数原型;2、给出类设计的程序实现,特别要注意重载构造函数的实现;3、在主函数中完成题目中的逻辑,一般情况下需要创建相关类的对象,通过对象对成员函数的调用或者通过对象指针对成员函数的调用完成相应的功能。
四、参考程序代码:1、设计圆类,求两个圆的位置关系#include <iostream>#include <math.h>using namespace std;class Circle{private:float a,b,r;public:Circle(float c,float d,float e){a=c;b=d; r=e;}friend void position(Circle &,Circle &);};void position(Circle &c1,Circle &c2){float n,m,p;p=sqrt((c1.a-c2.a)*(c1.a-c2.a)+(c1.b-c2.b)*(c1.b-c2.b)); n=fabs(c1.r-c2.r);m=c1.r+c2.r;if(p>m)cout << "相离";if(p==m)cout << "相切";if(p<m)cout << "相交";}int main(){float a,b,c,d,e,f;cin >> a >> b >> c >> d >> e >> f ;Circle c1(a,b,c),c2(d,e,f);position(c1,c2);return 0;}运行结果:2、设计圆类和直线类,求直线与圆的位置关系#include<iostream>#include<math.h>using namespace std;class Circle//圆类{private:float x,y,r;public:Circle(float a,float b,float c) {x=a;y=b;r=c;}float getx(){return x;}float gety(){return y;}float getr(){return r;}};class Line//直线类{private:float a,b,c;public:Line(float x,float y,float z){a=x;b=y;c=z;}void position(Circle c1){float d=fabs(a*c1.getx()+b*c1.gety()+c)/sqrt(a*a+b*b) ;//圆心到直线的距离if(d<c1.getr())cout << "相交";if((d-c1.getr())<0.000001)cout << "相切";cout << "相离";}};int main(){Line l1(3,3,4);//创建直线对象Circle c1(-23,3,7);//创建圆对象l1.position(c1);return 0;}运行结果:3、设计学生类,求某班学生成绩的最高分、最低分及平均分#include <iostream>#include <string.h>using namespace std;class Student{private:char name[20],xuehao[20];float math;public:Student(){}Student(char *na,char *xu,float ma):math(ma) {strcpy(name,na);strcpy(xuehao,xu);}void set(char *na,char *xu,float ma){math=ma;strcpy(name,na);strcpy(xuehao,xu);}char *get_name(){return name;}char *get_xuehao(){return xuehao;float get_math(){return math;}};void max_min(Student stu[],int n){Student max,min;max=min=stu[0];for(int i;i<n;i++){if(stu[i].get_math()>max.get_math())max=stu[i];if(stu[i].get_math()<min.get_math())min=stu[i];}cout << "学生成绩最高:" << max.get_name() << "," << max.get_xuehao() << "," << max.get_math() << endl;cout << "学生成绩最低:" << min.get_name() << "," << min.get_xuehao() << "," << min.get_math() << endl;}void ave(Student stu[],int n){float sum=0;for(int i=0;i<n;i++){sum=sum+stu[i].get_math();cout << "ave=" << sum/n;}int main(){char na[20],xu[20];float ma;Student stu[20];int n;cout << "请输入学生总人数"; cin >> n;for(int i=0;i<n;i++){cin >> na >> xu >> ma ; stu[i].set(na,xu,ma); }max_min(stu,n);ave(stu,n);return 0;}运行结果:4、设计部门类和教师类,其中部门类成员为教师类的子对象#include <iostream>#include <string.h>using namespace std;class Department{private:int dep_num;char dep_master[20];char dep_name[20];public:Department(){}Department(int num,char *ma,char *na){dep_num=num;strcpy(dep_master,ma);strcpy(dep_name,na);}void show(){cout << dep_num << "," << dep_master << "," << dep_name ; }};class Teacher{private:char name[20];char haoma[20];Department dep;public:Teacher(char *n,char *nu,int num,char *ma,char *na):dep(num,ma,na) {strcpy(name,n);strcpy(haoma,nu);}void show(){dep.show();cout << "," << name << "," << haoma << endl;}};int main(){Teacher hp("wanghai","12345",6,"kiki","computer");hp.show();return 0;}运行结果:5、设计家庭银行账户类,其中账户为静态数据成员,为家庭成员共享#include <iostream>#include <string.h>using namespace std;class Familymember//家庭成员类{private:char membername[10];//成员名public:static float account;//共享账户资金 Familymember(char *name);static void save(float money);//存钱 static void pay(float money);//支出 static void show(); //显示账户余额};float Familymember::account=0;Familymember::Familymember(char *name) {strcpy(membername,name);}void Familymember:: save(float money) {account= account+money;}void Familymember:: pay(float money){account= account-money;}void Familymember:: show(){cout<<account<<endl;}int main()//主函数{ Familymember husband("wang"),wife("Li"); husband.save(10000);wife.pay(3000);wife.save(5000);wife.show();husband. show();}运行结果:6、设计复数类,友元函数实现复数的加减#include <iostream>using namespace std;class Fushu{private:float ss,xs;public:Fushu(){}Fushu(float a,float b){ss=a;xs=b;}friend Fushu jiafa(Fushu &f1,Fushu &f2){return Fushu((f1.ss+f2.ss),(f1.xs+f2.xs)); }friend Fushu jian(Fushu &f1,Fushu &f2){return Fushu((f1.ss-f2.ss),(f1.xs-f2.xs)); }void show(){cout << ss << " + " << xs << "i" << endl; }};int main(){Fushu f1(2,3),f2(4,5);Fushu f3,f4;f3=jiafa(f1,f2);f4=jian(f1,f2);f3.show();f4.show();return 0;}运行结果:。
面向对象程序设计(C++)实验报告指导老师:***学生:吴健班级:软131学号:*********目录实验一、VC6.0环境入门与简单程序设计实验报告 (3)实验二、函数的应用实验报告 (7)实验三、类与对象实验报告 (14)实验四、C++程序结构实验报告 (22)实验五、数组、指针与字符串实验报告 (26)实验六、继承和派生实验报告 (33)实验七、多态性实验报告 (42)实验八、面向对象综合实验实验报告 (48)实验一、VC6.0环境入门与简单程序设计实验报告系软件工程班级 131 学号 139074164 姓名吴健同组者指导教师柯栋梁一、实验目的:1、熟悉VC++6.0开了环境并编写简单的C++程序。
3、使用C++语言编写简单的输入输出程序。
4、使用VC++6.0的DEBUG调试功能:单步执行、设置断点、观察变量值。
二、实验内容:1、使用VC++建立一个标准C++程序,编译、运行如下程序:#include<iostream〉Int main(){Cout〈<”Hello World!\n";Cout<<”Welcome to C++!\n";}2、编程计算图形的面积。
程序可计算圆形、长方形、正方形等的面积,运行时首先提示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来.3、使用DEBUG功能观察任务2程序运行中变量值的变化情况.三、实验要求:1、任务1要求熟悉VC++开发环境,并能够使用其建立第一个C++程序.2、实验前要做好充分准备,包括程序清单、调试步骤、调试方法,以及对程序结果的分析等。
四、实验报告:1.程序运行截图2.面积计算1、程序说明。
用if -else语句进行选择程序功能,while语句实现功能的循环实现程序如下:#include〈iostream>#include〈cmath〉using namespace std;int main(){cout〈<”1计算圆面积”<〈endl〈<"2计算矩形面积"<〈endl〈<"3计算正方形面积”〈〈endl<<"4退出"〈〈endl<<"请选择相应功能代码:”;int x; //x对应编号cin〉>x;double area;while(x!=4){if(x==1){double r;cout〈〈"半径:";cin〉>r;area=3。
《C++面向对象程序设计》实验内容实验1 C++程序设计初步1.实验目的(1)了解在C++编译系统(Visual C++6.0)上如何编辑、编译、连接和运行一个C++程序。
(2)通过运行简单的C++程序, 初步了解C++源程序的结构和特点。
(3)掌握简单C++程序的编写和调试方法。
(4)掌握重载函数的定义方法。
(5)能正确使用引用型变量。
2.实验内容和步骤(1)在Visual C++环境下编译和运行C++程序①先进入Visual C++6.0环境。
②在自己指定的子目录中建立一个名为test.cpp的新文件。
③从键盘输入以下程序int main(){int a,b;c=a+b;cout>> “a+b=”>>a+b;}选择Build→Compile test.cpp命令, 对此源程序进行编译。
观察和分析编译信息。
⑤根据编译信息指出的错误, 修改程序。
再进行编译, 如果还有错, 再重复此过程, 直到编译不出错为止。
⑥选择Build→Build test.exe命令, 对程序进行连接, 如果不出错, 就会生成可执行程序test.exe。
⑦选择Build→Execute test.exe命令, 执行可执行程序test.exe。
观察屏幕的变化。
在输出窗口应显示程序运行结果。
⑧分析结果是否正确, 如果不正确或认为输出格式不理想, 可以修改程序, 然后重新执行以上④和⑧步骤。
改过后的程序:#include<iostream>using namespace std;int add(int x,int y){int z;z=x+y;return(z);}int main(){int a,b,c;cin>>a>>b;c=add(a,b);cout<<"a+b="<<c<<endl;return 0;}实验2 C++对C的扩充(2)编一个程序, 用来求2个或3个正整数中的最大数。
中南民族大学管理学院学生实验报告课程名称:C程序语言设计姓名:郭晋学号:10056006年级:2010专业:信息管理与信息系统指导教师:李超锋实验地点:管理学院综合实验室2010 学年至20 11 学年度第2 学期目录实验一熟悉C语言的开发环境和C程序的上机步骤实验二基本数据类型及数据的输入输出实验三运算符及表达式实验四顺序结构程序设计实验五选择结构程序设计实验六循环结构程序设计实验七数组及其应用实验八函数及其应用实验九指针及其应用实验(一)熟悉C语言的开发环境和C程序的上机步骤实验时间:2011.3.29同组人员:郭晋,金亚男实验目的:1,了解T urb C3.0编译系统,熟悉各菜单的功能,掌握在该系统上编辑,编译,连接,运行一个C程序的方法。
2,通过调试,运行简单的C程序,初步了解C语言程序的特点。
实验内容:1.编写一个C程序,求一个圆的面积。
我们的程序设计#include<stdio.h>void main(){float r,s;scanf("%f",&r);s=3.14*r*r;printf("s=%f",s);}2.编写程序求任意三个书的最大值。
我们的程序设计#include<stdio.h>void main(){int a,b,c,max;scanf("%d,%d,%d" ,&a,&b,&c);if(a>b&&a>c)max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;printf("max=%d\n",max);}实验步骤:1.首先,我们两人先根据题目中的编程要求确定实验步骤,分别写下相应的编程语言进行比较,未出现明显的分歧。
2.打开Turb C 程序,然后将刚刚确定的C语言程序输入,打开Proiles,进行系统纠错,看是否出现错误或者警告,进行相应的调试。
实验一数据类型和表达式一.实验目的1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。
2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间转换的规律。
3.学习C语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。
4.掌握数学式子的表达式表示。
5.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二.实验内容与算法解析1.编程计算下面算术表达式的值,手工计算检测。
(1) x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5, y=2.52.下面表达式计算中,哪些地方会发生类型转换?各个转换从什么类型转换到什么类型?表达式计算的结果是什么?试编程进行验证。
(1) 2.5+2*7%2/4 (2) 4*(2L+6.5)-12(3) 10/(int)(5.1+3)) (4) 2*10.0/(5*3)3.运行下面程序分析结果:main(){int a,b,c;a=9;b=5;c=24;printf("%d",a%c/b);}4.输入并运行下面程序,对照程序分析运行结果:程序如下:#include <stdio.h>main( ){ int a,b;long d;unsigned e;char c;a=100;c='W';b=-100;d=50000;e=8766;printf("a=%d,b=%d,c=%c,d=%ld,e=%u\n",a,b,c,d,e);}并修改程序测试:1)将a=100;换成a=42569;,会得到什么结果,为什么?2)将b=-100;换成b=c;,会得到什么结果,为什么?3)将e=8766; 换成e=-10;,会得到什么结果,为什么?5.写出程序运行结果,并上机进行验证,并分析原因。
面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。
(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。
实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。
要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。
(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。
要求:使用递归函数。
主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。
链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。
程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。
2.第一次实验C语言程序设计实验报告专业运算机科学与技术班级信安1302班日期成绩实验组别第 1 次实验表达式和标准输入与输出实验指导教师周时阳学生姓名学号同组人姓名实验名称表达式和标准输入与输出实验实验目的1.熟练把握各类运算符的运算功能,操作数的类型,运算结果的类型及运算进程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。
2.把握getchar, putchar, scanf和printf等函数的用法。
3.把握简单的C程序(顺序结构程序)的编写方式。
4.完成教师布置的习题及课程设计上的题目。
实验内容(一)输出“王”字源程序如下:#include <>int main(){puts("*************");puts(" * ");puts(" * ");puts("*************");puts(" * ");puts(" * ");puts("*************");return 0;}实验步骤:步骤一:计算输出进程中应操纵的空格数,选择星号作为输出的标记。
步骤二:采纳puts函数实现对字符串的输出。
调试及编译进程:实验中显现的不足及修改:无。
调试:实现对王字的输出。
(二)编程将华氏温度转换为摄氏温度源程序如下:#include <>int main(){double x,y;printf("请输入华氏温度:");scanf("%lf",&x);y=(5*(x-32))/9;printf("%.2lf(F)=%.2lf(C)",x,y);return 0;}编辑步骤:步骤一:概念两个浮点型变量,别离用来寄放华氏温度和摄氏温度步骤二:用输入函数输入一个华氏温度值并存入命名为x的单元中。
C语⾔程序设计实验及习题(1-4)ffB v vbvv bgbb实验⼀C程序运⾏环境及简单程序的运⾏2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以⽂件名sy1_2.cpp#includevoid main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输⼊圆的半径,计算圆⾯积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以⽂件名sy1_3.cpp存盘)。
#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输⼊三个整数a、b、c,显⽰出其中的最⼤值。
4.分析与总结⑴总结C程序的结构和书写规则。
⑵阅读:附件1-C语⾔程序的跟踪调试。
特别提⽰:当程序在编译时发现很多错误,此时应从上到下逐⼀改正,或改⼀个错误,就重新再编译,因为有时⼀个错误会引起很多错误信息。
习题⼀⼀、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B⼆、综合题绘制NS 算法流程图。
(1)输⼊10个数,求其中的最⼤值。
(2)输⼊3个数,将它们升序排列输出。
(3)输⼊2个数,求它们的最⼤公约数。
(4)输⼊⼀元⼆次⽅程的系数a 、b 、c ,判断其根。
实验⼆顺序结构程序设计1.阅读程序,尝试写出程序的运⾏结果,然后输⼊并调试程序,对照其实际输出与分析的结果是否⼀致,若不⼀致,请找出原因。
⑴以下程序⽤于测试C中不同类型数据所占内存字节数,运⾏并体会sizeof运算符的使⽤⽅法。
实验要求:对大纲中列出的四个实验要求:1.以面向对象的程序设计思想编程。
2.熟悉面向对象程序设计语言VC++编程环境。
3.在计算机上快速完成程序编写、调试、运行。
分别写出实验报告(三页以上),要求详尽描述根据实验内容要求,自己设计的上机编程源程序和结果,包括关键性截图。
完成实验报告和上交源程序。
备注:1.《计算机应用技术》(专)、《计算机应用基础》(专)、高级语言程序设计(一)(专)要求学生进行上机操作,保留上机操作原程序,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;2.《口语》(专)、《口译与听力》(本)要求考生进行现场练习,由试点院校教师录制相关材料,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;A45.按照系统成绩单的顺序将上报的学习过程评价成绩材料排序并打捆;6.实践课程考核评估记录表》也需按照成绩单顺序排序,单独上报;7.有平时作业或测试试卷等可放入本人上报的材料中一并打捆上交。
交实验报告时间:10月8日假期后第一天上课,务必把按照要求书写完成,并装订好的实验报告交给我,一定!一定!切记不要耽误!实验一:简单类与对象一、实验目的1、熟悉VC++的编程环境,掌握VC++ 的调试方法。
2、掌握简单的类与对象的定义。
二、实验内容用类定义,输入半径和高,输出圆柱体的底面积和体积。
三、实验要求1、硬件设备:奔腾Ⅱ及以上计算机,局域网。
2、软件环境:WINDOWS XP、VC++。
3、实验课前预习,课后及时完成实验报告。
4、实验过程及记录按题目格式要求填写在代码清单中。
四、代码清单或实验步骤#include<iostream>using namespace std;const float PI=;class Cylinder{private:f loat radius;f loat high;public:C ylinder(){}C ylinder(float r,float h){r adius=r;h igh=h;}v oid setradius(float r){r adius=r;}v oid sethigh(float h){h igh=h;}f loat bottomarea(){r eturn PI*radius*radius;}f loat volumn(){return bottomarea()*high;}};void main(){float r,h;Cylinder onecylinder;cout<<"请输入半径:";cin>>r;cout<<"请输入高:";cin>>h;(r);(h);cout<<"底面积为:"<<()<<endl;cout<<"体积为:"<<()<<endl;}五、实验中出现的问题及解决的方法1、数据类型的兼容问题程序代码:const float PI=;提示将double类型强制赋给float类型的警告解决方法:const float PI=;六、讨论或体会或改进实验的建议这个实验比较简单,较容易的实现了。
C++实验报告⾯向对象的程序设计(C++)实验指导书实验1 简单C++程序开发⼀、实验⽬的1.熟悉VC++6.0编程环境; 2.编制简单C++程序并运⾏;3. 熟悉C++的编辑、编译、连接和运⾏过程。
⼆、实验内容及步骤1.使⽤VisualC++6.0建⽴⼀个标准C++程序,编译、运⾏以下程序:具体实验步骤:1)启动Visual C++ 6.0开发环境从“开始”菜单中选择“程序”| Microsoft Visual Studio 6.0 | Microsoft Visual C++6.0,显⽰Visual C++ 6.0开发环境主窗⼝,如图1-1所⽰。
在Visual C++主窗⼝的顶部是菜单栏,左侧为项⽬⼯作区窗⼝,右侧是程序编辑程序编辑区项⽬⼯作区菜单栏图1-1 Visual C++6.0的主窗⼝窗⼝。
⼯作区窗⼝⽤来显⽰所设定的⼯作区的信息,程序编辑窗⼝⽤来输⼊和编辑源程序。
2)建⽴和运⾏只包含⼀个C++源程序的⽅法①建⽴只包含⼀个C++源程序的⽅法⼀个最简单的C++程序只包含⼀个源程序的⽂件,建⽴这样的⼀个C++源程序的⽅法是在Microsoft Visual C++主窗⼝的菜单栏中选择“File →New”命令,弹出“New”对话框,单击“Files”选项卡,在其列表框中选择“C++ Source File”选项,表⽰要建⽴⼀个新的C++源程序⽂件,然后在对话框右半部分的Location⽂本框中输⼊准备编辑的源程序⽂件的存储路径(假设为F:\C++),表⽰准备编辑的源程序⽂件将存放在F盘C++⼦⽬录下,在其上⽅的File⽂本框中输⼊准备编辑的源程序⽂件的名字(假设为example1.cpp),如图1-2所⽰。
图1-2 Files中New选项卡单击“OK”按钮回到主窗⼝,在程序编辑窗⼝编辑源程序⽂件,如图1-3所⽰。
选择“File →Save”命令或快捷键Ctrl+S保存源程序⽂件。
也可以选择“File →Save As”命令指定新的⽂件名和路径,这时输⼊和编辑的源程序就以example1.cpp 为⽂件名存放在F:\C++⼦⽬录下。
《⾯向对象程序设计_C++》实验报告C++实验报告实验⼀ Visual C++6.0开发环境应⽤⼊门(验证性实验2学时)1.⽬的要求:了解Visual C++6.0的特点,熟悉了解Visual C++6.0的开发环境,学习使⽤Visual C++6.0编写标准的C++控制台应⽤程序。
2.实验内容:使⽤Visual C++来建⽴⼀个⾮图形化的标准C++程序,编译、运⾏教材中的例3-3,⽤公式法求解PI的数值,并尝试利⽤其他⽅法求解并获得相同的结果。
π=16arctan(1/5)-4arctan(1/239)arctan(x)=x-x3/3+x5/5-x7/7+…求π=?(1)源代码和说明:#includeusing namespace std;double arctan(double x){double sqr=x*x;double e=x;double r=0;int i;while(e/i>1e-15){double f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=2;}return r;}int main(){double a=16.0*arctan(1/5.0);double b=4.0*arctan(1/239.0);cout<<"PI="<return 0;}2)运⾏结果:1实验⼆ C++简单程序设计实验(验证性实验4学时)1.⽬的要求:会编写简单的C++程序;复习基本数据类型变量和常量的应⽤;复习运算符与表达式的应⽤;复习结构化程序设计基本控制结构的应⽤;复习⾃定义数据类型的应⽤;练习使⽤简单的输⼊输出;观察头⽂件的作⽤;学会使⽤VC6.0开发环境中的debug调试功能;熟练程序设计中的技巧;2.实验内容:1)给定⼀个字符变量输出其⼆进制形式。
例如char a=’a’;其⼆进制为00100001。
1)源代码和说明#includeusing namespace std;int main(){char ch;int j,k[8]={0};cout<<"请输⼊⼀个字符:"<cin>>ch;for(j=0;j<=7;j++){if(ch){if(ch%2==0)k[j]=0;elsek[j]=1;ch=(ch-(ch%2))/2;}}for(j=7;j>=0;j--){cout<}cout<}2)运⾏结果:2)给定⼀个字符变量输出其⼆进制反转形式。
实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。
2、掌握如何编辑、编译、连接和运行一个C++程序。
3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。
二、实验要求1、分析下列程序运行的结果。
程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
《C语言程序设计》实验指导书课程编号:课程名称:C语言程序设计•实验学时:44一、本实验课的性质、任务与tl的本实验课目的是使学生掌握C语言编程的常用方法,熟悉该语言中的语法、词法规则,为以后进行软件开发和学习后继专业课程打下基础。
通过学习能够运用c语言中的各个知识点编写能完成一定功能的程序。
训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,其重要程度决不亚于知识的传授。
把高级语言的学习与程序设计.上机实践紧密地结合起来,以提高学生能灵活运用新的知识分析问题和解决问题的能力。
二、本实验课所依据的课程基本理论本实验课基于C语言的语法和词法规则、数据的表示及算法的处理,而语法及算法正是高级语言程序设计的主要研究对象。
《C语言程序设计》的主要任务是:C语言是一种应用广泛结构化程序设计语言,本课程介绍c语言的基本概念.基本语法和编程方法,重点描述C语言的结构化的特征,并通过本课程的学习,使学生掌握一定的结构化程序设计的知识,以及用C语言编写程序的能力。
三、实验类型与要求在做每个实验之前,让学生对本次实验相关的内容进行预习、算法设计、流程图的设计、编写程序,做好实验的准备工作;写出预习报告,画出流程图, 要求独立完成。
说明:1>实验类型:设计性;2、实验要求:必做。
四、每组人数与实验学时数每组1人,实验学时数44学时。
五、考核方式与评分办法实验总成绩二出勤情况"0%+实验报告*20%+平时*30%+实验表现*40%六、本实验课配套教材或实验指导书谭浩强.C程序设计.北京:清华大学出版社,2006年3月第3版谭浩强.C程序设计题解与上机指导.北京:清华大学出版社,2006年3月第3版谭浩强.C程序设计试题汇编.北京:清华大学出版社,2006年3月第2版夏宽理.C语言程序设计.北京:中国铁道出版社,2006年2月第1版夏宽理.C语言程序设计上机指导与习题解答.北京:中国铁道出版社,2006年2月第1 版王士元・C高级实用程序设计.北京:清华大学出版社,1996年1月第1版七、实验报告要求在机器上交作业,每次实验成绩分为优、良、及格、不及格,未参加的为0分。
天津理工大学实验报告学院(系)名称:计算机与通信工程学院
测试程序会出现什么错误?为什么?如何对已有的构造函数进行适当的修改?
(4)结合第(2)和第(3)步的修改和运行结果:分析创建不同的对象时如何调用适当的构造函数?
1.
.
2.
调用一次构造函数。
3.
Coordinate p4;
Coordinate p5(2);错误,因为类没有默认的构造函数,也没有无参数的构造函数和一个参数的构造函数;
改正可为:
将Coordinate(int x1, int y1){x=x1; y=y1;} 改为Coordinate(int x1=0, int y1=0){x=x1; y=y1;}
4.系统会自动根据参数的类型和参数的个数,调用合适的函数。
2.
根据注释语句的提示实现类Date的成员函数,并将完整的程序编译、连接成功以保证程序能够正确运行。
#include <iostream.h>
class Date{
public:
void printDate(); //显示日期
void setDay(int); //设置日的值
void setMonth(int); //设置月的值
void setYear(int); //设置年的值
3.
下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试
该类设计的正确性。
#include <iostream>
using namespace std;
class coutner
{
public:
counter(int number); //构造函数
void increment(); //给value原值加1
void decrement(); //给value原值减1
int getvalue(); //计数器值
void print(); //显示计数
privat取得e:
int value; //数据成员
};
int main(){
... //定义counter类的几个对象并调用有关成员函数
return 0;
}
程序如下:
#include <iostream>
using namespace std;
class coutner{
public:
coutner(int number):value(number) //构造函数
{}
void increment(); //给value原值加1
void decrement(); //给value原值减1
int getvalue(); //取得计数器值
using namespace std;
class ClsName {
private:
int x,y;
public:
ClsName(int a,int b)
{x=a;y=b;}
ClsName(int c)
{x=c;y=0;}
ClsName()
{x=1;y=1;}
int getx()
{return x;}
int gety()
{return y;}
void print();
};
void ClsName::print()
{
cout<<x<<" "<<y<<endl;
}
int main()
{
ClsName o1,o2(3),o3(4,5);
o1.print();
o2.print();
o3.print();
return 0;
}
运行结果:
5.
建立类cylinder,包括两个数据成员radius和height,分别表示圆柱体的半径和高度, cylinder类的
运行结果:
6.
定义一个学生类CStudent实现简单的学籍管理功能,要求该类至少实现以下功能:
(1) 录入学生的基本信息(包括姓名,学号,性别,年龄,专业,入学时间,各门功课成绩)
(2) 输出学生的基本信息
(3) 选课(输入时间和所选的课程)
(4) 统计每门课的学分绩点
(5) 统计每学期的平均学分绩点
(6) 统计重考科目
(7) 统计重修科目
程序如下:
#include <iostream>
#include <string>
using namespace std;
class CStudent{
public:
CStudent(string n,string nu ,string s,int a,string z,int y,int m,int d,int ma,int e,int cyy)
//构造函数
{
name=n;number=nu;sex=s;age=a;zy=z;year=y;month=m;day=d;math=ma;english=e;c=cyy;
}
void print() //打印出学生信息
{cout<<"姓名:"<<name<<'\n'<<"学号:"<<number<<'\n'<<"性别:"<<sex<<'\n'<<"年龄:"<<age<<'\n'<<"专业:"<<zy<<'\n'<<"入学年月日:"<<year<<"."<<month<<"."<<day<<'\n'<<"数学成绩:"<<math<<" "<<"英语成绩:"<<english<<" "<<"c成绩:"<<c<<'\n'<<endl;}
void xuanke(); //声明选课日期,课程函数
float jsjidian(float fenshu) //由分数算绩点函数
{
float jd;
if(fenshu<60) jd=0;
else if(60<=fenshu&&fenshu<65) jd=1;
else if(65<=fenshu&&fenshu<70) jd=1.5;
else if(70<=fenshu&&fenshu<75) jd=2;
else if(75<=fenshu&&fenshu<80) jd=2.5;
注意:
(1)新设计的类中所需要的数据成员需要根据所要实现的功能自行设计;
(2)用一个演示程序完成对所设计的新类的功能测试,并给出测试数据和实验结果;
(3)为增加程序可读性,请在程序中对类成员进行适当注释说明;
实验要求:
(1)实验前做好预习,并写出预习报告。
(2)实验期间禁止做与实验无关的项目、以及浏览网页、打游戏等。
(3)认真完成并按时提交实验报告。