歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOCX文檔下載  

【C語言】課程設(shè)計-ATM機模擬操作(附源碼)(共18頁)

  • 資源ID:61812110       資源大?。?span id="cxclmvy" class="font-tahoma">199.39KB        全文頁數(shù):18頁
  • 資源格式: DOCX        下載積分:0積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要0積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付說明:
本站最低充值0.01積分,下載本資源后余額將會存入您的賬戶,您可在我的個人中心查看。
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

【C語言】課程設(shè)計-ATM機模擬操作(附源碼)(共18頁)

精選優(yōu)質(zhì)文檔-傾情為你奉上C語言-ATM機模擬操作程序?qū)崿F(xiàn)功能點:a. 查詢:查詢帳戶的存款余額。按任意鍵返回主菜單;b. 取款:輸入100、500、1000、2000、5000、其它金額為取款金額,取款金額不超過帳戶余額,操作后帳戶余額應相應減少,之后可返回主菜單;c. 存款:輸入100、500、1000、2000、5000、其它金額為存款金額,存款金額不超過20000元,操作后帳戶余額應相應增加。之后可返回主菜單;d. 轉(zhuǎn)帳:輸入一個帳戶號,程序判斷與文件信息是否相符,儲戶確認無誤后,再輸入100、500、1000、2000、5000、其它金額為轉(zhuǎn)帳金額,轉(zhuǎn)帳金額不得超過帳戶余額,操作后帳戶余額應相應減少。之后可返回主菜單;e. 修改密碼:連續(xù)輸入兩次新密碼(兩次輸入結(jié)果完全相同)后,新密碼取代舊密碼,并存放到帳戶信息文件中。之后可返回主菜單;f. 退出:退出系統(tǒng);g. 幫助:增加趣味性;h. 存款時,可正可負,正表示存款,負表示取款;i. 帳戶信息存放在accounts.txt文件,儲戶存取款記錄保存在records.txt中;(在目錄下創(chuàng)建這兩個文件)j. 采用模塊化程序設(shè)計方法來實現(xiàn),即main()顯示主菜單、調(diào)用相關(guān)函數(shù)實現(xiàn)相應功能,起主控作用;k. 儲戶一天內(nèi)輸錯密碼的次數(shù)不能超過3次,否則無法進入系統(tǒng);l. 有效避免輸入存款金額、取款金額為負數(shù)等異常情況的出現(xiàn)。較為突出的功能是注冊、登錄時賬號密碼的核對驗證;存款轉(zhuǎn)出轉(zhuǎn)入金額的核對。是否超過余額,是否不符合格式,是否為沖突操作。(2)程序運行截圖及說明(每圖限50到100字);l 進入程序,menu1可選擇登錄、注冊功能。l 選擇登錄,輸入賬號密碼,通過輸入內(nèi)容與文件的匹配,判斷是否成功登錄。若登錄失敗,則重新選擇。l 選擇注冊,輸入賬號密碼,寫入文件中。l 進入menu2,有五大功能選擇,輸入對應的序列號進入。l 余額查詢功能輸出賬號所對應的余額。l 取款功能,需要安裝要求取出格式化的金額。l 存款功能,選擇金額,若超過存款,自動報錯。存儲成功后,在屏幕上顯示余額并可在txt中看到對應數(shù)目的增加。l 修改密碼功能,輸入當前密碼,輸入新密碼,并進行確認。即修改成功。l 轉(zhuǎn)賬功能,輸入對方卡號,核程序核對卡號是否存在,選擇金額轉(zhuǎn)賬,對應存款的減少會反映在屏幕的余額上。l 退出功能,任意鍵退出程序。l 幫助功能,介紹了本程序的相關(guān)信息。(3)采用的主要技術(shù)(限150到200字);答:主要采用模塊化管理代碼。使用結(jié)構(gòu)體對文本信息進行操作、運用文件操作相關(guān)函數(shù)如fwrite()、fread()、fgets()、fputs()、fgetc()、fputc()、fopen()、fclose().并使用指針操作數(shù)值。附:程序代碼#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h>#include<string.h>#define N 3void enterzhanghao(); /ATM賬號輸入函數(shù) void inputmima(); /密碼輸入函數(shù) void menu(); /操作界面 void Withdraw(); /取款函數(shù) void daly(); /延時函數(shù) void yuer(); /余額查詢函數(shù) void Desposit(); /存款函數(shù) int quit(); /退出界面函數(shù) void change(); /密碼修改 void read(); /文件讀取函數(shù) void write(); /文件寫入函數(shù)void write2(float h); /流水賬函數(shù)void tran_account();/轉(zhuǎn)賬函數(shù)void enter();/登錄函數(shù)void flesh();/注冊函數(shù)void help();/幫助typedef structint num;int password;double accounte;atm;atm ATMN = 10001, , 10000 , 10002, , 20000 , 10003, , 30000 ;typedef structint year;int month;int day;riqi;int k;int main()enterzhanghao();/ATM賬號輸入函數(shù)void enterzhanghao()read();printf("ttttt*n");printf("ttttt-> 歡迎使用ATM機模擬操作的程序 <-n");printf("ttttt-> 1、登錄 <-n");printf("ttttt-> 2、注冊 <-n");printf("ttttt*n");printf("請輸入對應序號:");int k;scanf("%d", &k);switch (k)case 1:enter(); break;case 2:flesh(); break;void enter()system("cls");int user;printf("請輸入賬號:");scanf("%d", &user);if (user = 0)printf("ttttt* 賬號錯誤 *tttttn");enterzhanghao();else if (user != (ATMk.num)for (k = 1; k < N; k+)if (user = (ATMk.num)inputmima();system("cls");printf("ttttt* 賬戶不存在,請從新輸入 *tttttn");enterzhanghao();elseinputmima();void flesh()system("cls");printf("ttttt請輸入賬號:");scanf("%f", &ATMk.num);printf("ttttt請輸入密碼:");scanf("%f", &ATMk.password);write();/密碼輸入函數(shù)void inputmima()int code;int temp = 3;read();system("cls");printf("ttttt* 請輸入密碼 *ttttn");scanf("%d", &code);while (code != ATMk.password)temp-;system("cls");printf("ttttt* 密碼錯誤,請重新輸入 *ttttn");printf("ttttt* 您還有: ");printf("%d", temp);printf(" 次機會 *n");scanf("%d", &code);if (temp = 1)system("cls");printf("ttttt* 您已經(jīng) 3 次輸入密碼錯誤 *ttttn");printf("ttttt* 系統(tǒng)將退出操作 *ttttn");daly();enterzhanghao();menu();/操作界面 void menu()system("cls");int h = 1, x;while (h)printf("ttttt-n");printf("n");printf("ttttt1、t查詢余額n ");printf("ttttt2、t取款n ");printf("ttttt3、t存款n ");printf("ttttt4、t修改密碼 n ");printf("ttttt5、t轉(zhuǎn)賬 n ");printf("ttttt6、t退出登錄n ");printf("ttttt7、t幫助 n ");printf("n");printf("ttttt-nn ");scanf("%d", &x);switch (x)case 1:yuer(); break;case 2:Withdraw(); break;case 3:Desposit(); break;case 4:change(); break;case 5:tran_account(); break;case 6:quit(); h = quit(); break;case 7:help(); break;/取款函數(shù) void Withdraw()system("cls");float i;int y;printf("ttttt請輸入你要取款的金額:n");printf("ttttt- n");printf("n");printf("ttttt1、t100n");printf("ttttt2、t200n ");printf("ttttt3、t500n ");printf("ttttt4、t1000n ");printf("ttttt5、t2000n ");printf("ttttt6、t其他金額n ");printf("n");printf("ttttt- n");printf("ttttttt請輸入對應序列號:n ");scanf("%d", &y);system("cls");switch (y)case 1:i = 100; break;case 2:i = 200; break;case 3:i = 500; break;case 4:i = 1000; break;case 5:i = 2000; break;case 6:scanf("%f", &i); break;default:printf("ttttt請重新輸入");Withdraw();break;if (i <= ATMk.accounte&&i != 0)ATMk.accounte = ATMk.accounte - i;printf("ttttt取款成功!你的余額為:");printf("%f", ATMk.accounte);i = i*(-1);write2(i);elseprintf("ttttt余額不足!");write();/延時函數(shù) void daly()long int h;int k;for (h = ; h>0; h-)for (k = 300; k>0; k-);/余額查詢函數(shù)void yuer()system("cls");printf("ttttt賬號%4d, 余額:%.2lfnnnnn", ATMk.num, ATMk.accounte);/存款函數(shù)void Desposit()system("cls");int i;printf("ttttt請將鈔票整齊放入!nn");printf("ttttt請輸入你要存的金額:");scanf("%d", &i);if (i % 100 = 0)printf("ttttt存款成功!");elseprintf("ttttt數(shù)額必須是100的整數(shù)倍!請重新放入!");daly();Desposit();ATMk.accounte = i + ATMk.accounte;printf("%f", ATMk.accounte);write();write2(i);/退出函數(shù)int quit()system("cls");int i;printf("ttttt謝謝你的使用!nn");i = 0;return i;/密碼修改void change()daly();system("cls");int password1, password2, password3;printf("ttttt請輸入舊密碼:");scanf("%d", &password1);printf("n");if (password1 = ATMk.password)loop:printf("ttttt請輸入新的密碼:");scanf("%d", &password2);printf("n");printf("ttttt請再次輸入新的密碼:");scanf("%d", &password3);if (password2 = password3)ATMk.password = password2;printf("tttttn密碼修改成功!n");elseprintf("tttttn密碼不一致!n");printf("ttttt請重新輸入!n");goto loop;elseprintf("ttttt輸入錯誤n");change();write();/文件讀取函數(shù)void read()int i;FILE *fp;fp = fopen("accounts.txt", "r");if (fp = NULL)printf("ttttt打開文件失敗n");return;for (i = 0; i<N; i+)fscanf(fp, "%d", &(ATMi.num);fscanf(fp, "%d", &(ATMi.password);fscanf(fp, "%lfn", &(ATMi.accounte);fclose(fp);/accounts文件寫入函數(shù)void write()int i;FILE *fp;fp = fopen("accounts.txt", "w");if (fp = NULL)printf("ttttt打開文件失敗n");return;for (i = 0; i<N; i+)fprintf(fp, "%-8d", ATMi.num);fprintf(fp, "%-8d", ATMi.password);fprintf(fp, "%lfn", ATMi.accounte);fclose(fp);/records文件寫入函數(shù)void write2(float h)time_t t;struct tm * lt;time(&t);/獲取Unix時間戳。lt = localtime(&t);/轉(zhuǎn)為時間結(jié)構(gòu)。FILE *fp;fp = fopen("records.txt", "a");if (fp = NULL)printf("ttttt打開文件失敗n");return;elsefprintf(fp, "%-5d", lt->tm_year + 1900);fprintf(fp, "%-3d", lt->tm_mon);fprintf(fp, "%-3d", lt->tm_mday);fprintf(fp, "%-5lfn", h);fclose(fp);/轉(zhuǎn)賬函數(shù)void tran_account()int other_num10;int i, c, q, tran;/c用來判斷轉(zhuǎn)賬是否繼續(xù),q用來判斷用戶行為,tran用來存儲轉(zhuǎn)賬金額system("CLS");printf("ntttttttt0.返回菜單");printf("nnnnnnttt請輸要對方的賬號: ");scanf("%d", other_num10);/輸入對方賬號if (other_num10 = ATMk.num)/判斷是否為自身賬號system("CLS");printf("nnnnnnnn tt對不起,不能給自己轉(zhuǎn)賬,請重新輸入賬號!n");printf("nnn按任意鍵返回!");_getch();system("CLS");tran_account();/遞歸調(diào)用elsewhile (1)for (i = 0; i < N; i+)if (other_num10 = ATMi.num)/匹配用戶while (1)system("CLS");printf("ttt請輸入對方賬號:%s", ATMi.num);/顯示對方信息printf("nnnnntt0.返回菜單ttt9.確認");scanf("%d", &c);/輸入9確認if (c = '9')system("CLS");doprintf("ntttttttt0.返回菜單");printf("nnnnnntt請輸入轉(zhuǎn)賬金額(整百數(shù)):");scanf("%d", &q); getchar();if (q)/q為非0時進入內(nèi)層條件語句tran = q;if (tran >= 100 && tran % 100 = 0)/判斷是否為整百/數(shù)并且大于100的數(shù)if (tran <= ATMk.accounte)/取款數(shù)是否不超過余額if (tran <= 3000)/判斷是否超過3000system("CLS");ATMk.accounte -= tran;ATMk.accounte += tran;menu();/調(diào)用save_info,存儲信息printf("nnnnnnttt 交易成功!n");printf("nnnnntt0.返回菜單ttt9.繼續(xù)轉(zhuǎn)賬");c = _getch();if (c = '9')/輸入9就行轉(zhuǎn)賬system("CLS");elseif (c = '0')/c為0返回菜單system("CLS");menu();elseprintf("輸入錯誤,請重新輸入!n");system("CLS");elsesystem("CLS");printf("nnnnnntt對不起,一次最多能轉(zhuǎn)賬3000元,請重新輸入!");printf("nnnnn按任意鍵返回!n");_getch();system("CLS");elsesystem("CLS");printf("nnnnnnttt您的余額不足,請重新輸入!");printf("nnnnn按任意鍵返回!n");_getch();system("CLS");elsesystem("CLS");printf("nnnnnnttt請輸入正確的金額!請重新輸入!");printf("nnnnn按任意鍵返回!n");_getch();system("CLS");elsesystem("CLS");menu(); while (1);elseif (c = '0')menu();system("CLS");printf("nnnnnnttt用戶不存在!請重新輸入!");printf("nnnnn按任意鍵返回!n");_getch();system("CLS");tran_account();/遞歸調(diào)用/幫助void help()system("CLS");printf("ttttt*n");printf("ttttt->碼字不易,我可以在你心里跑一圈嗎 <-n");printf("ttttt-> 1、可以 <-n");printf("ttttt-> 2、當然可以 <-n");printf("ttttt*n");printf("ttttt-> 你要選哪個? <-n");int k;scanf("%d", &k);switch (k)case 1:printf("蟹蟹你!n"); _getch(); menu(); break;case 2:printf("等下我,第十圈了!3n"); _getch(); menu();break;專心-專注-專業(yè)

注意事項

本文(【C語言】課程設(shè)計-ATM機模擬操作(附源碼)(共18頁))為本站會員(494895****12427)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!