目的在于:
- 為編碼人員提供依據(jù);
- 為修改、維護提供條件;
- 項目負責人將按計劃書的要求布置和控制開發(fā)工作全過程;
- 項目質量保證組將按此計劃書做階段性和總結性的質量驗證和確認。
本說明書的預期讀者包括:
- 項目開發(fā)人員,特別是編碼人員;
- 軟件維護人員;
- 技術管理人員;
- 執(zhí)行軟件質量保證計劃的專門人員;
- 參與本項目開發(fā)進程各階段驗證、確認以及負責為最后項目驗收、鑒定提供相應報告的有關人員。
- 合作各方有關部門的負責人;項目組負責人和全體參加人員。
- 背景
- 系統(tǒng)名稱:個人賬簿管理系統(tǒng)
- 任務提出者:湖北師范大學軟件工程老師
- 開發(fā)者:湖北師范大學軟件工程學生
- 最終用戶:湖北師范大學軟件工程學生
- 定義
- 個人賬簿管理系統(tǒng)
本文檔中個人賬簿管理系統(tǒng)是基于C語言、軟件工程導論、數(shù)據(jù)結構與算法設計的應用。
-
- 參考資料
- 1.《即現(xiàn)訂餐項目需求規(guī)格說明書-V0.2.doc》
- 程序系統(tǒng)的結構
- 程序系統(tǒng)結構
圖2-1 程序系統(tǒng)架構圖
2.2程序結構模塊描述
2.2.1 錄入數(shù)據(jù)
【流程描述】
1.選擇操作:提示內容:“請輸入要進行的操作:”,操作數(shù)為“1”。
2.輸入數(shù)據(jù):按照提示內容,分別輸入內容,中間以空格符隔開。
提示內容:
請依次輸入數(shù)據(jù)[說明:中間以空格符隔開]:
(本月月份 食品消費 房租費用 子女費用 水電費用 醫(yī)療費用 儲蓄費用 收入費用)
3.回車:顯示“數(shù)據(jù)錄入成功”。
【流程圖】
2.2.2查看數(shù)據(jù)
【流程描述】
1.選擇操作:提示內容:“請輸入要進行的操作:”,操作數(shù)為“2”。
2.回車:系統(tǒng)打開“Myinfor.txt”文件,顯示所有錄入的數(shù)據(jù)。
【流程圖】
2.2.3修改數(shù)據(jù)
【流程描述】
1.選擇操作:提示內容:“請輸入要進行的操作:”,操作數(shù)為“3”。
2.進行2.2.4 查詢數(shù)據(jù)操作,從選擇月份開始。
3.如果輸入的數(shù)據(jù)合法,進行2.2.1 錄入數(shù)據(jù)的“2.輸入數(shù)據(jù)”操作?;剀?,輸出“數(shù)據(jù)修改成功”。
【流程圖】
2.2.4查詢數(shù)據(jù)
【流程描述】
- 選擇操作:提示內容:“請輸入要進行的操作:”,操作數(shù)為“4”。:
2.選擇月份:提示內容:“請正確輸入要查詢的月份:”
3.判斷:
如果輸入的月份在錄入的數(shù)據(jù)中,則打印該月的賬單。
否則,輸出“沒有符合條件的記錄!” 返回菜單
【流程圖】
2.2.5排序數(shù)據(jù)
【功能描述】
1.選擇操作:提示內容:“請輸入要進行的操作:”,操作數(shù)為“5”。:
2.進行2.2.4 查詢數(shù)據(jù)操作,從2.選擇月份開始。
3.如果輸入的數(shù)據(jù)合法,調用冒泡排序函數(shù)進行從小到大排序,輸出排序后的賬單。
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#define LEN sizeof(struct Node)
//賬單結構體
struct Node {
int ID;?? ??? ??? ??? ?//月份
//定義結構體定義各種費用
float IncomeTotal;?? ?//收入費用
float FoodShoping;?? ?//食品消費
float House;?? ??? ?//房租費用
float Education;?? ?//子女教育費用
float WaterAndEtc;?? ?//水電費用
float Hospital;?? ??? ?//醫(yī)療費用
float Store;?? ??? ?//儲蓄
float Expend;?? ??? ?//支出總和
struct Node *next;?? ?//指向下一個節(jié)點的指針
};
typedef struct {// 自定義數(shù)據(jù)類型
int no;
int data;
} pType;
//建立動態(tài)鏈表--錄入數(shù)據(jù)
struct Node* CreateLink();
//插入一個月的數(shù)據(jù)
void Insert(struct Node *head);
//刪除相同元素的值
void DeleteSame(struct Node *L);
//菜單
void menu();
//搜索某一月份的具體收支狀況
struct Node* Search(struct Node *head);
//功能同上
struct Node* SearchNode(struct Node *p1,int n);
//打印一個月的收支狀況
void PrintOneMonth(struct Node *p);
//輸出詳細的列表
void PrintAll(struct Node *head);
//對鏈表進行排序
struct Node *Sort(struct Node *head);
//對單個鏈表排序
void sort_Node(Node *a);
//修改某一月的記錄
struct Node *Update(struct Node *head);
//刪除數(shù)據(jù)
bool Delete(struct Node **pHead);
//求年支出
int Sum(struct Node *q1);
//主函數(shù)
int main() {
struct Node *a;
int value,count;
count = 1;
menu();
scanf("%d",&value);
if(value!=1)
printf("親,您還未錄入數(shù)據(jù),無法進行后續(xù)操作 系統(tǒng)將3秒后退出!n");
else {
while(value>=0) {
switch(value) {
case 1:
if(count ==1 ) {
a=CreateLink();
count++;