这是我的题目,后面有我的自己程式码 以及遇到的问题。
一、请设计一虚拟乐透号码对奖程 式。
程式中请设计一选单介面,让使用者可选择下列功能选项:
(1) 输入对奖号码 (注1))
(2) 产生开奖号码 (注2))
(3) 显示中奖结果 (注3))
(4) 离开程式。
【注】:
1) 输入对奖号码:
此功能允许使用者每次至多输 入10组对奖资料(亦可能输入不满10组);
每组对奖资料应包括购买者姓名(最多10个字元)及其购买之6组数字(即对奖号码)。
使用者 输入购买者之对奖号码时,可允许不依大小顺序输入,
但程式必需检查同一购买者之对奖号码是否重覆,或是否
超出1 ~ 49之间的号码;若输入错误则要求重新输入该号码。
但不同购买者间允许购入相同号码。
2) 产生开奖号码:
乐透开 奖号码为1 ~ 49之乱数产生;
每次开奖号码为6组数字及一个特别号;
所有号码不得重覆出现。
开奖号码产生完成后,请由小至大 将6组号码排列后,再
连同特别号一并储存,暂不印出。
3) 显示中奖结果:
若购买者所购入的6组对奖号码与乐透6 组开奖号码全部相同时,则为头奖;
若购买者所购入的6组对奖号码与乐透6组开奖号码中任五组数字相同,且
另一个数字与特别号相同 时,则为二奖;
若购买者所购入的6组对奖号码只与
开奖号码中任五组数字相同时(但另一个数字与特别号不同时),则为三奖;
其 余皆为欢喜奖。(本程式假设只需判断此四种奖项即可)。
中奖结果显示时请先将乐透6组开奖号码与特别号印出,
之后再列印此次购买 者之对奖资料
(含姓名及其6组对奖号码、及中奖奖别(头奖、二奖、三奖、或欢喜奖)),供作检核。中奖结果显示后,请清除所有对奖资料与开奖号 码,供另一期开奖之用。
4) 操作中若输入的功能代号错误,请提示错误讯息后,要求重新输入。
5) 程式设计过程中请注意其执行逻辑顺序之合理性;
例如:未选择输入对奖号码前不得执行产生开奖号码选项,
未选择产生开奖号码前,不得执行显 示中奖结果之选项…等等。
6) 本题至少须写出一个主程式及3个函数副程式
(即输入对奖号码之函数、产生开奖号码之函数、 及显示中奖结果之函数)。
7) 输入、输出格式,或未规定事项请自行发挥设计,但请注意合理性与美观性。
-----------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define High 10 //限制 购买者 的购买 组数
#define max 49 //乱数的取值范围
#define size 6// 定义 array 一组号码的大小
bool HasAppear(int *arr,int num);//判断是否重复
int prize(int *arr);//产生 中奖号码
int bet(int *buy);//使用者输入 购买的号码
void show(int *arr);//显示 array的 function
/*--------------------------------------------------------------------------*/
int main()
{
int temp;
int a[size]={0};//储存 中奖号码
int b[size]={0};//储存 使用者购买的号码
temp=bet(b);//temp 接收 bet()副程式 输入的购买组数
//prize(a);
一、请设计一虚拟乐透号码对奖程 式。
程式中请设计一选单介面,让使用者可选择下列功能选项:
(1) 输入对奖号码 (注1))
(2) 产生开奖号码 (注2))
(3) 显示中奖结果 (注3))
(4) 离开程式。
【注】:
1) 输入对奖号码:
此功能允许使用者每次至多输 入10组对奖资料(亦可能输入不满10组);
每组对奖资料应包括购买者姓名(最多10个字元)及其购买之6组数字(即对奖号码)。
使用者 输入购买者之对奖号码时,可允许不依大小顺序输入,
但程式必需检查同一购买者之对奖号码是否重覆,或是否
超出1 ~ 49之间的号码;若输入错误则要求重新输入该号码。
但不同购买者间允许购入相同号码。
2) 产生开奖号码:
乐透开 奖号码为1 ~ 49之乱数产生;
每次开奖号码为6组数字及一个特别号;
所有号码不得重覆出现。
开奖号码产生完成后,请由小至大 将6组号码排列后,再
连同特别号一并储存,暂不印出。
3) 显示中奖结果:
若购买者所购入的6组对奖号码与乐透6 组开奖号码全部相同时,则为头奖;
若购买者所购入的6组对奖号码与乐透6组开奖号码中任五组数字相同,且
另一个数字与特别号相同 时,则为二奖;
若购买者所购入的6组对奖号码只与
开奖号码中任五组数字相同时(但另一个数字与特别号不同时),则为三奖;
其 余皆为欢喜奖。(本程式假设只需判断此四种奖项即可)。
中奖结果显示时请先将乐透6组开奖号码与特别号印出,
之后再列印此次购买 者之对奖资料
(含姓名及其6组对奖号码、及中奖奖别(头奖、二奖、三奖、或欢喜奖)),供作检核。中奖结果显示后,请清除所有对奖资料与开奖号 码,供另一期开奖之用。
4) 操作中若输入的功能代号错误,请提示错误讯息后,要求重新输入。
5) 程式设计过程中请注意其执行逻辑顺序之合理性;
例如:未选择输入对奖号码前不得执行产生开奖号码选项,
未选择产生开奖号码前,不得执行显 示中奖结果之选项…等等。
6) 本题至少须写出一个主程式及3个函数副程式
(即输入对奖号码之函数、产生开奖号码之函数、 及显示中奖结果之函数)。
7) 输入、输出格式,或未规定事项请自行发挥设计,但请注意合理性与美观性。
-----------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define High 10 //限制 购买者 的购买 组数
#define max 49 //乱数的取值范围
#define size 6// 定义 array 一组号码的大小
bool HasAppear(int *arr,int num);//判断是否重复
int prize(int *arr);//产生 中奖号码
int bet(int *buy);//使用者输入 购买的号码
void show(int *arr);//显示 array的 function
/*--------------------------------------------------------------------------*/
int main()
{
int temp;
int a[size]={0};//储存 中奖号码
int b[size]={0};//储存 使用者购买的号码
temp=bet(b);//temp 接收 bet()副程式 输入的购买组数
//prize(a);