




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言課程設(shè)計論文學(xué)生姓名: 金燦 學(xué)生學(xué)號: 1310321109 所在班級: 軟件一班 任課教師: 熊英 班級財務(wù)管理系統(tǒng)【設(shè)計目的】設(shè)計一個班級財務(wù)管理系統(tǒng),該程序具有以下功能:(1)用戶登錄:輸入用戶名和密碼,并判斷是管理員還是普通成員,管理員和普通成員具有不同的功能選擇界面。(2)錄入信息:各項財務(wù)信息(包括用途、收入、支出、收入(或支出)時間、總計、使用人等。)。(3)修改班級成員信息。(4)刪除班級成員信息。(5)查詢班級財務(wù)狀況。(6)統(tǒng)計班級財務(wù)情況:班級每月共收入、支出各多少,整個學(xué)期共收入、支出多少。(7)分類統(tǒng)計:根據(jù)用途對支出進(jìn)行統(tǒng)計排序輸出【設(shè)計思路】根據(jù)要求,班級
2、財務(wù)數(shù)據(jù)以文本文件存放在文件中,故需要提供文件的輸入、輸出等操作;還需要保存記錄以進(jìn)行修改,刪除,查找等操作;另外還應(yīng)提供鍵盤式選擇菜單實現(xiàn)功能選擇。 【總體設(shè)計】班費(fèi)管理系統(tǒng)數(shù)據(jù)輸入數(shù)據(jù)修改刪除數(shù)據(jù)添加查找瀏覽圖1 系統(tǒng)功能模塊圖 【詳細(xì)設(shè)計】1. 主函數(shù)主函數(shù)設(shè)計要求簡潔,只提供部分提示語和函數(shù)的調(diào)用【程序】 顯示一系列功能選項輸入n,判斷n是否是07 ?根據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束開始n 圖2. 主函數(shù)流程圖附錄:源代碼 #include<stdio.h>#include<string.h>#include<stdlib.h>#include<
3、;windows.h>typedef struct income_infoint number; double income; 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,
4、* Pointer2;int Select(void); /收入和支出管理選擇函數(shù)void Insert1(Pointer1 * 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
5、Head1);void Show2(Pointer2 Head2); void Count1(Pointer1 Head1);void 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("*歡迎使用班級財務(wù)管理系統(tǒng)*n"); printf(" 請輸入你的帳號(即你的學(xué)號
6、):"); gets(num); for(i=4;i<10;i+) mi-4=numi; m6='0' for(i=0;i<10;i+) numi=numi-48; sum=num0*1000000000+num1*100000000+num2*10000000+num4*100000+num5*10000+num6*1000+num7*100+num8*10+num9; if(sum>=1310321101&&sum<=1310321136) printf("請輸入密碼(密碼為學(xué)號的后六位:"); gets
7、(M); if(strcmp(m,M)=0) printf("登陸成功!n"); printf("正為你轉(zhuǎn)接,請稍候。n"); Sleep(1000); if(sum=1310321109|sum=1310321108|sum=1310321107|sum=1310321127|sum=1310321132) printf("*n"); printf("*歡迎使用班級財務(wù)管理系統(tǒng)(管理員版)*n"); printf(" *nnn"); Sleep(1000); system("cls&
8、quot;); do printf_message1(); scanf("%d",&j); switch(j) case 1: k=Select(); if(k=1)Insert1(&Head1);elseif(k=2)Insert2(&Head2);elseprintf("錯誤選擇!nnnn");break; case 2: k=Select(); if(k=1)Search1(Head1);elseif(k=2)Search2(Head2);elseprintf("錯誤選擇!nnnn");break; ca
9、se 3: k=Select(); if(k=1)Update1(Head1);elseif(k=2)Update2(Head2);elseprintf("錯誤選擇!nnnn");break; case 4: k=Select(); if(k=1)Delete1(&Head1);elseif(k=2)Delete2(&Head2);elseprintf("錯誤選擇!nnnn");break; case 5: k=Select(); if(k=1)Show1(Head1);elseif(k=2)Show2(Head2);elseprintf
10、("錯誤選擇!nnnn");break;case 6: k=Select(); if(k=1)Count1(Head1);elseif(k=2)Count2(Head2);elseprintf("錯誤選擇!nnnn");break; case 0: break; default:printf("錯誤選擇!n");break; while(j!=0); else printf("*n"); printf("*歡迎使用班級財務(wù)管理系統(tǒng)(普通用戶版)*n"); printf("*nnn&qu
11、ot;); Sleep(1000); system("cls"); do menu(); scanf("%d",&j); switch(j) case 1: k=Select(); if(k=1)Insert1(&Head1);else if(k=2)Insert2(&Head2);elseprintf("錯誤選擇!nnnn");break; case 2: k=Select(); if(k=1)Search1(Head1);elseif(k=2)Search2(Head2);elseprintf("
12、錯誤選擇!nnnn");break; case 3: k=Select(); if(k=1)Show1(Head1);elseif(k=2)Show2(Head2);elseprintf("錯誤選擇!nnnn");break;case 4: k=Select(); if(k=1)Count1(Head1);elseif(k=2)Count2(Head2);elseprintf("錯誤選擇!nnnn");break; case 0: break; default:printf("錯誤選擇!nnnn");break; while
13、(j!=0); return 0; else printf("密碼錯誤!請查證后再來!n"); else printf("用戶名不存在!請驗證后再輸!an");return 0;void printf_message1() printf(" *n"); printf(" *歡迎使用財務(wù)管理系統(tǒng)*n"); printf(" *n"); printf(" n"); printf(" 1 . 添加財務(wù)信息 n"); printf(" 2 . 查詢財務(wù)信
14、息 n"); printf(" 3 . 修改財務(wù)信息 n"); printf(" 4 . 刪除財務(wù)信息 n"); printf(" 5 . 顯示財務(wù)信息 n"); printf(" 6 . 統(tǒng)計財務(wù)信息 n"); printf(" 7 . 讀取數(shù)據(jù)庫 n"); printf(" 0 . 退出系統(tǒng) n"); printf(" n"); printf(" *n"); printf("請選擇(0-7):n");v
15、oid menu() printf(" *n"); printf(" *歡迎使用財務(wù)管理系統(tǒng)*n"); printf(" *n"); printf(" n"); printf(" 1 . 添加財務(wù)信息 n"); printf(" 2 . 查詢財務(wù)信息 n"); printf(" 3 . 顯示財務(wù)信息 n"); printf(" 4 . 統(tǒng)計財務(wù)信息 n"); printf(" 5 . 保存一個新數(shù)據(jù)庫 n"); pr
16、intf(" 6 . 讀取數(shù)據(jù)庫 n"); printf(" 0 . 退出系統(tǒng) n"); printf(" n"); printf(" *n"); printf("請選擇(0-6):n");int Select(void) /第二次選擇的函數(shù)int w; printf(" *n"); printf(" *歡迎使用財務(wù)管理系統(tǒng)* n"); printf(" * n"); printf(" n"); printf(&qu
17、ot; 1 . 收入 n"); printf(" 2 . 支出 n"); printf(" n"); printf(" *n"); printf("請選擇(1-2):n"); scanf("%d",&w); return(w);void Insert1(Pointer1 *Head1) /添加收入 int in_number; Pointer1 p,q,r; printf("請輸入編號: "); scanf("%d",&in_nu
18、mber); p=q=*Head1; while(p!=NULL) if(p->number=in_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->n
19、ext=r; r->number=in_number; printf("請輸入收入金額(單位:元):"); scanf("%lf",&r->income); printf("請輸入收入時間:n"); printf("年:"); scanf("%d",&r->year); printf("月:"); scanf("%d",&r->month); printf("日:"); scanf(&qu
20、ot;%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->
21、number=in_number) 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(&quo
22、t;請輸入支出金額(單位:元):"); scanf("%lf",&r->output); printf("請輸入支出時間:n"); printf("年:"); scanf("%d",&r->year); printf("月:"); scanf("%d",&r->month); printf("日:"); scanf("%d",&r->day); printf("
23、請輸入用途:"); printf("<1:吃喝(eat) 2:娛樂(amusement) 3:學(xué)習(xí)(studying) 4:其它(other)>n"); printf("請選擇(1-4):n"); scanf("%d",&r->use); printf("請輸入使用人名稱:"); scanf("%s",r->name); Sleep(300);void Search1(Pointer1 Head1) /查詢收入 int flag=1; int numbe
24、r1; Pointer1 p; printf("請輸入查詢的編號:"); scanf("%d",&number1); 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(&quo
25、t;姓名:%s",p->name); printf("nnnn"); getchar(); flag=0; else p=p->next; if(flag) printf("沒有查到n"); printf("nnnn"); getchar();void Search2(Pointer2 Head2) /查詢支出 void Search_name(Pointer2 Head2); void Search_number(Pointer2 Head2); int i; printf("請選擇查詢的方式:n&q
26、uot;); 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=1; char name50; Pointer2 p; printf("請輸入查詢
27、的姓名:"); 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
28、 if(p->use=2) printf("用途:娛樂n"); else if(p->use=3) printf("用途:學(xué)習(xí)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
29、Head2) /支出查詢函數(shù)(編號) int flag=1; long number; Pointer2 p; printf("請輸入查詢的編號:"); scanf("%ld",&number); p=Head2; while(p!=NULL&&flag) if(p->number=number) printf("支出金額:%lf元n",p->output); printf("支出時間:n"); printf("年:%d,月:%d,日:%dn",p->y
30、ear,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-&g
31、t;next; if(flag) printf("沒有查到n");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->inco
32、me);printf("請輸入新的收入時間:n"); printf("年:"); scanf("%d",&p->year); printf("月:"); scanf("%d",&p->month); printf("日:"); scanf("%d",&p->day);printf("請輸入新的姓名:"); scanf("%s",p->name);flag=0;print
33、f("記錄已修改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("請輸
34、入新的支出:");scanf("%d",&p->output);printf("請輸入新的支出時間:n"); printf("年:"); scanf("%d",&p->year); printf("月:"); scanf("%d",&p->month); printf("日:"); scanf("%d",&p->day); printf("請選擇新的用途:&qu
35、ot;); printf("<1:吃喝(eat) 2:娛樂(amusement) 3:學(xué)習(xí)(studing) 4:其它(other)>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(&quo
36、t;沒有找到要修改的記錄!n");Sleep(300);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;f
37、ree(p); flag=0; printf("記錄已刪除!"); printf("n按任意鍵繼續(xù)!n"); getchar();elseq=p;p=p->next;if(flag)printf("沒有找到可以刪除的數(shù)據(jù)"); printf("n按任意鍵繼續(xù)!n"); getchar(); void Delete2(Pointer2 *Head2) /刪除支出int flag=1;int number;Pointer2 p,q;printf("請輸入要刪除數(shù)據(jù)的編號:");scanf(&q
38、uot;%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("記錄已刪除!"); printf("n記錄已刪除,按任意鍵繼續(xù)!n"); getchar();elseq=p;p=p->next;if(flag)printf("沒有找到可以刪除的數(shù)據(jù)
39、!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->n
40、ext;Sleep(1000);printf("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(
41、"用途:吃喝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("n");p=p->next;Sleep(1000);printf("n按任意鍵繼續(xù)!n"); getchar();void Count1(Pointer1
42、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.0; while(p!=NULL) switch(p->month) case 1:sum1=sum1+p->income;break; case 2:sum2=sum2+p->income;brea
43、k; 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; case 9:sum9=sum9+p->income;break; case 10:sum10=sum10+p->income;break
44、; 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",
45、sum2);break; 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&
46、quot;,sum8);break; case 9:printf("該月份總計為:%lfn",sum9);break; case 10:printf("該月份總計為:%lfn",sum10);break; case 11:printf("該月份總計為:%lfn",sum11);break; case 12:printf("該月份總計為:%lfn",sum12);break; default:printf("錯誤選擇!n");break; printf("請輸入您要統(tǒng)計的學(xué)期:n&quo
47、t;); printf("<1:上學(xué)期 2:下學(xué)期 3:退出>n"); printf("請選擇(1-3):n"); scanf("%d",&b); switch(b) case 1: printf("上學(xué)期的總計為:%lfn",sum2+sum3+sum4+sum5+sum6+sum7);break; case 2: printf("上學(xué)期的總計為:%lfn",sum1+sum8+sum9+sum10+sum11+sum12);break; case 3: break; default: printf(&quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班長二三事議論文15篇范文
- 雨中的小故事記敘文14篇
- 我的老師與我寫人的作文15篇范文
- 租賃設(shè)備的維護(hù)修理服務(wù)協(xié)議說明
- 體育活動表現(xiàn)榮譽(yù)證明書(5篇)
- 關(guān)于團(tuán)隊合作的議論議論文(4篇)
- 2025年保育員(五級)兒童教育哲學(xué)研究方法調(diào)查考試試卷
- 2025年脈沖反應(yīng)堆及配套產(chǎn)品項目提案報告
- 2025年電梯安裝維修人員實操考試試卷:案例分析與應(yīng)用
- 2025年特產(chǎn)食品項目申請報告
- 感染性休克護(hù)理病例討論
- 課題申報書:人工智能賦能高校教育教學(xué)應(yīng)用研究
- 發(fā)熱電纜采暖系統(tǒng)工程安裝施工手冊
- 2025年天津市專業(yè)技術(shù)人員繼續(xù)教育網(wǎng)公需課答案
- 智能藥柜管理系統(tǒng)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 2025年北森人才測評試題及答案2024
- 科技賦能下的企業(yè)巡察模式變革
- 成人重癥患者顱內(nèi)壓增高防控護(hù)理專家共識2024
- 廣告投放應(yīng)聘簡歷
- 電焊工職業(yè)技能鑒定高級工理論題庫
- 火災(zāi)逃生自救知識培訓(xùn)
評論
0/150
提交評論