史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2009-08-16, 08:45 AM   #1
gn00495555
註冊會員
榮譽勳章

勳章總數
UID - 328903
在線等級: 級別:0 | 在線時長:0小時 | 升級還需:5小時
註冊日期: 2009-08-09
文章: 1
精華: 0
現金: 1 金幣
資產: 1 金幣
預設 疑問 - C程式的題目~求救

Write a program to simulate a 6 star lottery game. The rule is as follows:
1.A lottery ticket cost NT $50.
2.The player can pick six numbers from 1 to 42.
3.There is no duplicate lottery number.
4.The prize is shown as follows:

Reward Item Rule Prize
6 Stars Price 6 matched numbers 500,000
5 Stars Price 5 matched numbers 10,000
4 Stars Price 4 matched numbers 1,000
3 Stars Price 3 matched numbers 200

1. Display a welcome message to the game. A player enters her or his name.
2. A player can select the number of tickets the player wants to buy and decide if the computer selects the numbers or the player selects the numbers.
3. A player enters the numbers or the computer selects the numbers based on the player's decision.
4. Print the receipt.
5.The player can choose to buy more tickets or not.
6. Show the lottery result.
7. Calculate how much the player spends and wins.
8.The player can choose to continue a new game.

編譯結果如下

=================================================
Welcome to the Happy Lottery Game!
Your name: Rita
Rita, welcome to the game!
=================================================
Enter the number of tickets you want to buy: 2
Computer or Self select (C/S)? S
Select numbers: 17 2 6 22 32 42
Select numbers: 10 6 12 7 28 36
-------------------------------------------------
Rita's Receipt:
Total pay: 100
Thanks for your playing Happy Lottery!
=================================================
Play more (Y/N)? Y
=================================================
Enter the number of tickets you want to buy: 1
Computer or Self select (C/P)? P
Select numbers: 33 7 18 26 45 36
-------------------------------------------------
Rita's Receipt:
Total pay: 50
Thanks for your playing Happy Lottery..
=================================================
Play more (Y/N)? N
The lottery result is:
3 7 12 28 38 41
Rita! Congratulations! You won 3 stars.
You spent NT $150 and won NT $200.
=================================================
Quit the game (Y/N)? N
=================================================
Welcome to the lottery game!
Your name: Mary
Rita, welcome to the game!
=================================================
...
...
=================================================
Quit the game (Y/N)? Y
=================================================
Thanks for playing!
我不會寫投降
welcome (char name[]) {
printf("===========================================\n");
printf("Welcome to the Happy Lottery Game!\nYour name: ");
printf("Your name: ");
scanf("%s", name);
printf("%s, welcome to the game!\n", name);
printf("===========================================\n");
}

main() {

char name[80]; // string = an array of chars
int no_ticket;
int lotto[10][3]; // an array for the selected lottery numbers
char more;

do {
welcome(name);
printf("Enter the number of tickets you want to buy: ");
scanf("%d", &no_ticket);
printf("Select 3 numbers: ");
scanf("%d%d%d", &lotto[0][0], &lotto[0][1], &lotto[0][2]);
printf("You select %d %d %d.\n", lotto[0][0], lotto[0][1], lotto[0][2]);
scanf("%c", &more); // read the newline
printf("=================================================\n");
printf("Play more (Y/N)? ");
scanf("%c", &more);
} while (more == 'Y' || more == 'y');

printf("=================================================\n");
printf("Thanks for playing!\n");
}
只寫到以上的其他就不會寫了
gn00495555 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2009-09-01, 05:27 PM   #2 (permalink)
註冊會員
 
~愛搞笑的好人~ 的頭像
榮譽勳章

勳章總數
UID - 329890
在線等級: 級別:0 | 在線時長:3小時 | 升級還需:2小時
註冊日期: 2009-08-28
文章: 6
精華: 0
現金: 11 金幣
資產: 11 金幣
Lightbulb 我是用Virtual C 寫的...

我是用Virtual C 寫的...
換平台有些寫法可能要自己改一下哦!
看不懂再問吧!! 有點複雜的說加上貼上來後格式會全跑掉... ><"
我在想想看可不可以弄成Class或方法嗎....
有想到再給你看看摟!
其他人有寫出來可以借我看看嗎? 我想多學幾種方法... 感謝喔!!
可執行檔放在 http://www.filedropper.com/test2_1
你可以先試試看再去看程式碼!!! 比較好懂!
我是先用固定的開獎號碼做喔!! 要改自動產生開獎號碼把註解地方(/* */)拿掉就可以了!

#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#include "time.h"
using namespace System;
int main(array<System::String ^> ^args)
{
int i, j, k, tickets, pay=0, total, totalpay, select[6]={3,7,12,28,38,41}, **Computerselect=new int *[tickets], stars, Maxstars; //tickets是購票數量,pay每次購買票數金額,totalpay總共要付多少錢,total中獎金額,select開獎號碼,Computerselect玩家購買票號(用二維動態陣列存),stars每組中幾個號碼,Maxstars最多中幾個號碼
char name[128], choice; //name玩家名字,choice選擇用(有重覆使用!)
do{
Maxstars=0; //因為可能有多位玩家! 所以每次開始時要清空前筆資料!
stars=0;
totalpay=0;
total=0;
printf("=================================================\n");
printf("Welcome to the Happy Lottery Game!\nYour name:");
scanf("%s",name);
printf("%s, welcome to the game!\n",name);
srand((unsigned)time(NULL)); //產生亂數用! 網路上都查的到!
/*
for(i=0; i<6; i++) //自動選則開獎號碼(隨機產生的開獎號碼)
{
d: select[i]=rand()%37;
for(j=0; j<i; j++) //檢查選號是否重覆
{
if(select[i]==select[j] || select[i]==0) //檢查選號是否重覆或產生0的亂數
goto d;
}

}
*/
do{ //進入遊戲
printf("=================================================\nEnter the number of tickets you want to buy:");
scanf("%d",&tickets);
for(i=0; i<tickets; i++)
{
Computerselect[i] = new int[6];
}
c: printf("Computer or Self select (C/S)?");
scanf(" %c",&choice); //%c前一定要空一格才會等待輸入!! 為什麼~因為經驗!!! 不空格會直接往下直行喔!!!
switch(choice)
{
case 'C':
case 'c':
stars=0;
for(i=0; i<tickets; i++) //機器自動選號
{
printf("Select numbers:");
for(j=0; j<6; j++) //機器自動選號
{
a: Computerselect[i][j]=rand()%37;
for(k=0; k<j; k++) //檢查選號是否重覆
{
if(Computerselect[i][j]==Computerselect[i][k] || Computerselect[i][j]==0) //檢查選號是否重覆或產生0的亂數
goto a; //a為標籤! 會跳到 a: 的地方開始執行
}
printf(" %d",Computerselect[i][j]);
}
printf("\n");
}
for(i=0; i<tickets; i++) //判斷中幾顆星
{
for(j=0; j<6; j++)
{
for(k=0; k<6; k++)
{
if(Computerselect[i][j]==select[k]) //判斷數字是否重複(中獎)
{
stars++;
}
}
}
}
if(Maxstars<stars) //將最多的中獎數量存起來
Maxstars=stars;
printf("-------------------------------------------------\n");
break;
case 'S':
case 's':
stars=0;
for(i=0; i<tickets; i++) //自行選號
{
printf("Select numbers:");
b: scanf("%d %d %d %d %d %d",&Computerselect[i][0], &Computerselect[i][1], &Computerselect[i][2], &Computerselect[i][3], &Computerselect[i][4], &Computerselect[i][5]);
for(j=0; j<6; j++)
{
if(Computerselect[i][j]<1 || Computerselect[i][j]>42) //判斷數字是否超出範圍
{
printf("數字超出範圍! 請重新輸入!\n");
goto b;
}
for(k=0; k<j; k++) //檢查選號是否重覆
{
if(Computerselect[i][j]==Computerselect[i][k]) //判斷數字是否重覆
{
printf("數字重覆! 請重新輸入!\n");
goto b;
}
}
}
}
for(i=0; i<tickets; i++) //判斷中幾顆星
{
for(j=0; j<6; j++)
{
for(k=0; k<6; k++)
{
if(Computerselect[i][j]==select[k]) //判斷數字是否重複(中獎)
{
stars++;

}
}
}
}
if(Maxstars<stars) //將最多的中獎數量存起來
Maxstars=stars;
printf("-------------------------------------------------\n");
break;
default:
printf("代碼錯誤!! 請重新輸入!\n");
goto c;
} //結束switch
pay=tickets*50;
totalpay+=pay;
printf("%s's Receipt:\nTotal pay: %d\nThanks for your playing Happy Lottery!\n",name, pay);
printf("=================================================\nPlay more (Y/N)?");
scanf(" %c",&choice);
}while(choice=='Y' || choice=='y');
printf("The lottery result is:\n");
for(i=0; i<6; i++) //印出開獎號碼
{
printf(" %d",select[i]);
}
printf("\n");
if(Maxstars>2) //判斷中獎金額
total=200;
else if(Maxstars>2)
total=200;
else if(Maxstars>3)
total=1000;
else if(Maxstars>4)
total=10000;
else if(Maxstars>5)
total=500,000;
printf("%s! Congratulations! You won %d stars.\nYou spent NT $%d and won NT $%d.\n=================================================\nQuit the game (Y/N)?",name, Maxstars, totalpay, total);
scanf(" %c",&choice);
}while(choice=='N' || choice=='n');
printf("Thanks for playing!\n");
system("pause");
return 0;
}

此帖於 2009-09-01 05:45 PM 被 ~愛搞笑的好人~ 編輯. 原因: 增加內容
~愛搞笑的好人~ 目前離線  
送花文章: 0, 收花文章: 2 篇, 收花: 3 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
如何設定XP的螢幕保護程式的密碼 yangtao 軟體應用問題討論區 3 2003-11-26 06:29 PM
以手工方式在ASP.NET頁面中實現CodeBehind形式的程式碼編寫 psac 程式語言討論區 0 2003-11-17 12:36 PM
用Nero燒rm的音樂的外掛程式的問題 cow1330 一般電腦疑難討論區 2 2003-10-19 09:29 PM
有人可以幫吾找,兩家驅動程式的公版嗎? online 一般電腦疑難討論區 0 2003-09-19 10:02 PM


所有時間均為台北時間。現在的時間是 12:02 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1