版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、word 個(gè)人帳簿管理系統(tǒng)設(shè)計(jì)五、程序運(yùn)行結(jié)果 1、原文件內(nèi)容 #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <windows.h> /文件保存路徑 #define FilePath1 "Myinfor.dat" #define FilePath2 "Myinfor.txt" /查詢用聲明 #define Status int #define OK 1 #define Error 0 #define NotFound
2、2 typedef struct int month;/月份 int spxf;/食品消費(fèi) int fzfy;/房租費(fèi)用 int znjy;/子女教育費(fèi)用 int sdfy;/水電費(fèi)用 int ylfy;/醫(yī)療費(fèi)用 int cxfy;/儲蓄費(fèi)用 int srfy;/收入費(fèi)用 Infor; typedef struct / 查詢用自定義數(shù)據(jù)類型 int no; int data; pType; void menu(void); /菜單 void input(Infor *newI); /接收鍵盤輸入 void writeinfor(Infor *newI);/向文件內(nèi)寫入內(nèi)容 void chan
3、geFormat(void );/將dat格式文件轉(zhuǎn)換為txt文件 Status search(Infor *a);/查詢函數(shù)返回查詢的結(jié)果及查詢的狀態(tài) void paixu(Infor *a);/對查詢據(jù)結(jié)果排序 void modify(Infor *a,int mon);/修改數(shù)據(jù) void delRecord(int mon);/刪除數(shù)據(jù) void main() while(1) menu(); void menu(void) int item; int mon; Infor *a; a=(Infor *)malloc(sizeof(Infor); do printf("n*個(gè)
4、人帳簿管理系統(tǒng)設(shè)計(jì)*nn"); printf("1.錄 入 數(shù) 據(jù)n"); printf("2.查 看 數(shù) 據(jù)n"); printf("3.修 改 數(shù) 據(jù)n"); printf("4.查 詢 數(shù) 據(jù)n"); printf("5.排 序 數(shù) 據(jù)n"); printf("6.刪 除 數(shù) 據(jù)n"); printf("0.退 出 系 統(tǒng)nn"); printf("請輸入要進(jìn)行的操作: " ); scanf("%d"
5、,&item); while(item>6 | item<-1); switch(item) /退出程序 case 0: getchar(); getchar(); exit(1); break; /錄入數(shù)據(jù) case 1: input(a); writeinfor(a); break; /查看數(shù)據(jù) case 2: changeFormat(); break; /修改數(shù)據(jù) case 3: item=search(a); mon=a->month; if (item!=OK) printf("n沒有符合條件的記錄!n"); else printf(&
6、quot;n記錄月份 食品消費(fèi) 房租費(fèi)用 子女費(fèi)用 水電費(fèi)用 醫(yī)療費(fèi)用 儲蓄費(fèi)用 本月收入 n"); printf("- n"); printf("%7d %8d %8d %8d %8d %8d %8d %8dn",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy); input(a); modify(a,mon); break; /查詢數(shù)據(jù) case 4: item=search(a); if (item!=OK)
7、printf("n沒有符合條件的記錄!n"); else printf("n記錄月份 食品消費(fèi) 房租費(fèi)用 子女費(fèi)用 水電費(fèi)用 醫(yī)療費(fèi)用 儲蓄費(fèi)用 本月收入 n"); printf("- n"); printf("%7d %8d %8d %8d %8d %8d %8d %8dn",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy); break; /排序數(shù)據(jù) case 5: item=sea
8、rch(a); if (item!=OK) printf("n沒有符合條件的記錄!n"); else paixu(a); break; /刪除數(shù)據(jù) case 6: item=search(a); mon=a->month; if (item!=OK) printf("n沒有符合條件的記錄!n"); else printf("n記錄月份 食品消費(fèi) 房租費(fèi)用 子女費(fèi)用 水電費(fèi)用 醫(yī)療費(fèi)用 儲蓄費(fèi)用 本月收入 n"); printf("- n"); printf("%7d %8d %8d %8d %8d
9、%8d %8d %8dn",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy); delRecord(mon); break; free(a);/釋放內(nèi)存空間 void input(Infor *newI) printf("n請依次輸入數(shù)據(jù)中間以空格符隔開:n(本月月份 食品消費(fèi) 房租費(fèi)用 子女費(fèi)用 水電費(fèi)用 醫(yī)療費(fèi)用 儲蓄費(fèi)用 收入費(fèi)用)n"); scanf("%d%d%d%d%d%d%d%d",&newI-
10、>month,&newI->spxf,&newI->fzfy,&newI->znjy,&newI->sdfy,&newI->ylfy,&newI->cxfy,&newI->srfy); fflush(stdin); void writeinfor(Infor *newI) FILE *fp; fp=fopen(FilePath1,"ab+"); if(fp=NULL) printf("無法創(chuàng)立文件:%s",FilePath1); exit(0); fw
11、rite(newI,sizeof(Infor),1,fp);/這里可以做特別處理可防止存在同一月份有2條以上的記錄問題。這里就不寫了。 fclose(fp); printf("數(shù)據(jù)錄入成功!n"); void changeFormat(void) /暫時(shí)只能操作一行文件有待改良 FILE *fp1,*fp2; Infor *a; a=(Infor *)malloc(sizeof(Infor); fp1=fopen(FilePath1,"rb+"); if(fp1=NULL) printf("無法找到文件:%sn",FilePath1)
12、; return ; /返回主函數(shù) fp2=fopen(FilePath2,"wt+"); if(fp2=NULL) printf("無法創(chuàng)立文件:%sn",FilePath2); return ; /返回主函數(shù) fputs(" n*個(gè)人帳簿管理系統(tǒng)*nn",fp2); fputs("記錄月份 食品消費(fèi) 房租費(fèi)用 子女費(fèi)用 水電費(fèi)用 醫(yī)療費(fèi)用 儲蓄費(fèi)用 本月收入 n",fp2); fputs("- n",fp2); printf("n記錄月份 食品消費(fèi) 房租費(fèi)用 子女費(fèi)用 水電費(fèi)用 醫(yī)
13、療費(fèi)用 儲蓄費(fèi)用 本月收入 n"); printf("- n"); rewind(fp1); fread(a,sizeof(Infor),1,fp1); while(!feof(fp1) printf("%7d %8d %8d %8d %8d %8d %8d %8dn",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy); fprintf(fp2,"%7d %8d %8d %8d %8d %8d %8d %8
14、dn",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy); fread(a,sizeof(Infor),1,fp1); fputs("- n",fp2); fputs("關(guān)閉本程序繼續(xù)原程序!n",fp2); fclose(fp1); fclose(fp2); system(FilePath2); /調(diào)用翻開轉(zhuǎn)換的文本文件 remove(FilePath2);/刪除文本文件文件 Status search(Infor
15、 *a) FILE *fp1; int mon; int isfound=0; printf("請正確輸入要查詢的月份:"); scanf("%d",&mon); fflush(stdin); fp1=fopen(FilePath1,"rb+"); if(fp1=NULL) printf("無法找到文件:%sn",FilePath1); return Error; /返回主函數(shù) rewind(fp1); fread(a,sizeof(Infor),1,fp1); while(!feof(fp1) if(a-
16、>month=mon) isfound=1; break; else isfound=0; fread(a,sizeof(Infor),1,fp1); fclose(fp1); if(isfound) return OK; else return NotFound; void paixu(Infor *a) int i=0,j=0,flag=0,t; pType px8=0,0; char str810="記錄月份","食品消費(fèi)","房租費(fèi)用","子女費(fèi)用","水電費(fèi)用","醫(yī)療
17、費(fèi)用","儲蓄費(fèi)用","本月收入" for(;i<8;i+) pxi.no=i; px0.data=a->month; px1.data=a->spxf; px2.data=a->fzfy; px3.data=a->znjy; px4.data=a->sdfy; px5.data=a->ylfy; px6.data=a->cxfy; px7.data=a->srfy; for(i=1;i<8;i+) flag=0; for(j=0;j<8-i;j+) if(pxj.data>
18、;pxj+1.data) t=pxj.data; pxj.data=pxj+1.data; pxj+1.data=t; t=pxj.no; pxj.no=pxj+1.no; pxj+1.no=t; flag=1; if(flag=0) break; printf("n"); for(i=0;i<8;i+) printf(" %s",strpxi.no); printf("n n"); for(i=0;i<8;i+) printf("%8d ",pxi.data); printf("n"
19、;); void modify(Infor *a,int mon) FILE *fp1,*fp2; Infor *b; b=(Infor *)malloc(sizeof(Infor); fp1=fopen(FilePath1,"rt"); fp2=fopen("temp.dat","wt+"); rewind(fp1); fread(b,sizeof(Infor),1,fp1); while (!feof(fp1) if(b->month=mon) fwrite(a,sizeof(Infor),1,fp2); else fwrite(b,sizeof(Infor),1,fp2); fread(b,sizeof(Infor),1,fp1); fclose(fp1); fclose(fp2); remove(FilePath1);/刪除源文件 rename("temp.dat",FilePath1);/重命名中間文件 printf("修改數(shù)據(jù)成功!n" ); changeFormat(); void delRecord(int mon) FI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025車輛貸款抵押合同范本
- 2025年度農(nóng)副產(chǎn)品食品安全風(fēng)險(xiǎn)評估合同3篇
- 2025年度農(nóng)業(yè)機(jī)械出租與農(nóng)村電商發(fā)展合作合同3篇
- 二零二五年度大米市場調(diào)研與分析服務(wù)合同3篇
- 2025二手設(shè)備采購合同范本
- 2025年度公司與個(gè)人合作推廣健康食品合作協(xié)議3篇
- 2025年度養(yǎng)豬場養(yǎng)殖場與電商平臺合作銷售合同3篇
- 2025年度建筑公司合同制員工勞動合同(綜合保障)3篇
- 二零二五年度公路貨物運(yùn)輸合同風(fēng)險(xiǎn)控制與應(yīng)急處理協(xié)議3篇
- 二零二五年度體育賽事組織兼職教練員聘用協(xié)議3篇
- 土建定額培訓(xùn)課件
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之13:“6策劃-6.2創(chuàng)新目標(biāo)及其實(shí)現(xiàn)的策劃”(雷澤佳編制-2025B0)
- 二年級上冊《語文園地八》日積月累
- 2024年保護(hù)環(huán)境的建議書范文(33篇)
- 2024年中國PVC鞋底料市場調(diào)查研究報(bào)告
- 浙江省湖州市2023-2024學(xué)年高二上學(xué)期期末調(diào)研測試數(shù)學(xué)試題 含解析
- ICD-10疾病編碼完整版
- 絞車斜巷提升能力計(jì)算及絞車選型核算方法
- 6_背景調(diào)查表
- 畢業(yè)設(shè)計(jì)(論文)礦泉水瓶吹塑模設(shè)計(jì)
- 在離退休老干部迎新春座談會上的講話(通用)
評論
0/150
提交評論