C語言家庭財務管理系統設計報告

2021-08-27 06:13:04 字數 3515 閱讀 1209

寧波大紅鷹學院

資訊工程學院課程

設計報告

專案名稱:家庭財務管理系統設計

專案組長:潘昇琳

專案成員:何潔,潘昇琳,王樹康

班級名稱:10信管4

專業名稱:資訊管理與資訊系統

完成時間: 2023年5月30日

資訊工程學院制

一案例描述

1.總體描述

家庭財務管理系統主要是對家庭成員的收入,支出,進行新增,刪除,查詢等操作,並能統計總收入和總支出。該軟體給家庭成員提供了乙個管理家庭財務的平台。

2.模組描述

1)選單設計:本系統提供簡單易操作的介面。有提示,幫助使用者根據需要對家庭財務管理系統進行操作。

2)新增模組:根據實際的收入或支出,新增相應的記錄,條數不限。

3)查詢模組:可以選擇不同關鍵字輸入,查詢該條記錄。

4)刪除模組:若某條記錄錯誤或者不需要則可以刪除。

5)顯示模組:按照新增的先後順序依次把記錄顯示在螢幕上,並顯示總收入和總支出以及餘額。

6)退出模組:退出財務管理系統並儲存檔案。

二介面設計

介面有相應的選擇,根據自己的需要對該管理系統進行新增,查詢,刪除,顯示功能操作。

本軟體介面友好,不難操作,使用者可根據自己的需要按提示進行。

三模組化設計方案

1.系統主要函式及功能

1) datainit函式:功能為資料初始化

將資料從硬碟傳到記憶體

2) add函式:功能為新增收入或支出的記錄

3) search函式:功能為查詢聯絡人

輸入關鍵字,從檔案中搜尋相應的記錄並顯示出來。

4) delete_rec函式:功能為刪除記錄

若某條記錄錯誤或者不需要則可以刪除。

5)show函式:功能為顯示記錄

將新增的記錄顯示在螢幕上。

6)quit函式:功能為儲存資訊退出系統

2.主函式呼叫各功能函式流程

四. 資料結構描述

struct f_data

;該資料結構為鍊錶,是一種動態進行儲存分配的結構。鍊錶的每乙個乙個節點中包含了乙個指標變數,用它存放下乙個結點的位址,環環相扣,中間決不能斷開,該指標指向乙個struct f_data型別的資料。鍊錶中各元素在記憶體中可以不是連續存放的。

五演算法設計

新增在主選單選擇新增選項後,系統會依次讓使用者輸入年月日,並且限定月份輸入時要在1至12內,如果符合要求則繼續執行,輸完整條記錄。動態鍊錶會根據使用者的使用情況動態調整記憶體大小。插入乙個結點到已有鍊錶後,head指向插入的結點,該結點指向head原來所指的結點。

每新增一條記錄後接點隨即加一。

查詢在主選單選擇查詢選項後,選擇查詢方式,1.按姓名查 2.按型別查。

然後按提示輸入相應的資訊姓名(或備註),系統會根據資訊用乙個指標從這個鍊錶的第乙個結點依次往後開始查詢,若某個結點符合則輸出該記錄的資訊,若指向null即最後乙個結點也查詢完畢依然沒找到,則返回主選單。

刪除輸入需要刪除的姓名和金額,系統會根據資訊用乙個q指標從這個鍊錶的第乙個結點依次往後開始查詢,並將已查詢過的結點賦給另乙個p指標。若某個結點符合則顯示該記錄的資訊,並讓使用者再次確認是否刪除。若指向null即最後乙個結點也查詢完畢依然沒找到,則則返回主選單。

如果確定刪除該結點,則q所指的結點的前乙個結點(即p所指的結點)指向該接點所指向的下乙個結點,也就是將q所指的結點從原來的鍊錶中分離出來。每刪除一條記錄後接點隨即減一。

六. 程式執行結果

1.新增聯絡人

新增記錄時限定月份在1~12月之間,否則無法新增,每新增一條記錄後就返回主選單,鍊錶中插入了該結點。

2查詢聯絡人

查詢記錄時,可以選擇型別或者姓名進行查詢。若選擇按姓名查詢,則在輸入名字後,系統會根據新增的先後順序,在螢幕上依次顯示出該聯絡人的全部記錄。

3 刪除聯絡人

選擇刪除選項後,介面會讓使用者輸入要刪除者的姓名及金額,並根據輸入的資訊顯示該條記錄,並且為了防止意外刪除而有提示是否刪除,經使用者再三確認後便刪除該記錄。

4 顯示聯絡人

在選單中選擇顯示選項後,系統會把所有的記錄按照先後順序依次逐條顯示在介面上,並且還計算出了一共的收入,一共的支出及當前餘額。

5退出在選單中選中該選項後,系統會把所有的資料都儲存到檔案中,然後關閉該系統。

七. 總結

1.工作時間

通訊錄介面——1星期

新增的實現——1星期

查詢的實現——1星期

刪除的實現——1星期

顯示實現——1星期

退出的實現——1星期

程式初步完成——3星期

整理修改程式——1星期

報告的製作——1星期

2. 分工情況

何潔:設計程式的整個框架,編寫add函式,delete_rec函式,並對初步完成的整個程式做除錯修改。製作報告的案例描述,模組設計方案,資料結構描述,總結。

潘昇琳:編寫search函式,quit函式,製作報告的封面,流程圖,介面設計。

王樹康:編寫datainit函式,show函式,演算法設計,程式執行結果。

3. 心得體會

本次對家庭財務管理系統的編寫,我遇到了許多困難。主要原因不怎麼擅長使用「指標」。在新增模組中,由於沒有很好的理解指標中插入的專用句子,所以脫離書本的時候根本不知怎麼開始,自己想了很久也沒想出來,後面翻了書,把相關的句子抄上去後死記硬背了下來。

p->next=head;head=p;在寫刪除模組是也遇到了類似的問題。看了書上的乙個例題,裡面有兩個指標,可是我的**中只有乙個,怎麼辦呢?模仿了書上的寫法,第一次以失敗告終,經過很多種修改後總結出失敗的原因是該指標定義錯誤,針對該錯誤,經過很多的嘗試終成功了。

在顯示函式中,自我感覺沒有錯誤了,可是每次在「一共收入,一共支出,當前餘額」後面都顯示了一長串數字,在快放棄時終於發現自己犯了乙個很可笑的錯,printf語言中居然用了取位址符,真是苦笑不得。在儲存函式中葉犯了一些常見的錯,在寫入檔案中居然用了fscanf語句,因此,一開始開啟該系統時總是什麼記錄也沒有,後來老師給我指出了這個錯誤,在修改之後還是不能顯示之前的記錄,請教其他同學後才發現主函式中沒有呼叫資料匯入函式,在修改之後,乙個系統就完成了。

我們也有了一些感慨:我們平時的一些基礎學習真的很重要.總而言之,這次的報告讓我們獲益匪淺。

附頁(源**附加注釋)

以下是新增模組**

void add()

system("pause停頓*/

} 在選單介面選擇「新增」選項,介面會依次顯示年份,月份,且限定月份為1~12,再顯示日期,金額,姓名,type,型別逐個填寫,然後返回到選單介面。

以下是查詢模組**

void search()

}if(choice==2)

{printf("請輸入型別:1收入 0支出\n ");

scanf("%d",&type);

for(p=head;p!=null;p=p->next)

if(p->type==type如果輸入的type和結點中的type一樣 */

{printf("%d\t",p->year);

printf("%d\t",p->month);

printf("%d\t",p->data);

家庭財務管理系統測試

本文件詳盡說明了這一軟體產品的測試規格,這些測試說明是以後進行使用及設計改進的基礎。同時,該文件也是使用者確定軟體功能需求的主要依據。本文件適用於家庭財務管理軟體的單元 整合測試。本文件用於對家庭財務管理軟體的測試工作階段成果的描述。包括對軟體測試的整體描述,軟體測試的分類和級別,軟體測試的過程描述...

C語言設計超市管理系統

吉林化工學院課程設計說明書 超市管理系統的設計與實現 學生學號 09350125 學生姓名 崔雲龍 專業班級 生物 0901 指導教師 張永超 職稱 講師 起止日期 2010.9.13 2010.9.20 吉林化工學院 jilin institute of chemical technology 超...

c語言課程設計報告宿舍管理系統

西安郵電學院 c語言課程設計報告書 實驗題目 學生宿舍管理系統 一 實驗目的 通過本課程設計,強化上機動手能力,使學生在理論和實踐的基礎上進一步鞏固 c語言程式設計 課程學習的內容,掌握工程軟體設計的基本方法。通過這次實習練習,可以更進一步的熟悉所學的知識,還可以加強和鞏固知識。長達兩周的上機練習,...