版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告?zhèn)€人賬簿管理系統(tǒng)學(xué)院:數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院班級(jí):信息與計(jì)算科學(xué)13級(jí)學(xué)號(hào):1060413014048姓名:張童目錄1系統(tǒng)功能分析 1.1.1 個(gè)人賬簿管理 1.1.2 解決個(gè)人賬簿管理2.1.2.1 概要分析2.1.2.2 流程圖3.2系統(tǒng)總體設(shè)計(jì)4.2.1 系統(tǒng)總體設(shè)計(jì)思路4.2.2 各個(gè)功能模塊簡(jiǎn)介4.2.2. 1 結(jié)構(gòu)體數(shù)組43界面設(shè)計(jì)5.3.1 主界面:5.3.2 顯示輸入數(shù)據(jù)界面5.3.3 顯示所有輸入數(shù)據(jù)界面63.4 添加數(shù)據(jù)界面6.3.5 刪除六月份的數(shù)據(jù)信息界面 73.6 按收入排序界面7.4小結(jié)8.參考文獻(xiàn)9.附錄:程序源代碼1.0數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告1系
2、統(tǒng)功能分析本程序可以實(shí)現(xiàn)個(gè)人賬簿的按月份插入、輸出、修改、查詢、刪除、按收入排序、按月份大小排序、將數(shù)據(jù)保存到文件和加載文件數(shù)據(jù)等功能,其中每一個(gè)功能,都分別使用了一個(gè)函數(shù),其中程序的主界面簡(jiǎn)潔明了??梢园粗鹘缑娴奶嵝⊥瓿擅恳粔K功能。1)問(wèn)題描述個(gè)人帳簿管理系統(tǒng)記錄某人每月的全部收入及各項(xiàng)開(kāi)支情況,包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄等。進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對(duì)每月的開(kāi)支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。2)基本要求(1)初步完成總體設(shè)計(jì),搭好框架,確定人機(jī)對(duì)話的界面,確定函數(shù)個(gè)數(shù);(2)完成最低要求:建立一個(gè)文件,包括某人5個(gè)月的
3、收支情況,能對(duì)文件中的信息進(jìn)行擴(kuò)充(追加),修改和刪除;(3)進(jìn)一步要求:完成對(duì)每月的開(kāi)支排序,以及完成系統(tǒng)查詢功能。有興趣的同學(xué)可以自己擴(kuò)充系統(tǒng)功能。1.1 個(gè)人賬簿管理在程序中定義了一個(gè)結(jié)構(gòu)體主要包括(月份,全部的收入,食品開(kāi)支,房租,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄,子女教育費(fèi)和總體的支出費(fèi)用)其次定義了10個(gè)函數(shù),分別是輸入信息,查看指定月份信息,查看全部月份信息,插入信息,修改信息,刪除指定月份信息,按月份大小排序,按總收入排序,保存數(shù)據(jù)到文件和加載文件數(shù)據(jù)。其中每一個(gè)程序都能實(shí)現(xiàn)相應(yīng)部分的功能,并且使用了結(jié)構(gòu)體數(shù)組的操作,通過(guò)對(duì)結(jié)構(gòu)體數(shù)組的操作和文件的操作完成各自對(duì)應(yīng)的功能。31.2 解決個(gè)人
4、賬簿管理1.2.1 概要分析個(gè)人賬簿管理通過(guò)以下函數(shù)實(shí)現(xiàn):Input(PEL*a);/輸入個(gè)人收支信息國(guó)數(shù)Myprintf(PEL*a);/打印指定月份收支信息函數(shù)Allprintf(PEL*a);/打印所以月份收支信息函數(shù)Add(PEL*a);/添加指定月份收支信息函數(shù)Modify(PEL*a);/修改指定月份收支信息函數(shù)Delrecord(PEL*a);/刪除指定月份收支信息函數(shù)Yuepaixu(PEL*a);/按月份大小排序函數(shù)Zongpaixu(PEL*a);/按總收入排序函數(shù)Save(PEL*a);/將所以收支信息保存到文件函數(shù)Load(PEL*a);/加載文件的信息到結(jié)構(gòu)體數(shù)組函數(shù)
5、這十個(gè)函數(shù)分別完成每一部分功能,其中都是與主函數(shù)調(diào)用相對(duì)應(yīng)的函數(shù),完成相應(yīng)的功能。退堂統(tǒng)3界面設(shè)計(jì)2系統(tǒng)總體設(shè)計(jì)2.1 系統(tǒng)總體設(shè)計(jì)思路個(gè)人賬簿管理系統(tǒng)可以通過(guò)創(chuàng)建一個(gè)結(jié)構(gòu)體數(shù)組,通過(guò)輸入信息函數(shù),查看指定月份信息函數(shù),查看全部月份信函數(shù)息,插入信息函數(shù),修改信息函數(shù),刪除指定月份信息函數(shù),按月份大小排序函數(shù),按總收入排序函數(shù),保存數(shù)據(jù)到文件函數(shù)和加載文件數(shù)據(jù)函數(shù)對(duì)結(jié)構(gòu)體數(shù)組操作來(lái)完成系統(tǒng)的主要功能,其中每一個(gè)功能都為對(duì)應(yīng)的一個(gè)函數(shù),增加程序的可讀性,以實(shí)現(xiàn)程序的整體功能。2.2 各個(gè)功能模塊簡(jiǎn)介2.2.1結(jié)構(gòu)體數(shù)組首先創(chuàng)建一個(gè)結(jié)構(gòu)體數(shù)組,以便將各種收支信息存入到結(jié)構(gòu)體數(shù)組。typedefst
6、ructpersonalintmonth;月份floatfoodxiaofei;/食品消費(fèi)floatfangzu;/房租floatzinvxiaofei;子女教育消費(fèi)floatshuidianfei;/水電費(fèi)floatyiliaofei;/醫(yī)療費(fèi)floatmoneyin;/儲(chǔ)蓄floatyueshouru;月收入PEL;PELaN;73.1王界面:圖23.2 顯示輸入數(shù)據(jù)界面需爭(zhēng)軟需大幾個(gè)月的賬單需nS000off003322說(shuō)昔向H。儲(chǔ)字苛用收入費(fèi)用123.3 顯示所有輸入數(shù)據(jù)界面本月月份食品消費(fèi)層租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用收費(fèi)用入1100.00250.003BBI.I0050.
7、00100.00300.003000.00100.00250.QO300.,0050.00100.00300.003aS0.00102.002aM4甌0020.0B200.RR100.004000.00210.00120.Idt)3。乩005B.B4修修.W1BQ.Q04HHH100.002OO.QS100.,0051.0024Q.SG100.005000.Q32。.阿附10SL50,B0400.Q0G0Q.0H600日時(shí)附個(gè)人帳簿管理系統(tǒng)選擇操作;3.4 添加數(shù)據(jù)界面3.5刪除六月份的數(shù)據(jù)信息界面StHXX問(wèn)問(wèn)NN-看孰孰A挑問(wèn)燈X問(wèn)問(wèn)MNNUtAatSt問(wèn)陽(yáng)問(wèn)問(wèn)NNH!網(wǎng)a1_yJtJtH
8、!WJf!WStKKK本月月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用收費(fèi)用人1130.00250.033OB.0050.00100.00300.033000.00220U.UU修2HM-的6工HH.HH3210.0B120-003BB.AA50.00400.0B:1030040丹烏.伊。4100.00230,00100.0351.00240.0B100,005000.00S320.00200,00100.0050,00400.00600.006000.007233.00303.03440.00E33.00G63.00700.308000.00KWIiCRbliIXMWXXWWBtfX
9、HIWlpmXXWWatfKWBX*NItfA*'有INK;KXNK-a<ltflWM3.6按收入排序界面9食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用音普菁*音著音音堇有*利*M-M-M選擇操作:3WlXXn|M!1tMMJMXXftiWWltWIHMXMiMXiMKXaflHMJt按每月總收入排序成功!個(gè)人帳簿杏理系統(tǒng)4-57本月月份11MU.»U2S0.»kJ,U0SU.UId1皿.的嶼1U2.MM4UHi."皿,MIH21H.BB120.00300.U050.00400.H0儲(chǔ)蓄費(fèi)用收費(fèi)用人1»U.004000.100.SO320.00
10、200.00200.00200.0010B.00100,00100.00B000.00600.006000,007A0.008000.004小結(jié)個(gè)人賬簿管理系統(tǒng)主要實(shí)現(xiàn)了對(duì)個(gè)人收支信息的增刪改和保存,使我們的生活更加便捷。同時(shí)通過(guò)這次軟件課程設(shè)計(jì)使我了解到了:寫一個(gè)程序首先要有算法,而算法有很多種,使用最優(yōu)的算法,能節(jié)約很多時(shí)間和加快系統(tǒng)的速度。在這個(gè)程序中,主要還是利用了C語(yǔ)言中數(shù)組和文件的操作,其中最主要的就是結(jié)構(gòu)體數(shù)組的讀寫,還有查找、修改及刪除數(shù)組中的數(shù)據(jù)。刪除數(shù)據(jù)記得一定不能越界。文件操作還是比較復(fù)雜的,首先要?jiǎng)?chuàng)建一個(gè)文件指針,通過(guò)函數(shù)按一定的格式將數(shù)據(jù)信息讀取或者寫入。在結(jié)構(gòu)體的操
11、作用,不能直接給結(jié)構(gòu)體變量賦值。這個(gè)程序的界面編的雖然不怎么好看,但基本賬簿管理的功能都達(dá)到了。但是還有許多地方需要改進(jìn)。在這次課程設(shè)計(jì)中,我學(xué)習(xí)到了,不管做什么事情還是團(tuán)隊(duì)協(xié)作,才可以使一件事情辦得最后,一個(gè)人的力量永遠(yuǎn)是有限的,不管一個(gè)人的能力有多大,總會(huì)有一些地方的不足,尤其是我們編程這一行,最主要的還是要團(tuán)隊(duì)合作。其次就是寫程序時(shí)要用到注釋,因?yàn)橐粋€(gè)程序是由幾個(gè)人寫出來(lái)的,假如不寫注釋的話,就相互都看不懂,也不能實(shí)現(xiàn)程序的結(jié)合,所以說(shuō)寫程序時(shí)注釋很重要。最后,我覺(jué)得不管做什么事情必須認(rèn)認(rèn)真真的做,要沉得下心來(lái),尤其是寫程序,假如沉不下心來(lái)做的話,也決對(duì)寫不出一個(gè)好的程序或者實(shí)用的程序來(lái)
12、。#參考文獻(xiàn)1嚴(yán)蔚敏、吳偉民編著.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).清華大學(xué)出版社。2藤國(guó)文等編著.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì).北京:清華大學(xué)出版社。3齊景嘉編著.數(shù)據(jù)結(jié)構(gòu)(含實(shí)訓(xùn)I).東南大學(xué)出版社。4朱儒榮、朱輝等編著.數(shù)據(jù)結(jié)構(gòu)常見(jiàn)題型解析與模擬題西北工業(yè)大學(xué)出版社。5徐孝凱,賀桂英等編著.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言描述).清華大學(xué)出版社。6徐孝凱編著.數(shù)據(jù)結(jié)構(gòu)實(shí)用教程.北京:清華大學(xué)出版社。7嚴(yán)蔚敏,陳文博編著.數(shù)據(jù)結(jié)構(gòu)及算法教程.北京:清華大學(xué)出版社。8劉振安,劉燕君等編著.C程序設(shè)計(jì)課程設(shè)計(jì).北京:機(jī)械出版社。9李建學(xué)、李光元、吳春芳等編著.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例精編.清華大學(xué)出版社。13附錄:程序源代碼/*個(gè)人帳簿
13、管理系統(tǒng)記錄某人每月的全部收入及各項(xiàng)開(kāi)支情況,包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄等。進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對(duì)每月的開(kāi)支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。*/*要求:根據(jù)以上任務(wù)說(shuō)明,設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),并設(shè)計(jì)程序完成功能。*/#include<stdio.h>#include<string.h>#include<math.h>#include<malloc.h>#include<stdlib.h>#defineN12typedefstructpersonalintmonth;/
14、月份floatfoodxiaofei;/食品消費(fèi)float fangzu; /房租floatzinvxiaofei;/子女教育消費(fèi)floatshuidianfei;/水電費(fèi)float yiliaofei; /醫(yī)療費(fèi)floatmoneyin;/儲(chǔ)蓄floatyueshouru;/月收入PEL;voidinput(PEL*a)/輸入月消費(fèi)intn,i;printf("確定要輸入幾個(gè)月的賬單:”);scanf("%d",&n);if(n>0&&n<13)printf("n請(qǐng)依次輸入數(shù)據(jù)說(shuō)明:中間以空格符隔開(kāi):n")
15、;printf("本月月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用收入費(fèi)用n");for(i=1;i<n;i+)scanf("%d%f%f%f%f%f%f%f",&ai.month,&ai.foodxiaofei,&ai.fangzu,&ai.zinvxiaofei,&ai.shuidianfei,&ai.yiliaofei,&ai.moneyin,&ai.yueshouru);printf("信息錄入成功!n");elseprintf("輸入有誤
16、!n");exit(0);voidyuepaixu(PEL*a)/月排序inti,j,k=0;PELtmp;for(i=0;i<N;i+)if(ai.month!=0)k+;for(i=0;i<k;i+)for(j=0;j<k+;)if(aj.month>=aj+1.month)tmp=aj;aj=aj+1;aj+1=tmp;printf("按月份排序成功!n");voidzongpaixu(PEL*a)/總收入排序PELtmp;inti,j,k=0,t;for(i=0;i<N;i+)if(ai.month!=0)k+;printf(
17、"n");for(i=0;i<k;i+)for(j=0;j<k;j+)if(aj.yueshouru>=aj+1.yueshouru)tmp=aj;aj=aj+1;aj+1=tmp;printf("按每月總收入排序成功!n");intmon;printf("請(qǐng)輸入要修改的月份:”);scanf("%d”,&mon);inti=0;printf("本月月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用收入費(fèi)用n");for(i=0;i<N;i+)if(ai.month=mon)sca
18、nf("%d%f%f%f%f%f%f%f",&ai.month,&ai.foodxiaofei,&ai.fangzu,&ai.zinvxiaofei,&ai.shuidianfei,&ai.yiliaofei,&ai.moneyin,&ai.yueshouru);printf("修改指定月份數(shù)據(jù)成功!n");voiddelrecord(PEL*a)/刪除指定月份數(shù)據(jù)函數(shù)intmon;printf("請(qǐng)輸入要修改的月份:");scanf("%d”,&mon
19、);inti,k;for(i=0;i<N;i+)if(ai.month=mon)k=i;for(i=k;i<N-1;i+)ai=ai+1;printf("刪除指定月份數(shù)據(jù)成功!n");voidadd(PEL*a)/添加數(shù)據(jù)intn,i,k=0;printf("確定要輸入增加幾個(gè)個(gè)月的賬單:”);scanf("%d",&n);printf("n請(qǐng)依次輸入數(shù)據(jù)說(shuō)明:中間以空格符隔開(kāi):n");for(i=0;i<N;i+)if(ai.month!=0)k+;for(i=k;i<n+k;i+)prin
20、tf("本月月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用收入費(fèi)用)n");scanf("%d%f%f%f%f%f%f%f",&ai.month,&ai.foodxiaofei,&ai.fangzu,&ai.zinvxiaofei,&ai.shuidianfei,&ai.yiliaofei,&ai.moneyin,&ai.yueshouru);printf("信息添加成功!");voidmyprintf(PEL*a)/打印指定月份數(shù)據(jù)函數(shù)intmon;printf(
21、"請(qǐng)輸入要查看的月份n");scanf("%d”,&mon);inti=0;n");printf("n本月月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用收費(fèi)用入n");for(i=0;i<N;i+)if(ai.month=mon)%9.2f%8.2fn",ai.month,printf("%4dt%8.2f%8.2f%8.2f%9.2f%10.2fai.foodxiaofei,ai.fangzu,ai.zinvxiaofei,ai.shuidianfei,ai.yiliaofei,ai.mone
22、yin,ai.yueshouru);printf("*end*n");void allprintf(PEL *a)/打印所有月份數(shù)據(jù)19inti=0;printf("n*all*n'');printf("n本月月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用收費(fèi)用入n");for(i=0;i<N;i+)if(ai.month!=0)%9.2f%8.2fn",ai.month,printf("%4dt%8.2f%8.2f%8.2f%9.2f%10.2fai.foodxiaofei,ai.fangzu,
23、ai.zinvxiaofei,ai.shuidianfei,ai.yiliaofei,ai.moneyin,ai.yueshouru);printf("*end*n");voidsave(PEL*a)/寫入文件inti;FILE*fp;if(fp=fopen("mybill.txt","wb")=NULL)printf("文件不能打開(kāi)!n");exit(1);for(i=0;i<N;i+)fprintf(fp,"%dt%.3ft%.3ft%.3ft%.3ft%.3ft%.3ft%.3f",
24、ai.month,ai.foodxiaofei,ai.fangzu,ai.zinvxiaofei,ai.shuidianfei,ai.yiliaofei,ai.moneyin,ai.yueshouru);fprintf(fp,"rn");fclose(fp);printf("寫入文件成功!");voidload(PEL*a)讀取文件inti;FILE*fp;if(fp=fopen("mybill.txt","rb")=NULL)/只讀取文件printf("對(duì)不起,不能打開(kāi)文件!n");exit(1);for(i=0;i<N;i+)fscanf(fp,"%d%f%f%f%f%f%f%f',&ai.month,&ai.foodxiaofei,&ai.fangzu,&ai.zinvxiaofei,&ai.shu
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度水路貨運(yùn)運(yùn)輸承包服務(wù)合同2篇
- 二零二五版水電安裝工程安全評(píng)估與施工合同2篇
- 二零二五版農(nóng)業(yè)貸款定金合同規(guī)范文本3篇
- 二零二五版幼兒園教師勞動(dòng)權(quán)益保護(hù)及勞動(dòng)合同解除程序協(xié)議3篇
- 二零二五版房產(chǎn)托管居間服務(wù)合同協(xié)議3篇
- 二零二五年房地產(chǎn)物業(yè)管理合作開(kāi)發(fā)合同3篇
- 二零二五年度重點(diǎn)單位保安勤務(wù)合同5篇
- 二零二五版微電影導(dǎo)演定制化拍攝合同3篇
- 二零二五版KTV員工心理健康關(guān)愛(ài)計(jì)劃合同2篇
- 二零二五年度高端酒店場(chǎng)地租賃合同范本2篇
- 供銷合同(完整版)
- 二零二五年企業(yè)存單質(zhì)押擔(dān)保貸款合同樣本3篇
- 鍋爐安裝、改造、維修質(zhì)量保證手冊(cè)
- 油氣行業(yè)人才需求預(yù)測(cè)-洞察分析
- (2024)河南省公務(wù)員考試《行測(cè)》真題及答案解析
- 1000只肉羊養(yǎng)殖基地建設(shè)項(xiàng)目可行性研究報(bào)告
- 《勞保用品安全培訓(xùn)》課件
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)內(nèi)容解讀
- 2024院感年終總結(jié)報(bào)告
- 高一化學(xué)《活潑的金屬單質(zhì)-鈉》分層練習(xí)含答案解析
- 04S206自動(dòng)噴水與水噴霧滅火設(shè)施安裝圖集
評(píng)論
0/150
提交評(píng)論