二工大程序設(shè)計(jì)與實(shí)踐個(gè)人資金賬戶管理_第1頁(yè)
二工大程序設(shè)計(jì)與實(shí)踐個(gè)人資金賬戶管理_第2頁(yè)
二工大程序設(shè)計(jì)與實(shí)踐個(gè)人資金賬戶管理_第3頁(yè)
二工大程序設(shè)計(jì)與實(shí)踐個(gè)人資金賬戶管理_第4頁(yè)
二工大程序設(shè)計(jì)與實(shí)踐個(gè)人資金賬戶管理_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、程序設(shè)計(jì)與實(shí)踐實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)二:個(gè)人資金賬戶管理:實(shí)驗(yàn)名稱:隨機(jī)數(shù)及其應(yīng)用二:實(shí)驗(yàn)環(huán)境 : 一臺(tái)安裝有 C 語(yǔ)言編譯器的電腦實(shí)驗(yàn)?zāi)康?1) 培養(yǎng)和鍛煉對(duì)具有一定復(fù)雜度和規(guī)模的問(wèn)題的分析與求解能力。(2) 掌握程序設(shè)計(jì)的綜合方法, 能綜合應(yīng)用各種數(shù)據(jù)類型實(shí)現(xiàn)較復(fù)雜數(shù)據(jù)的存儲(chǔ)(3) 培養(yǎng)良好的 C 程序設(shè)計(jì)風(fēng)格與代碼規(guī)范意識(shí)。四:實(shí)驗(yàn)內(nèi)容:用 c 語(yǔ)言編寫代碼,并對(duì)程序進(jìn)行調(diào)試、改錯(cuò),使之符合如下具體功能。 資金賬戶的信息統(tǒng)一放在隨機(jī)文件中,該隨機(jī)文件包括的數(shù)據(jù)項(xiàng)有記錄ID 、發(fā)生日期、發(fā)生事件、發(fā)生金額(正的表示收入,負(fù)的表示支出)和金額。每發(fā) 生一筆收支,文件要增加一條記錄,并計(jì)算一次余額。 ,

2、 程序?qū)崿F(xiàn) 3 個(gè)功能,包括: (1) ,能創(chuàng)建資金賬戶文件并添加收入或支出信息 記錄; (2) ,能顯示所有記錄,得知資金賬戶的收支流水賬; (3) ,能查詢最后一 條記錄,獲知賬戶最后的余額。賬戶文件名命名為 cashbox.dat ,文件部分內(nèi)容 如下; 增加修改資金賬戶的功能。輸入一個(gè)記錄 ID, 如果文件中已存在該記錄,則 輸入新的記錄信息并更新資金賬戶文件中相應(yīng)記錄的信息。 要求定義和調(diào)用函數(shù) Update Log(), 其功能是修改資金賬戶記錄。LongIDCreateDateNoteChargeBalance12006-06-01 alimony500.00500.002200

3、6-06-08 shopping-300.00200.003 2006-06-15 shopping -60.00 140.004 2006-06-20 workingpay 200.00340.005 2006-08-01 scholarship 1000.001340.00五:實(shí)驗(yàn)步驟:(實(shí)驗(yàn)設(shè)計(jì),關(guān)鍵代碼。實(shí)驗(yàn)結(jié)果需截圖)1. 實(shí)驗(yàn)設(shè)計(jì)主函數(shù): 給用戶顯示一個(gè)功能菜單界面 ,通過(guò)輸入操作序號(hào),調(diào)用 函數(shù)以實(shí)現(xiàn)對(duì)用戶賬號(hào)進(jìn)行各種操作。主程序界面:(略)主程序代碼:int main(void)FILE *fp;int choice;if(fp=fopen(cashbox.dat, ab+)

4、= NULL)printf(can not open file cashbox.dat!n);exit(0);size = sizeof(struct LogData);while(choice=inputchoice()!=0) switch(choice)case 1:fp=fopen(cashbox.dat, ab+);AddNewLog(fp);break;case 2:fp=fopen(cashbox.dat, ab+);ListAllLog(fp);break;case 3:fp=fopen(cashbox.dat, ab+);QueryLastLog(fp);break;case

5、 4:fp=fopen(cashbox.dat, rb+);Updatelog(fp);break;case 5:fp=fopen(cashbox.dat, rb+);Deletelog(fp);break;default:printf(Input Error.);break;if(fclose(fp)printf( Can not close the file!n );exit(0);return 0;增加用戶賬戶文件:(源代碼)void AddNewLog(FILE *cfptr)struct LogData log,lastlog;long logcount;printf(Input l

6、ogdate(format:2006-01-01):);scanf(%s,log.logdate);printf(Input lognote:);scanf(%s,log.lognote);printf(Input Charge:Income+ and expend-:);scanf(%lf,&log.charge);logcount=getLogcount(cfptr);if(logcount0)fseek(cfptr,size*(logcount-1),SEEK_SET);fread(&lastlog,size,1,cfptr);log.logid=lastlog.logid+1;log.

7、balance=log.charge+lastlog.balance;elselog.logid=1;log.balance=log.charge;rewind(cfptr);getch();fwrite(&log,sizeof(struct LogData),1,cfptr);fclose(cfptr);列出賬戶記錄:(源代碼)void ListAllLog(FILE *cfptr)struct LogData log;long logcount;logcount=getLogcount(cfptr);if(logcount0) fseek(cfptr,0L,SEEK_SET);fread(

8、&log,size,1,cfptr);printf(logID logdate lognote charge balancen);while(!feof(cfptr)printf(%6ld %-11s %-15s %10.2lf %10.2lfn,log.logid,log.logdate,log.lognote,log.charge,log.balance);fread(&log,size,1,cfptr);elseprintf(no logs in file!n);printf(Press any key to continue.);getch();查看最后一條賬戶記錄(源代碼):void

9、 QueryLastLog(FILE *cfptr)struct LogData log;long logcount;logcount=getLogcount(cfptr);if(logcount0)fseek(cfptr,size*(logcount-1),SEEK_SET);fread(&log,size,1,cfptr);printf(The last log is:n); printf(logid:%-6ldnlogdate:%-11snlognote:%-15sn,log.logid,log.logdate, log.lognote);printf(charge:%-10.2lfnb

10、alance:%-10.2lfn,log.charge,log.balance);elseprintf(no logs in file!n);printf(Press any key to continue.);getch();增加修改資金賬戶(源代碼)void Updatelog(FILE *cfptr)struct LogData log1000,*plog=log, newlog;long logcount,logid,i,index=-1;printf(Input LogID:);scanf(%ld,&logid);logcount=getLogcount(cfptr);rewind(

11、cfptr);fread(plog,size,logcount,cfptr);for(i=0;i=0)printf(Input logdate(format:2006-01-01):);scanf(%s,newlog.logdate);printf(Input lognote:);scanf(%s,newlog.lognote);printf(Input Charge:Income+ and expend-:);scanf(%lf,&newlog.charge);if(strcmp(logindex.lognote,newlog.lognote)!=0)strcpy(logindex.logn

12、ote,newlog.lognote);if(strcmp(logindex.logdate,newlog.logdate)!=0)strcpy(logindex.logdate,newlog.logdate);if(newlog.charge!=logindex.charge)newlog.balance=logindex.balance-logindex.charge+newlog.charge;logindex.charge=newlog.charge; logindex.balance=newlog.balance;for(i=index+1;ilogcount;i+)logi.bal

13、ance=logi-1.balance+logi.charge;rewind(cfptr);fwrite(plog,size,logcount,cfptr);else printf(Error logid and try another!n);printf(Press any key to continue.);getch();fclose(cfptr);刪除賬戶資金記錄(源代碼):void Deletelog(FILE *cfptr)FILE *fp1;struct LogData log1000,*plog=log;long logcount,logid,i,index=-1;printf

14、(Input LogID:);scanf(%ld,&logid);logcount=getLogcount(cfptr);rewind(cfptr);fread(plog,size,logcount,cfptr);for(i=0;i=0)for(i=index;i=logcount-1;i+)logi.logid=i+1;strcpy(logi.logdate,logi+1.logdate);strcpy(logi.lognote,logi+1.lognote);logi.charge=logi+1.charge;logi.balance=logi-1.balance+logi.charge;printf(logid logdate lognote charge balancen); for(i=0;ilogcount-1;i+)%10.2lfn,printf(%6ld %-11s %-15s %10.2lflogi.logid,logi.logdate,lo

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論