实验报告4类与对象
C++语言程序设计实验4(类和对象)

是:用初始对象的每个数据成员的值,初始化将要建立的对象的对应数据成员。
构造函数和拷贝构造函数的声明格式如下:
class 类名
{
public: 类名(形参); 类名(类名 &对象名);
//构造函数 //拷贝构造函数
... ...
}; 类名::类名()
//构造函数的实现
{ 函数体;
} 类名::类名(类名 &对象名)
6. 本章小结
本章主要介绍了面向对象的基本概念、类和对象的声明、构造函数、析构函数、内联成 员函数、拷贝构造函数、类的组合。
类是面向对象程序设计中最重要、最基本的概念,也是学习面向对象方法时遇到的第 1 个难点。类是对逻辑上相关的函数和数据的封装,是对问题的抽象描述。
要理解类与对象,必须要结合实例来学习,读者可以思考:除了书中列出的例子,现实 世 界 中 还 有 哪 些 有 形 或 无 形 的 事 务 可 以 被 抽 象 为 程 序 中 的 类 ,每 个 类 又 存 在 哪 些 对 象( 实 体 )。 这样可以对类的概念了解的快一些。
本章开始的每章的最后有一个实例——人员信息管理程序,这个例子贯穿后续各章,利 用每章介绍的只是不断丰富程序的功能,建议课后仔细阅读、体会,并尝试修改、补充程序 的功能。
另外,本章中还介绍了利用 UML 语言表示类与对象的方法,以后各章还将进一步介绍 用 UML 语言表示类之间的关系,但这远不是 UML 语言的全部,这方面的内容也不是初学者 学习的重点,读者可以不必深究,了解一下就可以了。如果有需要,可以另外学习软件工程 的课程。
面向对象的程序设计目的是:实现软件设计的产业化。主要观点是认为自然界是由实体 (对象)所组成。程序设计的出发点是:使用面向对象的观点来描述模仿并处理现实问题。 他要求:高度概括、分类、抽象。
实验报告

实验八链表编程#include<iostream.h>struct node{int date;node *next;};node* jianli(){intn,i;node *haed=NULL,*p=NULL,*u=NULL; cout<<"输入链表的大小:\n"; cin>>n;haed=new node;u=haed;cout<<"输入数值\n";cin>>u->date;for( i=1;i<n;i++){p=new node;u->next=p;u=p;cout<<"输入数值\n";cin>>p->date;}u->next=NULL;returnhaed;}voidshuchu(node *m){cout<<"该链表为:";for(int j=0;j<6;j++){cout<<m->date<<" ";m=m->next;}cout<<"\n";}void search(node *m){int n;cout<<"输入序号:";cin>>n;node *p=m,*sea;for(int i=1;;i++){sea=p;p=p->next;if(i==n){cout<<"输出值为:"<<sea->date<<endl;break;}}}void search2(node *m){int n;cout<<"输入值:";cin>>n;node *p=m,*sea;for(int i=1;;i++){sea=p;p=p->next;if(sea->date==n){cout<<"输出序号:"<<i<<endl;break;}}}voidcharu(intn,intx,node *m){node *p=m,*sea,*k;for(int i=1;;i++){sea=p;p=p->next;if(i==n){k=new node;k->date=x;sea->next=k;k->next=p;break;}}p=m;cout<<"输出链表:"; while(1){cout<<p->date<<" "; if(p->next==NULL)break;p=p->next;}cout<<"\n";}shanchu(ints,node *m) {node *p=m,*sea=m;for(int i=1;;i++){if(i==s){sea->next=p->next;break;}sea=p;p=p->next;}p=m;cout<<"输出链表:"; while(1){cout<<p->date<<" "; if(p->next==NULL)break;p=p->next;}}void main(){intn,x,s;node *f=jianli(); shuchu(f);search(f);search2(f);cout<<"插入结点";cin>>n;cout<<"输入值:";cin>>x;charu(n,x,f);cout<<"输入要删除的结点:";cin>>s;shanchu(s,f);cout<<endl;}错误与总结:一个链表的建立要申请动态指针,把前一个结构体中的指针变量指向新建的地址,链表就可以连接起来了。
椅子实验报告

一、实验目的本次实验旨在通过一系列测试,评估不同类型和材质的椅子在承重、稳定性以及舒适度方面的性能,为消费者选购椅子提供参考依据。
二、实验材料1. 实验对象:椅子(包括木质椅子、金属椅子、塑料椅子、布艺椅子等)2. 测试设备:电子秤、压力传感器、尺子、秒表、温度计等3. 测试环境:室内,温度20℃左右,湿度50%左右三、实验方法1. 承重测试:将椅子置于电子秤上,逐渐增加重量,观察椅子是否能承受相应重量,并记录最大承重值。
2. 稳定性测试:在平坦地面上,将椅子置于压力传感器上,逐渐增加重量,观察椅子在承重过程中的稳定性,记录最大倾斜角度。
3. 舒适度测试:邀请志愿者坐在不同类型的椅子上,持续观察30分钟,记录志愿者对椅子的舒适度评价。
4. 温度测试:将椅子置于温度计附近,观察椅子在长时间使用后的温度变化。
四、实验步骤1. 准备实验材料,确保实验环境符合要求。
2. 对每种椅子进行承重测试,记录最大承重值。
3. 对每种椅子进行稳定性测试,记录最大倾斜角度。
4. 邀请志愿者进行舒适度测试,记录对椅子的评价。
5. 将椅子置于温度计附近,观察长时间使用后的温度变化。
五、实验结果与分析1. 承重测试结果:| 椅子类型 | 最大承重值(kg) || -------- | -------------- || 木质椅子 | 100 || 金属椅子 | 150 || 塑料椅子 | 80 || 布艺椅子 | 60 |从实验结果来看,金属椅子的最大承重值最高,其次是木质椅子,塑料椅子和布艺椅子的承重能力相对较弱。
2. 稳定性测试结果:| 椅子类型 | 最大倾斜角度(°) || -------- | ---------------- || 木质椅子 | 5 || 金属椅子 | 3 || 塑料椅子 | 7 || 布艺椅子 | 6 |实验结果表明,金属椅子的稳定性最好,其次是木质椅子,塑料椅子和布艺椅子的稳定性相对较差。
实验报告都有啥类型

实验报告都有啥类型摘要实验报告是科学研究中重要的组成部分,它主要记录和总结实验过程、结果和结论。
实验报告的类型多种多样,每种类型都有其特定的结构和内容要求。
本文将介绍一些常见的实验报告类型,包括实验室报告、科研报告和学术论文等,并对它们的结构和特点进行详细阐述。
1. 实验室报告实验室报告是大学生在进行实验课程时所撰写的报告,主要是记录实验的目的、原理、仪器设备、实验过程、实验结果和结论等内容。
实验室报告的结构通常包括标题、摘要、引言、实验原理、实验装置、实验步骤、实验结果、分析和讨论、结论等部分。
其中,摘要部分简要概括了实验的目的、方法和结果,引言部分介绍了实验的背景和目的,实验原理部分详细解释了实验所涉及的科学原理,实验装置和实验步骤部分则描述了实验所使用的仪器设备和实验过程,实验结果和分析部分展示了实验数据和对数据的分析,结论部分给出了实验的结论和对实验结果的解释。
2. 科研报告科研报告是科学研究者在进行科研项目时所撰写的报告,主要是记录研究的背景、目的、方法、结果和结论等内容。
科研报告的结构通常包括标题、摘要、引言、相关研究、研究目的、研究方法、实验结果、分析和讨论、结论等部分。
其中,摘要部分概括了研究的目的、方法和结果,引言部分介绍了研究的背景和意义,相关研究部分介绍了与该研究相关的已有研究成果,研究目的部分明确了该研究的目标,研究方法部分详细描述了研究所采用的科学方法,实验结果和分析部分展示了研究数据和对数据的分析,结论部分给出了研究的结论和对研究结果的解释。
3. 学术论文学术论文是科学研究者在进行学术研究时所撰写的报告,主要是向科学界和学术界介绍其研究的成果和贡献。
学术论文的结构通常包括标题、摘要、引言、相关研究、研究方法、研究结果、分析和讨论、结论等部分。
其中,摘要部分概括了研究的目的、方法和结果,引言部分介绍了研究的背景和意义,相关研究部分介绍了与该研究相关的已有研究成果,研究方法部分详细描述了研究所采用的科学方法,研究结果和分析部分展示了研究数据和对数据的分析,结论部分给出了研究的结论和对研究结果的解释。
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。
面向对象系统分析和设计综合实验报告4

面向对象系统分析和设计综合实验报告4综合实验报告:面向对象系统分析和设计一、引言面向对象系统分析和设计(Object-Oriented System Analysis and Design,简称OOSAD)是软件工程中的重要环节,它涉及到软件系统的需求分析、设计和建模等过程。
本实验旨在通过一个综合案例,加深对面向对象系统分析和设计的理解,并能够熟练运用相关的建模工具和方法。
二、实验背景本次实验的案例为一个在线购物系统,该系统允许用户浏览商品、添加到购物车、下定单并完成支付等功能。
通过对该系统进行分析和设计,可以掌握面向对象的建模技巧,包括用例图、类图、时序图等。
三、系统需求分析1. 功能需求根据用户的需求,我们确定了以下功能需求:- 用户注册和登录:用户可以通过注册账号并登录系统。
- 浏览商品:用户可以查看系统中的商品列表,包括商品的名称、价格、库存等信息。
- 添加到购物车:用户可以将感兴趣的商品添加到购物车中,以便后续下单。
- 下定单:用户可以选择购物车中的商品,并生成定单。
- 支付定单:用户可以选择支付方式,完成定单的支付。
2. 非功能需求除了功能需求外,我们还需要考虑以下非功能需求:- 性能要求:系统需要能够处理大量的用户请求,并保证响应时间在合理范围内。
- 安全要求:用户的个人信息和支付信息需要进行加密和保护,确保不被恶意攻击者获取。
- 可靠性要求:系统需要具备一定的容错能力,能够在浮现故障时自动恢复,并保证数据的完整性。
四、系统设计1. 用例图根据需求分析,我们可以绘制出以下用例图,用于描述系统的功能和用户之间的交互关系。
(用例图示例)2. 类图在进行系统设计时,我们需要确定系统中的各个类及其之间的关系。
以下是一个简化的类图示例:(类图示例)在类图中,我们可以看到系统中的各个类以及它们之间的关系,如商品类、用户类、购物车类、定单类等。
通过类图,我们可以清晰地看到系统的结构和模块之间的依赖关系。
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. 定义类:在实验开始前,我们首先需要定义一个类。
类是对象的抽象描述,包含了对象的属性和方法。
以汽车为例,我们可以定义一个Car类,其中包含品牌、颜色和速度等属性,以及启动、加速和刹车等方法。
2. 创建对象:在定义了Car类之后,我们可以通过创建对象来实例化该类。
通过使用new关键字,我们可以创建多个汽车对象,每个对象都拥有独立的属性和方法。
例如,我们可以创建一个名为myCar的对象,它是Car类的一个实例。
3. 访问对象的属性和方法:创建了对象之后,我们可以通过点运算符来访问对象的属性和方法。
例如,通过myCar.brand可以获取myCar对象的品牌属性,通过myCar.start()可以调用myCar对象的启动方法。
这样,我们可以通过对象来操作和管理数据,使代码更加清晰和可读。
4. 对象之间的交互:在实际编程中,对象之间经常需要进行交互。
通过在类中定义方法,我们可以实现对象之间的数据传递和信息交流。
例如,我们可以定义一个方法来获取其他汽车对象的速度,并根据这些速度进行比较和判断。
实验结果:通过实验,我们深入了解了类与对象的概念和用法。
通过定义类和创建对象,我们可以更好地组织和管理代码,提高程序的可维护性和可扩展性。
通过访问对象的属性和方法,我们可以实现对数据和行为的封装,使代码更加模块化和易于理解。
通过对象之间的交互,我们可以实现数据的共享和协作,提高程序的效率和灵活性。
实验总结:类与对象是面向对象编程的核心概念,掌握了类与对象的基本用法对于开发高质量的程序至关重要。
通过本次实验,我们加深了对类与对象的理解,并通过实际操作掌握了其基本用法。
在以后的编程过程中,我们可以更加灵活地运用类与对象,提高代码的可读性和可维护性。
UML实验报告
中南民族大学管理学院学生实验报告课程名称:UML面向对象分析与设计教程年级:专业:信息管理与信息系统学号:姓名:指导教师:实验地点:管理学院综合实验室2013 学年至 2014 学年度第 2 学期目录实验一 UML建模基础实验二用例图实验三 UML类图实验四对象图实验五包图实验六动态模型图实验(一) UML建模基础实验时间:实验目的1.熟悉UML建模工具Rational Rose的基本菜单及操作。
2.掌握UML的三大组成部分及各部分作用。
3.掌握UML的可见性规则和构造型的作用。
实验内容1.练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。
2.认识各种UML关系及可见性符号,并用工具表示出来。
答:各种UML关系如下:分析与讨论1.总结UML在软件工程中的作用以及使用UML建模的必要性。
答:统一建模语言(UML)是用来对软件密集系统进行可视化建模的一种语言,也是为面向对象开发系统的产品进行说明、可视化、构造和编制文档的一种语言。
UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。
当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。
UML可以贯穿软件开发周期中的每一个阶段,最适于数据建模、业务建模、对象建模、组件建模。
UML展现了一系列最佳工程实践,这些最佳实践在对大规模、复杂系统进行建模方面,特别是在软件架构层次方面已经被验证有效。
UML是一种功能强大的,面向对象的可视化系统分析的建模语言,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠,更完善的系统模型,从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性。
指导教师批阅:实验(二)用例图实验时间:实验目的1.掌握用例的概念、UML用例图的组成、作用以及使用场合。
2.掌握用例与用例之间的各种关系。
3.用Rational Rose工具练习教材中的用例图。
实验报告
实验四类,对象和接口一.实验目的(1)掌握类的声明,对象的创建以及方法的定义和调用。
(2)掌握打包机制。
(3)掌握类的继承。
(4)掌握类接口的使用。
二、实验方案(1)//Father.java;package tom.jiafei;public class Father{int height;protected int money;public int weight;public Father(int m){money=m;}protected int getMoney(){return money;}void setMoney(int newMoney){money=newMoney;}}//Jerry.java:import tom.jiafei.Father;public class Jerry extends Father{public Jerry(){super(20);}public static void main(String args[]){Jerry jerry=new Jerry();jerry.weight=200;jerry.money=800;int m=jerry.getMoney();System.out.println("m="+m);}}(2)interface ShowMessage{void 显示商标(String s);}class TV implements ShowMessage{public void 显示商标(String s){System.out.println(s);}}class PC implements ShowMessage{public void 显示商标(String s){System.out.println(s);}}public class Example4_28{public static void main(String args[]){ShowMessage sm;sm=new TV();sm.显示商标("长城牌电视机");sm=new PC();sm.显示商标("联想奔月5008PC");}}(3)求50以内的素数//Number.javapackage sushu;//将Number.java打包到文件夹sushu中public class Number{public void prn()//创建方法prn(){boolean flag ;for (int i=2;i<50;i++){flag = true ;//将flag初始化for (int j=2 ;j <= i/2 ; j++){ //只需对2到i/2之间取余,因为假如i/2到i有某个数x被i整除,则在2到i/2必定能找到一个数y(y*x=i)被i整除if (i%j == 0 ){flag = false ;break;//假如2到i/2有某个数被i整除,则跳出,执行下一次循环}}if (flag == true ){System.out.print(i+"\t");}//若flag为真,则i为素数,输出i的值}}}//Num.javaimport sushu.Number;//引用定义的包public class Num extends Number{public static void main(String args[]){Number num=new Number();num.prn();}}三、实验结果和数据处理(1)(2)(3)实验五数组与字符串一.实验目的(1)掌握一维数组的概念、定义和使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:类与对象一.实验目的:(1)理解C#语言是如何体现面向对象编程基本思想;(2)掌握类对象的定义;(3)了解类的封装方法,以及如何创建类和对象;(4)了解成员变量和成员方法的特性;(5)掌握静态成员的用法;(6)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数;(7)掌握参数传递的用法;(8)掌握属性的作用和使用。
二.上机内容:1)创建MyDataTime类,熟悉构造函数、析构函数的定义方法、属性的定义方法以及一般方法的定义过程。
(2)创建Fraction类,掌握运算符重载、静态方法的使用及其与实例方法的区别。
(3)创建Swap类,掌握C#方法中参数的传递。
(4)整理上机步骤,总结经验和体会。
(4)完成实验报告。
四.上机步骤:类的创建与应用:创建一个MyDataTime类,要求如下:(1)私有字段:year,month,day;(2)属性:Year,Month,Day。
注意在定义Month和Day的settor时要检验设置值的有效性,其中,,同时在对Day进行设置的时候要注意闰年和平年的2月的天数。
(3)方法:构造函数:根据需求确定不同参数列表的构造方法。
析构函数:提示析构对象。
PrintMyDataTime:以“2011/4/24”、“2011年4月24日”、“2011.4.24”、“二〇一一年四月二十四日”的形式输出Year,Month和Day。
using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{class MyDataTime{private int year;public int Year{set { year = value; }get { return year; }}private int month;public int Month{set{if (value >= 1 && value <= 12){month = value;}else{Console.WriteLine("month的赋值范围为[1,12];您输入的值不正确");}}get { return month; }}public int day;public int Day{set{if (month == 2 ){if(year%400==0||(year%100!=0&&year%4==0)){if(value>=1&&value<=29){day=value;}else{if(value>=1&&value<=28){day=value;}}}}else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ if (value >= 1 && value <= 31){ day = value; }}else{if(value>=1&&value<=30){day=value;}}}get { return day; }}public MyDataTime(int x, int y, int z){ Year=x;Month=y;Day=z;}public void show1(){Console.WriteLine("您输入的时间是:{0}/{1}/{2}", year, month, day);}public void show2(){Console.WriteLine("您输入的时间是:{0}年{1}月{2}日", year, month, day);}public void show3(){Console.WriteLine("您输入的时间是:{0}.{1}.{2}", year, month, day);}}class Program{static void Main(string[] args){Console.WriteLine("请输入年:");int a = int.Parse(Console.ReadLine());Console.WriteLine("请输入月:");int b = int.Parse(Console.ReadLine());Console.WriteLine("请输入日:");int c = int.Parse(Console.ReadLine());MyDataTime k = new MyDataTime(a,b,c);k.show1();k.show2();k.show3();Console.ReadLine();}}}通过类程序说明静态变量/方法与实例变量/方法的区别:创建一个分数类(Fraction),要求如下:私有字段:FenZi,FenMu构造函数:Fraction(int FenZi, int FenMu),注意要校验分母,不能为0;方法:重载运算符和-(负号),完成分数的加减乘除以及求相反数运算。
注意四种运算均为静态方法。
DaoShu:求分数的倒数。
GongYueShu,GongBeiShu:分别用于求两个整数的公约数和公倍数,可以用于上述分数运算结果的化简;Display:用于在屏幕上输出分数,形式为:。
ToDouble:用于将分数转换为一个小数。
注意:运算符重载、公约数、公倍数、倒数为静态方法,其余为实例方法。
在验证程序中要用到两类方法,并体会两类方法的区别。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication29{class Fraction{private int FenZi;public int X{set { FenZi = value; }get { return FenZi; }}private int FenMu;{set{if (value == 0){ Console.WriteLine("分母不能为0!");}else{FenMu = value; }}get { return FenMu; }}public Fraction(int FenZi,int FenMu){this.FenZi = FenZi;this.FenMu = FenMu;}public void display(){Console.WriteLine("得到分数:{0}/{1}",FenZi,FenMu); }public double ToDouble(){double g=Convert.ToDouble(FenZi/FenMu);}public static int gongyueshu( int a1, int b1) {int t = 1;do{if(b1!=0){t = a1 % b1;a1 = b1;b1 = t;}else {break;}} while (t != 0);t = a1;return t;}public static int gongbeishu( int a2, int b2) {int h = a2 * b2;int s=gongyueshu( a2, b2);h = h / s;return h;}public static void daoshu( int a3, int b3){int t=gongyueshu( a3, b3);a3=a3/t;b3=b3/t;Console.WriteLine("{0}/{1}",a3,b3);}public static Fraction operator *(Fraction f1, Fraction f2) {Fraction f = new Fraction(0, 0);f.FenZi = f1.FenZi * f2.FenZi;f.FenMu = f1.FenMu * f2.FenMu;int x1 = gongyueshu( f.FenZi, f.FenMu);f.FenZi = f.FenZi / x1;f.FenMu = f.FenMu / x1;return f;}public static Fraction operator /(Fraction f1, Fraction f2) {Fraction f = new Fraction(0, 0);f.FenZi = f1.FenZi * f2.FenMu;f.FenMu = f1.FenMu * f2.FenZi;int x1 = gongyueshu( f.FenZi, f.FenMu);f.FenZi = f.FenZi / x1;f.FenMu = f.FenMu / x1;return f;}public static Fraction operator +(Fraction f1, Fraction f2) {Fraction f = new Fraction(0, 0);f.FenZi = f1.FenZi*f2.FenMu+f2.FenZi* f1.FenMu;f.FenMu = f1.FenMu * f2.FenMu;int x1=gongyueshu( f.FenZi, f.FenMu);f.FenZi = f.FenZi / x1;f.FenMu = f.FenMu / x1;return f;}public static Fraction operator -(Fraction f1, Fraction f2){Fraction f = new Fraction(0, 0);f.FenZi = f1.FenZi * f2.FenMu - f2.FenZi * f1.FenMu;f.FenMu = f1.FenMu * f2.FenMu;int x1 = gongyueshu( f.FenZi, f.FenMu);f.FenZi = f.FenZi / x1;f.FenMu = f.FenMu / x1;return f;}}class Program{static void Main(string[] args){ Console.WriteLine("请输入第一个分数:");Console.WriteLine("请输入分子:");int aa = int.Parse(Console.ReadLine());Console.WriteLine("请输入分母:");int ba = int.Parse(Console.ReadLine());if (ba == 0){Console.WriteLine("分母不能为0!请重新输入一个不为0的数:");ba = int.Parse(Console.ReadLine());}Console.WriteLine("请输入第二个分数:");Console.WriteLine("请输入分子:");int ab = int.Parse(Console.ReadLine());Console.WriteLine("请输入分母:");int bb = int.Parse(Console.ReadLine());if (bb == 0){Console.WriteLine("分母不能为0!请重新输入一个不为0的数:");bb = int.Parse(Console.ReadLine());}Fraction f1 = new Fraction(aa, ba);Fraction f2 = new Fraction(ab, bb);Fraction fa = f1 + f2;Fraction fb = f1 - f2;Fraction fc = f1 * f2;Fraction fd = f1 / f2;fa.display();fb.display();fc.display();fd.display();Console.ReadLine();}}}方法中参数的传递:创建一个Swap类,分别定一个采用值参数、引用型参数、输出型参数、数组型参数的方法,完成两个整型数据和整型数组的排序和输出。