版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024影音室吸音板安裝與聲學(xué)效果提升合同3篇
- 2025年度辦公家具定制與安裝合同3篇
- 2024年生物科技項(xiàng)目投資合作合同2篇
- 2024建筑業(yè)勞務(wù)施工協(xié)議標(biāo)準(zhǔn)文本版B版
- 保山中醫(yī)藥高等??茖W(xué)校《建筑荷載》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年車間專用機(jī)械設(shè)備租賃合同版B版
- 2024年版汽車租賃合同:包含車輛類型、租賃期限、租金及付款方式的詳細(xì)規(guī)定
- 2025年度智能化工廠安全責(zé)任全面協(xié)議書3篇
- 2024年酒店股權(quán)合資合同范本
- 2025版建筑垃圾回收工程零星施工合同
- 掃描電子顯微鏡(SEM)-介紹-原理-結(jié)構(gòu)-應(yīng)用
- 北京市海淀區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期中考試英語試卷(含答案)
- 中資企業(yè)出海報(bào)告:潮涌浪闊四海揚(yáng)帆
- 老舊小區(qū)改造室外消火栓工程施工方案和技術(shù)措施
- 《地質(zhì)災(zāi)害監(jiān)測(cè)技術(shù)規(guī)范》
- 2024-2030年中國(guó)云母制品制造市場(chǎng)發(fā)展?fàn)顩r及投資前景規(guī)劃研究報(bào)告
- 2025年上半年內(nèi)蒙古鄂爾多斯伊金霍洛監(jiān)獄招聘17名(第三批)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 24秋國(guó)家開放大學(xué)《農(nóng)產(chǎn)品質(zhì)量管理》形考任務(wù)1-2+形考實(shí)習(xí)1-3參考答案
- 2024-2025學(xué)年人教版八年級(jí)上冊(cè)地理期末測(cè)試卷(二)(含答案)
- 80、沈陽桃仙機(jī)場(chǎng)二平滑工程冬期施工方案
- 《STM32Cube嵌入式系統(tǒng)應(yīng)用》HAL庫(kù)版本習(xí)題及答案
評(píng)論
0/150
提交評(píng)論