C语言编程_幸运52猜数游戏__

RT_详细如下__

一、题目:幸运52猜数游戏
二、目的与要求:

1.目的:
培养学生综合利用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++程序设计基础》。

五、课程设计的考核方式及评分方法

1.考核方式

课程设计结束时,在机房当场验收。

2.评分方法

(1) 出勤率

(2) 课程设计准备工作

(3) 课程设计期间纪律

(4) 课程设计运行结果

(5) 课程设计报告

六、书写设计报告的要求(详细内容见“设计报告模板”)

七、说明:课程设计的有关文档,“设计报告模板”和“课程设计要求”请在下载任务书处下载。

要用C语言编写_不要太难的函数..用C语言,不需要用 C++ ```````````~高分悬赏,满意追加100__复制过来的就不用发了,,,,我看的太多了...

加分啊,哈哈
#include<iostream.h>
const int N=10;
void compare(double p[],int n);
void sort(double g[],double p[]);
void main()
{
cout<<"欢迎进入幸运52猜数游戏"<<"t"<<"制作人:电气 C097 张欣瑞 096133"<<endl;
double g[N]={12,16,20,40,60,55,91,43,33,50},p[10];
char choice;//记录输入的判断是否进行的字符
for(int a=1;;a++)
{
cout<<"现在开始游戏?请选择n(否)或者y(是)"<<endl;
cin>>choice;
if(choice=='y')
{
cout<<"游戏规则:\n"
<<"1.由玩家自选商品序号并对商品价格进行猜测"<<"\n"
<<"2.系统会对玩家所给出的价格进行分析并提示高了或者低了"<<"\n"
<<"3.对于每件商品玩家都有十次机会猜出其价格若10次机会都没有猜中则该轮游戏结束"<<"\n"
<<"4.若玩家在10次之内猜出商品价格则可以选择是否继续猜另一种商品的价格"<<"\n"
<<"5.游戏结束后系统会自动对商品进行价格排序并且现实出来商品编号"<<"\n";
cout<<endl;
for (int m=0;m<10;m++)
{
cout<<"请选择商品编号(0至9)"<<endl;
int n;//n记录输入的所猜的题号
cin>>n;
compare(p,n);//调用函数
}
}
else
{
cout<<"游戏结束"<<endl;
break;
}
}
sort(g,p);
}
void compare(double p[],int n)//判断猜出价格的高低以及是否正确的分函数
{
double g[N]={12,16,20,40,60,55,91,43,33,50};

for(int b=0;b<10;b++)
{
cout<<"请输入商品价格"<<endl;
cin>>p[b];
if(p[b]<g[n])
cout<<"Wrong"<<"\t"<<"低了"<<endl;
else if(p[b]>g[n])
cout<<"Wrong"<<"\t"<<"高了"<<endl;
else if(p[b]==g[n])
{
cout<<"Right!"<<"\t"<<"您猜了"<<b+1<<"次价格就猜对了"<<"\n"<<"不错!"<<endl;
b=+10;
}
}

}
void sort(double g[],double p[])//把商品按照价格由低到高排序,并把排序后的商品序号显示出来的分函数
{
double t,k[N];//c1
for(int i=0;i<N;i++)
k[i]=g[i];
for(int j=0;j<N-1;j++)
for(int m=0;m<N-1-j;m++)
if(g[m]>g[m+1])
{
t=g[m];
g[m]=g[m+1];
g[m+1]=t;
}//c2---c1-c2为用冒泡法排序
for(i=0;i<N;i++)
for(int j=0;j<N;j++)
{
if(k[j]==g[i])
cout<<g[i]<<"\t"<<"商品编号"<<j<<endl;//用查找的方法显示数组原来的序
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-14
加分啊,哈哈
#include<iostream.h>
const
int
N=10;
void
compare(double
p[],int
n);
void
sort(double
g[],double
p[]);
void
main()
{
cout<<"欢迎进入幸运52猜数游戏"<<"t"<<"制作人:电气
C097
张欣瑞
096133"<<endl;
double
g[N]={12,16,20,40,60,55,91,43,33,50},p[10];
char
choice;//记录输入的判断是否进行的字符
for(int
a=1;;a++)
{
cout<<"现在开始游戏?请选择n(否)或者y(是)"<<endl;
cin>>choice;
if(choice=='y')
{
cout<<"游戏规则:\n"
<<"1.由玩家自选商品序号并对商品价格进行猜测"<<"\n"
<<"2.系统会对玩家所给出的价格进行分析并提示高了或者低了"<<"\n"
<<"3.对于每件商品玩家都有十次机会猜出其价格若10次机会都没有猜中则该轮游戏结束"<<"\n"
<<"4.若玩家在10次之内猜出商品价格则可以选择是否继续猜另一种商品的价格"<<"\n"
<<"5.游戏结束后系统会自动对商品进行价格排序并且现实出来商品编号"<<"\n";
cout<<endl;
for
(int
m=0;m<10;m++)
{
cout<<"请选择商品编号(0至9)"<<endl;
int
n;//n记录输入的所猜的题号
cin>>n;
compare(p,n);//调用函数
}
}
else
{
cout<<"游戏结束"<<endl;
break;
}
}
sort(g,p);
}
void
compare(double
p[],int
n)//判断猜出价格的高低以及是否正确的分函数
{
double
g[N]={12,16,20,40,60,55,91,43,33,50};
for(int
b=0;b<10;b++)
{
cout<<"请输入商品价格"<<endl;
cin>>p[b];
if(p[b]<g[n])
cout<<"Wrong"<<"\t"<<"低了"<<endl;
else
if(p[b]>g[n])
cout<<"Wrong"<<"\t"<<"高了"<<endl;
else
if(p[b]==g[n])
{
cout<<"Right!"<<"\t"<<"您猜了"<<b+1<<"次价格就猜对了"<<"\n"<<"不错!"<<endl;
b=+10;
}
}
}
void
sort(double
g[],double
p[])//把商品按照价格由低到高排序,并把排序后的商品序号显示出来的分函数
{
double
t,k[N];//c1
for(int
i=0;i<N;i++)
k[i]=g[i];
for(int
j=0;j<N-1;j++)
for(int
m=0;m<N-1-j;m++)
if(g[m]>g[m+1])
{
t=g[m];
g[m]=g[m+1];
g[m+1]=t;
}//c2---c1-c2为用冒泡法排序
for(i=0;i<N;i++)
for(int
j=0;j<N;j++)
{
if(k[j]==g[i])
cout<<g[i]<<"\t"<<"商品编号"<<j<<endl;//用查找的方法显示数组原来的序
}
}
第2个回答  2010-06-23
#include "iostream.h"
#include "time.h"
#include "stdlib.h"
class Goods
{
public:
Goods();
int Guess(int Price, int Index);
inline int GetFailCnt(int Index){return m_FailCnt[Index];};
inline void SetPrice(int Price, int Index){m_Price[Index]=Price;};
inline int GetPrice(int Index){return m_Price[Index];};
inline int* GetSort(){return m_Sort;};
void Sort();
private:
unsigned char m_FailCnt[10];
int m_Price[10];
int m_Sort[10];
};

Goods::Goods()
{
for(int i=0;i<10;i++)
{
m_Price[i]=0;
m_FailCnt[i]=0;
m_Sort[i]=i;
}
}

int Goods::Guess(int Price, int Index)
{
m_FailCnt[Index]++;
if(m_FailCnt[Index]>=10) return -1;
if(Price>m_Price[Index]) return 2;
else if(Price<m_Price[Index]) return 1;
else return 0;
}

void Goods::Sort()
{
int i,j,Temp;
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(m_Price[m_Sort[i]]>m_Price[m_Sort[j]])
{
Temp=m_Sort[i];
m_Sort[i]=m_Sort[j];
m_Sort[j]=Temp;
}
}
}
}

int main(void)
{
int i,Price,Index=0;
char IsContinue;
Goods Des;
int* Result;
cout<<"--------------价格竞猜--------------"<<endl<<endl;
cout<<"现在开始(Y/N)?";
cin>>IsContinue;
if(IsContinue=='Y' || IsContinue=='y')
{
srand(time(NULL));
for(i=0;i<10;i++)
{
Des.SetPrice(rand(),i);
}
cout<<"请选择竞猜商品序号(1-10)?";
cin>>Index;
Index-=1;
if(Index<0) Index=0;
else Index%=10;
cout<<"从"<<Index+1<<"号商品开始"<<endl;
}
i=0;
while(IsContinue=='Y' || IsContinue=='y')
{
cout<<endl<<"请为"<<Index+1<<"号商品出价:";
cin>>Price;
Price=Des.Guess(Price,Index);
if(Price<0)
{
cout<<Index+1<<"号商品竞猜失败.商品正确价格是"<<Des.GetPrice(Index)<<endl;
i++;
if(i<10)
{
Index=(Index+1)%10;
cout<<"是否继续(Y/N)?";
cin>>IsContinue;
if(IsContinue=='Y' || IsContinue=='y') cout<<"开始的下一商品."<<endl;
}
else
{
cout<<"没有商品供竞猜."<<endl;
break;
}
}
else if(Price==2)
{
cout<<"高了."<<endl;
continue;
}
else if(Price==1)
{
cout<<"低了."<<endl;
continue;
}
else
{
cout<<"正中目标."<<endl;
break;
}
}
Result=Des.GetSort();
Des.Sort();
for(i=0;i<10;i++)
{
cout<<Result[i]+1<<"号商品价值:"<<Des.GetPrice(Result[i])<<endl;
}
cout<<"游戏结束."<<endl;
cin>>i;
return 0;
}

河工大?
第3个回答  2010-06-23
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int key;
int i,j;
int temp;
int choice;
int price[10]={25,100,75,26,52,44,52,35,12,98};
int stop=0;
int min;

do{
printf("请输入要猜的商品序号(1~10):\n");
scanf("%d",&choice);
key=price[choice-1];
for(i=0;i<10;i++)
{
printf("请输入猜测的数:\n");
scanf("%d",&temp);
if(key==temp)
{
printf("Right!\n");
printf("你猜了%d次就猜对了\n",i+1);
break;
}
if(key<temp)
{
printf("Wrong!\n猜大了!\n");
}
if(key>temp)
{
printf("Wrong!\n猜小了!\n");
}
}
printf("是否进行下一次竞猜?输入1继续,输入0退出!\n");
scanf("%d",&stop);
}while(stop==1);
printf("\n\n所有商品的情况如下:\n");
min=50000;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(price[j]<min)
{
min=price[j];
temp=j;
}
}
printf("%d号商品的价格为:%d\n",temp+1,min);
price[temp]=50000;
min=50000;
}
return 0;
}

price数组用来存储商品价格的,可以修改数组大小来改变商品数量,修改数组内容来改变商品价格。
第4个回答  2020-04-17
我的心里都是你,

⑧② ⑥ ③ ⑧ ⑤ · 匚 ō г n

一颦一笑,或者百般模样。
相似回答