版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、程序設(shè)計(jì)工程訓(xùn)練報(bào)告歐陽(yáng)引擎(2021.01.01)C語(yǔ)言程序設(shè)計(jì)個(gè)人財(cái)務(wù)管理系統(tǒng)課程名稱C語(yǔ)言程序設(shè)計(jì)工程訓(xùn)練姓名院(系)信息科學(xué)與技術(shù)學(xué)院專業(yè)班級(jí)學(xué)號(hào)指導(dǎo)教師教務(wù)處制目錄1 需求分析12系統(tǒng)總框圖和功能模塊說(shuō)明12.1系統(tǒng)總框圖12.2功能模塊說(shuō)明13系統(tǒng)設(shè)計(jì)23主要結(jié)構(gòu)體23.2主要功能函數(shù)24系統(tǒng)調(diào)試34.1、程序開(kāi)始執(zhí)行時(shí)系統(tǒng)的所顯示的頁(yè)庖:34.2、選擇退出系統(tǒng):34.3、選擇登陸,并且輸入的帳號(hào)和密碼都正確:34.4、用戶輸入的帳號(hào)不正確:44.5、用戶輸入的帳號(hào)正確,密碼不正確:44.6、用戶進(jìn)行具體操作:55總結(jié)66源程序清單61. 需求分析編寫一個(gè)個(gè)人財(cái)政支出管理系統(tǒng),主要
2、解決的問(wèn)題是作為一個(gè)系統(tǒng)而 言,它所要面對(duì)不只是某一個(gè)人而言,而是要面對(duì)很多的用戶。那么想要解 決這一問(wèn)題,就必須要求這個(gè)系統(tǒng)能夠存儲(chǔ)許多用戶的基本信息和記錄。同 時(shí)也要求系統(tǒng)能夠?qū)Σ煌挠脩舻纳矸葸M(jìn)行查找和驗(yàn)證。在驗(yàn)證通過(guò)之后, 在對(duì)其進(jìn)行用戶所要求的操作。作為一個(gè)財(cái)政支出系統(tǒng),那么就要求對(duì)于用戶關(guān)于金錢的每一項(xiàng)操作都 要有相應(yīng)的記錄,同時(shí)并允許用戶對(duì)于每一條整體的記錄進(jìn)行操作,例如可 以根據(jù)時(shí)間來(lái)查找某一確定日期是否進(jìn)行了收入或者支出的操作,也可以根 據(jù)特定的需要來(lái)刪除某一條整體的記錄。但不允許對(duì)每條記錄的單項(xiàng)數(shù)據(jù)進(jìn) 行更改,因?yàn)椴还苁鞘杖脒€是支出,所涉及的金額都是固定的,時(shí)間也是固 定的
3、,所以系統(tǒng)不允許用戶對(duì)其進(jìn)行操作。除此之外,還必須有足夠大的空 間來(lái)存儲(chǔ)新的記錄。所以此程療;就是基于這個(gè)思想而編寫出來(lái)的,基本滿足 了用戶對(duì)于一個(gè)財(cái)政支出管理系統(tǒng)所要求的相關(guān)功能。2系統(tǒng)總框圖和功能模塊說(shuō)明2. 1系統(tǒng)總框圖2. 2功能模塊說(shuō)明(1) old_record():此函數(shù)由系統(tǒng)自行調(diào)用,作用是將所有用戶信息存入 系統(tǒng)。(2) void save():此函數(shù)的作用是將結(jié)構(gòu)體數(shù)組中的信息寫入文件存儲(chǔ),山系統(tǒng)調(diào)用。(3) load():此函數(shù)的作用是將結(jié)構(gòu)體數(shù)組中寫入文件的信息讀出,山 系統(tǒng)調(diào)用。(4) lookup_accounts ():此函數(shù)的作用是將用戶輸入的帳號(hào)與系統(tǒng)中 的所
4、有帳號(hào)進(jìn)行對(duì)比,查看系統(tǒng)中是否有此帳號(hào)。(5) check_code():此函數(shù)是作用是在系統(tǒng)查詢到了帳號(hào)之后,對(duì)用戶輸 入的帳號(hào)和密碼進(jìn)行檢驗(yàn),看是否相對(duì)應(yīng)。(6) print_message ():此函數(shù)的功能是在系統(tǒng)檢查了用戶輸入的帳號(hào) 和密碼之后,如果用戶通過(guò)了系統(tǒng)的檢查,在此顯示用戶可見(jiàn)的基本信息。(7) findrecord ():此函數(shù)的作用是根據(jù)用戶輸入的日期進(jìn)行查找操 作。(8) inserCrecord ():此函數(shù)的功能是在記錄中增加一條新的記錄, 這個(gè)記錄由用戶輸入。(9) del_record ():此函數(shù)的功能是根據(jù)用戶的輸入的位置,將相應(yīng) 位置的記錄刪除。(10)
5、 sum_niim ():此函數(shù)的功能是計(jì)算所有收入和支出的總和,計(jì)算全部的收入的總合,計(jì)算全部輸出的總合。(11)打印輸出記錄的函數(shù):在本程序中一共有三個(gè)打印輸出記錄的函數(shù),分別為 all_print ( )、acc_print ( )、pay_print ()這三個(gè)函數(shù)。它們 的功能依次是打印輸出全部記錄,打印輸出輸入記錄,打印輸出支出記錄。(12) mian():在主函數(shù)中,可以根據(jù)用戶的選擇來(lái)操作系統(tǒng)允許用戶 使用的功能,也可以隨時(shí)退出這個(gè)系統(tǒng)。3系統(tǒng)設(shè)計(jì)3. 1主要結(jié)構(gòu)體個(gè)人信息賬戶信息3. 2主要功能函數(shù)old_record() 將所有用戶信息存入系統(tǒng) print_message
6、()顯示用戶可見(jiàn)的基本信息sum.num () 計(jì)算所有收入和支出的總和打印輸出全部記錄,all_print ( )、acc_print ( )、pay_print ()打印輸出輸入記錄,打印輸出支出記錄4系統(tǒng)調(diào)試4. K程序開(kāi)始執(zhí)行時(shí)系統(tǒng)的所顯示的頁(yè)面:歡迎使用個(gè)人財(cái)政支岀管理系統(tǒng)I1、2、4.2、選擇退出系統(tǒng):5感謝您使用本系統(tǒng),再見(jiàn)I ress any key to continue4.3、選擇登陸,并且輸入的帳號(hào)和密碼都正確:歡迎使用個(gè)人財(cái)政支岀管理系統(tǒng)!1、艮 - 號(hào)碼 帳密 輸輸1001mill-請(qǐng)選擇您要進(jìn)行的操作錄錄錄有有有記記記找加宦岀岀 2 3 4 5 6?4.4、用戶輸入
7、的帳號(hào)不正確:as入不入不入不您 號(hào)在號(hào)在號(hào)在用y,請(qǐng)重新輸入!,請(qǐng)重新輸入!key to continue4.5、用戶輸入的帳號(hào)正確,密碼不正確: s S 號(hào)碼i 1 帳密aede woo 披V: 1 倩請(qǐng)tiltL18011wrongsplease wrong, pleaseinput afa.in! input acfa.infcodeisinpu 七acfairufplease谿探蘇鬆請(qǐng)歆秤謝謝使甩再見(jiàn)!ress any key to continue.4.6.用戶進(jìn)行具體操作:姓名=wang請(qǐng)輸入您要查詢的日期;07-01-01 dateoperate noney07-01-01in
8、3003魯輸入你要插入的位置:請(qǐng)揪入您要添加的記錄日期 07-05-01操作:in全額:1000匚dateoperatenun07-05-01in100007-01-01in300997-02-01out-150007-03-01in250007-04-01out-1000總金薪為:4000總收入為:65盹總支岀為:-2500備輸入您曼刪除的記錄的位置:25 dateoperatenum07-05-01in100007-02-01ut-150007-03-01in250007-04-01out-1000總金鼠為;1800總收入為:3500總支岀為:-2500udateoperatenum07-
9、05-01in100007-03-01in2500總收入金額為二35007dateopepatenum07-02-01out-150007-04-01out1000總的支出為:-2500感謝您使用本系統(tǒng),再見(jiàn)!Press any5總結(jié)本程序在編寫是,主要就是基于用戶的角度去分析該如何設(shè)訃此程序,和編寫功能模塊的。在編寫程序時(shí),所有的數(shù)據(jù)都是對(duì)結(jié)構(gòu)體進(jìn)行的操作, 在此過(guò)程中,我發(fā)現(xiàn)了自己在對(duì)指針操作的時(shí)候,尤其是對(duì)指向結(jié)構(gòu)體數(shù)組 的指針和指向結(jié)構(gòu)體的指針的操作都不夠熟練。但在編寫完此程序之后,我 感覺(jué)自己對(duì)語(yǔ)法的應(yīng)用有了明顯的提高。6源程序清單#include#include#define nu
10、ll 0#define max 20#define ok 1struct record)char date20;char operate20;int num;struct list_recordchar account20;char code20;char name20;int rec_len;struct record rec max;)rmax;系統(tǒng)原有數(shù)據(jù),用戶不可知int old_record( stnjct list_record r)int i;for(i=0;i3;i+)ri.rec_len=4;strcpy(r0 .account,T 001 ”);strcpy(r 1.acc
11、ount/* 1002n);歐陽(yáng)引擎創(chuàng)編2021.01.01strcpy(r 2.account/1003n); strcpy(r0.code/l 1111 ln);strcpy(r l.code,H222222H); strcpy(r2.code,333333M);strcpy( ,wangH); strcpy(strcpy(zhang”);strcpy(r0 .rec0 .date/*07-01 -01H); strcpy(rO.rec l.date/07-02-01H); strcpy(r0.rec2.date/,07-03-01H); strc
12、py(r0.rec3.date/,07-04-0IH); strcpy(r 1 .rec0 .date/*07-01 -02”); strcpy(r l.rec l.date/*07-02-02n); strcpy(r 1 .rec2.date,H07-03-02n); strcpy(r 1 .rec3.date/,07-04-02,); strcpy(r2.rec0.date/*07-01-03,); strcpy(r2.rec 1 .date/07-02-03H); strcpy(r2.rec2.date/07-03-03H); strcpy(r2.rec3.date/l07-04-03H
13、); strcpy(r0.rec0.operate/inH);strcpy(r0.recl.operate/outH);strcpy(r0.rec2.operate/,inM);strcpy(r0.rec3.operate/outH);strcpy(r 1 J.recfOJ.operate,outH);strcpy(r l.rec l.operate/inH);strcpy(r 1 .rec2.operate/outH);strcpy(r 1 .rec3.operate/,inH);strcpy(r2.rec0.operate/inH);strcpy(r2.recl.operate/outH)
14、; strcpy(r2.rec2.operate/,inH);strcpy(r2.rec3.operate/outH);r0.rec0.num=3000;r0.rec l.num=-1500;r0.rec2.num=2500;r 0. rec 3 . nu1000;r 1 .rec0 .num=-3000;r l.rec I.num=5000;rl.rec2.num=-1000;r 1 .rec2.num=2000;r2.rec0.num=1000;r2 .rec 1 .num=-1500;r2.rec2.num=3000;r2.rec2.num=-500;return ok;將數(shù)據(jù)寫入文件v
15、oid save()FILE *fp;int i;if(fp=fopen(Hwenjian,twbH)=null)printf(Hcan not open the file.nM);return;for(i=0:iniax;i+)if(fwrite(&ri,sizeof(struct list_record)丄fp)!=l)printf(Hfile write error.nH);fclose(fp);文件讀出void load()FILE *fp;int i;if(fp=fopen(,wenjian,rbl)=null)printf(Hcan not open infile.nn);retu
16、rn;for(i=0:imax;i+)if(fread(&ri,sizeof(stnjct list_record), 1 ,fp)!= 1)if(feof(fp)(fclose(fp);return;)fclose(fp);將用戶輸入的帳號(hào)與系統(tǒng)中原有帳號(hào)比較,查找用戶帳號(hào)int lookup_accounts( stnjct list_record r,char acc)int i;for(i=0:i3;i+)if(strcmp(ri.account,acc)=0)return ok;)printf(帳號(hào)不存在,請(qǐng)重新輸入! n);return null;)檢查密碼函數(shù)struct lis
17、t_record check_code(stnjct list_record r,char acc,char c)intstruct list_record a;strcpy(a.account/0M);strcpy(a.code,H0H);a.rec_len=0;for(i=0:ia.rec_len;i+)strcpy(a.reci.date,HOn); strcpy(a.reci.operate/On); a.reci.num=0;for(i=0:iname);printf(H 帳號(hào):%sn*(*p).account);根據(jù)用戶輸入的日期,查找記錄int find_record( stiu
18、ct list_record 水p,char d)int i;for(i=0;id)=O)printf(Hdate operate moneynH);printf(M%sn,(*p).reci.date);printf(M%sH,(*p).reci.operate);printf(H%d n*(*p).reci.num);return ok;if(i=(*p).rec_len)printf(Hthe date is not exit!nH);return null;插入函數(shù),根據(jù)用戶輸入的信息,增加記錄int insert_record( struct list_record struct r
19、ecord *pl,int lop)int i;if(lop(*p).rec_len+1)printf(Hthe position is wrong.nH);return 0;elsefor(i=(*p).rec_len;iIop-1 ;i 一)strcpy(*p).reci .date,(*p).reci-1 .date);strcpy(*p).reci .operate,(*p).reci-1 .operate);(*p).reci.num=(*p).reci-l.num;)strcpy(p-reci.date,pl-date);strcpy(*p).reci.operate,(*pl).
20、operate);(*p).reci.num=(*pl).num;(*p).rec_len+;return ok;1刪除記錄函數(shù)int del_record( struct lisCrecord *pjnt lop2)int i;if(lop2(*p).rec _len)printf(Hthe position is wrong.nM);return null;)elsefor(i=lop2-l ;i(*p).rec_len-1 ;i+)strcpy(*p).reci.date,(*p).reci+l.date);strcpy(*p).reci .operate,(*p).reci+1 .op
21、erate); (*p).reci.num=(*p).reci+l.num;(*p).rec_len;return ok;)輸出全部記錄函數(shù)void alLprint( struct list_record *p) int i;for(i=0;i(*p).recen;i+) printf(n%s *(*p).reci.date);printf(n%s ,(*p).reci.operate);printf(n%d H,(*p).reci.num);printf(” n”);1汁算總的錢數(shù)int sum_num( struct list_record *p)int i;int sum=0;int
22、sum_in=0;int sum_out=0;for(i=0;i0)sum_in+=(*p).reci.num;if(*p).reci .num0)suni_out+=(*p).reci.num;printf(總金額為:%dn”,sum);printf(總收入為:%dn,sum_in);printf(總支出為:%dn,sum_out);return ok;輸出收入記錄int acc_print( struct list_record *p)int i;int sum_acc=0;printf(Hdate operate numnH);for(i=0:i0)sum_acc+=(*p).reci.
23、num;printf(H%s ,(*p).reci.date);printf(M%s ,(*p).reci.operate);printf(M%d nX*p).reci.num);printf(HnH);)printf(總收入金額為:%dn,suin_acc);return ok;if(sum_acc=0)printf(Hthere is no account.nH);return null;1輸出支出記錄int pay_print( struct list_record *p)int i;int siim_pay=0;printf(Mdate operate numn);for(i=0;ir
24、ec_len;i+)if(*p).reci.num0)sum_pay+=(*p).reci.num;printf(%s H,(*p).reci.date);printf(M%s (*p).reci.operate);)printf(總的支出為:%dn,sum_pay);return ok;if(sum_pay=0)printf(Hthere is no payout.nn);return null;)void main()int j=05n=0;int x,k,loplop2;char data 1 20;char accou 20,cod 20;struct record *p0;struc
25、t record a;struct list_record b;struct list_record *p;b.rec_len=0;pO 二&a;old_record(r);save();load();printf(H歡迎使用個(gè)人財(cái)政支出管理系統(tǒng)! nn);printf(Hnn);printf(llnH);printf(l1、登陸系統(tǒng)ln);printf(l2、退出系統(tǒng)ln);printf(llnH);scanfr%d”,&x);if(x=0)printf(感謝您使用本系統(tǒng),再見(jiàn)! n);elsedoprintf(請(qǐng)輸入帳號(hào):);/while(j3);scanf(H%s,accou);if(lookup_accounts(r5accou) printf(請(qǐng)輸入密碼:”);/while(j3)scanf(H%sH,cod);n+;while(n3);if(n=3)printf(“您的密碼不正確,請(qǐng)退出系統(tǒng),謝謝使
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- TAS2940-生命科學(xué)試劑-MCE-8412
- Ocifisertib-hydrochloride-CFI-400945-hydrochloride-生命科學(xué)試劑-MCE-6463
- Dehydrocannabifuran-6-Methyl-9-isopropenyl-3-pentyldibenzofuran-1-ol-生命科學(xué)試劑-MCE-8289
- 7-Methoxy-9-methylfuro-2-3-b-quinoline-4-5-8-9H-trione-生命科學(xué)試劑-MCE-1580
- 3-Methyl-L-tyrosine-生命科學(xué)試劑-MCE-8000
- 二零二五年度虛擬股員工持股計(jì)劃協(xié)議
- 二零二五年度煤礦開(kāi)采權(quán)轉(zhuǎn)讓合同
- 2025年度順豐速運(yùn)高端物流服務(wù)合同模板
- 施工單位施工合同管理要點(diǎn)
- 疫情下教育變革的啟示-學(xué)校與醫(yī)院合作的必要性與優(yōu)勢(shì)分析
- DB63T 2357-2024 ?;烦簝?chǔ)罐安全管理規(guī)范
- 2022-2023學(xué)年五年級(jí)數(shù)學(xué)春季開(kāi)學(xué)摸底考(四)蘇教版
- 【螞蟻?!?024中國(guó)商業(yè)醫(yī)療險(xiǎn)發(fā)展研究藍(lán)皮書
- 授信審批部工作計(jì)劃及思路
- 財(cái)務(wù)管理學(xué)(第10版)課件 第3章 財(cái)務(wù)分析
- 小學(xué)語(yǔ)文大單元教學(xué)設(shè)計(jì)與實(shí)施
- 小學(xué)升初中六年級(jí)數(shù)學(xué)考試試卷含答案(達(dá)標(biāo)題)
- 2024年長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)完整
- 腫瘤微環(huán)境在癌癥進(jìn)展中的作用研究
- 上海市發(fā)展改革研究院工作人員招考聘用12人公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 2024年上海市各區(qū)高三語(yǔ)文二模試卷【文言文閱讀題】匯集練附答案解析
評(píng)論
0/150
提交評(píng)論