《面向对象程序设计》实验报告[一]
面向对象程序设计实验报告

面向对象程序设计实验报告实验一类的定义与使用实验目的:熟悉面向对象程序设计的基本概念和语法,掌握类的定义与使用的方法。
实验器材:计算机、编程软件实验过程:1. 类的定义类是面向对象程序设计的基本单元,是一种自定义数据类型。
在本次实验中,我们以学生(Student)类为例进行讲解。
在定义一个类时,一般需要明确以下几个方面的内容:- 类的名称:使用合适的命名规范,如首字母大写的驼峰式命名法;- 类的属性:表示类的特征或状态,用变量来表示;- 类的方法:表示类的行为或功能,用函数来表示。
示例代码:```pythonclass Student:# 定义类的属性name = ""age = 0gender = ""# 定义类的方法def study(self):print( + "正在学习")```2. 类的使用定义好类后,我们可以创建该类的实例,即对象,通过对象来调用类的属性和方法。
示例代码:```python# 创建对象s1 = Student()# 调用对象的属性 = "张三"s1.age = 18s1.gender = "男"# 调用对象的方法s1.study() # 输出:张三正在学习```在类的使用过程中,还可以通过构造函数(__init__方法)来初始化对象的属性,以及通过访问控制修饰符(public、private、protected)来控制属性或方法的访问权限。
实验总结:通过本次实验,我们学习了面向对象程序设计的基本概念和语法,掌握了类的定义与使用的方法。
在程序设计中,合理地定义和使用类,可以提高代码的可读性、可维护性和可重用性。
在今后的学习和实践中,我们应该注重对面向对象的思考和运用,努力提升自己的编程能力。
面向对象实验报告

《面向对象程序设计》实验一、实验内容1.定义接口ITowD,IThreeD。
然后由ITowD派生出圆类;由圆类和IThreeD派生长圆锥类。
结构如下,请实现没有实现的方法,并在Main方法中演示。
interface ITowD{double GetCirCle();//平面图形周长double GetArea();//平面图形面积}interface IThreeD{double GetArea();//立体图形表面积double GetV olume();//体积}class Circle : ITowD{double r;public Circle(double r){this.r = r;}double ITowD.GetCirCle(){//求周长}double ITowD.GetArea(){//求面积}}class Y uanZhui : Circle, IThreeD{double h;public Y uanZhui(double r, double h): base(r){this.h = h;}double IThreeD.GetArea(){//求表面积}double IThreeD.GetV olume(){//求体积}}二、实验目的掌握接口的隐式实现和显示实现。
三、实验环境安装有Visual Studio2005的PC一台。
四、实验数据及结果1·2·五、结论及思考本次试验,学习的是定义接口ITowD,IThreeD。
然后由ITowD派生出圆类;由圆类和IThreeD 派生长圆锥类。
总的来说,类只有在支持接口中的方法时,才能实现隐式实现和显示实现,隐式实现可以解决多继承的二义性,具有多态性。
六、附程序代码1·using System;using System.Collections.Generic;using System.Text;namespace p8_1{class Program{static void Main(string[] args){Circle p1 = new Circle(5);ITowD s1 = p1;Console.WriteLine("圆的周长为:{0}", s1.GetCirCle());Console.WriteLine("圆的面积为:{0}", s1.GetArea());YuanZhui p2 = new YuanZhui(10, 15);IThreeD s2 = p2;ITowD s3 = (Circle)p2;Console.WriteLine("圆锥的周长为:{0}", s3.GetCirCle());Console.WriteLine("圆锥的面积为:{0}", s2.GetArea());Console.WriteLine("圆锥的体积为:{0}", s2.GetVolume());Console.Read();}}public interface ITowD{double GetCirCle();//平面图形周长double GetArea();//平面图形面积}public interface IThreeD{double GetArea();//立体图形表面积double GetVolume();//体积}class Circle : ITowD{public double r;public Circle(double r){this.r = r;}double ITowD.GetCirCle(){return 2 * 3.14 * r; //求周长}double ITowD.GetArea(){return 3.14 * r * r; //求面积}}class YuanZhui : Circle, IThreeD{double h;public YuanZhui(double r, double h): base(r){this.h = h;}double IThreeD.GetArea(){return 3.14 * r * r + 3.14 * r * h;//求表面积}double IThreeD.GetVolume(){return 3.14 * r * r * h / 3; //求体积}}}2·using System;using System.Collections.Generic;using System.Text;namespace p8_2{class Program{static void Main(string[] args){Circle p1 = new Circle(5);ITowD s1 = p1;Console.WriteLine("圆的周长为:{0}",s1.GetCirCle());Console.WriteLine("圆的面积为:{0}",s1.GetArea());YuanZhui p2 = new YuanZhui(10,15);IThreeD s2 = p2;ITowD s3 = p2;Console.WriteLine("圆锥的周长为:{0}", s3.GetCirCle());Console.WriteLine("圆锥的面积为:{0}",s2.GetArea());Console.WriteLine("圆锥的体积为:{0}", s2.GetVolume());Console.Read();}}public interface ITowD{double GetCirCle();//平面图形周长double GetArea();//平面图形面积}public interface IThreeD{double GetArea();//立体图形表面积double GetVolume();//体积}class Circle : ITowD{public double r;public Circle(double r){this.r = r;}public double GetCirCle(){return 2 * 3.14 * r; //求周长}public virtual double GetArea(){return 3.14 * r * r; //求面积}}class YuanZhui : Circle, IThreeD{double h;public YuanZhui(double r, double h): base(r){this.h = h;}public override double GetArea(){return 3.14 * r * r + 3.14 * r * h;//求表面积}public double GetVolume(){return 3.14 * r * r * h / 3; //求体积 }}}。
《面向对象程序设计》实验报告[一]
![《面向对象程序设计》实验报告[一]](https://img.taocdn.com/s3/m/9462aa474431b90d6c85c7cb.png)
计算机科学与工程学院《面向对象程序设计》实验报告[一]1.编写一个函数,将整数得各位数字反序输出,编写另一个函数实现正序输出。
例如整数352867,反序输出7、6、8、2、5、3,正序输出3、5、2、8、6、7、2.定义一组重载函数,分别计算2个、3个、4个参数中得最大值3.求出1~100之间得质数,并存放在vector容器中。
ﻬ实验结果题目一:#include<iostream〉usingnamespace std;voiddiamond(intn,charc1,char c2) {int i,j;ﻩfor(i=1;i〈=n;i++){ﻩﻩcout<<"\n\t”;ﻩfor(j=1;j<=n-i;j++)cout<〈c1;ﻩfor (j=1;j<=2*i-1;j++)ﻩcout〈〈c2;ﻩfor (j=1;j〈=n—i;j++)cout<<c1;ﻩﻩ}ﻩfor(i=n-1;i〉0;i-—){ﻩcout<〈"\n\t";ﻩfor(j=1;j<=n-i;j++)ﻩﻩﻩcout<<c1;ﻩfor (j=1;j<=2*i—1;j++)ﻩﻩﻩcout<<c2;ﻩﻩfor(j=1;j<=n—i;j++)ﻩﻩcout<<c1; ﻩ}ﻩcout〈<endl; }int main(){diamond(9,'','*’);ﻩdiamond(20,'#',’ ');cin、get(); }题目二:#include〈iostream〉#include<vector>using namespacestd;voidscan(vector<int〉&a,int);int search(vector<int>&a,vector<int> &b,int);void print(constvector〈int> &b,int);int main(){ﻩint n,m;ﻩcout〈〈"How much numbers will youenter:”;cin>>n;vector <int〉 a(n),b(n);scan(a,n);m=search(a,b,n);ﻩprint(b,m+1);cin、get();cin、get();return 0;}void scan(vector<int>&a,int n){ﻩcout〈<”Enter the numbers:\n";ﻩfor(int i=0;i〈n;i++)cin>〉a[i];}int search(vector<int〉&a,vector<int>&b,int i){intn,m;ﻩbool flag=0;ﻩb[0]=a[0];for(n=1;n<i;n++){for(m=0,flag=0;b[m];m++){ﻩﻩif(b[m]==a[n])flag=1;}if(!flag)b[m]=a[n];}ﻩreturn m;}void print(const vector<int>&b,int n){ cout<〈"Print the number:";ﻩfor(inti=0;i〈n;i++) cout<<b[i]〈<”\t”;}题目三:#include<iostream〉#include〈vector〉usingnamespace std;template〈class T>voidscan(vector〈T〉 &,int);template<classT>void Max(vector〈T〉 &,int);template<class T>void Min(vector<T>&,int);int main(){ﻩintn,m;ﻩcout〈<”How much numbers will you enter a:”;cin>>n;ﻩvector 〈int> a(n);scan(a,n);ﻩMax(a,n);ﻩMin(a,n);ﻩstd::cout<<"Pleaseenter the name:";ﻩﻩgetline(std::cin,name);std::cout〈〈”Please enter the sex:";ﻩstd::cin、get(sex);ﻩstd::cout〈<"Please enter the classand height:";ﻩﻩstd::cin>〉cla>>hei;std::cin、get();student[a]、sca(name,sex,cla,hei);}float sum=0;for(int a=0;a<n;a++){ﻩsum=student[a]、sum(sum);}for(int a=0;a〈n;a++)ﻩstudent[a]、show();std::cout〈<"The average height is "<〈sum/n<<std::endl; ﻩstd::cin、get();ﻩreturn 0;}附加题1:。
面向对象程序设计实验报告1

实验一
实验名称:实验一Visual C++环境
实验目的:
⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
y=fun(x);
if(y==0)
cout<<"they input num is sushu"<<endl;
else
cout<<"they input num is not sushu"<iostream.h>
#include<math.h>
float fun(float a,float b,float c,float d)
return 0;
3. #include<iostream.h>
void main()
{inta,b,c,d,e;
double score;
a=b=c=d=0;
cin>>score;
while(score>=0)
{
if(score>=90)
a++;
else
if(score>=80)
b++;
else
if(score>=70)
do{
*p=*(--p);
}while( p>s+n);
(*p)=c;
}
return s;
}
int main()
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 实验目的:(1)了解在VC++、C-free中如何编辑、编译、连接和运行一个C++程序;(2)掌握声明类的方法,类和类的成员的概念以及定义对象的方法(3)了解多文件的C++程序结构2 实验任务(1)输入两个整数,将它们按由大到小的顺序输出。
要求使用变量的引用;(2)编写一个程序,将两个字符串连接起来,结果取代第一个字符串;(3)声明Animal 类,数据成员有age,成员函数有SetAge()等。
首先把数据成员声明为公有的,在main()函数中访问,再把它改为私有的,指出在main()函数中访问会出现怎样的情况,如何避免?该程序需要在同一个文件中分别给出类的声明、类的实现、类的演示每部分的代码。
(4)声明日期类,数据成员有year、month、day,成员函数有输出日期、加一天等。
练习使用多文件结构来组织程序。
3 程序清单实验一:#include"iostream"using namespace std;int main(){int i,j;cout<<"input two number"<<endl;cin>>i>>j;swap(i,j);cout<<i<<","<<j<<endl;return 0;}void swap(int &a,int &b){int temp;temp=a;a=b;b=temp;}实验二:#include"iostream"#include"string"using namespace std;int main(){string string1,string2;cout<<"please input two string:";cin>>string1>>string2;string1=string1+string2;cout<<string1<<endl;return 0;}实验三:4 运行结果图1.1 任务一运行结果图2.1任务二运行结果5 总结或感悟(对运行结果所作的分析以及本次调试程序所取得的经验。
面向对象程序设计实习报告

《面向对象程序设计》实习报告班级:学号:姓名:指导教师:实习时间:一.实习目的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.数据加密与解密根据产生的后移位数,将输入的字符进行加密和解密。
面向对象程序设计实验报告一

课程实验报告课程名称:面向对象程序设计实验名称:面向过程的整型栈编程院系:计算机科学与技术专业班级:CS1203学号:U201214884姓名:肖双指导教师:马光志2015 年 1 月 6 日一、需求分析1.题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。
整型栈类型及其操作函数采用非面向对象的纯C语言定义,请将完成上述操作的所有函数采用纯C语言编程,然后写一个main函数对栈的所有操作函数进行测试。
struct STACK{int *elems; //申请内存用于存放栈的元素int max; //栈能存放的最大元素个数int pos; //栈实际已有元素个数,栈空时pos=0;};void initSTACK(STACK *const p, int m); //初始化p指向的栈:最多m个元素void initSTACK(STACK *const p, const STACK&s); //用栈s初始化p指向的栈int howMany (const STACK *const p); //返回p指向的栈的实际元素个数posSTACK *const push(STACK *const p, int e); //将e入栈,并返回pSTACK *const pop(STACK *const p, int &e); //出栈到e,并返回pSTACK *const assign(STACK*const p, const STACK&s); //赋s给p指的栈,并返回p void print(const STACK*const p); //打印p指向的栈void destroySTACK(STACK*const p); //销毁p指向的栈2.需求分析按题目要求定义一个栈,并完成对栈的各种操作。
二、系统设计1.概要设计1)定义一个整型栈2)完成下列函数:void initSTACK(STACK *const p, int m); //初始化p指向的栈:最多m个元素void initSTACK(STACK *const p, const STACK&s); //用栈s初始化p指向的栈int howMany (const STACK *const p); //返回p指向的栈的实际元素个数posSTACK *const push(STACK *const p, int e); //将e入栈,并返回pSTACK *const pop(STACK *const p, int &e); //出栈到e,并返回pSTACK *const assign(STACK*const p, const STACK&s); //赋s给p指的栈,并返回p void print(const STACK*const p); //打印p指向的栈void destroySTACK(STACK*const p); //销毁p指向的栈3)创建主函数,测试上述函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
计算机科学与工程学院《面向对象程序设计》实验报告[一]专业班级2017数字媒体技术01实验地点J411 学生学号1705121411 指导教师陈艳
学生姓名黄浩博实验时间
实验项目结构化程序设计(4学时)
实验类别基础性()设计性(√)综合性()其它()
实验目的及要求1.熟悉VC++集成开发环境;
2.熟练应用C++的输入/输出、流程控制、函数、结构等;
3.熟练应用STL常用算法及常见容器;
4.综合应用结构化程序设计思想和方法解决常见问题;
5.完成实验内容,调试通过后将完整代码及运行截图粘贴到实验结果对应的题号下面;
6.对本次实验进行总结(遇到的问题,可行的解决方案,收获,体会等等)
7.完成实验报告后,以学号+姓名+实验1(.doc或.docx)为名上传到ftp://218.199.185.223/student/上传作业/陈艳/面向对象程序设计下对应班级及实验项目文件夹中
成绩评定表
类别评分标准分值得分合计上机表现
积极出勤、遵守纪律
主动完成设计任务
30分
题目一:
#include<iostream>
using namespace std;
void diamond(int n,char c1,char c2) {
int i,j;
for (i=1;i<=n;i++){
cout<<"\n\t";
for (j=1;j<=n-i;j++)
cout<<c1;
for (j=1;j<=2*i-1;j++)
cout<<c2;
for (j=1;j<=n-i;j++)
cout<<c1; }
for (i=n-1;i>0;i--){
cout<<"\n\t";
for (j=1;j<=n-i;j++)
cout<<c1;
for (j=1;j<=2*i-1;j++)
cout<<c2;
for (j=1;j<=n-i;j++)
cout<<c1; }
cout<<endl; }
int main(){
diamond(9,' ','*');
diamond(20,'#',' ');
cin.get(); }
题目二:
#include<iostream>
#include<vector>
using namespace std;
void scan(vector<int> &a,int );
int search(vector<int> &a,vector<int> &b,int); void print(const vector<int> &b,int);
int main(){
int n,m;
cout<<"How much numbers will you enter:";
cin>>n;
vector <int> a(n),b(n);
scan(a,n);
m=search(a,b,n);
print(b,m+1);
cin.get(); cin.get();
return 0;
}
void scan(vector<int> &a,int n){
cout<<"Enter the numbers:\n";
for(int i=0;i<n;i++) cin>>a[i];
}
int search(vector<int> &a,vector<int> &b,int i){ int n,m;
bool flag=0;
b[0]=a[0];
for(n=1;n<i;n++){
for(m=0,flag=0;b[m];m++){
if(b[m]==a[n]) flag=1;}
if(!flag)b[m]=a[n];}
return m;
}
void print(const vector<int> &b,int n){
cout<<"Print the number:";
for(int i=0;i<n;i++) cout<<b[i]<<"\t";
}
题目三:
#include<iostream>
#include<vector>
using namespace std;
template <class T>
void scan(vector<T> &,int);
template <class T>
void Max(vector<T> &,int);
template <class T>
void Min(vector<T> &,int);
int main(){
int n,m;
cout<<"How much numbers will you enter a: ";
cin>>n;
vector <int> a(n);
scan(a,n);
Max(a,n);
Min(a,n);
cin.get();
cin.get();
return 0;
}
template <class T>
std::cin>>cla>>hei;std::cin.get();
student[a].sca(name,sex,cla,hei);}
float sum=0;
for(int a=0;a<n;a++){
sum=student[a].sum(sum);}
for(int a=0;a<n;a++)
student[a].show();
std::cout<<"The average height is "<<sum/n<<std::endl;
std::cin.get();
return 0;
}
附加题1:
附加题2:
附加题3:。