C++面向对象程序设计-输入输出流实验报告
C++面向对象程序设计_实验指导书

1.完成实验指导书《C++面向对象程序设计教程(第3版)——习题解答与上机指导》的实验1;
2.做好实验记录;
3.按照实验报告格式(附件1)要求填写实验内容,并提交实验报告。
九、其它说明
每次实验前,实验指导书都会预先发放,请提前预习实验,特别是实验涉及的原理。实验要求及时完成并上交实验报告,鼓励提前完成必做实验,并尽量多做实验题目。
【要求】:采用C++编程风格。
【运行结果截图】:
三、实验原理、方法和手段
1.重载函数:a)函数名称相同;b)函数的形参个数不同;函数的形参类型不同;或两者兼有;c)函数的返回值不构成判别标准。
2.了解“传址调用”与“传值调用”的区别;
3.“引用”不额外申请内存。
四、实验组织运行要求
本实验采用“以集中授课,学生自主训练为主的开放模式组织教学”。
putchar(c3);
}
【运行结果是】:
【分析运行结果】:
6.输入并运行下面的程序,分析格式控制对输出的影响。
#include<stdio.h>
void main()
{
int a=-1,b=98;
double x=152.6752445;
printf("a=%d,%ld,%u,%o,%x\n",a,a,a,a,a);
i=8;
j=10;
printf("%d,%d \n", i,j);
printf("%d,%d \n",i++,j--);
printf("%d,%d \n", i,j);
printf("%d,%d \n", ++ i,-- j);
《 面向对象程序设计》课程设计实验报告

《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 2010级计算机科学与技术专业开设时间:2011-2012(一)目录1.任务1 (2)1.1 任务介绍 (2)1.2 小组成员任务分配 (2)1.3.1设计思想及主要流程图 (2)1.3.1主要程序清单 (2)1.3.1 运行结果及分析 (4)1.3.2设计思想及主要流程图 (2)1.3.2主要程序清单 (2)1.3.2 运行结果及分析 (4)1.3.3设计思想及主要流程图 (2)1.3.3主要程序清单 (2)1.3.3 运行结果及分析 (4)2.任务2 (2)2.1 任务介绍 (2)2.2 小组成员任务分配 (2)2.3设计思想及主要流程图 (2)2.3主要程序清单 (2)2.3 运行结果及分析 (4)3收获、体会和建议 (4)任务1.按照要求设计类 1.根据输出设计类设计类就是根据数据封装的要求,抽象出适合的类。
有如下测试程序和测试程序的输出结果,要求设计类Welcome 。
void main() { Welcome we; Welcome you(we); you.Display();you.Set(“Thank you.”);cout<<you.Get()<<endl; you.talk(); you.Display();}测试程序的输出结果如右: 设计类Welcome 的原则 1)在头文件Cpp1.h 中声明类 2)在Cpp1.cpp 中实现类3)使用内联函数定义Display()函数2.使用类改写程序编写一个求方程02=++c bx ax 的根的程序,用三个函数分别求当ac b 42+大于零、等于零和小于零时方程的根。
要求从主函数输入a 、b 、c 的值并输出结果。
使用面向过程的解法一般是把变量设为double 型,适用库函数cmath 进行计算。
请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。
c++实验报告【范本模板】

面向对象程序设计(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++实验报告流类库与输入输出

C++实验报告流类库与输入/输出实验八流类库与输入/输出(2学时)一.实验目的:1.熟悉流类库中常用的类及其成员函数使用方法;2.学习标准输入输出及格式控制;3.学习对文件的应用方法(二进制文件,文本文件)二.实验内容与步骤:1.实验题目:(2):编写程序,用二进制方式打开指定的一个文件,在每一行前加行号.(提示:使用void main(int argc,char*argv[])函数中的参数传递操作的文件名,定义ofstream的对象对文件进行操作.使用getline成员函数读入数据,使用cout输出字符到文件.)2.程序清单:#include<fstream>#include<strstream>#include<cstdlib>using namespace std;void main(){strstream file;ifstream in("f1.txt",ios::binary);file<<in.rdbuf();ofstream out("f1.txt",ios::binary);const int s=255;char l[s];for(int i=1;file.getline(l,s);i++)out<<i<<"."<<l<<endl; }3.测试结果如下:三.实验小结:1,重要的输出流:ostream,ofstream,ostringstream;2,重要的输入流:istream,ifstream,istringstream.。
C++面向对象程序设计》实验报告

《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++基础实验二C++语言进阶实验三面向对象高级特性实验成绩细化表实验一面向对象开发环境基础一、实验目的(1)了解C++的开发环境,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个C++程序。
(3)通过运行简单的C++程序,初步了解C++源程序的基本组成。
.(4)掌握C++中基本数据类型。
(5)掌握C++中各种运算符的作用、优先级和结合性,能熟练运用各种表达式。
(6)掌握不同数据类型的输入输出。
(7)掌握简单的语法错误的查找和改正方法。
二、实验设备PC机,操作系统Windows 8,开发环境Visual Studio 2010三、实验原理配套教材实验一、实验二四、实验源程序//2-35#include <iostream>#include <iomanip>using namespace std;int main(){int x,y,ans;for(x=1;x<10;x++){for(y=1;y<10;y++){ans=x*y;cout<<x<<"*"<<y<<"="<<setw(2)<<ans<<"";}cout<<endl;}system("pause");return 0;}五、自评良好实验二C++语言进阶一、实验目的(1)熟练掌握if语句、switch语句、for语句、while及do-while语句(2)掌握转移控制语句(3)理解编译预处理(4)掌握函数的定义和调用(5)掌握数组的定义和使用(6)掌握结构和枚举类型的定义方法和使用(7)掌握指针的使用方法及应用(8)掌握指针与数组(9)掌握指针传递和引用传递二、实验设备PC机,操作系统Windows 8,开发环境Visual Studio 2010三、实验原理配套教材实验三、实验五、实验六四、实验源程序//3-2#include<iostream>#include<stdlib.h>using namespace std;int Max1(int a,int b){if(a>b)return(a);elsereturn(b);}int Max1(int a, int b,int c){if(a>b){if(a>c)return(a);}else{if(b>c)return(b);elsereturn(c);}}double Max1(double x,double y){if(x>y)return(x);elsereturn(y);}double Max1(double x,double y,double z) {if(x>y){if(x>z)return(x);}else{if(y>z)return(y);elsereturn(z);}}int main(){int a,b,c;double x,y,z;cout<<"请输入两个整数:";cin>>a>>b;cout<<"最大值为:"<<Max1(a,b)<<endl; cout<<"请输入三个整数:";cin>>a>>b>>c;cout<<"最大值为:"<<Max1(a,b,c)<<endl; cout<<"请输入两个双精度数:";cin>>x>>y;cout<<"最大值为:"<<Max1(x,y)<<endl; cout<<"请输入三个双精度数:";cin>>x>>y>>z;cout<<"最大值为:"<<Max1(x,y,z)<<endl;system("pause");return 0;}//5-14#include<iostream>usingnamespace std;class Boat;class Car{private:int weight;public:Car(int j){ weight=j;}friendint getTotalWeight(Car &aCar,Boat &aBoat);};class Boat{private:int weight;public:Boat(int j){ weight=j;}friendint getTotalWeight(Car &aCar,Boat &aBoat);};int getTotalWeight(Car &aCar,Boat &aBoat){ return aCar.weight+aBoat.weight;}int main(){Car c(10);Boat b(7);cout<<"The total weight is : "<<getTotalWeight(c,b)<<endl; system("pause");return 0;}//6-6#include<iostream>#include<string>usingnamespace std;class Employee{private:char name[30];char stree[30];char city[30];char zip[6];public:Employee();void change_name();void display();};Employee::Employee(){strcpy(name,"lianmeng");strcpy(stree,"piamganjie3hao");strcpy(city,"shanghai");strcpy(zip,"900000");}void Employee::change_name(){cout<<"Enter a name:";cin>>name;}void Employee::display(){cout<<"\n"<<name<<"\t"<<stree<<"\t"<<city<<"\t"<<zip<<"\t"; }int main(){int i;Employee *p=new Employee[5];for(i=0;i<5;i++){p[i].display();}for(i=0;i<5;i++){cout<<"\nnumber"<<i+1<<" : "<<endl;p[i].change_name();}for(i=0;i<5;i++){ p[i].display(); }delete p;system("pause");return 0;}五、自评良好实验三面向对象高级特性一、实验目的(1)掌握类与对象的定义(2)掌握对象成员的访问、构造函数和析构函数(3)理解基类和派生类(4)掌握单一继承和多重继承的定义和使用方法(5)掌握运算符重载程序的编写(6)掌握虚函数的编写和使用(7)掌握流类库与输入/输出;异常处理二、实验设备PC机,操作系统Windows 8,开发环境Visual Studio 2010 三、实验原理配套教材实验四、七、八、十一四、实验源程序//4-8#include<iostream>usingnamespace std;class Dog{public:Dog(int nage=0,int nweight=0){age=nage;weight=nweight;}Dog(Dog &d);inlinevoid showstatus();void setstatus();private:int age,weight;};Dog::Dog(Dog &d){age=d.age;weight=d.weight;}inlinevoid Dog::showstatus(){cout<<"His status is:"<<endl<<"age:"<<age<<"\tweight:"<<weight<<"kg"<<endl; }void Dog::setstatus(){int na,nw;cout<<"Please set age and weight:";cin>>na>>nw;age=na;weight=nw;}int main(){Dog Zangming(19,60);cout<<"Here is a dong Zangming!!"<<endl;Zangming.showstatus();cout<<"Please reset his status!"<<endl;Zangming.setstatus();cout<<"\n\nNow:"<<endl;Zangming.showstatus();system("pause");}//7-6#include<iostream>usingnamespace std;class Mammal{public:Mammal(int a,int w):age(a),weight(w){cout<<"Mammal Constructor called..."<<endl;}~Mammal(){cout<<"Mammal Destructor called..."<<endl;}private:int age;int weight;};class Dog:public Mammal{public:Dog(int a,int w):Mammal(a,w){cout<<"Dog Constructor called..."<<endl;}~Dog(){cout<<"Dog Destructor called..."<<endl;}};int main(){{cout<<"Constructing a Mammal..."<<endl;Mammal mammal(8,12);cout<<endl<<"Constructing a Dog..."<<endl;Dog dog(3,9);cout<<endl<<"Destructing......"<<endl;}system("pause");return 0;}//8-5#include<iostream>usingnamespace std;class Mammal{public:Mammal(){cout<<"Mammal Constructor..."<<endl;} ~Mammal(){cout<<"Mammal Destructor..."<<endl;} virtualvoid speak()=0;};class Dog:public Mammal{public:Dog(){cout<<"Dog Constructor..."<<endl;}~Dog(){cout<<"Dog Destructor..."<<endl;}virtualvoid speak();};void Dog::speak(){cout<<"Dog's sound...."<<endl;}int main(){Dog *pdog=new Dog;pdog->speak();delete pdog;system("pause");return 0;}//11-5#include<fstream>#include<iostream>usingnamespace std;int main(){ofstream file1("test.txt",ios::app);file1<<"已成功添加字符!";file1.close();char ch;ifstream file2("test.txt");while(file2.get(ch))cout<<ch;file2.close();system("pause");return 0;}五、自评良好实验成绩细化表。
面向对象程序设计实验报告

《面向对象程序设计实验》实验一、Java实验环境的建立(2学时)1、目的要求(1)掌握Java编程环境的搭建过程;(2)掌握Jcreator pro软件的使用方法;(3)能使用Java doc文档。
2、实验内容(1)下载并安装JDK1.6,配置JDK环境变量;(2)下载Javadoc压缩包并解压在JDK安装路径下;(3)下载Jcreator pro 4.0并安装和配置使用环境;(4)使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。
①Java application程序代码如下:public class HelloJava{public static void main(String args[]){ System.out.println("Hello Java!"); }}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){ g.drawString("Hello!",30,30); }}3、仪器与材料:计算机实验二、Java语言程序设计训练(2学时)1、目的要求(1)输入、输出操作实现原理和方法;(2)掌握程序流程控制的实现方法;(3)掌握数组的定义和操作方法。
2、实验内容(1)计算Result=1!+2!+3!+...+10!。
public class Test3 {public static void main(String[] args) {int sum = 0, fact, n, i;for (n = 1; n <= 10; n++) {fact = 1;for (i = 1; i <= n; i++)fact *= i;sum += fact;}System.out.println("sum=" + sum);}}(2)计算1---50之间所有素数的和。
c++输入输出流实验报告要点

实验四输入输出流实验课程名:面向对象程序设计(C++)专业班级:学号:姓名:实验时间:实验地点:指导教师:代码分析:1)在输入时调用getline()以换行符作为输入姓名时的结束标志,已达到输入空格的目的2)输出时采用resetiosflags(ios::right)实现结束向左对齐,用setw(8)实现输出域宽为8,使用一系列的格式控制字符来实现输出格式的控制。
2. 重载运算符“<<”和“>>”,使其能够输入一件商品的信息和输出这件商品的信息。
商品的信息由编号、商品名和价格。
假如商品类Merchandise的框架如下:class merchandise{public:Merchandiss();~Merchandiss();friend istream& operator>>(istream& in,Merchandiss& s);friend ostream&operator<<(ostream& out,Merchandiss& s);private:int no;char *name;double price;};要求实现该类,并编写以下的main函数对该类进行操作。
int main(){ Merchandise mer;cin>>mer;cout<<mer;return 0;}实验代码:#include<iostream>using namespace std;class merchandise{out<<s.no<<' '<<<<' '<<s.price<<endl;return out;}int main(){merchandise mer;cin>>mer;cout<<mer;return 0;}实验结果:实验分析:先定义一个商品的类,构造函数定义为无参函数在函数体中将name置为空,其他为0.在重载>>时使用getline函数,输入name以’\n’作为结束标记重载<<时直接输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级学号姓名
[实验目的]
1、深入理解C++的输入输出的含义和实现方法。
2、掌握对文件的输入输出操作。
[实验要求]
给出以下各实验内容的源程序代码,并把编译、运行过程中出现的问题以及解决方法填入实验报告中,按时上交。
[实验学时] 2学时。
[实验内容]
1、编程序,在显示屏上显示一个由字母B组成的三角形。
(用控制符或流
成员函数控制输出格式)
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;i<=n-1;i++)
cout<<setw((2*n-1-(2*i-1))/2)<<setfill(' ')<<" "<<setw(2*i-1)<<setfill('B')<<"B"<<endl;
cout<<setw(2*n-1)<<setfill('B')<<"B"<<endl;
return 0;
}
2、建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作:
①从键盘输入16个整数,分别存放在两个磁盘文件中(每个文件中放8
个整数);
②从f1.dat读入8个数,然后存放到f2.dat文件原有数据的后面;
③从f2.dat中读入16个整数,将它们按从小到大的顺序存放到f2.dat(不
保留原来的数据)。
④分别输出文件f1.dat和f2.dat的内容。
#include<iostream>
#include<fstream>
using namespace std;
void fun1()
{
int a[8],i;
ofstream outfile1("f1.dat"),outfile2("f2.dat");
if(!outfile1)
{
cerr<<"open f1.dat error"<<endl;
exit(0);
}
if(!outfile2)
{
cerr<<"open f2.dat error"<<endl;
exit(0);
}
cout<<"enter 8 integer number"<<endl;
for(i=0;i<8;i++)
{
cin>>a[i];
outfile1<<a[i]<<" ";
}
cout<<"enter 8 integer number"<<endl;
for(i=0;i<8;i++)
{
cin>>a[i];
outfile2<<a[i]<<" ";
}
outfile1.close();
outfile2.close();
}
void fun2()
{
ifstream infile("f1.dat");
if(!infile)
{
cerr<<"open f1.dat error"<<endl;
exit(0);
}
ofstream outfile("f2.dat",ios::app);
if(!outfile)
{
cerr<<"open f2.dat error"<<endl;
exit(0);
}
int a[8],i;
for(i=0;i<8;i++)
{
infile>>a[i];
outfile<<a[i]<<" ";
}
infile.close();
outfile.close();
}
void fun3()
{
ifstream infile("f2.dat");
if(!infile)
{
cerr<<"open f2.dat error!"<<endl;
exit(1);
}
int a[16];
int i;
for(i=0;i<16;i++)
infile>>a[i];
int j,k,t;
for(j=0;j<16;j++)
for(k=0;k<16-j;k++)
{
if(a[k]>a[k+1])
{
t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}
}
infile.close();
ofstream outfile("f2.dat",ios::out);
if(!outfile)
{
cerr<<"open f2.dat error!"<<endl;
exit(1);
}
cout<<"data in f2.dat"<<endl;
for(i=0;i<16;i++)
{
outfile<<a[i]<<" ";
cout<<a[i]<<" ";
}
cout<<endl;
outfile.close();
}
int main()
{
fun1();
fun2();
fun3();
return 0;
}
3、利用字符串流完成下列操作:
①将3个职工的数据按职工编号由小到大的顺序(包括编号、姓名、年龄、
工资)保存在字符数组c中。
②将存放在c数组中的数据读入并显示出来。
#include<iostream>
#include<strstream>
using namespace std;
struct staff
{
int num;
char name[20];
int age;
float salar;
};
int main()
{
staff
s[3]={1001,"Li",30,5000,1002,"Wang",32,6000,1003,"Fun",34,6500},s1[3 ];
char c[100];
int i;
ostrstream strout(c,100);
for(i=0;i<3;i++)
strout<<" "<<s[i].num<<" "<<s[i].name<<" "<<s[i].age<<"
"<<s[i].salar;
strout<<ends;
cout<<"array c:"<<endl<<c<<endl<<endl;
istrstream strin(c,100);
for(i=0;i<3;i++)
strin>>s1[i].num>>s1[i].name>>s1[i].age>>s1[i].salar;
cout<<"存放在c数组中的数据读入并显示出来"<<endl;
for(i=0;i<3;i++)
cout<<s1[i].num<<" "<<s1[i].name<<" "<<s1[i].age<<"
"<<s1[i].salar<<" ";
cout<<endl;
return 0;
}
[实验总结]给出对本次实验的总结。
本次实验让我对输入与输出有了进一步的了解,简单的使用C++文件操作,和字符流操作。