版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言課程設(shè)計(jì)論文學(xué)生姓名: 金燦 學(xué)生學(xué)號(hào): 1310321109 所在班級(jí): 軟件一班 任課教師: 熊英 班級(jí)財(cái)務(wù)管理系統(tǒng)【設(shè)計(jì)目的】設(shè)計(jì)一個(gè)班級(jí)財(cái)務(wù)管理系統(tǒng),該程序具有以下功能:(1)用戶登錄:輸入用戶名和密碼,并判斷是管理員還是普通成員,管理員和普通成員具有不同的功能選擇界面。(2)錄入信息:各項(xiàng)財(cái)務(wù)信息(包括用途、收入、支出、收入(或支出)時(shí)間、總計(jì)、使用人等。)。(3)修改班級(jí)成員信息。(4)刪除班級(jí)成員信息。(5)查詢班級(jí)財(cái)務(wù)狀況。(6)統(tǒng)計(jì)班級(jí)財(cái)務(wù)情況:班級(jí)每月共收入、支出各多少,整個(gè)學(xué)期共收入、支出多少。(7)分類統(tǒng)計(jì):根據(jù)用途對(duì)支出進(jìn)行統(tǒng)計(jì)排序輸出【設(shè)計(jì)思路】根據(jù)要求,班級(jí)
2、財(cái)務(wù)數(shù)據(jù)以文本文件存放在文件中,故需要提供文件的輸入、輸出等操作;還需要保存記錄以進(jìn)行修改,刪除,查找等操作;另外還應(yīng)提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇。 【總體設(shè)計(jì)】班費(fèi)管理系統(tǒng)數(shù)據(jù)輸入數(shù)據(jù)修改刪除數(shù)據(jù)添加查找瀏覽圖1 系統(tǒng)功能模塊圖 【詳細(xì)設(shè)計(jì)】1. 主函數(shù)主函數(shù)設(shè)計(jì)要求簡(jiǎn)潔,只提供部分提示語(yǔ)和函數(shù)的調(diào)用【程序】 顯示一系列功能選項(xiàng)輸入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(*歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)*n); printf( 請(qǐng)輸入你的帳號(hào)(即你的學(xué)號(hào)):); gets(num); for(i=4;i10;i+) mi-4=numi; m6=0; for(i=0;i=1310321101&sumnumber=in
6、_number) printf(已經(jīng)有相同的編號(hào):); 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(請(qǐng)輸入收入金額(單位:元):); scanf(%lf,&r-income); printf(請(qǐng)輸入收入時(shí)間:n); printf(年
7、:); scanf(%d,&r-year); printf(月:); scanf(%d,&r-month); printf(日:); scanf(%d,&r-day); printf(請(qǐng)輸入您的姓名:); scanf(%s,r-name); printf(nnnn); Sleep(300);void Insert2(Pointer2 *Head2) /添加支出 int in_number; Pointer2 p,q,r; printf(請(qǐng)輸入編號(hào): ); scanf(%d,&in_number); p=q=*Head2; while(p!=NULL) if(p-number=in_number
8、) printf(已經(jīng)有相同的編號(hào):); 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(請(qǐng)輸入支出金額(單位:元):); scanf(%lf,&r-output); printf(請(qǐng)輸入支出時(shí)間:n); printf(年:); sc
9、anf(%d,&r-year); printf(月:); scanf(%d,&r-month); printf(日:); scanf(%d,&r-day); printf(請(qǐng)輸入用途:); printf(n); printf(請(qǐng)選擇(1-4):n); scanf(%d,&r-use); printf(請(qǐng)輸入使用人名稱:); scanf(%s,r-name); Sleep(300);void Search1(Pointer1 Head1) /查詢收入 int flag=1; int number1; Pointer1 p; printf(請(qǐng)輸入查詢的編號(hào):); scanf(%d,&number1
10、); p=Head1; while(p!=NULL&flag) if(p-number=number1) printf(收入金額:%lf元n,p-income); printf(收入時(shí)間: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(請(qǐng)選擇查詢的方式:n); printf(1.姓名 2.編號(hào)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(請(qǐng)輸入查詢的姓名:); scanf(%s,name); p=Head2; while(p!=NULL&flag) if(strcmp(p-name,name)=0) printf(支出金額:%lf元n,p-output); printf(支出時(shí)間: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(用途:學(xué)習(xí)
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ù)(編號(hào)) int flag=1; long number; Pointer2 p; printf(請(qǐng)輸入查詢的編號(hào):); scanf(%ld,&number); p=Head2; while(p!=NULL&flag) if(p-number=number) pr
14、intf(支出金額:%lf元n,p-output); printf(支出時(shí)間: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(用途:學(xué)習(xí)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(請(qǐng)輸入要修改的編號(hào):);scanf(%d,&number);p=Head1;while(p!=NULL&flag)if(p-number=number) printf(請(qǐng)輸入新的收入:);scanf(%d,&p-income);printf(請(qǐng)輸入新的收入時(shí)間:n); printf(年:); scanf(%d,&p-year); printf(月:); scanf(%d,&p-month); printf(日:); scanf(%d,&p-day)
16、;printf(請(qǐng)輸入新的姓名:); 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(請(qǐng)輸入要修改的編號(hào):);scanf(%d,&number);p=Head2;while(p!=NULL&flag)if(p-number=number) printf(請(qǐng)輸入新的支出:);scanf(%d,&p-output)
17、;printf(請(qǐng)輸入新的支出時(shí)間:n); printf(年:); scanf(%d,&p-year); printf(月:); scanf(%d,&p-month); printf(日:); scanf(%d,&p-day); printf(請(qǐng)選擇新的用途:); printf(n); printf(請(qǐng)選擇(1-4):n); scanf(%d,&b); p-use=b; printf(請(qǐng)輸入新的使用人名稱:); 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(請(qǐng)輸入要?jiǎng)h除數(shù)據(jù)的編號(hào):);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(請(qǐng)輸入要?jiǎng)h除數(shù)據(jù)的編號(hào):);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(編號(hào):%dn,p-number);printf(收入金額:%lf元n,p-income);printf(收入時(shí)間: %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(編號(hào):%dn,p-number);printf(支出金額:%lfn,p-output);printf(支出時(shí)間: %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(用途:學(xué)習(xí)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)計(jì)收入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(錯(cuò)誤選擇!n);break; p=p-next; printf(請(qǐng)輸入您要統(tǒng)計(jì)的月份:); scanf(%d,&j); switch(j) case 1:printf(該月份總計(jì)為:%lfn,sum1);break; case 2:printf(該月份總計(jì)為:%lfn,sum2);brea
25、k; case 3:printf(該月份總計(jì)為:%lfn,sum3);break; case 4:printf(該月份總計(jì)為:%lfn,sum4);break; case 5:printf(該月份總計(jì)為:%lfn,sum5);break; case 6:printf(該月份總計(jì)為:%lfn,sum6);break; case 7:printf(該月份總計(jì)為:%lfn,sum7);break; case 8:printf(該月份總計(jì)為:%lfn,sum8);break; case 9:printf(該月份總計(jì)為:%lfn,sum9);break; case 10:printf(該月份總計(jì)為:%l
26、fn,sum10);break; case 11:printf(該月份總計(jì)為:%lfn,sum11);break; case 12:printf(該月份總計(jì)為:%lfn,sum12);break; default:printf(錯(cuò)誤選擇!n);break; printf(請(qǐng)輸入您要統(tǒng)計(jì)的學(xué)期:n); printf(n); printf(請(qǐng)選擇(1-3):n); scanf(%d,&b); switch(b) case 1: printf(上學(xué)期的總計(jì)為:%lfn,sum2+sum3+sum4+sum5+sum6+sum7);break; case 2: printf(上學(xué)期的總計(jì)為:%lfn,
27、sum1+sum8+sum9+sum10+sum11+sum12);break; case 3: break; default: printf(錯(cuò)誤選擇!n);break; void Count2(Pointer2 Head2) /統(tǒng)計(jì)支出void Counter_use(Pointer2 Head2); void Counter_time(Pointer2 Head2); int i; printf(請(qǐng)選擇統(tǒng)計(jì)的方式:n); printf(1.按用途 2.按時(shí)間n); scanf(%d,&i); switch(i) case 1: Counter_use(Head2); break; case 2: Counter_time(Head2); break; default:printf(錯(cuò)誤選擇!n);break; Sleep(1000); printf(n按任意鍵繼續(xù)!n); getchar();void Counter_use(Pointer2 Head2) /按用途統(tǒng)計(jì)支出int b; Poi
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地理信息系統(tǒng)教師合同樣本
- 員工關(guān)系改善員工福利的策略
- 地鐵供電網(wǎng)絡(luò)建設(shè)合同
- 石油化工公司財(cái)務(wù)專員招聘合同
- 建筑裝修延期證明模板
- 租賃公司高管聘用合同
- 城市大型工廠周邊道路改造合同
- 箱包零售加盟合作協(xié)議
- 地下管理錨索施工合同
- 農(nóng)村自建房屋內(nèi)裝修協(xié)議
- 經(jīng)濟(jì)法基礎(chǔ)教案
- 職工食堂承包增值服務(wù)方案(完整版)
- 醫(yī)藥行業(yè)銷售人員薪酬激勵(lì)方案研究
- 短暫性腦缺血發(fā)作PPT課件
- 微景觀制作教案PPT課件
- 潔凈手術(shù)室管理制度
- 《農(nóng)村小學(xué)數(shù)學(xué)課堂培養(yǎng)學(xué)生自主學(xué)習(xí)能力策略研究》開題報(bào)告(李艷林)
- 軟件易用性檢查表
- 工程變更表(標(biāo)準(zhǔn)模版)
- 飲用純凈水(桶裝)質(zhì)量手冊(cè)
- 總結(jié)程控器工作原理LFL
評(píng)論
0/150
提交評(píng)論