南昌大学面向对象程序设计实验报告

上传人:s9****2 文档编号:561972770 上传时间:2023-06-12 格式:DOCX 页数:11 大小:13.60KB
返回 下载 相关 举报
南昌大学面向对象程序设计实验报告_第1页
第1页 / 共11页
南昌大学面向对象程序设计实验报告_第2页
第2页 / 共11页
南昌大学面向对象程序设计实验报告_第3页
第3页 / 共11页
南昌大学面向对象程序设计实验报告_第4页
第4页 / 共11页
南昌大学面向对象程序设计实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《南昌大学面向对象程序设计实验报告》由会员分享,可在线阅读,更多相关《南昌大学面向对象程序设计实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、南昌大学面向对象程序设计实验报告南昌大学实验报告学生姓名: 郭银博 学 号: 5602211023 专业班级:自动 化113班实验类型:口验证口综合口设计口创新 实验日期:实验成绩:实验一熟悉C+的上机环境一实验目的1. 初步了解C+程序的编译、连接和运行的过程。?2. 掌握和理解C+程序的结构。二实验内容1. 使用VC2. 运行一个简单的C+程序3编程求出对象中两个数据的和与差三. 实验环境PC微机;dows?操作系统;VC程序集成环境。四、实验程序#includeclass Apublic:Aa=b=0;A(int a,int b)a=a;b=b;add(int a,int b)int c

2、=a+b;cout#includeclass Apublic:A(char _st);Acoutclass Rationalpublic:Rational(int d,int n)den=d;num=n;coutclass Apublic:A(int i,int j)a=i;b=j;void Move(int _,int y)a+=_;b+=y;void Showcoutclass Apublic:A _=y=0;coutclass Apublic:Aver=#;A#;virtual void print coutprint;void mainA a;D1 d1(4);D2 d2(100);D

3、3 d3(-25);print_info(a);print_info(d1);print_info(d2);print_info(d3);五、实验结果分析八P:这个实验是有关动态联编内容的,程序中开始定义了一个类A,又定义了一 个类D1,它是对A的公有继承,又定义一个类D2,也是对A的共有继承,而累D3 是对D1的公有继承。每个类都有一个输出函数,同名同参数、同返回值,但是A 类中说明为虚函数,并且是通过一个函数(参数为A类指针),还满足子类型关 系,满足了动态联编的条件,这就说明为动态联编。把程序输进去,直至编译没有错误,运行,结果与分析k 结果一致。这 就说明确实是采用的动态联编,根据调用

4、的对象进行连接,就输出对应实参的相关 数据。通过书上几个题目、上机以及老师讲授,目前对静态联编和动态联编搞的差不多了,不会 很模糊了。南昌大学实验报告第3页共10页化113班实验类型:口验证口综合口设计口创新 实验日期: 实验成绩:实验七 扑克牌游戏程序设计一、实验目的:通过这个扑克牌游戏加深对C+的理解,学习函数封装思 想。二实验内容1.使用VC2利用所给函数,建立一个类,通过类编出一个程序实现扑克牌的发牌三. 实验环境PC微机;dows?操作系统;VC程序集成环境。四、实验程序#inClude#inClude#inCludeenum suit clubs, diamonds,hear ts

5、,spades;/花色枚举 ty pedef int pips;/牌数struct cardsuit s; pips p;struct deck card d52;class A public:void initinit_deck(deck1);void shuffleshuffle(deck1);void dealdeal(52, 1, deck1.d, deck1);void print_deck print_deck(deck1); void person;void A:everyone;pips assign_pips(int n);suit assign_suit(int n);vo

6、id assign(int n, card c);void init_deck(deck dk);pips get_pip(card c);suit get_suit(card c);void print_card(card c);void print_deck(deck dk);void shuffle(deck dk);void deal(int n, int pos, card_ hand, deck dk);private:deck deck1;pips A:assign_pips(i nt n)/发牌数字 return (n13+1);suit A:assign_su it(int

7、n)/发牌花色return (static_cast(n/13);void A:assign(int n, card c)/每人得到的牌 c.s= assign_suit(n);c.p= assign_pips(n);void A:init_deck(deck dk)/初始化发牌for (int i=0; i52;+i)assign(i, dk.di);pips A:get_pip(card c)/返回取得牌数return c.p;suit A:ge t_sui t(card c)/返回取得花色return c.s;void A:print_card(card c)/输出每张牌 coutc.p

8、;switch(c.s)case clubs:cout“C ”;break;case diamonds:cout“D ”;break;case hearts:cout“H ”;break;case spades:cout“S ”;void A:print_deck(deck dk)/一张一张输出每个人(所有)的牌for (int i=0; i52;+i)print_card(dk.di);void A:shuffle(deck dk)/洗牌(交换两张牌下标)card t;for (int i=0; i52;+i)int k=(rand(52-i);t=dk.di;dk.di= dk.dk;dk

9、.dk=t;void A:deal(int n, int pos, card_hand, deck dk)/发牌for (int i=pos; ipos+n; +i)handi-pos=dk.di;void A:personint n=0;for(int j=0;j13;j+)for(int i=0;i4,n+;i+)d1ji=deck1.dn;for(int m=0;m4;m+)for(int n=0;n13;n+)print_card(d1nm);/cout “第” i “个人的牌:” dlijendl;void A:everyoneint n=0;for(int i=0;i4;i+)co

10、ut “第” +i“个人的牌:”;i-;for(int j=13_i;j13_(i+1);j+)print_card(deck1.dj);coutendl;void main A a;srand(time(NULL); / seed rand from time/struct deck1;a.init;a.shuffle;/for(int b;b12;b+)a.deal;a.print_deck;coutendl;a.everyone;五、实验结果分析八P:这是一个比较综合的实验,利用这学期所学知识,编写一个扑克牌游戏。之 前所做实验都是某一个知识点的运用,并且真正自己写程序的很少,大多都是照

11、书 上写完运行。而这个实验要自己看懂,然后建立类,写主函数。由于怕自己课上完不成,于是就课下先看了一下各个程序,读懂它的作用以 及实现,并在各个程序后面进行了注释。pips A:assign_pips(i nt n)/发牌数字suit A:assign_su it(int n)/发牌花色void A:assign(int n, card c)/每人得到的牌void A:init_deck(deck dk)/初始化发牌pips A:get_pip(card c)/返回取得牌数suit A:ge t_sui t(card c)/返回取得花色void A:print_card(card c)/输出每

12、张牌void A:prin t_deck(deck dk)/一张一张输出每个人(所有)的牌void A:shuffle(deck dk)/洗牌(交换两张牌下标)void A:deal(int n, int pos, card_hand, deck dk)/发牌void A:everyone/输出发给每个人的牌上课后重新熟悉一下各个函数,开始编程,遇到不少问题,就一次次地根据 错误提示进行修改,程序在不断减少,最后还有两个错误,就是说成员函数的参数 没有定义,但是回去看,明明已经定义了。在老师帮助下搞明白了,因为参数为类 的私有成员,根据所学知识,只有成员函数才能对其进行操作。而它却不能直接作 为成员函数的参数,解决方法就是在定义一个无参成员函数对这个成员函数进行调 用,最终成功了。但是他只是输出52个随机牌。我回去又进一步改进,使程序能 输出每个人的牌,开始建立一个二维数组,但是就是不行,回到宿舍改进一下,最 终终于成功了。通过这个实验,使我对于类的封装性,以及函数对类私有成员调用有了更深 入的了解,感觉知识要深入理解。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号