




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)之處,請聯(lián)系改正或者刪除。學(xué)號:課程設(shè)計(jì)題目個(gè)人賬簿管理系統(tǒng)教學(xué)院計(jì)算機(jī)專業(yè)信息管理班級姓名指導(dǎo)教師年12月30日課程設(shè)計(jì)任務(wù)書~第一學(xué)期學(xué)生姓名:專業(yè)班級:10信息管理指導(dǎo)教師:工作部門:計(jì)算機(jī)學(xué)院一、課程設(shè)計(jì)題目:個(gè)人賬簿管理系統(tǒng)二、課程設(shè)計(jì)內(nèi)容個(gè)人帳簿管理系統(tǒng)記錄某人每月的全部收入及各項(xiàng)開支情況,包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲蓄等。該系統(tǒng)采用了WindowsXP操作系統(tǒng)結(jié)合VisualC++6.0,TC2.0等軟件開發(fā),能夠輸入和修改某月的收支情況,能夠?qū)γ吭碌拈_支從小到大進(jìn)行排序,能夠根據(jù)輸入的月份查詢每月的收支情況。三、進(jìn)度安排系統(tǒng)設(shè)計(jì),確定函數(shù)功能及其實(shí)現(xiàn)過程;根據(jù)前面的結(jié)果,編寫程序清單,進(jìn)行調(diào)試;經(jīng)過重復(fù)的編譯,調(diào)試,測試,程序運(yùn)行成功;撰寫課程設(shè)計(jì)報(bào)告,完成整個(gè)論文報(bào)告的工作,并打印;課題答辯。四、基本要求初步完成總體設(shè)計(jì),搭好框架,確定人機(jī)對話的界面,確定函數(shù)個(gè)數(shù);完成最低要求:建立一個(gè)文件,包括某人5個(gè)月的收支情況,能對文件中的信息進(jìn)行擴(kuò)充(追加),修改和刪除;進(jìn)一步要求:完成對每月的開支排序,以及完成系統(tǒng)查詢功能;應(yīng)提供一個(gè)界面來調(diào)用各個(gè)功能,調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀。目錄TOC\o"1-4"\h\u22700一概述 332161二總體方案設(shè)計(jì) 325381.整體設(shè)計(jì)思路 3130582.輸入系統(tǒng) 3203663.排序系統(tǒng) 4280054.查詢系統(tǒng) 4185935.刪除系統(tǒng) 4110316.其它部分函數(shù)功能 512263三命令行界面代碼 617108四程序的調(diào)試與運(yùn)行結(jié)果說明 1729731五課程設(shè)計(jì)總結(jié) 2030561參考文獻(xiàn) 2026580數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)成績評定表 21一概述該課程設(shè)計(jì)主要設(shè)計(jì)個(gè)人賬簿管理系統(tǒng)已記錄某人每月的全部收入及各項(xiàng)開支情況,包括食品消費(fèi),房租,子女交用費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲蓄等。在課程設(shè)計(jì)中,用到了C語言以及數(shù)據(jù)結(jié)構(gòu)中的相關(guān)知識,當(dāng)然也有少數(shù)參考了其它人對某些問題的處理經(jīng)驗(yàn)。對于進(jìn)入系統(tǒng)后能夠輸入和修改某月的收支情況,能夠?qū)γ吭碌拈_支從小到大進(jìn)行排序,能夠根據(jù)輸入的月份查詢每月的收支情況,能夠?qū)δ吃碌拈_支進(jìn)行刪除操作。二總體方案設(shè)計(jì)1.整體設(shè)計(jì)思路系統(tǒng)共分五個(gè)子系統(tǒng):信息輸入,信息瀏覽及排序,信息查詢,信息更改,文件操作。在相應(yīng)的系統(tǒng)內(nèi)可完成相應(yīng)的功能。各模塊相對獨(dú)立,每個(gè)模塊用一個(gè)大型的函數(shù)來處理數(shù)據(jù)。主程序:1、信息輸入2、信息瀏覽及排序3、信息查詢4、信息更改5、文件操作0、退出管理系統(tǒng)2.輸入系統(tǒng)功能:輸入數(shù)據(jù),然后將數(shù)據(jù)寫入文件。算法:intenter(MYBILLt[])for(i=0;i<n;i++) {scanf("%s%s%s%s%s%s%s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy);f=atof(t[i].spxf)+atof(t[i].fzfy)+atof(t[i].znjy)+atof(t[i].sdfy)+atof(t[i].ylfy)+atof(t[i].cxfy);sprintf(t[i].srfy,"%.2f",f);}voidsave(MYBILLt[],intn)for(i=0;i<n;i++){fprintf(fp,"%-8s%4s%13s%8s%7s%12s%8s%12s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].srfy,t[i].cxfy);fprintf(fp,"\r\n");}3.排序系統(tǒng)功能:1、按月份排序2、按輸入排序算法:voidmonthsort(MYBILLt[],intn)for(i=0;i<n;i++){flag=0;for(j=0;j<n-1;j++)if((strcmp(t[j].month,t[j+1].month))>0){flag=1;temp=t[j];t[j]=t[j+1];t[j+1]=temp;}if(flag==0)break;}voidsrfysort(MYBILLt[],intn)for(i=0;i<n;i++){flag=0;for(j=0;j<n-1;j++)if((strcmp(t[j].srfy,t[j+1].srfy))>0){flag=1;temp=t[j];t[j]=t[j+1];t[j+1]=temp;}if(flag==0)break;}4.查詢系統(tǒng)功能:按月份循序查找,調(diào)用輸出函數(shù)輸出算法:voidmonthsearch(MYBILLt[],intn)for(i=0;i<n;++i){if(strcmp(s,t[i].month)==0){mprint(t[i]);break;}}voidmprint(MYBILLtemp)printf("%8s%6s%10s%10s%10s%10s%10s%10s\n",temp.month,temp.spxf,temp.fzfy,temp.znjy,temp.sdfy,temp.ylfy,temp.cxfy,temp.srfy);5.刪除系統(tǒng)功能:先是查找要刪除的月份賬單,然后對其刪除,刪除某月賬單后,其它的月份依次向前移動算法:intdelet(MYBILLt[],intn)//刪除信息for(j=i+1;j<n;j++){strcpy(t[j-1].month,t[j].month);}6.其它部分函數(shù)功能voidlist(MYBILLt[],intn)//輸出voidrewrite(MYBILLt[],intn)//根據(jù)查找月份,修改信息intadd(MYBILLt[],intn)//添加信息intload(MYBILLt[])//讀取文件voidcopy()//另生成新文件7.程序流程圖開始開始列出一個(gè)操作目錄,選擇要操作的編號列出一個(gè)操作目錄,選擇要操作的編號010154325432退出系統(tǒng)信息瀏覽及排序文件操作退出系統(tǒng)信息瀏覽及排序文件操作信息更改信息查詢信息輸入結(jié)束列出操作目錄選擇要操作編號結(jié)束列出操作目錄選擇要操作編號三命令行界面代碼#include"stdio.h"#include"stdlib.h"#include<string.h>#include"conio.h"typedefstruct{charmonth[10];charspxf[5];charsdfy[5];charylfy[5];charcxfy[5];charfzfy[5];charznjy[5];charsrfy[20];}MYBILL;voidmprint(MYBILLtemp){printf("月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲蓄費(fèi)用本月收入\n");printf("\n");printf("%8s%6s%10s%10s%10s%10s%10s%10s\n",temp.month,temp.spxf,temp.fzfy,temp.znjy,temp.sdfy,temp.ylfy,temp.cxfy,temp.srfy);}//輸入信息intenter(MYBILLt[]){inti,n;doublef;system("cls");printf("請確定您要輸入幾個(gè)月的賬單:");scanf("%d",&n);if(n>0){printf("請輸入您的個(gè)人賬單信息:\n");printf("\n月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲蓄費(fèi)用\n");printf("\n");for(i=0;i<n;i++){scanf("%s%s%s%s%s%s%s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy);f=atof(t[i].spxf)+atof(t[i].fzfy)+atof(t[i].znjy)+atof(t[i].sdfy)+atof(t[i].ylfy)+atof(t[i].cxfy);sprintf(t[i].srfy,"%.2f",f);printf("\n");}printf("信息錄入成功!");returnn;}if(n<=0)printf("對不起,您輸入的月數(shù)不正確!\n");exit(0);}//輸出voidlist(MYBILLt[],intn){inti;system("cls");printf("***********************************個(gè)人賬簿信息*********************************\n");printf("總共有%d個(gè)月的賬單\n",n);printf("月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲蓄費(fèi)用本月收入\n");for(i=0;i<n;i++){printf("%8s%6s%10s%10s%10s%10s%10s%10s\n",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy,t[i].srfy);if((i+1)%10==0){printf("請輸入任意鍵繼續(xù)\n");getchar();}}}//根據(jù)月份查找,參數(shù)有結(jié)構(gòu)體變量,長度,字符指針intmonthfind(MYBILLt[],intn,char*s){inti;for(i=0;i<n;i++){if(strcmp(s,t[i].month)==0)returni;}returni;}//根據(jù)月份查找,刪除信息intdelet(MYBILLt[],intn){chars[20];intch=0;inti,j;printf("請輸入您要刪除賬單的月份:\n");scanf("%s",s);i=monthfind(t,n,s);if(i>n-1)printf("對不起,沒有找到要刪除的月份的賬單!\n");else{mprint(t[i]);printf("您確認(rèn)要刪除該月的賬單么?(1.是/0.否)\n");scanf("%d",&ch);if(ch==1){for(j=i+1;j<n;j++){strcpy(t[j-1].month,t[j].month);strcpy(t[j-1].spxf,t[j].spxf);strcpy(t[j-1].fzfy,t[j].fzfy);strcpy(t[j-1].znjy,t[j].znjy);strcpy(t[j-1].sdfy,t[j].sdfy);strcpy(t[j-1].ylfy,t[j].ylfy);strcpy(t[j-1].cxfy,t[j].cxfy);strcpy(t[j-1].srfy,t[j].srfy);}n--;printf("記錄刪除成功!\n");}}returnn;}//根據(jù)查找月份,修改信息voidrewrite(MYBILLt[],intn){chars[20];intch=0;inti;doublef;printf("請輸入您要修改的賬單的月份:\n");scanf("%s",s);i=monthfind(t,n,s);if(i>n-1)printf("對不起,沒有找到要修改的記錄!\n");else{mprint(t[i]);printf("您確定要修改這條記錄么?(1.是/0.否)\n");scanf("%d",&ch);if(ch==1){printf("請輸入新的記錄\n");printf("月份食品消費(fèi)房租費(fèi)用子女教育費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲蓄費(fèi)用\n");printf("\n");scanf("%s%s%s%s%s%s%s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy);f=atof(t[i].spxf)+atof(t[i].fzfy)+atof(t[i].znjy)+atof(t[i].sdfy)+atof(t[i].ylfy)+atof(t[i].cxfy);sprintf(t[i].srfy,"%.2f",f);printf("\n");printf("記錄修改成功!\n");}}}//添加信息intadd(MYBILLt[],intn){MYBILLtemp;inti,j;doublef;chars[20];printf("請輸入您要插入的記錄:\n");printf("月份食品消費(fèi)房租費(fèi)用子女教育費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲蓄費(fèi)用\n");printf("\n");scanf("%s%s%s%s%s%s%s",temp.month,temp.spxf,temp.fzfy,temp.znjy,temp.sdfy,temp.ylfy,temp.cxfy);f=atof(temp.spxf)+atof(temp.fzfy)+atof(temp.znjy)+atof(temp.sdfy)+atof(temp.ylfy)+atof(temp.cxfy);sprintf(temp.srfy,"%.2f",f);printf("\n");printf("請輸入您要插入的位置:\n");scanf("%s",s);i=monthfind(t,n,s);//根據(jù)查找月份,找到要添加的位置for(j=n-1;j>=i;j--){strcpy(t[j+1].month,t[j].month);strcpy(t[j+1].spxf,t[j].spxf);strcpy(t[j+1].fzfy,t[j].fzfy);strcpy(t[j+1].znjy,t[j].znjy);strcpy(t[j+1].sdfy,t[j].sdfy);strcpy(t[j+1].ylfy,t[j].ylfy);strcpy(t[j+1].cxfy,t[j].cxfy);strcpy(t[j+1].srfy,t[j].srfy);}strcpy(t[i].month,temp.month);//在最后添加strcpy(t[i].spxf,temp.spxf);strcpy(t[i].fzfy,temp.fzfy);strcpy(t[i].znjy,temp.znjy);strcpy(t[i].sdfy,temp.sdfy);strcpy(t[i].ylfy,temp.ylfy);strcpy(t[i].cxfy,temp.cxfy);strcpy(t[i].srfy,temp.srfy);n++;printf("記錄插入成功!\n");returnn;}//寫入文件voidsave(MYBILLt[],intn){inti;FILE*fp;if((fp=fopen("mybill.txt","wb"))==NULL){printf("文件不能打開!\n");exit(1);}fprintf(fp,"%d",n);fprintf(fp,"\r\n");for(i=0;i<n;i++){fprintf(fp,"%-8s%4s%13s%8s%7s%12s%12s%8s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy,t[i].srfy);fprintf(fp,"\r\n");}fclose(fp);}//讀取文件intload(MYBILLt[]){inti,n;FILE*fp;if((fp=fopen("mybill.txt","rb"))==NULL)//只讀取文件{printf("對不起,不能打開文件!\n");exit(1);}fscanf(fp,"%d",&n);for(i=0;i<n;i++)fscanf(fp,"%s%s%s%s%s%s%s%s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy,t[i].srfy);fclose(fp);returnn;}//按月份排序voidmonthsort(MYBILLt[],intn){inti,j,flag;MYBILLtemp;for(i=0;i<n;i++){flag=0;for(j=0;j<n-1;j++)if((strcmp(t[j].month,t[j+1].month))>0)//前后兩個(gè)字符串相互比較{flag=1;temp=t[j];t[j]=t[j+1];t[j+1]=temp;}if(flag==0)break;}printf("按月份排序成功!\n");}//按收入排序voidsrfysort(MYBILLt[],intn){inti,j,flag;MYBILLtemp;for(i=0;i<n;i++){flag=0;for(j=0;j<n-1;j++)if((strcmp(t[j].srfy,t[j+1].srfy))>0){flag=1;temp=t[j];t[j]=t[j+1];t[j+1]=temp;}if(flag==0)break;}printf("按每月收入排序成功!\n");}//另生成新文件voidcopy(){charoutfile[20];inti,n;MYBILLt;FILE*sfp,*tfp;if((sfp=fopen("mybill.txt","rb"))==NULL){printf("對不起,不能打開您所需要的文件!\n");exit(1);}printf("請輸入目標(biāo)文件名,例如:c:\\f1\\mybill.txt\n");scanf("%s",outfile);if((tfp=fopen(outfile,"wb"))==NULL){printf("對不起,不能打開您所需要的文件!\n");exit(1);}fscanf(sfp,"%d",&n);//從sfp中讀取文件fprintf(tfp,"%d",n);//寫入tfp中fprintf(tfp,"\r\n");for(i=0;i<n;i++){fscanf(sfp,"%s%s%s%s%s%s%s%s",t.month,t.spxf,t.fzfy,t.znjy,t.sdfy,t.ylfy,t.cxfy,t.srfy);fprintf(tfp,"%-8s%4s%13s%8s%7s%12s%12s%8s",t.month,t.spxf,t.fzfy,t.znjy,t.sdfy,t.ylfy,t.cxfy,t.srfy);fprintf(tfp,"\r\n");}fclose(sfp);fclose(tfp);}//根據(jù)月份查找,參數(shù)結(jié)構(gòu)體,長度voidmonthsearch(MYBILLt[],intn){chars[20];inti;printf("請輸入您要查找的月份:");scanf("%s",s);for(i=0;i<n;++i){if(strcmp(s,t[i].month)==0){mprint(t[i]);//輸出該月信息break;}}if(i==n)printf("對不起,查找不到您所需要的信息!");}voidshowpaixu(MYBILLbill[],intlength){intchoice;menu1:system("cls");printf("*************************個(gè)人賬簿信息管理系統(tǒng)***********************\n\n");printf("1.顯示全部信息\n\n");printf("2.按月份順序排序\n\n");printf("3.按每月收入排序\n\n");printf("0.返回上一級菜單\n\n");printf("請選擇(0-3)\n");scanf("%d",&choice);switch(choice){case1:length=load(bill);list(bill,length);printf("請按任意鍵返回...\n");getch();break;case2:length=load(bill);monthsort(bill,length);list(bill,length);save(bill,length);printf("請按任意鍵返回...\n");getch();break;case3:length=load(bill);srfysort(bill,length);list(bill,length);save(bill,length);printf("請按任意鍵返回...\n");getch();break;case0:return;}gotomenu1;}voidchazhao(MYBILLbill[],intlength){intchoice;menu2:system("cls");printf("*************************個(gè)人賬簿信息管理系統(tǒng)*************************\n\n");printf("1.經(jīng)過月份查詢\n\n");printf("0.返回上一級菜單\n\n");printf("請選擇(0-1):\n");scanf("%d",&choice);switch(choice){case1:length=load(bill);monthsearch(bill,length);printf("請按任意鍵返回...\n");getch();break;case0:return;}gotomenu2;}voidbiangeng(MYBILLbill[],intlength){intchoice;menu3:system("cls");printf("***************************個(gè)人賬簿管理系統(tǒng)*************************\n\n");printf("1.刪除記錄\n\n");printf("2.修改記錄\n\n");printf("3.添加記錄\n\n");printf("0.返回上一級菜單\n\n");printf("請選擇(0-3):\n");scanf("%d",&choice);switch(choice){case1:length=load(bill);length=delet(bill,length);save(bill,length);printf("請按任意鍵返回...\n");getch();break;case2:length=load(bill);rewrite(bill,length);save(bill,length);printf("請按任意鍵返回...\n");getch();break;case3:length=load(bill);length=add(bill,length);save(bill,length);printf("請按任意鍵返回...\n");getch();break;case0:return;}gotomenu3;}voidwenjian(MYBILLbill[],intlength){intchoice;menu4:system("cls");printf("*************************個(gè)人賬簿管理系統(tǒng)*************************\n\n");printf("1.保存文件\n\n");printf("2.另存新文件\n\n");printf("0.返回上一級菜單\n\n");printf("請選擇(0-2):\n");scanf("%d",&choice);switch(choice){case1:length=load(bill);printf("您已經(jīng)成功的將文件保存!\n");printf("請按任意鍵返回...\n");getch();break;case2:copy();printf("新文件生成!\n");printf("請按任意鍵返回...\n");getch();break;case0:return;}gotomenu4;}voidmain(){intchoice;intlength;MYBILLbill[20];menu:system("cls");printf("**************************個(gè)人賬簿管理系統(tǒng)**************************\n\n");printf("請選擇以下賬簿管理功能:\n\n");printf("1.信息輸入\n\n");printf("2.信息瀏覽及排序\n\n");printf("3.信息查詢\n\n");printf("4.信息更改\n\n");printf("5.文件操作\n\n");printf("0.退出管理系統(tǒng)\n\n");printf("請選擇(0-5):\n");scanf("%d",&choice);switch(choice){case1:length=enter(bill);save(bill
溫馨提示
- 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屆河北省唐山市高三下學(xué)期第一次模擬考試政治試題(原卷版+解析版)
- 2025年空調(diào)箱總成合作協(xié)議書
- 5.5顯微鏡和望遠(yuǎn)鏡 說課稿 2025年初中人教版物理八年級上冊
- 晚上打瞌睡檢討書
- 關(guān)于志愿者的活動方案
- 證監(jiān)局回復(fù)函立案
- 《商業(yè)插畫創(chuàng)意與表現(xiàn)》課件-【5】商業(yè)插畫的材料與表現(xiàn)技法
- 一體化污水處理設(shè)備采購安裝及運(yùn)維 投標(biāo)方案(技術(shù)方案)
- 三農(nóng)村基層教育資源配置與優(yōu)化方案
- 教育行業(yè)教師培訓(xùn)與成長計(jì)劃
- 《短視頻拍攝與制作》課件-3短視頻中期拍攝
- 瀏陽煙花術(shù)語大全
- 五星級酒店前廳管理常用表格
- 居民心理健康知識講座課件
- 《養(yǎng)老護(hù)理員》-課件:老年人安全防范及相關(guān)知識
- 2024年英語專業(yè)四級考試真題及詳細(xì)答案
- 成語故事葉公好龍
- MHT:中小學(xué)生心理健康檢測(含量表與評分說明)
- 制度修訂培訓(xùn)課件
- 項(xiàng)目立項(xiàng)申請說明(共6篇)
- 特種設(shè)備作業(yè)人員體檢表(叉車)
評論
0/150
提交評論