史萊姆論壇

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

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

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

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

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2006-01-31, 11:28 PM   #1
lirere
註冊會員
榮譽勳章

勳章總數
UID - 126175
在線等級: 級別:0 | 在線時長:4小時 | 升級還需:1小時
註冊日期: 2004-04-03
VIP期限: 2006-07
文章: 92
精華: 0
現金: 124 金幣
資產: 124 金幣
預設 如何使用c++寫出一個統一發票對獎程式

比如說現再要寫一個對11.12月的統一發票的程式中獎號碼是
1096 8847
4354 7836
8602 9798
那如何寫出一個程式可以讓我們輸入我們手上的發票號碼下去對獎..
比如說我們手上的發票是2314 8798這樣子就有中了200塊了..那就可以顯示出恭喜您中獎200元..請大大們幫個忙..如果可以的可以補上一點簡單的注解嗎?降子比較容易懂= ="
lirere 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2006-02-01, 09:06 AM   #2 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

0.首先要了解其規則或規律性質。
1.準備一個文字文件來儲存開獎的號碼,或是手動輸入。
2.讀取到程式裡面的一些字串陣列中。
3.準備一個文字文件來儲存對獎的號碼,或是手動輸入。
4.使用 For 或是 While 作連續的字元比對。
5.比對時紀錄其吻合的資料字元。
6.輸出結果。
__________________
在「專業主討論區」中的問題解決後,要記得按一下 http://forum.slime.com.tw/images/stamps/is_solved.gif 按鈕喔,
這是一種禮貌動作。

一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。
不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。

天線寶寶說再見啦~ ... 天線寶寶說再見啦~

迪西:「再見~ 再見~」

Otaku Culture Party 關心您 ...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
舊 2006-02-03, 01:13 AM   #3 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

/*
統一發票對獎器 這是用 DEV-C 開發的 DOS 提示符號的 程式源碼
*/
#include <stdio.h>
#include <string.h>
#define clrscr() system("CLS")
#define S 10
/*----------------------------------------------------------------------------*/
/* 畫面上的文字顯示 */
char text[8][5]={"特獎","頭獎","貳獎","參獎","肆獎","伍獎","陸獎","增開"};
char text3[]="請先輸入開獎號碼(0~9),輸入完請按下 Enter";
char text4[]="您輸入的開獎號碼中有不是數字的部分,請重新輸入";
char text5a[]="開/對獎號碼需要有 ";
char text5b[]=" 碼,您輸入的碼數只有 ";
char text5c[]=" 碼,請重新輸入";
char text6[]="請按任意鍵繼續 . . .";
char text7[]="請先輸入對獎號碼(0~9),輸入完請按下 Enter";
char text8[]="對獎";
char text9[]="恭喜你中";
/*----------------------------------------------------------------------------*/
/* 負責儲存開對獎號碼的字串陣列 */
char Special_award[9]={0};
char First_prize[3][9]={0};
char Six_award[2][4]={0};
char Chk_number[S][9]={0};
int level[10]={0};
char input[50]={0};
/*----------------------------------------------------------------------------*/
/* 列印畫面-開/對獎號碼 */
print_menu()
{
int i;
clrscr();
printf("%s : %-10s\t",text[0],Special_award);
for (i=0; i<3 ; i++)
{
printf("%s %d : %-10s\t",text[1],i+1,First_prize[i]);
if ( i==1 ) printf("\n");
}
for (i=0; i<2 ; i++) printf("%s%s %d : %-10s\t",text[7],text[6],i+1,Six_award[i]);
printf("\n\n");
for (i=0; i<S ; i++)
{
printf("%s %2d: %-10s\t",text8,i+1,Chk_number[i]);
chk_print(i);
}
printf("\n\n");
}
/*----------------------------------------------------------------------------*/
/* 列印畫面-中獎的類別 */
chk_print(int i)
{
if( level[i]>1 ) printf("%s",text9);
switch ( level[i] )
{
case 2:
printf("【%s%s】",text[7],text[6]);
break;

case 3:
printf("【%s】",text[6]);
break;

case 4:
printf("【%s】",text[5]);
break;

case 5:
printf("【%s】",text[4]);
break;

case 6:
printf("【%s】",text[3]);
break;

case 7:
printf("【%s】",text[2]);
break;

case 8:
printf("【%s】",text[1]);
break;

case 9:
printf("【%s】",text[0]);
break;
}
printf("\n");
}
/*----------------------------------------------------------------------------*/
/* 輸入對獎號碼 */
in_num_dtc(int x)
{
int i,j=0;
for ( i=0; i<S; i++ ) level[i]=-1;
for ( i=0; i<x; i++ )
{
while (j != 8)
{
print_menu();
printf("%s \n",text7);
printf("%s %d : ",text8,i+1);
scanf("%s",&input);
j=check_in(8);
}
j=0;
strcpy(Chk_number[i],input);
}
}
/*----------------------------------------------------------------------------*/
/* 輸入開獎號碼 */
in_num_src()
{
int i,j=0;
while (j != 8)
{
print_menu();
printf("%s \n",text3);
printf("%s : ",text[0]);
scanf("%s",&input);
j=check_in(8);
}
j=0;
strcpy(Special_award,input);

for ( i=0; i<3; i++ )
{
while (j != 8)
{
print_menu();
printf("%s \n",text3);
printf("%s %d : ",text[1],i+1);
scanf("%s",&input);
j=check_in(8);
}
j=0;
strcpy(First_prize[i],input);
}

for ( i=0; i<2; i++ )
{
while (j != 3)
{
print_menu();
printf("%s \n",text3);
printf("%s%s %d : ",text[8],text[7],i+1);
scanf("%s",&input);
j=check_in(3);
}
j=0;
strcpy(Six_award[i],input);
}
}
/*----------------------------------------------------------------------------*/
/* 檢查輸入的開/對號碼是否為"文字格式的數字" */
check_in(int k)
{
int i,j;
if ( strlen(input) == k )
{
for ( i=j=0; i<k; i++ )
{
if ( input[i]>=48 && input[i]<=57 ) j++;
else printf("\n\n %s",text4);
}
if ( j==k ) return j;
}
else
{
printf("\n\n%s%d%s%d%s",text5a,k,text5b,strlen(input),text5c);
}
printf("\n\n%s",text6);
getch();
return 0;
}
/*----------------------------------------------------------------------------*/
/* 檢查輸入的對號碼是否中獎 */
check(int x)
{
int i,j,k;
char chk1[9]="",chk2[9]="",chk3[4]="";

for ( i=0; i<x ;i++ )
{
if ( level[i]<0 )
{
if ( strcmp(Special_award,Chk_number[i])==0 )
{
level[i]=9;
continue;
}
strcpy(chk1,Chk_number[i]);
reverse(chk1);
for ( j=0; j<3; j++ ) chk3[j]=Chk_number[i][j+5];
for ( j=0; j<3; j++ )
{
if ( strcmp(First_prize[j],Chk_number[i])==0 )
{
level[i]=8;
continue;
}
strcpy(chk2,First_prize[j]);
reverse(chk2);
for ( k=0; k<8 ;k++)
{
if( k == 6 ) break;
if ( strncmp(chk1,chk2,7-k )==0 )
{
level[i]=7-k;
break;
}
}
}
for ( j=0; j<2; j++ )
if ( strcmp(Six_award[j],chk3)==0 ) level[i]=2;
}
}
}
/*----------------------------------------------------------------------------*/
/* 號碼反轉 */
reverse(char*sw2)
{
int i;
char sw1[9]="";
for ( i=0; i<8; i++ ) sw1[i]=sw2[7-i];
strcpy(sw2,sw1);
}
/*----------------------------------------------------------------------------*/
/* 選單的畫面 */
menu()
{
printf("\n1.輸入開獎號碼");
printf("\n2.對獎,1 次 1 個號碼");
printf("\n3.對獎,1 次 10 個號碼");
printf("\n4.離開");
printf("\n請選擇\功\能 1~4 : ");
}
/*----------------------------------------------------------------------------*/
/* 主方法 */
main()
{
char str;
int s;
do
{
print_menu();
menu();
s=getch();
s-=48;
switch(s)
{
case 1:
in_num_src();
print_menu();
break;

case 2:
in_num_dtc(1);
check(1);
print_menu();
break;

case 3:
in_num_dtc(S);
check(S);
print_menu();
break;
}
}while( s!=4 );

printf("\n\n%s",text6);
getch();
}
----------------------------------------------------------------------
下載原始碼 & 執行檔︰
http://rapidshare.de/files/12778082/LF12345678.rar.html

選項 3 的對號輸入的修正...
附註:野人獻醜...

http://img420.imageshack.us/img420/5100/lf123456788ro.jpg
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
舊 2006-02-07, 11:36 PM   #4 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 126175
在線等級: 級別:0 | 在線時長:4小時 | 升級還需:1小時
註冊日期: 2004-04-03
VIP期限: 2006-07
文章: 92
精華: 0
現金: 124 金幣
資產: 124 金幣
預設

怪了..我的Dev-c++怎麼沒有辦法跑出來= ="

可以再傳新上傳一次嗎?麻煩您嚕..
lirere 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2006-02-08, 08:18 AM   #5 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: lirere
怪了..我的Dev-c++怎麼沒有辦法跑出來= ="

可以再傳新上傳一次嗎?麻煩您嚕..
1.有重新上傳了
2.有改掉選單畫面文字顯示有怪怪的地方
3.註解有做一些些調整

如果 DEV-C 不能開...
我是用 Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2

下載頁
http://prdownloads.sourceforge.net/d....9.2_setup.exe
下載點 美國:
http://internap.dl.sourceforge.net/s....9.2_setup.exe
下載點 台灣:
http://prdownloads.sourceforge.net/d...se_mirror=nchc
下載點 日本:
http://prdownloads.sourceforge.net/d...e_mirror=jaist

改成用記事本開啟,在複製貼上...
檔名要存成 XXX.c 才能編譯喔...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
發文 回覆



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

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


所有時間均為台北時間。現在的時間是 07:28 AM


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


SEO by vBSEO 3.6.1