南昌大学面向对象程序设计实验报告.docx
- 文档编号:10795279
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:10
- 大小:16.76KB
南昌大学面向对象程序设计实验报告.docx
《南昌大学面向对象程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《南昌大学面向对象程序设计实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
南昌大学面向对象程序设计实验报告
南昌大学面向对象程序设计实验报告
南昌大学实验报告
学生姓名:
郭银博学号:
5602211023专业班级:
自动化113班
实验类型:
□验证□综合□设计□创新实验日期:
实验成绩:
实验一熟悉C++的上机环境
一.实验目的
1.初步了解C++程序的编译、连接和运行的过程。
?
2.掌握和理解C++程序的结构。
二.实验内容
1.使用VC
2.运行一个简单的C++程序
3.编程求出对象中两个数据的和与差
三.实验环境PC微机;dows?
操作系统;VC程序集成环境。
四、实验程序
#include
classA
{
public:
A{a=b=0;}
A(inta,intb)
{a=a;b=b;}
add(inta,intb)
{intc=a+b;
cout
#include
classA
{public:
A(char_
st);
~A
{cout
classRational
{public:
Rational(intd,intn)
{
den=d;
num=n;
cout
classA
{
public:
A(inti,intj){a=i;b=j;}
voidMove(int_,inty){a+=_;b+=y;}
voidShow{cout
classA
{public:
A
{_=y=0;
cout
classA
{public:
A{ver=#;A#;;}
virtualvoidprint
{coutprint;}
voidmain
{
Aa;
D1d1(4);
D2d2(100);
D3d3(-25);
print_info(a);
print_info(d1);
print_info(d2);
print_info(d3);
}
五、实验结果分析^p:
这个实验是有关动态联编内容的,程序中开始定义了一个类A,又定义了一个类D1,它是对A的公有继承,又定义一个类D2,也是对A的共有继承,而累D3是对D1的公有继承。
每个类都有一个输出函数,同名同参数、同返回值,但是A类中说明为虚函数,并且是通过一个函数(参数为A类指针),还满足子类型关系,满足了动态联编的条件,这就说明为动态联编。
把程序输进去,直至编译没有错误,运行,结果与分析^p结果一致。
这就说明确实是采用的动态联编,根据调用的对象进行连接,就输出对应实参的相关数据。
通过书上几个
题目、上机以及老师讲授,目前对静态联编和动态联编搞的差不多了,不会很模糊了。
南昌大学实验报告
学生姓名:
郭银博学号:
5602211023专业班级:
自动化113班
实验类型:
□验证□综合□设计□创新实验日期:
实验成绩:
实验七扑克牌游戏程序设计
一、实验目的:
通过这个扑克牌游戏加深对c++的理解,学习函数封装思想。
二.实验内容
1.使用VC
2.利用所给函数,建立一个类,通过类编出一个程序实现扑克牌的发牌。
三.实验环境PC微机;dows?
操作系统;VC程序集成环境。
四、实验程序
#include
#include
#include
enumsuit{clubs,diamonds,hearts,spades};//花色枚举
typedefintpips;//牌数
structcard
{suits;pipsp;};
structdeck
{cardd[52];};
classA
{public:
voidinit{init_deck(deck1);}
voidshuffle
{shuffle(deck1);}
voiddeal
{deal(52,1,deck1.d,deck1);}
voidprint_deck
{print_deck(deck1);}
voidperson;
voidA:
:
everyone;
pipsassign_pips(intn);
suitassign_suit(intn);
voidassign(intn,cardc);
voidinit_deck(deckdk);
pipsget_pip(cardc);
suitget_suit(cardc);
voidprint_card(cardc);
voidprint_deck(deckdk);
voidshuffle(deckdk);
voiddeal(intn,intpos,card_
hand,deckdk);
private:
deckdeck1;
};
pipsA:
:
assign_pips(intn)//发牌数字
{return(n13+1);}
suitA:
:
assign_suit(intn)//发牌花色
{
return(static_cast(n/13));
}
voidA:
:
assign(intn,cardc)//每人得到的牌
{
c.s=assign_suit(n);
c.p=assign_pips(n);
}
voidA:
:
init_deck(deckdk)//初始化发牌
{
for(inti=0;i<52;++i)
assign(i,dk.d[i]);
}
pipsA:
:
get_pip(cardc)//返回取得牌数
{
returnc.p;
}
suitA:
:
get_suit(cardc)//返回取得花色
{
returnc.s;
}
voidA:
:
print_card(cardc)//输出每张牌
{
cout< switch(c.s) { caseclubs: cout<<“C”; break; casediamonds: cout<<“D”; break; casehearts: cout<<“H”; break; casespades: cout<<“S”; } } voidA: : print_deck(deckdk)//一张一张输出每个人(所有)的牌 { for(inti=0;i<52;++i) print_card(dk.d[i]); } voidA: : shuffle(deckdk)//洗牌(交换两张牌下标) { cardt; for(inti=0;i<52;++i) { intk=(rand(52-i)); t=dk.d[i]; dk.d[i]=dk.d[k]; dk.d[k]=t; } } voidA: : deal(intn,intpos,card_ hand,deckdk)//发牌 { for(inti=pos;i hand[i-pos]=dk.d[i]; } voidA: : person { intn=0; for(intj=0;j<13;j++) { for(inti=0;i<4,n++;i++) d1[j][i]=deck1.d[n]; } for(intm=0;m<4;m++) { for(intn=0;n<13;n++) print_card(d1[n][m]); //cout<<“第”< ”< } } voidA: : everyone {intn=0; for(inti=0;i<4;i++) {cout<<“第”<<++i<<“个人的牌: ”; i--; for(intj=13_i;j<13_(i+1);j++) print_card(deck1.d[j]); cout< } } voidmain {Aa; srand(time(NULL));//seedrandfromtime //structdeck1; a.init; a.shuffle; //for(intb;b<12;b++) a.deal; a.print_deck; cout< a.everyone; } 五、实验结果分析^p: 这是一个比较综合的实验,利用这学期所学知识,编写一个扑克牌游戏。 之前所做实验都是某一个知识点的运用,并且真正自己写程序的很少,大多都是照书上写完运行。 而这个实验要自己看懂,然后建立类,写主函数。 由于怕自己课上完不成,于是就课下先看了一下各个程序,读懂它的作用以及实现,并在各个程序后面进行了注释。 pipsA: : assign_pips(intn)//发牌数字 suitA: : assign_suit(intn)//发牌花色 voidA: : assign(intn,cardc)//每人得到的牌 voidA: : init_deck(deckdk)//初始化发牌 pipsA: : get_pip(cardc)//返回取得牌数 suitA: : get_suit(cardc)//返回取得花色 voidA: : print_card(cardc)//输出每张牌 voidA: : print_deck(deckdk)//一张一张输出每个人(所有)的牌 voidA: : shuffle(deckdk)//洗牌(交换两张牌下标) voidA: : deal(intn,intpos,card_ hand,deckdk)//发牌 voidA: : everyone//输出发给每个人的牌 上课后重新熟悉一下各个函数,开始编程,遇到不少问题,就一次次地根据错误提示进行修改,程序在不断减少,最后还有两个错误,就是说成员函数的参数没有定义,但是回去看,明明已经定义了。 在老师帮助下搞明白了,因为参数为类的私有成员,根据所学知识,只有成员函数才能对其进行操作。 而它却不能直接作为成员函数的参数,解决方法就是在定义一个无参成员函数对这个成员函数进行调用,最终成功了。 但是他只是输出52个随机牌。 我回去又进一步改进,使程序能输出每个人的牌,开始建立一个二维数组,但是就是不行,回到宿舍改进一下,最终终于成功了。 通过这个实验,使我对于类的封装性,以及函数对类私有成员调用有了更深入的了解,感觉知识要深入理解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 面向 对象 程序设计 实验 报告