【正文】
} void WriteInfor(Infor *new1) {//聲明向文件內(nèi)寫入內(nèi)容的函數(shù) FILE *fp。newIhospital_c, amp。newIfood_c, amp。 } free(data)。 case 0://0、退出系統(tǒng) getchar()。//復(fù)制 if(mode != Ok) printf(\n沒有符合條件的記錄 !\n)。//調(diào)用輸入數(shù)據(jù)函數(shù) } system(pause)。 //判斷輸出 else { printf(\n 記錄月份 食品消費(fèi) 房租費(fèi)用 子女費(fèi)用 水電費(fèi)用 醫(yī)療費(fèi)用 儲(chǔ)蓄費(fèi)用 本月收入 \n)。 case 6://刪除數(shù)據(jù) system(color a)。//復(fù)制 if(mode != Ok) printf(\n沒有符合條件的記錄 !\n)。 } system(pause)。 if(mode != Ok) printf(\n沒有符合條件的記錄 \n)。 //調(diào)用修改數(shù)據(jù)函數(shù) } system(pause)。//輸出 printf(\n)。 mode = Search(data)。 //調(diào)用查看數(shù)據(jù)函數(shù) system(pause)。 //調(diào)用向文件內(nèi)寫入內(nèi)容函數(shù) system(pause)。mode)。 printf(\n)。 printf(**\t輸入數(shù)據(jù) \t\t查看數(shù)據(jù) \t**\n)。 printf(**\t 歡迎進(jìn)入個(gè)人賬簿管理系統(tǒng) \t**\n)。 do { system(cls)。 } void Show_personal_infomation(void) {/*個(gè)人管理系統(tǒng)功能提示及操作 */ int mode。 printf(**\t\t\t\t\t\t**\n)。 printf(**\t\t\t\t\t\t**\n)。 printf(\n)。 } void Show_close_infomation(void) {/*關(guān)閉個(gè)人管理系統(tǒng) */ system(cls)。 printf(**\t\t宋曉東 \t\t\t**\n)。 printf(**\t\t 個(gè)人管理系統(tǒng)設(shè)計(jì)人基本信息 \t**\n)。 printf(**\t\t\t\t\t\t**\n)。 /*調(diào)用系統(tǒng)清屏函數(shù) */ while(1) { Show_personal_infomation()。 //聲明刪除數(shù)據(jù)函數(shù) int main(void) {/*主函數(shù) */ Show_open_picture()。 //聲明查詢函數(shù) (返回查詢的結(jié)果及狀態(tài) ) void Sort(Infor *)。 //聲明關(guān)閉個(gè)人管理系統(tǒng)函數(shù) void Input(Infor *)。 }Type。 //定義存儲(chǔ)費(fèi)用 int ine_c。 //定義房租費(fèi)用 int children_c。f p u t s ( \n … … … …! f e o f ( f p 1p r i n t f ( % 7 d % 8 d . . . f p u t s ( 結(jié) 束NNYNY 圖 6 輸入要?jiǎng)h除的月份 ,若文件中沒有該信息,輸出無法找到該文件,若文件中有該信息,輸出請選擇要?jiǎng)h除的月份, 輸入月份 ,利用 鏈表的知識 刪除 該 月份 。 子模塊 刪除 某月的信息 , 具體程序?qū)崿F(xiàn)流程如圖 6 所示 。i = 0i 8p r i n t f ( % 8 d , p x [ i ] . d a t a ) 。j + +f l a g = = 0b r e a k 。i 8p x [ i ] . n o = i 。f c l o s e ( f p 1 ) 。F p 1 = N U L Lp r i n t f ( 無 法 找 到 文 ?r e t u r e E r r o ri s f o u n d = 1 。 / / m o d i f y ( a , m o n ) 。 開 始結(jié) 束i t e m = s e a r c h ( a ) 。 ne w I m o n t h 。 (7)刪除數(shù)據(jù) 刪除數(shù)據(jù)模塊是用鏈表把其中某月刪除。 (2)查看數(shù)據(jù) 查 看 數(shù)據(jù)模塊 是輸入要執(zhí)行的操作,打開文件,查看帳戶里面的信息 (3)修改數(shù)據(jù) 修改數(shù)據(jù)模塊是輸入要修改的月份,打開文件,找到該月的信息,把新輸入的信息復(fù)制給原有 信息,已達(dá)到修改的目的。 (4) 算法設(shè)計(jì) 系統(tǒng)中主要排序算法(冒泡排序),即第 1 個(gè)數(shù)與第 2 個(gè)數(shù)比較,若第 1 個(gè)大,就與第 2 個(gè)數(shù)交換;若第 2 個(gè)數(shù)大,就不交換;繼續(xù)第 2 個(gè)與第 3 個(gè)比較, 。 (1) 輸入數(shù)據(jù): 月份 和 食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄 等數(shù)據(jù)。進(jìn) 入系統(tǒng)后可以輸入和修改某月的收支情況,可以對每月的開支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。 二.問題描述 ( 具體任務(wù) ) 根據(jù)課程設(shè)計(jì)任務(wù)書要求, 個(gè)人帳簿管理系統(tǒng)記錄某人每月的全部收入及各項(xiàng)開支情況,包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄等。 數(shù)據(jù)需求 系統(tǒng)主要處理的是個(gè)人帳簿信息,因此其輸入和輸出都 與此相關(guān)。 (3) 數(shù)據(jù)類型 系統(tǒng)定義了數(shù)組,結(jié)構(gòu)體等類型,存儲(chǔ)月份和食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄等信息。 個(gè) 人 賬 簿 管 理 系 統(tǒng)錄入數(shù)據(jù)模塊查看數(shù)據(jù)模塊修改數(shù)據(jù)模塊查詢數(shù)據(jù)模塊排序數(shù)據(jù)模塊刪除數(shù)據(jù)模塊月消費(fèi)求和模塊 圖 1功能模塊圖 (1)錄入數(shù)據(jù) 錄入數(shù)據(jù)模塊把輸入的信息存儲(chǔ)到文件里,為以下操作提供數(shù)據(jù)。 (6)求和 數(shù)據(jù) 利用循環(huán)一一累加求和。 開 始結(jié) 束 p r i n t f ( \ n 請依 次 輸 入 數(shù)據(jù)s c a n f ( % d %d % d % d % d %d % d % d , amp。 子模塊 修改文件中的信息 , 具體程序?qū)崿F(xiàn)流程如圖 3 所示 。i n p u t ( a ) 。 開 始F I L E * f p 1 。 b r e a k 。 子模塊 排序某月的所有費(fèi)用,具體程序?qū)崿F(xiàn)流程如圖 5 所示 ; 開 始i n t i = 0 , j = 0 , f l a g = 0 , t 。j = 0j 8 it = p x [ j ] . d a t a 。p r i n t f ( \ n \ n ) 。 , 直到比較完為止。f p u t s ( \n … … … …f p 2 = = N U L L p r i n t f ( 無 法 創(chuàng) 建 文 件r e t u r n 。 //定義食品費(fèi)用 int