個(gè)人消費(fèi)管理系統(tǒng)-課程設(shè)計(jì)1_第1頁(yè)
個(gè)人消費(fèi)管理系統(tǒng)-課程設(shè)計(jì)1_第2頁(yè)
個(gè)人消費(fèi)管理系統(tǒng)-課程設(shè)計(jì)1_第3頁(yè)
個(gè)人消費(fèi)管理系統(tǒng)-課程設(shè)計(jì)1_第4頁(yè)
個(gè)人消費(fèi)管理系統(tǒng)-課程設(shè)計(jì)1_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、長(zhǎng)治學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)設(shè)計(jì)題目: 個(gè)人帳簿管理系統(tǒng) 系 別: 計(jì)算機(jī)系 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 組 別: 第22組 學(xué)生姓名: 王冬冬 學(xué) 號(hào): 09407224 起止日期: 2011年 6月29日2011年7月6日 指導(dǎo)教師: 馬 強(qiáng) 目錄1 需求分析21.1課程設(shè)計(jì)題目21.2課程設(shè)計(jì)任務(wù)及要求21.3課程設(shè)計(jì)思想21.4軟硬件運(yùn)行環(huán)境及開發(fā)工具22.概要設(shè)計(jì)22.1課題設(shè)計(jì)的流程32.2主要的數(shù)據(jù)結(jié)構(gòu)、所用方法及原理33.詳細(xì)設(shè)計(jì)33.1計(jì)算機(jī)程序框圖33.2自編的程序44調(diào)試分析及操作說明 15 4.1系統(tǒng)調(diào)試分析 15 4.2操作使用說明 165.課程設(shè)計(jì)

2、總結(jié)與體會(huì) 196.致謝 197.參考文獻(xiàn) 20 1需求分析隨著社會(huì)經(jīng)濟(jì)的發(fā)展,大學(xué)生已經(jīng)成為這個(gè)社會(huì)上一個(gè)很重要的團(tuán)體,而他們的消費(fèi)情況也越來越多的被更多的人關(guān)注,大學(xué)生自己也應(yīng)當(dāng)管理好自己的消費(fèi)內(nèi)容,讓自己的消費(fèi)更加合理化,提高自己生活的質(zhì)量。在這種情況下,就需要一個(gè)軟件對(duì)大學(xué)生每月的消費(fèi)情況作一個(gè)較為詳細(xì)的統(tǒng)計(jì),該系統(tǒng)可以實(shí)現(xiàn)由計(jì)算機(jī)代替人工執(zhí)行吸血復(fù)雜而且較為繁瑣的操作,從而使大學(xué)生們能夠更為便捷地管理自己的消費(fèi),也為其他的一些調(diào)查研究提供了方便。1.1課程設(shè)計(jì)題目個(gè)人消費(fèi)管理系統(tǒng)1.2課程設(shè)計(jì)任務(wù)及要求個(gè)人帳簿管理系統(tǒng)記錄某人每月的全部收入及各項(xiàng)開支情況,包括食品消費(fèi),房租,子女教育

3、費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄等。進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對(duì)每月的開支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。1)初步完成總體設(shè)計(jì),搭好框架,確定人機(jī)對(duì)話的界面,確定函數(shù)個(gè)數(shù);2)完成最低要求:建立一個(gè)文件,包括某人5個(gè)月的收支情況,能對(duì)文件中的信息進(jìn)行擴(kuò)充(追加),修改和刪除;3)進(jìn)一步要求: 完成對(duì)每月的開支排序,以及完成系統(tǒng)查詢功能。有興趣的同學(xué)可以自己擴(kuò)充系統(tǒng)功能。1.3課程設(shè)計(jì)思想根據(jù)課程設(shè)計(jì)任務(wù)及要求,將課程設(shè)計(jì)劃分成若干部分,根據(jù)每部分的要求,分別完成要求編寫程序。1.4軟硬件運(yùn)行環(huán)境及開發(fā)工具軟件的運(yùn)行環(huán)境:windowsxp。所用的開發(fā)工具是V

4、C6+。2.概要設(shè)計(jì)2.1課題設(shè)計(jì)的流程(各功能模塊)本系統(tǒng)主要是對(duì)大學(xué)生消費(fèi)情況的管理,包括了有關(guān)數(shù)據(jù)的錄入、查看、修改、查詢、排序刪除等功能。整個(gè)系統(tǒng)分為以下幾個(gè)模塊。(1)、主界面模塊 本模塊提供大學(xué)生消費(fèi)系統(tǒng)的主菜單界面,供用戶選擇與執(zhí)行各項(xiàng)管理工作。(2)、錄入模塊本模塊用于錄入用戶的具體某一月份的各項(xiàng)消費(fèi)記錄,例如食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi)等。排除不符合的月份,如0=>month>=12。并排除已存在的月份。(3)、查看模塊本模塊用于用戶查看自己已經(jīng)錄入的各項(xiàng)信息,包括用戶每個(gè)月份的各項(xiàng)消費(fèi)情況。(4)、修改模塊本模塊用于用戶對(duì)自己已經(jīng)錄入的信息進(jìn)行修

5、改,修改具體某一月份的信息。(5)、查詢模塊本模塊用于用戶查詢到自己已經(jīng)錄入的信息中某一月份的各項(xiàng)記錄(6)、排序模塊 本模塊用于對(duì)用戶已經(jīng)輸入的某一月份的各項(xiàng)記錄按數(shù)值進(jìn)行升序排列。(7)、刪除模塊 本模塊用于用戶對(duì)自己已經(jīng)錄入的數(shù)據(jù)進(jìn)行刪除。2.2主要的數(shù)據(jù)結(jié)構(gòu)、所用方法及原理。主要的數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體的運(yùn)用以及對(duì)結(jié)構(gòu)體的操作。通過對(duì)子程序的調(diào)用。完成課程設(shè)計(jì)的方法及原理的說明:根據(jù)題目的要求對(duì)課程設(shè)計(jì)做了各個(gè)模塊的劃分,按照各模塊功的不同做不同的處理,最后通過對(duì)各個(gè)模塊的調(diào)用達(dá)到完成課程設(shè)計(jì)的方法。3.詳細(xì)設(shè)計(jì)3.1計(jì)算機(jī)程序框圖 生活消費(fèi)管理系統(tǒng)錄入數(shù)據(jù)查看數(shù)據(jù)修改數(shù)據(jù)修改數(shù)據(jù)查詢數(shù)據(jù)圖

6、1 程序模塊圖3.2自編的程序#include <stdio.h>#include <stdlib.h>#define FilePath1 "Myinfor.dat"#define FilePath2 "Myinfor.txt"#define Status int#define OK 1#define Error 0#define NotFound 2typedef struct Infor int month; int spxf; int fz; int znjy; int sdf; int ylf; int cx; int b

7、yzhf; Infor,*Infor1;typedef struct pType int no; int data; pType;void menu(void);void input1(Infor *newI,int mon);void input(Infor *newI);void writeinfor(Infor *newI);void changeFormat(void );Status search(Infor *a,int mon);void paixu(Infor *a);void modify(Infor *a,int mon);void delRecord(int mon);v

8、oid xuanze(int item);void xiugai(int m);int panduan(Infor *a,int mon);void main() while(1) menu(); void menu(void)/*菜單*/ int item; printf("n"我的大學(xué)"生活消費(fèi)管理系統(tǒng)nn"); printf("tt1.錄 入 數(shù) 據(jù).n"); printf("tt2.查 看 數(shù) 據(jù).n"); printf("tt3.修 改 數(shù) 據(jù).n"); printf("tt

9、4.查 詢 數(shù) 據(jù).n"); printf("tt5.排 序 數(shù) 據(jù).n"); printf("tt6.刪 除 數(shù) 據(jù).n"); printf("tt0.退 出 系 統(tǒng).n"); printf("請(qǐng)輸入要進(jìn)行的操作: " ); scanf("%d",&item);if(item>6 | item<-1) printf("請(qǐng)重新輸入要進(jìn)行的操作: " ); menu(); else xuanze( item); int panduan(Infor

10、*a,int mon) int item; FILE *fp; fp=fopen(FilePath1,"ab+"); if(fp=NULL) printf("無法創(chuàng)建文件:%s",FilePath1); exit(0); if(mon<=12) item=search(a,mon); while(item=OK) printf("輸入月份已存在請(qǐng)重新輸入要建立的月份:n"); scanf("%d",&mon); item=search(a,mon); else printf("您輸入的月份有

11、誤請(qǐng)重新輸入:n"); scanf("%d",&mon); panduan(a,mon); fclose(fp);return mon; void xuanze(int item) int mon;Infor *a; a=(Infor *)malloc(sizeof(Infor); switch(item) case 0: /getchar();/*退出*/ /getchar(); printf("n 歡迎使用"); printf(" nt.tttttt."); printf(" nt.tttttt.&qu

12、ot;);printf(" nt.tttttt."); printf(" nt.tttttt."); printf(" nt. "我的大學(xué)"生活消費(fèi)管理系統(tǒng) ."); printf(" nt.tttttt."); printf(" nt.tttttt."); printf(" nt.tttttt."); printf(" nt.tttttt."); printf(" nt. 歡迎下次使用 ."); printf(&q

13、uot; nt.tttttt."); printf(" nt.tttttt."); printf(" nt.tttttt."); printf(" nt.tttttt."); /printf("n"我的大學(xué)"生活消費(fèi)管理系統(tǒng)nnnn"); /printf("tttttn. 歡迎下次使用 nnnn"); printf("nnnnn"); exit(1); break; case 1: printf("請(qǐng)輸入要建立的月份:n");

14、 scanf("%d",&mon); mon=panduan(a,mon); input1(a,mon); writeinfor(a); break; case 2: changeFormat(); break; case 3: printf("請(qǐng)輸入要查找的月份:n"); scanf("%d",&mon); item=search(a,mon); mon=a->month; if (item!=OK) printf("n沒有符合條件的記錄!n"); else printf("n 記

15、錄月份 食品消費(fèi) 房租 子女教育費(fèi)用 水電費(fèi) 醫(yī)療費(fèi) 儲(chǔ)蓄 本月總花費(fèi) n");printf("- n");printf("%7d %8d %8d %8d %8d %8d %8d %8dn",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf); input(a); modify(a,mon); break; case 4: printf("請(qǐng)輸入要查找的月份:n"); scanf("%d"

16、,&mon); item=search(a,mon); if (item!=OK) printf("n沒有符合條件的記錄!n"); else printf("n記錄月份 食品消費(fèi) 房租 子女教育費(fèi)用 水電費(fèi) 醫(yī)療費(fèi) 儲(chǔ)蓄 本月總花費(fèi) n");printf("- n");printf("%7d %8d %8d %8d %8d %8d %8d %8dn",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->b

17、yzhf); break; case 5: printf("請(qǐng)輸入要查找的月份:n"); scanf("%d",&mon); item=search(a,mon); if (item!=OK) printf("n沒有符合條件的記錄!n"); else paixu(a); break; case 6: printf("請(qǐng)輸入要查找的月份:n"); scanf("%d",&mon); item=search(a,mon); mon=a->month; if (item!=OK)

18、 printf("n沒有符合條件的記錄!n"); else printf("- n");printf("%7d %8d %8d %8d %8d %8d %8d %8dn",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf); delRecord(mon); break; free(a);void input1(Infor *newI,int mon) printf("n請(qǐng)依次輸入數(shù)據(jù)說明:中間以空格符隔開:n

19、( 食品消費(fèi) 房租 子女教育費(fèi)用 水電費(fèi) 醫(yī)療費(fèi) 儲(chǔ)蓄 )n");scanf("%d%d%d%d%d%d",&newI->spxf,&newI->fz,&newI->znjy,&newI->sdf,&newI->ylf,&newI->cx); newI->month=mon;newI->byzhf=newI->spxf+newI->fz+newI->znjy+newI->sdf+newI->ylf+newI->cx; fflush(s

20、tdin);void input(Infor *newI) printf("n請(qǐng)依次輸入數(shù)據(jù)說明:中間以空格符隔開:n( 食品消費(fèi) 房租 子女教育費(fèi)用 水電費(fèi) 醫(yī)療費(fèi) 儲(chǔ)蓄 )n");scanf("%d%d%d%d%d%d",&newI->month,&newI->spxf,&newI->fz,&newI->znjy,&newI->sdf,&newI->ylf,&newI->cx);newI->byzhf=newI->spxf+newI->

21、fz+newI->znjy+newI->sdf+newI->ylf; fflush(stdin);void writeinfor(Infor *newI) FILE *fp; fp=fopen(FilePath1,"ab+"); if(fp=NULL) printf("無法創(chuàng)建文件:%s",FilePath1); exit(0); fwrite(newI,sizeof(Infor),1,fp); fclose(fp); printf("數(shù)據(jù)錄入成功!n");void changeFormat(void) FILE *

22、fp1,*fp2; Infor *a; a=(Infor *)malloc(sizeof(Infor); fp1=fopen(FilePath1,"rb+"); if(fp1=NULL) printf("無法找到文件:%sn",FilePath1); return ; fp2=fopen(FilePath2,"wt+"); if(fp2=NULL) printf("無法創(chuàng)建文件:%sn",FilePath2); return ; /fputs(" n!#¥%&*(&¥#?"我的大

23、學(xué)"生活消費(fèi)管理系統(tǒng)!#¥%&*(&¥#!nn",fp2); fputs("記錄月份 食品消費(fèi) 房租 子女教育費(fèi)用 水電費(fèi) 醫(yī)療費(fèi) 儲(chǔ)蓄 本月總花費(fèi) n",fp2);fputs("- n",fp2);printf("n記錄月份 食品消費(fèi) 房租 子女教育費(fèi)用 水電費(fèi) 醫(yī)療費(fèi) 儲(chǔ)蓄 本月總花費(fèi) n");printf("- n"); rewind(fp1); fread(a,sizeof(Infor),1,fp1); while(!feof(fp1)printf("%7d %

24、8d %8d %8d %8d %8d %8d %8dn",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf);fprintf(fp2,"%7d %8d %8d %8d %8d %8d %8d %8dn",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf); fread(a,sizeof(Infor),1,fp1);fputs(&qu

25、ot;- n",fp2); fputs("關(guān)閉本程序繼續(xù)原程序!n",fp2); fclose(fp1); fclose(fp2); system(FilePath2); remove(FilePath2);Status search(Infor *a,int mon) FILE *fp1; int isfound=0; /printf("請(qǐng)正確輸入要查詢的月份:"); /scanf("%d",&mon); fflush(stdin); fp1=fopen(FilePath1,"rb+"); if

26、(fp1=NULL) printf("無法找到文件:%sn",FilePath1); return Error; rewind(fp1); fread(a,sizeof(Infor),1,fp1); while(!feof(fp1) if(a->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=

27、0,flag=0,t; pType px8=0,0; char str814="記錄月份","食品消費(fèi)"," 房租", "子女教育費(fèi)用", "水電費(fèi)"," 醫(yī)療費(fèi)"," 儲(chǔ)蓄"," 本月總花費(fèi)" for(;i<8;i+) pxi.no=i; px0.data=a->month; px1.data=a->spxf; px2.data=a->fz; px3.data=a->znjy; px4.data=a-&g

28、t;sdf; px5.data=a->ylf; px6.data=a->cx; px7.data=a->byzhf; for(i=1;i<8;i+) flag=0; for(j=0;j<8-i;j+) if(pxj.data>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+) pri

29、ntf(" %s",strpxi.no);printf("n- n"); for(i=0;i<8;i+) printf("%8d ",pxi.data); printf("n");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+&

30、quot;);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" );

31、changeFormat();void delRecord(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(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();4.調(diào)試分析及操作說明4.1系統(tǒng)調(diào)試分析在完成各個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論