c++幸运52猜数游戏
大哥大姐们,帮帮忙一、题目:幸运52猜数游戏二、目的与要求:w1.目的:培养学生综合利用C++语言进行程序设计的能力,考察学生的观察能力和总结能力,使学生将所学知识转化为...
大哥大姐们,帮帮忙一、 题目:幸运52猜数游戏二、目的与要求:w1. 目的:培养学生综合利用C++语言进行程序设计的能力,考察学生的观察能力和总结能力,使学生将所学知识转化为分析和设计简单实际问题的能力。2. 基本要求:要求用C++语言编程,在Visual C++环境下调试完成。3. 创新要求:使用自定义函数完成;使用结构数组来存放商品信息,改善程序的界面。4.写出设计说明书,书写设计报告的要求设计报告中包含以下几个方面:(1)设计题目(2)列出程序清单,并加以必要的注释(3)写出调试程序的方法(4)指出所设计问题的不足和改进方案三、设计方法和基本原理:1. 问题描述:由用户选择一个商品序号,继而猜商品的价格,如果猜对了,则计算机提示:“Right!”,并在屏幕上输出用户猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,结束游戏;如果猜错了,计算机提示“Wrong!”,并告诉用户所猜的数是高了还是低了。最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序用户可以反复猜多个商品,直到用户想停止时结束游戏。用户结束游戏后,计算机把商品按照价格由低到高排序,并把排序后的商品序号显示出来。2. 问题的解决方案:(1) 使用数组存放商品信息;(2) 思路:①询问用户是否想玩游戏,如果想玩则开始循环,否则结束循环;②让用户选择商品序号,进而猜其价格,并给予相应提示,注意猜数的同时统计猜的次数;③给用户最多10次猜的机会,如果10次都没猜中,则猜下一个商品的价格(回到);④游戏结束后要对商品排序,注意是要输出排序后原来商品的序号。四、主要技术问题的描述:(1)数组的排序:冒泡排序;(2)分支和循环结构的使用,参考《Visual C++程序设计基础》。 能多简单就多简单·····
展开
3个回答
展开全部
#include <iostream.h>
int guess(int price)
{
void changeplace();
cout <<"您可以开始估计此商品的价格了:"<<endl;
int p;
for (int times=1;times<=10;times++)
{
cin >>p;
if (p!=price)
{
cout <<"wrong!"<<endl;
if (p>price)
{
cout <<"高了"<<endl;
}
else
{
cout <<"低了"<<endl;
}
}
else
{
cout <<"right!"<<endl;
cout <<"您所用的次数是:"<<times<<endl;
changeplace();
return times;
break;
}
}
if (times==10)
{
return 0;
}
}
struct goods
{
int goods_number;
char goods_name[50];
int goods_price;
}g[5]=
{1001,"MP3播放器",300,
1002,"acer笔记本电脑",4200,
1003,"NOKIA6120c",700,
1004,"MATLAB7.0光盘镜像",30000,
1005,"DELL一体机",4400};
void output(goods g)
{
cout <<g.goods_number<<'\t'<<g.goods_name<<endl;
}
void output2(goods g)
{
cout <<g.goods_name<<'\t'<<g.goods_number<<'\t'<<g.goods_price<<endl;
}
void changeplace()
{
cout <<"对原商品价格进行排序:"<<endl;
for (int i=0;i<4;i++)
{
for (int j=0;j<4-i;j++)
{
if (g[j].goods_price>g[j+1].goods_price)
{ int t=g[j].goods_price; g[j].goods_price=g[j+1].goods_price; g[j+1].goods_price=t; }
}
}
for (i=0;i<5;i++)
{
output2(g[i]);
}
}
void main ()
{
loop:
int t;
char tell;
int num;
cout <<"您想玩这个幸运52猜谜游戏吗?<Y/N>"<<endl;
cin >>tell;
if (tell=='Y')
{
cout <<"待选的商品序号及商品名称是:"<<endl;
for (int i=0;i<5;i++)
{
output(g[i]);
}
choose:
cout <<"请选择商品序号:"<<endl;
cin >>num;
if (num==1001)
{
a1:
t=guess(300);
if (t==0) goto a2;
}
else if (num==1002)
{
a2:
t=guess(4200);
if (t==0) goto a3;
}
else if (num==1003)
{
a3:
t=guess(700);
if (t==0) goto a4;
}
else if (num==1004)
{
a4:
t=guess(30000);
if (t==0) goto a5;
}
else if (num==1005)
{
a5:
t=guess(4400);
if (t==0) goto a1;
}
else if (num!=1001 && num!=1002 && num!=1003 && num!=1004 && num!=1005)
{
cout <<"您的输入不正确,请重新输入:"<<endl;
goto choose;
}
}
else if (tell!='N' && tell!='Y')
{
cout <<"您的答案是错误的,请重新输入:"<<endl;
goto loop;
}
}
对不起,就不加注释了吧。。。
int guess(int price)
{
void changeplace();
cout <<"您可以开始估计此商品的价格了:"<<endl;
int p;
for (int times=1;times<=10;times++)
{
cin >>p;
if (p!=price)
{
cout <<"wrong!"<<endl;
if (p>price)
{
cout <<"高了"<<endl;
}
else
{
cout <<"低了"<<endl;
}
}
else
{
cout <<"right!"<<endl;
cout <<"您所用的次数是:"<<times<<endl;
changeplace();
return times;
break;
}
}
if (times==10)
{
return 0;
}
}
struct goods
{
int goods_number;
char goods_name[50];
int goods_price;
}g[5]=
{1001,"MP3播放器",300,
1002,"acer笔记本电脑",4200,
1003,"NOKIA6120c",700,
1004,"MATLAB7.0光盘镜像",30000,
1005,"DELL一体机",4400};
void output(goods g)
{
cout <<g.goods_number<<'\t'<<g.goods_name<<endl;
}
void output2(goods g)
{
cout <<g.goods_name<<'\t'<<g.goods_number<<'\t'<<g.goods_price<<endl;
}
void changeplace()
{
cout <<"对原商品价格进行排序:"<<endl;
for (int i=0;i<4;i++)
{
for (int j=0;j<4-i;j++)
{
if (g[j].goods_price>g[j+1].goods_price)
{ int t=g[j].goods_price; g[j].goods_price=g[j+1].goods_price; g[j+1].goods_price=t; }
}
}
for (i=0;i<5;i++)
{
output2(g[i]);
}
}
void main ()
{
loop:
int t;
char tell;
int num;
cout <<"您想玩这个幸运52猜谜游戏吗?<Y/N>"<<endl;
cin >>tell;
if (tell=='Y')
{
cout <<"待选的商品序号及商品名称是:"<<endl;
for (int i=0;i<5;i++)
{
output(g[i]);
}
choose:
cout <<"请选择商品序号:"<<endl;
cin >>num;
if (num==1001)
{
a1:
t=guess(300);
if (t==0) goto a2;
}
else if (num==1002)
{
a2:
t=guess(4200);
if (t==0) goto a3;
}
else if (num==1003)
{
a3:
t=guess(700);
if (t==0) goto a4;
}
else if (num==1004)
{
a4:
t=guess(30000);
if (t==0) goto a5;
}
else if (num==1005)
{
a5:
t=guess(4400);
if (t==0) goto a1;
}
else if (num!=1001 && num!=1002 && num!=1003 && num!=1004 && num!=1005)
{
cout <<"您的输入不正确,请重新输入:"<<endl;
goto choose;
}
}
else if (tell!='N' && tell!='Y')
{
cout <<"您的答案是错误的,请重新输入:"<<endl;
goto loop;
}
}
对不起,就不加注释了吧。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
挺复杂了。 把各种技术都放一起了。 不过也不是很难 ~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
en
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询