《 面向对象程序设计》课程设计实验报告

合集下载

面向对象程序设计实验报告

面向对象程序设计实验报告

课程编号:面向对象程序设计实验报告实验1一.实验目的:加强我自己使用继承来实现Java类的能力二.实验内容:1.首先根据要求实现超类Product类。

以利于以后商品Coffee类,CoffeeBrewer类,Orderitem类的继承。

2.根据要求实现Coffee类,CoffeeBrewer类,Orderitem类。

3.实现如下类图:4.三.实验步骤:1.首先根据要求设计出一下的类图。

5.不同的类的具体要求如下(都要继承超类Product类)。

(1)C lass Producta.含有的变量:code;description;price;b.含有的方法:.public Product(String code,Stringdescription,double price)public String getCode().返回实例变量的code.∙public String getDescription().返回实例变量的variable description.∙public double getPrice().返回实例变量的 price.∙boolean equals(Object object). 重写方法 equals i在类Object里,如果他们的code是相等的,则产品对象是相等的。

∙String toString(). 重写方法toString 在类Object里.返回的格式如下:∙code_description_pricec.写完具体如下:publicclass Product {private String code;private String description;privatedouble price;public Product(String code,String description,double price) {this.code=code;this.description=description;this.price=price;}public String getCode() {return code;}public String getDescription() {return description;}publicdouble getPrice() {return price;}@Overridepublicboolean equals(Object a) {if (a instanceof Product) {if (((Product) a).code==this.getCode()) {returntrue;}else {returnfalse;}}returnfalse;}@Overridepublic String toString() {return (this.getCode()+"_"+this.getDescription()+"_"+this.getPrice());}}(2)c lass Coffeea.含有的变量:∙origin.∙roast.∙flavor.∙aroma.∙acidity.∙body.b.含有的方法:public Coffee(String code,String description,Doubleprice,String origin,String roast,String flavor,String aroma,String acidity,String body);∙public String getOrigin().返回实例变量的origin.∙public String getRoast().返回实例变量的roast.∙public String getFlavor().返回实例变量的flavor.∙public String getAroma().返回实例变量的aroma.∙public String getAcidity().返回实例变量的acidity.∙public String getBody().返回实例变量的body.∙String toString(). 重写方法 toString 在类Object里. 返回如下格式::code_description_price_origin_roast_flavor_aroma_acidi ty_bodyc.写完具体如下:publicclass Coffee extends Product {private String origin;private String roast;private String flavor;private String aroma;private String acidity;private String body;public Coffee(String code,String description,Double price,Stringorigin,String roast,String flavor,String aroma,String acidity,String body){ super(code, description, price);this.origin=origin;this.roast=roast;this.flavor=flavor;this.aroma=aroma;this.acidity=acidity;this.body=body;}public String getOrigin() {return origin;}public String getRoast() {return roast;}public String getFlavor() {return flavor;}public String getAroma() {return aroma;}public String getAcidity() {return acidity;}public String getBody() {return body;}@Overridepublic String toString() {returnthis.getCode()+"_"+this.getDescription()+"_"+this.getPrice()+"_"+thi s.getOrigin()+"_"+this.getRoast()+"_"+this.getFlavor()+"_"+this.getAroma()+"_"+ this.getAcidity()+"_"+this.getBody();}}(3)c lass CoffeeBrewera.含有的变量:model.∙waterSupply.∙numberOfCups.b.含有的方法:∙public CoffeeBrewer(String initialCode,∙ String initialDescription,∙ double initialPrice,∙ String initialModel,∙ String initialWaterSupply,∙ int initialNumberOfCups)∙public String getModel()。

C++面向对象程序设计》实验报告

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个正整数中的最大数。

面向对象程序设计实习报告

面向对象程序设计实习报告

《面向对象程序设计》实习报告班级:学号:姓名:指导教师:实习时间:一.实习目的1. 学习怎样启动和退出VB,熟悉VB的工作环境2.掌握基本控件的重要属性、事件;3.熟练掌握在窗体上建立上述控件的操作方法;4.熟练掌握事件过程代码的编写;5.掌握建立基于图形界面的应用程序的过程6. 学习用属性窗口设置对象属性及用代码设置对象属性的方法。

7. 学习如何用对象(窗体和控件)建立界面及在代码编辑器中输入程序代码的基本操作。

8 .基本掌握用VB开发应用程序的一般步骤。

二.程序设计实验1 基本算法练习1.编写程序求“自己学号后3位到500”以内的所有素数及自然数对。

2.编写程序“计算最大公约数和最小公倍数”实验:计算3个数的最大公约数和最小公倍数,并以最小公倍数作为总金额,计算人民币各种票额的张数3.编写程序“歌德巴赫猜想及守形数”4.编写程序“百钱百鸡问题”实验:编写程序解决百钱买百鸡问题:公鸡5元/只,母鸡3元/只,小鸡一元买3只,用100元买100只鸡,问有哪些购买方案?实验2 常用统计练习1.成绩统计实验:利用文本框作为数据的输入和输出,产生数学、语文、英语、计算机等4门课程的成绩2.字符统计实验:随机产生200个“32到自己学号后3位”且小于128的随机数,将其转换成相应字符,形成一段统计字符。

统计字符中各个字母、各数字、空格、其它字符的个数。

实验3 常用排序方法1. 选择法排序实验:随机产生10个“学号后3位到500之间”的数,用选择法进行递增序。

2.冒泡法排序实验: 随机产生10个“50到学号后3位之间”的数,然后用冒泡法按递增的顺序进行排序。

3.二维数组排序实验:随机产生“10到学号后3位之间”的数,形成一个4*5 的二维数组,按升序排列。

4.从有序数组中删除一个元素实验要求:随机产生“1到学号后3位之间”的10个数,然后产生1-10间的随机数,确定删除元素,最后得出删除后的结果实验4 加密解密与数制转换1.数据加密与解密根据产生的后移位数,将输入的字符进行加密和解密。

面向对象设计实验报告

面向对象设计实验报告

一、实验目的1. 理解面向对象设计的核心概念,如封装、继承、多态等。

2. 掌握面向对象设计的方法和步骤。

3. 通过实际案例分析,提高面向对象设计的实践能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse三、实验内容1. 面向对象设计的基本概念2. 类与对象3. 继承与多态4. 实际案例分析四、实验步骤1. 面向对象设计的基本概念(1)定义:面向对象设计(Object-Oriented Design,OOD)是一种以对象为中心的设计方法,通过将现实世界中的实体抽象为对象,以对象及其相互关系来描述系统的结构和行为。

(2)核心概念:a. 封装:将对象的属性(数据)和行为(方法)封装在一起,对外提供接口。

b. 继承:允许一个类继承另一个类的属性和方法,实现代码复用。

c. 多态:允许不同类的对象对同一消息作出响应,实现行为的变化。

2. 类与对象(1)定义:类是具有相同属性和行为的对象的抽象,对象是类的实例。

(2)步骤:a. 定义类:创建一个新的类,定义属性(成员变量)和方法(成员函数)。

b. 创建对象:使用new关键字创建类的实例。

c. 访问对象属性和方法:使用点号(.)操作符访问对象的属性和方法。

3. 继承与多态(1)继承:定义一个新的类(子类)继承自另一个类(父类),子类继承父类的属性和方法。

(2)多态:允许不同类的对象对同一消息作出响应,实现行为的变化。

(3)步骤:a. 定义父类:创建一个父类,定义属性和方法。

b. 定义子类:创建一个子类,继承自父类,并添加新的属性和方法。

c. 实现多态:使用子类对象调用父类方法,实现不同对象对同一消息的不同响应。

4. 实际案例分析(1)案例分析:设计一个简单的图书管理系统。

(2)设计步骤:a. 分析需求:图书管理系统需要管理图书的增删改查等功能。

b. 设计类:设计图书类(Book)、借阅者类(Borrower)和管理员类(Admin)。

面向对象程序设计(C++)实验报告

面向对象程序设计(C++)实验报告

面向对象程序设计(C++)实验报告姓名:刘九州学院:数学与计算机学院班级:10级计算机大类三班学号:100511314实验5 单继承一、实验目的1.掌握派生的类别与方式;2.了解派生类中如何使用基类的成员、基类成员在派生类中的访问控制;3. 掌握继承中构造函数和析构函数的调用过程。

二、实验内容及步骤1.给出一个Document类,从Document派生出Book类,增加PageCount变量。

在主函数中进行测试,创建Book类对象并进行初始化,输出书名和页数。

2.设计一个单基继承的类层次程序,利用Person类派生出Student类,增加属性xh(学号),Person类中至少有姓名、年龄等数据成员,成员函数中构造函数对其初始化,析构函数释放相应存储单元,输出函数输出其数据成员的值,其它成员函数根据需要添加,在主函数中进行测试。

3.设计一个人员类person和一个日期类date,由人员类派生出学生类student和教师类professor,学生类和教师类的数据成员birthday为日期类。

在主函数中进行测试。

三、实验源程序和运行结果实验(一)源程序:#include<iostream>#include<string>using namespace std;class Document{public:Document(){};~Document();Document(char*name);char *Name;void PrintNameOf();};Document::Document(char*name){Name=new char[strlen(name+1)];strcpy(Name,name);}Document::~Document(){delete []Name;}void Document::PrintNameOf(){cout<<Name<<endl;}class Book:public Document{public:int PageCount;Book(char *a,int b):Document(a){PageCount=b;}};void main(){char BookName[20];int n;cout<<"请输入书名:"<<endl;cin>>BookName;cout<<"请输入书的页数:"<<endl;cin>>n;Book b(BookName,n);cout<<"书名为:"<<<<endl;cout<<"页数为:"<<b.PageCount<<endl;}运行结果:实验(二)源程序:#include<iostream>#include<string>using namespace std;class person{public:person(){name="张三";age=0;}person(string c,int a){name=c;age=a;}~person(){}void setname(string c){name=c;}string getname(){return name;}void setage(int a){age=a;}int getage(){return age;}private:string name;int age;};class student:public person{public:student(){xh=0;}student(int d){xh=d;}student(string c,int a,int d):person(c,a){xh=d;}~student(){}void setxh(int d){xh=d;}int getxh(){return xh;}private:int xh;};void main(){string c;cout<<"请输入学生的姓名:\n";cin>>c;cout<<"请输入学生的年龄:\n";int a;cin>>a;cout<<"请输入学生的学号:\n";int d;cin>>d;student n(c,a,d);cout<<"请输入学生的姓名为:"<<n.getname()<<endl;cout<<"请输入学生的年龄为:"<<n.getage()<<endl;cout<<"请输入学生的学号为:"<<n.getxh()<<endl; }运行结果:实验(三)源程序:#include<iostream>using namespace std;class person{public:person(){name="张三";age=0;}person(string c,int a){name=c;age=a;}~person(){}void setname(string c){name=c;}string getname(){return name;}void setage(int a){age=a;}int getage(){return age;}private:string name;int age;};class date{public:date(){year=2011;month=12;day=17;}~date(){}date(int y,int m,int d){year=y;month=m;day=d;}int getyear(){return year;}int getmonth(){return month;}int getday(){return day;}private:int year;int month;int day;};class student:public person{public:student(){// birthday.date();}student(int y,int m,int d):birthday(y,m,d){}~student(){}void getbirthday(){cout<<"学生的生日为:\n";cout<<birthday.getyear()<<"年"<<birthday.getmonth()<<"月"<<birthday.getday()<<"日"<<endl;}private:date birthday;};class teacher:public person{public:teacher(){// birthday.date();}teacher(int y,int m,int d):birthday(y,m,d){//birthday.date(y,m,d);}~teacher(){}void getbirthday(){cout<<"老师的生日为:\n";cout<<birthday.getyear()<<"年"<<birthday.getmonth()<<"月"<<birthday.getday()<<"日"<<endl;}private:date birthday;};void main(){cout<<"请输入学生的生日:"<<endl;int y,m,d;cin>>y>>m>>d;student s(y,m,d);cout<<"请输入老师的生日:"<<endl;cin>>y>>m>>d;teacher t(y,m,d);s.getbirthday();t.getbirthday();}运行结果:实验6 多继承一、实验目的1.掌握多基继承的使用,访问方法;2.理解类层次中访问规则;3.掌握虚基类的定义及使用。

面向对象程序设计课程实验报告

面向对象程序设计课程实验报告
入口参数:const STACK&s
出口参数:无
功能:用s初始化p指空栈
intsize (const STACK *constp)
入口参数:无
出口参数:int max
功能:返回p指得栈得最大元素个数max
int howMany (const STACK*const p)
入口参数:无
出口参数:intpos
7。2用户使用说明书ﻩ39
7.3源代码ﻩ39
实验一。面向过程得整型栈编程
1、需求分析
1.1题目要求
整型栈就是一种先进后出得存储结构,对其进行得操作通常包括判断栈就是否为空、向栈顶添加一个整型元素、出栈等、整型栈类型及其操作函数采用非面向对象得纯C语言定义,请将完成上述操作得所有函数采用面向过程得方法编程,然后写一个main函数对栈得所有操作函数进行测试、
2.系统设计
2。1概要设计
函数结构图见图1.1
图1.1
总体流程图见图1。2
图1、2
2.2详细设计
voidinitSTACK(STACK*constp,int m)
入口参数:int m
出口参数:无
功能:初始化栈,可存m个元素
void initSTACK(STACK *constp, constSTACK&s)
6.过程与体会15
6.1遇到得主要问题与解决方法ﻩ15
6.2课程设计得体会ﻩ15
7、源码与说明ﻩ15
7。1文件清单及其功能说明ﻩ15
7、2用户使用说明书15
7、3源代码15
实验三.基于算符重载得整型栈编程19
1。需求分析ﻩ19
1、1题目要求19
1、2需求分析19
2、系统设计20

面向对象程序设计实验报告1

面向对象程序设计实验报告1
/*结果都是什么字符?,也就是说字符可以自由的表示成几种形式?*/
printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);
/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符*/
/*字符型数据参与算术运算*/
c=c1+32; /*字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数
if(a[j] < a[j + 1])
{
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
int result = 0;
int cou = 100;
for(i = 0;i < 3;i++)
{
result += a[i] * cou;
cou /= 10;
}
cout<<"the result is :"<<result<<endl;
main()
{
int x=010,y=10,z=0x10; /*整型数据表示*/
char c1='M',c2='\x4d',c3='\115',c4=77,c; /*字符型数据表示*/
/*整型数据的输出*/
printf("x=%o,y=%d,z=%x\n",x,y,z);
/*数据以原进制输出,注意是否有前导0或0x */
c++;
else
if(score>=60)
d++;
else e++;

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告实验报告(1)2015.6【实验作者】学号:姓名:班级:教学站:【实验名称】实验一:熟悉C++程序的风格和C++程序的上机全过程【实验目的】1.熟悉C++程序的风格,熟悉实验环境。

2.练习C++程序的输入、修改、编译、连接与运行的全过程。

3.本实验有4个程序【实验内容】1. 习题2.2下面是一个C程序,改写它,使它采用C++风格的I/O语句。

(1)该程序做什么工作?输入两个整数,求两个整数的大于1 的最小公约数[(另外请教下毛老师:如果最小公约数与最小数相等时,我觉得也有可能这个数是两个数的大于1 的最小公约数)即7与14的公约数为1,7按题意的话,要大于1,那么7也是这两个数的最小公约数,但程序不认为它们具有公约数]。

(2)该程序中那几个数是由键盘输入的?那几个数是输出的?那几个数是临时变量?a与b 由键盘输入;d 是输出的;a,b,d,min 都是临时变量。

(3)用C++风格的I/O语句是什么?#include <iostream.h> cout<<与cin>>(4)写出该程序的算法(用流程图表示)框图1:(5)该程序你有否上机编译、连接、运行通过。

有上机编译连接并运行通过,但有些疑问!2. 习题 2.20分析下面程序的输出结果:(1)该程序做什么工作?利用引用函数改变一个变量的值。

(2)该程序有几个函数?其中f函数是什么函数?其功能是什么?一个函数,F函数是一个引用返回值的函数,并且该函数参数也为一个引用,函数功能是送入一个对变量引用,将变量+10后送回。

成为对返回值的引用。

(3)写出该程序的算法(用流程图表示)框图2:(4)该程序你有否上机编译、连接、运行通过。

该程序有上机编译并连接运行通过。

3. 习题2.23 建立一个被称为sroot( )的函数,返回其参数的二次根。

重载sroot( )三次,让它分别返回整数、长整数与双精度数的二次根(为了实际计算二次根,可以使用标准库函数sqrt( ))。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告【实验报告】面向对象程序设计一、引言面向对象程序设计是一种以对象为基础的软件开发方法,它将现实世界中的事物抽象成对象,并通过对象之间的交互来实现程序的功能。

本次实验旨在通过实践,加深对面向对象程序设计的理解,并掌握面向对象程序设计的基本原理和技巧。

二、实验目的1. 熟悉面向对象程序设计的基本概念和术语;2. 掌握面向对象程序设计的基本原理和技巧;3. 能够运用面向对象程序设计的思想解决实际问题。

三、实验内容1. 设计一个简单的图书管理系统;2. 实现图书的增删改查功能;3. 设计并实现图书管理系统的类结构;4. 编写测试代码,验证图书管理系统的功能。

四、实验步骤1. 设计图书管理系统的类结构:a. 创建一个Book类,包含图书的属性(书名、作者、出版社等)和方法(借阅、归还等);b. 创建一个Library类,用于管理图书馆的图书,包含添加图书、删除图书、查找图书等方法;c. 创建一个User类,用于表示图书馆的用户,包含借书、还书等方法;d. 创建一个Main类,作为程序的入口,用于测试图书管理系统的功能。

2. 实现图书的增删改查功能:a. 在Book类中实现图书的增删改查方法;b. 在Library类中调用Book类的方法,实现图书的增删改查功能。

3. 设计并实现图书管理系统的类结构:a. 根据实验要求,设计图书管理系统的类结构,包括Book、Library和User 类;b. 在每个类中定义相应的属性和方法,实现图书管理系统的功能。

4. 编写测试代码,验证图书管理系统的功能:a. 在Main类中创建图书馆和用户对象;b. 调用相应的方法,测试图书管理系统的功能;c. 检查输出结果,确保图书管理系统的功能正常运行。

五、实验结果与分析经过实验,成功设计并实现了一个简单的图书管理系统。

该系统具备图书的增删改查功能,用户可以通过借书和还书操作实现对图书的借阅和归还。

经过多次测试,系统运行稳定,功能正常。

java面向对象编程实验报告

java面向对象编程实验报告

java面向对象编程实验报告篇一:java面向对象编程实验报告信息工程学院Java程序设计实验/实习报告学院:信息工程学院班级:信息112 姓名:吴连梅学号:XX013305 成绩:A实验二面向对象编程1.实验目的(1)掌握类与对象基本知识;(2)Java中的继承机制及包(package)、接口(interface)等的设计方法;(3)掌握static、this、super等关键字的使用;(4)掌握Java中两种比较器的用法。

2.实验内容实验题 1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice ()。

基本要求:(1)设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性;(2)重写父类的toString()方法,实现Book类实例的两个属性的输出。

实验过程:新建工程后,在工程下面建立一个包Book,在包下再建立一个Book类,类中包含两个属性,一个是private的String类型的属性title、一个是private的float类型的属性listPrice,之后是封装这两个属性的四个方法,用快捷键Alt+Shift+S选择gennerate Getters and Setters,再实验报告的内容与格式按任课教师的要求书写。

然后就是重写父类的toString()方法,用快捷键Alt+Shift+S选择gennerate toString,快捷重写。

这段程序写完是这样的:接下来便是BookManagement类,在包book下新建一个类BookManagement,写完的程序是这样的:BookManagement类中创建了书的对象,在主方法中调用output函数,赋值,输出。

《面向对象程序设计_C++》实验报告

《面向对象程序设计_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)给定⼀个字符变量输出其⼆进制反转形式。

面向对象程序设计》C实验报告

面向对象程序设计》C实验报告

面向对象程序设计》C实验报告《面向对象程序设计》实验报告学院:专业:班级学号:姓名:学期:教师:实验一 C++基础练习院(系):课程名称:面向对象程序设计教师签名:实验目的和要求1.掌握C++程序的基本格式与规范,学会编写简单的C++程序。

2.理解C++程序结构的特点。

3.熟悉C++程序基本的输入和输出操作。

4.掌握C++数据类型常量和变量以及修饰符的使用方法。

5.掌握函数定义、函数调用和函数说明的方法。

6.熟悉作用域运算符的功能和基本使用方法。

7.掌握C++内存的动态分配与释放方法。

8.理解引用的概念,掌握引用的使用方法。

实验内容和步骤1. 调试如下的代码并回答问题。

#include <iostream.h>void main(){//First c++ programchar name[10];cout<<"please input your name:";cin>>name;cout<<"welcome "<<name<<endl;}(1)C++的注释和C有何不同?答:C语言的注释有一种,用/*……….*/作为注释分界符号C++除保留了这种注释方式之外,还提供了一种更有效的注释方式,该注释以“//”开始,到行尾结束。

(2)C++的输入和输出所使用的函数及其相应头文件与C有何不同?答:在C中进行输入输出操作时,常使用函数scanf和printf。

C++除了可以照常使用这两个函数进行输入输出外,还增加了标准输入流对象cin和标准输出流对象cout来进行输入和输出。

Iostream是C++系统定义的一个头文件,在这个文件中声明了程序所需要的输入和输出操作的有关信息。

在C语言中头文件中用“.h”作为后缀,如stdio.h、math.h等。

2. 单步调试如下的代码并回答问题。

#include <iostream.h>inline int f(int x){ return 2*x*x+4*x+5; }inline double f(double x){ return 2*x*x+4*x+5; }void main(){ int x=5;double y=5.2;cout<<f(x)<<endl;cout<<f(y)<<endl;}(1)inline的含义和作用是什么?答:含义:在函数说明前冠以关键字“inline”,该函数就被声明为内联函数,每当程序中出现对该函数的调用时C++编译器使用函数体中的代码插入到调用该函数的语句处,同时用实参取代形参。

面向对象程序设计C++实验报告书1

面向对象程序设计C++实验报告书1

二、实验步骤 1、C++程序上机操作方法 (1)启动 Visual C++集成环境; (2)生成项目; (3)生成和编辑源程序; (4)将源程序文件加入到项目中 2.创建 HelloWord 工程,并在界面上将“Hello, World!”显示出来,同时说明工程中哪些为类,哪些 为对象,哪些为属性,哪些为方法。
面向对象程序设计 C++实验报告书
班级:
姓名:
学号:
实验项目类型 熟悉 Visual C++6.0 集成开 验 演 综 设 发环境/类和对象 1 证 示 合 计 √
课程名称
面向对象程序设计 C++
实验项目
指导isual C++6.0 集成开发环境及编辑简单源程序的方法; 2.掌握在 Visual C++6.0 集成开发环境中编译、调试与运行的方法; 3.掌握 C++数据类型的概念、标识符常量与变量的概念和定义方法、指针变量的概念、引用的概念 及定义方法; 4.掌握使用关键字 const 约束对象和指针访问的方法; 5.理解类的概念,会创建 C++的类。类的定义包括成员访问说明符、成员函数原型、构造函数、析 构函数和数据成员; 6.掌握运用 private 成员访问说明符来控制对对象数据成员和成员函数的访问
三、上机过程原始记录(源程序等) 1、include<iostream.h> int main() { cont<<"Hello, World!\n"; } 四、上机结果及分析 1、
2

《面向对象程序设计》课程综合性实验报告

《面向对象程序设计》课程综合性实验报告
(2)、全选菜单项(SelectAllActionPerformed)实现文本域中所输入文字的选定。
(3)、查找和替换菜单项(FindButtonActionPerformed、ReplaceButtonActionPerformed)实现文字的查找和替换功能。如图:(替换对话框与查找类似,这里不予显示)
(一)实验分析
首先,在设计Java写字板的时候,使用Net Beans集成开发环境,对写字板整体布局进行了布置:在新建窗体(JFrame)上加入了菜单条(jMenuBar1)、文本域(jTextArea1)以及快捷菜单(jPopupMenu1)。
其中,在菜单条上添加菜单和菜单项:
1、文件菜单(FileMenu):新建(New)、打开(Open)、保存(Save)、另存为(SaveAS)、退出(Exit);
其中文件菜单有新建、打开、保存、另存为、退出等功能;编辑菜单有剪切、复制、粘贴、查找和查找替换等功能;格式菜单含有对文字字体、字型、字号及颜色等的设置功能。
2.编辑区设计:对文本的编辑处理区。
3.工具栏设计:可根据需要增加该项功能。
4.其他功能设计。
四、实验结果及分析
通过此次Java综合性实验,我对Java有了系统的了解。
如果文件不存在,程序执行时,系统将抛出IOException异常,被catch语句捕捉到,进行相应的处理。并且使用close()方法关闭输出流。
(4)、退出菜单项(ExitActionPerformed),单击该项,显示是否保存已修改对话框,如图:
图5:保存已修改对话框
2、编辑菜单下:
(1)、剪切、复制、粘贴,删除菜单项(CutActionPerformed、CopyActionPerformed、PasteActionPerformed、DeleteActionPerformed)分别实现文本域中选中文字的修改。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告面向对象程序设计实验报告一、引言面向对象程序设计(Object-Oriented Programming,简称OOP)是一种广泛应用于软件开发的编程范式。

本实验旨在通过实践,加深对面向对象程序设计的理解,并掌握其基本概念和技巧。

二、实验目的1. 理解面向对象程序设计的基本概念和思想;2. 掌握类、对象、继承、封装、多态等面向对象的核心概念;3. 运用面向对象的思想设计和实现一个简单的程序。

三、实验过程1. 设计类和对象在本次实验中,我们选择实现一个简单的学生管理系统。

首先,我们需要设计一个学生类(Student),包括学生的姓名、年龄、学号等属性,并定义相关的方法,如获取学生信息、修改学生信息等。

然后,我们创建多个学生对象,模拟学生管理系统中的多个学生。

2. 继承和多态为了进一步理解继承和多态的概念,我们可以设计一个教师类(Teacher),继承自学生类。

教师类除了继承学生类的属性和方法外,还可以定义自己特有的属性和方法。

通过创建教师对象,我们可以看到继承和多态的效果。

3. 封装和访问控制在面向对象程序设计中,封装是一个重要的概念。

我们可以将学生类的属性设置为私有(private),并通过公有(public)的方法来访问和修改属性。

这样做的好处是可以保护属性的安全性,同时提供统一的接口供外部使用。

四、实验结果通过实验,我们成功地实现了一个简单的学生管理系统。

我们可以创建学生对象,并通过调用相关方法来获取和修改学生的信息。

同时,我们还实现了教师类,通过继承和多态的特性,我们可以灵活地使用学生和教师对象。

五、实验总结通过本次实验,我们深入了解了面向对象程序设计的基本概念和思想。

通过设计和实现一个简单的程序,我们掌握了类、对象、继承、封装、多态等核心概念,并学会了如何运用这些概念来设计和实现面向对象的程序。

面向对象程序设计具有很多优点,如代码的可重用性、可维护性、可扩展性等。

通过合理地设计类和对象,我们可以更好地组织和管理代码,提高开发效率和代码质量。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告实验一C++基础1.1实验目的1.了解并熟悉开发环境,学会调试程序;2.熟悉C++中简单的标准输入输出函数的使用方法;3.理解const修饰符的作用并学会应用;4.理解内联函数的优缺点并学会其使用场合;5.理解并学会函数重载;6.理解并熟练掌握使用new和delete来分配内存;7.理解并熟练掌握引用的使用方法。

1.2实验内容1.2.1程序阅读1.理解下面的程序并运行,然后回答问题。

#include<iostream.h>int max_def(int x,int y){return(x>y?x:y);}int max_def(int x,int y,int z){int temp=0;return(temp=(x>y?x:y))>z?temp:z;}double max_def(double x,double y){return(x>y?x:y);}int main(){int x1=0;int x2=0;double d1=0.0;double d2=0.0;x1=max_def(5,6);x2=max_def(2,3,4);d1=max_def(2.1,5.6);d2=max_def(12.3,3.4,7.8);-------------------------------------------------------①cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;cout<<"d1="<<d1<<endl;cout<<"d2="<<d2<<endl;--------------------------------------------------------②return 1;}问题一:上述程序的输出结果是什么?答:输出结果为问题二:①处调用的是哪个函数?答:①处调用的是double max_def(double x,double y)函数问题三:②处的输出结果为什么是d2=12,而不是d2=12.3?答:因为调用的int max_def(int x,int y,int z)函数返回值为整型。

面向对象程序设计实验报告

面向对象程序设计实验报告
using System;
namespace _1
{
class Program
{
static void Main(string[] args)
{
int[][] jagArray=new int[2][]{new int[5],new int[3]};
for (int i = 0; i < jagArray.GetLength(0); i++)
(2)在代码编辑窗口内的Main()方法中添加如下代码:
using System;
namess HelloWorld
{
public static void Main()
{
Console.WriteLine("Hello world!");
}
}
}
(1)选择“调试” “启动调试”命令,或按【F5】键,或单击工具栏上的 按钮,运行程序,查看运行结果。
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j <= i;j++ )
Console.WriteLine("{0}\t", a[i, j]);
Console.WriteLine();
}
Console.Read();
}
}
}
(10)分析程序,写出程序的运行结果,并上机进行验证。
Console.Write("{0,-3}",jagArray[k][m]);
Console.WriteLine();
}
Console.Read();
}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 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 进行计算。

请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。

为了使用这个类,必须根据要结局的问题,为这个类设计合适的数据成员和成员函数。

3.使用包含(聚合)和派生设计新类(1)使用包含的方法,编写一个点类Point 和线段类Line ,演示构造函数、复制构造函数、析构函数作用及其调用顺序;(2)使用派生的方法,编写一个点类Point ,然后由它派生线段类,并演示构造函数、复制构造函数、析构函数作用及其调用顺序。

任务1:小组成员任务分配:李小拉:任务一中的第一个任务(包括设计思想,流程图,程序编写)胡海薇:任务一中的第二个任务(包括设计思想,流程图,程序编写)周子研:任务一中的第三个任务(包括设计思想,流程图,程序编写)最后的结果分析大家一起分析与总结设计思想:1.根据所给的主函数及运行结果来分析,类welcome包含成员函数和数据成员,输入数据和输出数据都将会显示出来,当输入OK时结束输出数据,最后调用析构函数。

2.根据题意求二元一次方程的跟,并且要用成员函数和数据成员,应该首先判断是否是二元一次方程,然后再判断有无根,利用选择函数分别调用1个,0个,2个根的函数并将其输出。

每输出一个方程的跟后再选择是否要继续。

3. 1)2)先定义一个point类,再由point类派生出line类,利用构造函数,复制构造函数和析构函数来计算出点点之间的距离也就是线的长度。

任务1:1//Cpp1.h#include<iostream>#include<string>//函数strcpy(),stcmy()包含在此头文件中using namespace std;class Welcome{private:char str[100];public:Welcome(char s[]="Welcome!");Welcome (Welcome &);void Set(char []);void Display();char *Get();void talk();~Welcome();};//Cpp1.cpp#include<iostream>#include<string>#include"Cpp1.h"using namespace std;Welcome::Welcome(char s[]){strcpy(str,s);}//把字符串数组s中的所有字符,拷贝到字符串数组str中Welcome::Welcome(Welcome &c)//拷贝构造函数{strcpy(str,c.str);}void Welcome::Set(char s[]){strcpy(str,s);}inline void Welcome::Display(){cout<<str<<endl;}char* Welcome::Get(){return str;}Welcome::~Welcome(){cout<<"Goodbye!"<<endl;}void Welcome::talk(){char s[100];cout<<"输入:";cin.getline(s,100);while(strcmp(s,"OK")!=0)//s不等于"OK"时,循环输出及输出 {cout<<"输出:"<<s<<endl;cout<<"输入:";cin.getline(s,128);}strcpy(str,"OK");cout<<"All right!"<<endl;cout<<"Goodbye!"<<endl;}void main(){Welcome we;Welcome you(we);you.Display();you.Set("Thank you.");cout<<you.Get()<<endl;you.talk();you.Display();}结果分析:该程序采用了多文件结构,利用构造函数、析构函数和复制构造函数将结果输出。

前面先自动输出Welcome!和Thank you.然后调用函数自己输入什么就输出什么。

左后当遇到OK时输出“All right!”和“Goodbye!”最后调用析构函数输出“Goodbye!”任务2#include<iostream> //包含iostream的头文件#include<math.h> Array #include<string>//字符串处理函数using namespace std;class FindRoot//定义类FindRoot{private:float a,b,c;double r,q,x1,x2;//定义数据成员类型int jud;public:void Input();//输入函数void Display();//显示函数void Find();//求根函数};//以上是类的声明部分,以下是类的实现部分void FindRoot::Input(){cout<<"这是一个求解ax2+bx+c=0的根的程序:"<<endl;//总述程序 for(; ;){cout<<"输入方程系数a:";cin>>a;if(a==0)cout<<"错误:a不能为0!!!"<<endl;else break;}//输入a,并对a的可能情况进行判断cout<<"输入方程系数b:";cin>>b;//输入bcout<<"输入方程系数c:";cin>>c;//输入c}void FindRoot::Find()//定义求根的函数{float delta=b*b-4*a*c;//定义求根公式的数据类型if(delta<0){jud=0;r=-b/(2*a);q=sqrt(-delta)/(2*a);//有两个共轭复数根的情况}else if(delta==0){ x1=-b/(2*a);jud=1;}//有两个相同的根的情况else{ x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a);jud=2; } //有两个不同的根的情况}void FindRoot::Display()//定义显示函数{switch(jud){case 0:{cout<<"x1="<<r<<"+"<<q<<"i"<<endl;cout<<"x2="<<r<<"-"<<q<<"i"<<endl;}break;//显示有共轭复数根时的解case 1:cout<<"x1=x2="<<x1<<endl;break;//显示有一实根时的解case 2:cout<<"x1="<<x1<<'\n'<<"x2="<<x2<<endl;break;//显示有两不同根情况的解}}void main()//主函数{while(1){FindRoot f;//定义类型f.Input();f.Find();f.Display();//以上各函数按顺序执行cout<<"是否退出?(Y退出,其它任意键继续)"<<endl;//程序是否退出char m[2];char Y[]="Y";char y[]="y";//定义字符串cin>>m;if(strcmp(m,Y)==0||strcmp(m,y)==0)break;//如果退出则终止运行elsecout<<"请继续……"<<endl;//如果不退出则继续执行}}任务3#include <iostream>#include <math.h>using namespace std;class Point{public:Point(double x1=0, double y1=0){px = x1; py = y1;}; void Display(void);double Distance(Point &point);~ Point(){};double px, py;};double Point::Distance(Point &point){double t1, t2;t1 = point.px - px;t2 = point.py - py;return sqrt(t1*t1+t2*t2);}class Line:public Point{public:Line(double x1, double y1, double x2, double y2);Line (Line &line);double Display(Line &line);~Line();double x, y;};Line::Line(double x1, double y1, double x2, double y2) {x = x2 - x1;y = y2 - y1;}Line::Line(Line &line){ x = line.x;y = line.y;}double Line::Display(Line &line){return sqrt(x*x+y*y);}Line::~Line(){};void main(){ Point a;Point b(1,1), c(2, 2);a = c;cout<<"两点之间的距离为: "<<a.Distance(b)<<endl;Line s(1,1, 2,2);Line s1(s);cout<<s1.Display(s1)<<endl}结果分析:主要利用函数来实现根的求解。

相关文档
最新文档