c++综合实验
实验课程名称 C++程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
开课实验室 计算机中心
学 院 2011 级 信息与计算科学 专业班 一班
学 生 姓 名 陈世超 学 号 631122020113
开 课 时 间 2012 至 2013 学年第 1 学期
评分细则 评 分
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
述的清晰程度和完整性(30分)
程序设计的正确性(40分)
实验结果的分析和体会(30分)
总 成 绩
1
综合设计实验
一、实验内容:
1(无序输入多个用户的记录电话号码(至少包括姓名和电话两个域),要求以单链表结构存储。然后编写冒泡排序程序,将用户记录可以按照用户名或者电话顺序输出。
2(对于上题的单链表结构存储的用户电话号码记录,实现二分查找算法,可以分别按照姓名和电话来查询到相应的记录。
要求:
1)每个用户记录是由用户类生成的一个对象,用户记录至少包括姓名和电话两个域,该域为类里的private成员。 2)提供成员
函
关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函
数dispName()、disCode() 分别用来显示该对象的姓名和电话号码。提供成员函数setName()、setCode() 分别用来修改该对象的姓名和电话号码。
3.实现CardGame类用来表示普通的52张纸牌,有四种花色(红心、方块、梅花和黑桃),每种花色各有13张:A、K、Q、J、10、9、……、2,用适当的方式实现纸牌的基本功能。CardGame类派生出桥牌Bridge类,为Bridge类设计deal函数,用来将纸牌分为4手,每手13张;从CardGame类派生出扑克Poker类,为Poker类设计deal函数,用来将纸牌分为n(n从2到7,代表游戏人数)手,每手5张。完成类的设计,并编写完整的程序测试。
分析:(本题目考察类的继承和派生关系。发牌过程中,需要使用随机函数rand(),用于获得一个随机数。)
实验要求:
按照实验要求设计算法,编写程序。对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)。 源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
2
二、程序代码
#include
#include #include"stdio.h" using namespace std; class list;
class aa
{
friend class list; private:
string name;//姓名
string number;//电话号码
aa *next;
public:
aa()
{//初始化用户信息
name=" "; number=" "; next=NULL;}
void dispName()
{//显示用户的姓名
cout<>name;}
void setCode(string nu1)
{ number=nu1;}
void setCode()//修改用户的电话号码
{ cout<<"用户的电话号码为";
cin>>number;}
void setnext()
{ next=NULL; }
void setnext(aa *b1)
{ next=b1; }
string getname()//返回用户的姓名
{ return name;}
3
string getnumber()//返回用户的电话号码
{ return number;}
aa* getnext()//返回指向下一条用户信息的指针
{ return next; }
};
class list
{
private:
int s;//所包含的用户信息的条数
aa *head;//头指针
public:
list()//初始化链表
{ head=new aa;
s=0;}
list(int n)
{//创建一个包含n条记录的链表
int i;s=n; head=new aa;
aa *temp;aa *a; temp=head;
for(i=1;i<=n-1;i++)
{ temp->setName(); temp->setCode();
a=new aa; temp->setnext(a); temp=a;}
temp->setName(); temp->setCode(); temp-
>setnext();}
~list()//析构函数
{ aa *q;
while(head)
{ q=head->getnext();
delete head; head=q;} }
void sortname()//按姓名降序排列
{ int i,j;
aa *p,*n,*temp; temp=new aa;
p=head;
for(i=1;i<=s-1;i++)
{n=p->getnext();
temp->setName(p->getname());temp->setCode(p-
>getnumber());
for(j=i+1;j<=s;j++)
{ if((p->getname()).compare(n->getname())<0)
{ temp->setName(n->getname());
temp->setCode(n->getnumber());
n->setName(p->getname());
4
n->setCode(p->getnumber());
p->setName(temp->getname());
p->setCode(temp->getnumber());}
n=n->getnext();}
p=p->getnext();
}
delete temp;
}
void sortnumber()/*冒泡排序算法,按电话号码降序排列*/
{
int i,j;
aa *p,*n,*temp;
temp=new aa;
p=head;
for(i=1;i<=s-1;i++)
{n=p->getnext();
temp->setName(p->getname());temp->setCode(p->getnumber());
for(j=i+1;j<=s;j++)
{if((p->getnumber()).compare(n->getnumber())<0)
{ temp->setName(n->getname());
temp->setCode(n->getnumber());
n->setName(p->getname());
n->setCode(p->getnumber());
p->setName(temp->getname());
p->setCode(temp->getnumber());
}
n=n->getnext();
}
p=p->getnext();
}
delete temp;
}
void displist()/*显示电话簿的信息*/
{
int i;
aa *p;
cout<<" 姓名"<<" 电话号码"<getname()<<" "<getnumber()<getnext();} }
int searchname()/*按姓名查找*/
{
int i;
string na;
cout<<"请输入要查找的用户的姓名:";
cin>>na;
aa *p;
p=head;
for(i=0;igetname()).compare(na)==0)
{ cout<<"所查找的用户的电话号码是:"<getnumber()<next;}
cout<<"未能找到符合要求的用户信息"<>nu; aa*p; p=head;
for(i=0;igetnumber()).compare(nu)==0)
{
cout<<"所查找的用户的姓名为:"<getname()<getnext(); }
cout<<"找不到符合要求的用户信息"<>num;
list test(num);/*创建一个包含num条记录的电话簿*/
6
cout<<"创建的电话簿为"<
#include
#include
#include
#include
class CardGame;
class card //用来表示一张扑克牌的面值及花色
{ friend class CardGame;
private:
int value; //一张牌的数值,从1,13
char s; //一张牌的花色,红桃,黑桃,梅花,方块
char face[3]; //一张牌的面值,A,2,10,J,Q,K public:
card() //初始化一张牌
{value=0; strcpy(face," ");s=' '; }
void showcard()//显示一张牌的面值及花色
{cout<<" "; cout<12&&number<=25)s=3; //黑桃
if(number>25&&number<=38)s=5; //梅花
if(number>38&&number<=51)s=4; }}; //方块 class CardGame //一副纸牌类,用来表示52张牌的面值及花色 {protected:
card cardarray[52];//用来存放52张纸牌
public:
CardGame()//构造函数,生成一副完整牌,有52张,每张都有具体的花色和面值
{int i; for(i=0;i<52;i++)
{ cardarray[i].makecard(i);} }
void showall()//按顺序显示一副牌
{int i,count=1; cout<<"一幅新牌"<>number;
if(number>7||number<2) cout<<"输入错误,请重新输入"<
本文档为【c++综合实验】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。