




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言課程設計論文學生姓名: 金燦 學生學號: 1310321109 所在班級: 軟件一班 任課教師: 熊英 班級財務管理系統(tǒng)【設計目的】設計一個班級財務管理系統(tǒng),該程序具有以下功能:(1)用戶登錄:輸入用戶名和密碼,并判斷是管理員還是普通成員,管理員和普通成員具有不同的功能選擇界面。(2)錄入信息:各項財務信息(包括用途、收入、支出、收入(或支出)時間、總計、使用人等。)。(3)修改班級成員信息。(4)刪除班級成員信息。(5)查詢班級財務狀況。(6)統(tǒng)計班級財務情況:班級每月共收入、支出各多少,整個學期共收入、支出多少。(7)分類統(tǒng)計:根據(jù)用途對支出進行統(tǒng)計排序輸出【設計思路】根據(jù)要求,班級
2、財務數(shù)據(jù)以文本文件存放在文件中,故需要提供文件的輸入、輸出等操作;還需要保存記錄以進行修改,刪除,查找等操作;另外還應提供鍵盤式選擇菜單實現(xiàn)功能選擇。 【總體設計】班費管理系統(tǒng)數(shù)據(jù)輸入數(shù)據(jù)修改刪除數(shù)據(jù)添加查找瀏覽圖1 系統(tǒng)功能模塊圖 【詳細設計】1. 主函數(shù)主函數(shù)設計要求簡潔,只提供部分提示語和函數(shù)的調(diào)用【程序】 顯示一系列功能選項輸入n,判斷n是否是07 ?根據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束開始n 圖2. 主函數(shù)流程圖附錄:源代碼 #include#include#include#includetypedef struct income_infoint number; double incom
3、e; int month; int day; int year; char name50; struct income_info * next;IncomeLink,* Pointer1;typedef struct output_infoint number; double output; int month; int day; int year; int use; char name50; struct output_info * next;OutputLink,* Pointer2;int Select(void); /收入和支出管理選擇函數(shù)void Insert1(Pointer1 *
4、 Head1);void Insert2(Pointer2 * Head2);void Search1(Pointer1 Head1);void Search2(Pointer2 Head2);void Update1(Pointer1 Head1);void Update2(Pointer2 Head2);void Delete1(Pointer1 *Head1);void Delete2(Pointer2 *Head2); void Show1(Pointer1 Head1);void Show2(Pointer2 Head2); void Count1(Pointer1 Head1);v
5、oid Count2(Pointer2 Head2);int n,k;int main() void printf_message1(); void menu(); char m7;char M7;char num15; int i,j; long sum; Pointer1 Head1=NULL; Pointer2 Head2=NULL; printf(*歡迎使用班級財務管理系統(tǒng)*n); printf( 請輸入你的帳號(即你的學號):); gets(num); for(i=4;i10;i+) mi-4=numi; m6=0; for(i=0;i=1310321101&sumnumber=in
6、_number) printf(已經(jīng)有相同的編號:); printf(n按任意鍵繼續(xù)!n); getchar();return; elseq=p;p=p-next; r=(Pointer1)malloc(sizeof(IncomeLink); r-next=NULL; if(r=NULL) printf(分配空間失敗n); return; if(q=NULL) *Head1=r; else q-next=r; r-number=in_number; printf(請輸入收入金額(單位:元):); scanf(%lf,&r-income); printf(請輸入收入時間:n); printf(年
7、:); scanf(%d,&r-year); printf(月:); scanf(%d,&r-month); printf(日:); scanf(%d,&r-day); printf(請輸入您的姓名:); scanf(%s,r-name); printf(nnnn); Sleep(300);void Insert2(Pointer2 *Head2) /添加支出 int in_number; Pointer2 p,q,r; printf(請輸入編號: ); scanf(%d,&in_number); p=q=*Head2; while(p!=NULL) if(p-number=in_number
8、) printf(已經(jīng)有相同的編號:); printf(n按任意鍵繼續(xù)!n); getchar(); return; elseq=p;p=p-next; r=(Pointer2)malloc(sizeof(IncomeLink); r-next=NULL; if(r=NULL) printf(分配空間失敗n); return; if(q=NULL) *Head2=r; else q-next=r; r-number=in_number; printf(請輸入支出金額(單位:元):); scanf(%lf,&r-output); printf(請輸入支出時間:n); printf(年:); sc
9、anf(%d,&r-year); printf(月:); scanf(%d,&r-month); printf(日:); scanf(%d,&r-day); printf(請輸入用途:); printf(n); printf(請選擇(1-4):n); scanf(%d,&r-use); printf(請輸入使用人名稱:); scanf(%s,r-name); Sleep(300);void Search1(Pointer1 Head1) /查詢收入 int flag=1; int number1; Pointer1 p; printf(請輸入查詢的編號:); scanf(%d,&number1
10、); p=Head1; while(p!=NULL&flag) if(p-number=number1) printf(收入金額:%lf元n,p-income); printf(收入時間:n); printf(年:%d,月:%d,日:%dn,p-year,p-month,p-day); printf(姓名:%s,p-name); printf(nnnn); getchar(); flag=0; else p=p-next; if(flag) printf(沒有查到n); printf(nnnn); getchar();void Search2(Pointer2 Head2) /查詢支出 voi
11、d Search_name(Pointer2 Head2); void Search_number(Pointer2 Head2); int i; printf(請選擇查詢的方式:n); printf(1.姓名 2.編號n); scanf(%d,&i); switch(i) case 1: Search_name(Head2); break; case 2: Search_number(Head2); break; Sleep(1000); printf(nnnn); getchar();void Search_name(Pointer2 Head2) /支出查詢函數(shù)(姓名) int flag
12、=1; char name50; Pointer2 p; printf(請輸入查詢的姓名:); scanf(%s,name); p=Head2; while(p!=NULL&flag) if(strcmp(p-name,name)=0) printf(支出金額:%lf元n,p-output); printf(支出時間:n); printf(年:%d,月:%d,日:%dn,p-year,p-month,p-day); if(p-use=1) printf(用途:吃喝n); else if(p-use=2) printf(用途:娛樂n); else if(p-use=3) printf(用途:學習
13、n); else printf(用途:其它n); printf(使用人姓名:%s,p-name); printf(n按任意鍵繼續(xù)!n); getchar(); flag=0; else p=p-next; if(flag) printf(沒有查到n);void Search_number(Pointer2 Head2) /支出查詢函數(shù)(編號) int flag=1; long number; Pointer2 p; printf(請輸入查詢的編號:); scanf(%ld,&number); p=Head2; while(p!=NULL&flag) if(p-number=number) pr
14、intf(支出金額:%lf元n,p-output); printf(支出時間:n); printf(年:%d,月:%d,日:%dn,p-year,p-month,p-day); if(p-use=1) printf(用途:吃喝n); else if(p-use=2) printf(用途:娛樂n); else if(p-use=3) printf(用途:學習n); else printf(用途:其它n); printf(使用人姓名:%s,p-name); printf(nnnn); getchar(); flag=0; else p=p-next; if(flag) printf(沒有查到n);
15、void Update1(Pointer1 Head1) /修改收入int flag=1;int number;Pointer1 p;printf(請輸入要修改的編號:);scanf(%d,&number);p=Head1;while(p!=NULL&flag)if(p-number=number) printf(請輸入新的收入:);scanf(%d,&p-income);printf(請輸入新的收入時間:n); printf(年:); scanf(%d,&p-year); printf(月:); scanf(%d,&p-month); printf(日:); scanf(%d,&p-day)
16、;printf(請輸入新的姓名:); scanf(%s,p-name);flag=0;printf(記錄已修改n);elsep=p-next;if(flag)printf(沒有找到要修改的記錄!n);Sleep(300);void Update2(Pointer2 Head2) /修改支出int flag=1,b;int number;Pointer2 p;printf(請輸入要修改的編號:);scanf(%d,&number);p=Head2;while(p!=NULL&flag)if(p-number=number) printf(請輸入新的支出:);scanf(%d,&p-output)
17、;printf(請輸入新的支出時間:n); printf(年:); scanf(%d,&p-year); printf(月:); scanf(%d,&p-month); printf(日:); scanf(%d,&p-day); printf(請選擇新的用途:); printf(n); printf(請選擇(1-4):n); scanf(%d,&b); p-use=b; printf(請輸入新的使用人名稱:); scanf(%s,p-name);flag=0; printf(記錄已修改n);elsep=p-next;if(flag)printf(沒有找到要修改的記錄!n);Sleep(300)
18、;void Delete1(Pointer1 *Head1) /刪除收入int flag=1;int number;Pointer1 p,q;printf(請輸入要刪除數(shù)據(jù)的編號:);scanf(%d,&number);p=q=*Head1;while(p!=NULL&flag) if(p-number=number)if(p=*Head1)*Head1=p-next;free(p); else q-next=p-next;free(p); flag=0; printf(記錄已刪除!); printf(n按任意鍵繼續(xù)!n); getchar();elseq=p;p=p-next;if(flag
19、)printf(沒有找到可以刪除的數(shù)據(jù)); printf(n按任意鍵繼續(xù)!n); getchar(); void Delete2(Pointer2 *Head2) /刪除支出int flag=1;int number;Pointer2 p,q;printf(請輸入要刪除數(shù)據(jù)的編號:);scanf(%d,&number);p=q=*Head2;while(p!=NULL&flag) if(p-number=number)if(p=*Head2)*Head2=p-next;free(p); else q-next=p-next;free(p); flag=0; printf(記錄已刪除!); pr
20、intf(n記錄已刪除,按任意鍵繼續(xù)!n); getchar();elseq=p;p=p-next;if(flag)printf(沒有找到可以刪除的數(shù)據(jù)!n); void Show1(Pointer1 Head1) /顯示收入 Pointer1 p; p=Head1;while(p!=NULL)printf(編號:%dn,p-number);printf(收入金額:%lf元n,p-income);printf(收入時間: %d年%d月%d日n,p-year,p-month,p-day);printf(姓名:%s,p-name);printf(n);p=p-next;Sleep(1000);pr
21、intf(n按任意鍵繼續(xù)!n); getchar();void Show2(Pointer2 Head2) /顯示支出 Pointer2 p; p=Head2;while(p!=NULL)printf(編號:%dn,p-number);printf(支出金額:%lfn,p-output);printf(支出時間: %d年%d月%d日n,p-year,p-month,p-day);if(p-use=1) printf(用途:吃喝n); else if(p-use=2) printf(用途:娛樂n); else if(p-use=3) printf(用途:學習n); else printf(用途:
22、其它n);printf(使用人姓名:%s,p-name);printf(n);p=p-next;Sleep(1000);printf(n按任意鍵繼續(xù)!n); getchar();void Count1(Pointer1 Head1) /統(tǒng)計收入int j; int b; double sum1; double sum2,sum3,sum4,sum5,sum6,sum7,sum8,sum9,sum10,sum11,sum12; Pointer1 p; p=Head1; sum1=sum2=sum3=sum4=sum5=sum6=sum7=sum8=sum9=sum10=sum11=sum12=0
23、.0; while(p!=NULL) switch(p-month) case 1:sum1=sum1+p-income;break; case 2:sum2=sum2+p-income;break; case 3:sum3=sum3+p-income;break; case 4:sum4=sum4+p-income;break; case 5:sum5=sum5+p-income;break; case 6:sum6=sum6+p-income;break; case 7:sum7=sum7+p-income;break; case 8:sum8=sum8+p-income;break; c
24、ase 9:sum9=sum9+p-income;break; case 10:sum10=sum10+p-income;break; case 11:sum11=sum11+p-income;break; case 12:sum12=sum12+p-income;break; default:printf(錯誤選擇!n);break; p=p-next; printf(請輸入您要統(tǒng)計的月份:); scanf(%d,&j); switch(j) case 1:printf(該月份總計為:%lfn,sum1);break; case 2:printf(該月份總計為:%lfn,sum2);brea
25、k; case 3:printf(該月份總計為:%lfn,sum3);break; case 4:printf(該月份總計為:%lfn,sum4);break; case 5:printf(該月份總計為:%lfn,sum5);break; case 6:printf(該月份總計為:%lfn,sum6);break; case 7:printf(該月份總計為:%lfn,sum7);break; case 8:printf(該月份總計為:%lfn,sum8);break; case 9:printf(該月份總計為:%lfn,sum9);break; case 10:printf(該月份總計為:%l
26、fn,sum10);break; case 11:printf(該月份總計為:%lfn,sum11);break; case 12:printf(該月份總計為:%lfn,sum12);break; default:printf(錯誤選擇!n);break; printf(請輸入您要統(tǒng)計的學期:n); printf(n); printf(請選擇(1-3):n); scanf(%d,&b); switch(b) case 1: printf(上學期的總計為:%lfn,sum2+sum3+sum4+sum5+sum6+sum7);break; case 2: printf(上學期的總計為:%lfn,
27、sum1+sum8+sum9+sum10+sum11+sum12);break; case 3: break; default: printf(錯誤選擇!n);break; void Count2(Pointer2 Head2) /統(tǒng)計支出void Counter_use(Pointer2 Head2); void Counter_time(Pointer2 Head2); int i; printf(請選擇統(tǒng)計的方式:n); printf(1.按用途 2.按時間n); scanf(%d,&i); switch(i) case 1: Counter_use(Head2); break; case 2: Counter_time(Head2); break; default:printf(錯誤選擇!n);break; Sleep(1000); printf(n按任意鍵繼續(xù)!n); getchar();void Counter_use(Pointer2 Head2) /按用途統(tǒng)計支出int b; Poi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年半導體用石英玻璃材料項目發(fā)展計劃
- 綠色新能源發(fā)電技術(shù)研發(fā)投資合同
- 機房服務外包服務合同
- Picrinine-Standard-生命科學試劑-MCE
- Isoflavone-Standard-生命科學試劑-MCE
- 幼兒繪本綠野仙蹤教案設計
- 貸款反擔保協(xié)合同書
- 2025年鋁鍛壓材項目建議書
- 2025年起動腳蹬桿項目合作計劃書
- 股權(quán)有償轉(zhuǎn)讓協(xié)議
- 2024年廣東高考(新課標I卷)語文試題及參考答案
- XX衛(wèi)生院關(guān)于落實國家組織藥品集中采購使用檢測和應急預案及培訓記錄
- 人教版八年級地理下冊教材分析
- Part3-4 Unit4 Volunteer Work課件-【中職專用】高一英語精研課堂(高教版2021·基礎(chǔ)模塊2)
- 法律援助課件
- 粒籽源永久性植入治療放射防護要求
- 雙減政策之下老師如何打造高效課堂
- 新員工入職健康體檢表
- 養(yǎng)老院行業(yè)現(xiàn)狀分析-2023年中國養(yǎng)老院行業(yè)市場發(fā)展前景研究報告-智研咨詢
- 廣東省特種作業(yè)操作證核發(fā)申請表
- 胸腔穿刺知情同意書
評論
0/150
提交評論