班級(jí)財(cái)務(wù)管理程序_第1頁(yè)
班級(jí)財(cái)務(wù)管理程序_第2頁(yè)
班級(jí)財(cái)務(wù)管理程序_第3頁(yè)
班級(jí)財(cái)務(wù)管理程序_第4頁(yè)
班級(jí)財(cái)務(wù)管理程序_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

word文檔可自由復(fù)制編輯程序設(shè)計(jì)與算法綜合實(shí)習(xí)=1\*ROMANI實(shí)驗(yàn)題目:班級(jí)財(cái)務(wù)管理程序?qū)W院《班級(jí)財(cái)務(wù)管理程序》1.系統(tǒng)分析1.1問(wèn)題描述設(shè)計(jì)一個(gè)班級(jí)財(cái)務(wù)管理系統(tǒng),該程序具有以下功能:(1)用戶登錄:輸入用戶名和密碼,并判斷是管理員還是普通成員,管理員和普 通成員具有不同的功能選擇界面。(2)錄入信息:各項(xiàng)財(cái)務(wù)信息(包括1用途、2收入、3支出、4收入(或支出) 時(shí)間、5總計(jì)、6使用人等。)。(3)修改班級(jí)成員信息。(4)刪除班級(jí)成員信息。(5)查詢班級(jí)財(cái)務(wù)狀況。(6)統(tǒng)計(jì)班級(jí)財(cái)務(wù)情況:班級(jí)每月共收入、支出各多少,整個(gè)學(xué)期共收入、支出 多少。(7)分類(lèi)統(tǒng)計(jì):根據(jù)用途對(duì)支出進(jìn)行統(tǒng)計(jì)排序輸出。 (8)新功能:導(dǎo)出財(cái)務(wù)信息至Excel表格。1.2系統(tǒng)功能分析(1)登錄功能:由于這是一個(gè)班級(jí)財(cái)務(wù)管理程序,所以使用人應(yīng)該是全班同學(xué)。為了后期調(diào)試的便捷性,我將管理員帳號(hào)設(shè)置為自己的學(xué)號(hào):201330330414,其余同學(xué)的學(xué)號(hào)為普通帳號(hào)。所有帳號(hào)密碼設(shè)置為學(xué)號(hào)后6位。管理員帳號(hào)擁有所有權(quán)限,能進(jìn)行所有操作。普通帳號(hào)可以進(jìn)行查詢班級(jí)財(cái)務(wù)狀況、統(tǒng)計(jì)班級(jí)財(cái)務(wù)情況、分類(lèi)統(tǒng)計(jì)、導(dǎo)出財(cái)務(wù)信息至Excel表格等操作。(2)錄入信息:用途、收入、支出、使用時(shí)間、使用人,由于我將“總計(jì)”這一項(xiàng)信息理解為余額,所以余額交由程序自動(dòng)計(jì)算。(3)修改班級(jí)成員信息:要修改信息的時(shí)候,先輸入要修改信息條的使用人的名字,也就是說(shuō)本功能是以“使用人”為關(guān)鍵字來(lái)進(jìn)行的,可以修改的信息包括:用途、收入、支出、使用時(shí)間、使用人。(4)刪除班級(jí)成員信息:與修改信息一樣,要?jiǎng)h除的時(shí)候以“使用人”為關(guān)鍵字,輸入使用人名字以進(jìn)行刪除。(5)查詢班級(jí)財(cái)務(wù)狀況:包括歷史總收入、歷史總支出、現(xiàn)存余額。(6)統(tǒng)計(jì)班級(jí)財(cái)務(wù)情況:根據(jù)要查詢的月份或?qū)W期,輸入其對(duì)應(yīng)日期,程序再做統(tǒng)計(jì)。(7)分類(lèi)統(tǒng)計(jì):根據(jù)用途,列出各種用途及其對(duì)應(yīng)的支出信息。(8)導(dǎo)出財(cái)務(wù)信息至Excel表格:一個(gè)財(cái)務(wù)管理程序雖然可以對(duì)財(cái)務(wù)信息進(jìn)行各種統(tǒng)計(jì),但如果要了解細(xì)則,顯然導(dǎo)出一個(gè)表格來(lái)看更加清晰明了,因此我就想到了添加這個(gè)新的功能。(9)保存文件:程序開(kāi)始的時(shí)候會(huì)進(jìn)行讀取信息的操作,信息存在文件名為“money.in”里面。每次退出要進(jìn)行保存操作,雖然手動(dòng)保存顯得不夠便利,但是如果出現(xiàn)誤操作,可以直接退出程序,這樣原來(lái)的信息就不會(huì)被改變。2.系統(tǒng)設(shè)計(jì)1.1系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)開(kāi)始時(shí),程序先要求輸入帳號(hào)密碼,若驗(yàn)證通過(guò),判斷帳號(hào)權(quán)限,賦予相應(yīng)菜單界面。登錄完成后,文件讀取函數(shù)(函數(shù)名:Rfile)會(huì)自動(dòng)讀取名為“money.in”的文件,里面存有歷史財(cái)務(wù)信息。若該文件不存在,程序?qū)?huì)自動(dòng)創(chuàng)建該文件。讀取的信息將會(huì)按順序創(chuàng)建鏈表,所有的信息暫存在鏈表里。一級(jí)菜單:若為管理員則printf出所有功能選項(xiàng)提供用戶選擇,如果是普通用戶,則printf無(wú)法改變信息文件的選項(xiàng),選擇操作以switch語(yǔ)句實(shí)現(xiàn)。(3)錄入信息:一次輸入使用人、收入、支出、用途、使用時(shí)間,余額交由程序自動(dòng)計(jì)算。每次錄入的信息插在鏈表末尾。(4)修改班級(jí)成員信息:先輸入要修改信息條的使用人的名字,也就是說(shuō)本功能是以“使用人”為關(guān)鍵字來(lái)進(jìn)行的,可以修改的信息包括:用途、收入、支出、使用時(shí)間、使用人。如果修改的項(xiàng)目是收入或者支出,將會(huì)影響該條目及之后所有條目的余額,所以此時(shí)會(huì)調(diào)用余額修正函數(shù)(函數(shù)名:Sumrevise),以修正受影響的余額,保證正確性。(5)刪除班級(jí)成員信息:與修改信息一樣,要?jiǎng)h除的時(shí)候以“使用人”為關(guān)鍵字,輸入使用人名字后,程序會(huì)檢索所有該使用人的財(cái)務(wù)記錄并列出,之后可以選擇相應(yīng)序號(hào)以刪除條目。同樣地,刪除操作將會(huì)影響余額的正確性,所以刪除之后同樣會(huì)調(diào)用余額修正函數(shù)進(jìn)行修正。(6)查詢班級(jí)財(cái)務(wù)狀況:遍歷鏈表,計(jì)算歷史總收入、歷史總支出、現(xiàn)存余額。(7)統(tǒng)計(jì)班級(jí)財(cái)務(wù)情況:根據(jù)要查詢的月份或?qū)W期,先輸入年份或者學(xué)年,再輸入月份或者學(xué)期,程序?qū)⒛?、月作為關(guān)鍵字,在鏈表中檢索符合日期的條目,計(jì)算收入和支出。(8)分類(lèi)統(tǒng)計(jì):根據(jù)用途,每遇到一個(gè)未統(tǒng)計(jì)過(guò)的用途,就將該用途作為關(guān)鍵字,檢索后面相同用途的信息,以此類(lèi)推,余下的用途用同樣的方法計(jì)算,最后列出各種用途及其對(duì)應(yīng)的支出信息。(9)導(dǎo)出財(cái)務(wù)信息至Excel表格:創(chuàng)建新的文件指針,將鏈表里的信息寫(xiě)入名為“report.xls”的Excel文件里,輸出的時(shí)候包括跳格符、’\n’符號(hào),保證輸出格式的正確性。(10)保存文件(函數(shù)名:Save):程序開(kāi)始的時(shí)候會(huì)進(jìn)行讀取信息的操作,信息存在文件名為“money.in”里面。每次退出要進(jìn)行保存操作,雖然手動(dòng)保存顯得不夠便利,但是如果出現(xiàn)誤刪除這類(lèi)操作,可以直接退出程序,這樣原來(lái)的信息就不會(huì)被改變。1.2系統(tǒng)各個(gè)功能模塊詳細(xì)設(shè)計(jì)及功能模塊之間關(guān)系設(shè)計(jì)1.2.1系統(tǒng)各個(gè)功能模塊詳細(xì)設(shè)計(jì)登錄模塊(圖1.1):首先輸入帳號(hào)和密碼,如果出錯(cuò),程序會(huì)提示出錯(cuò)的是帳號(hào)還是密碼,并要求重新輸入,輸入正確后,程序根據(jù)帳號(hào)類(lèi)型賦予權(quán)限,進(jìn)入一級(jí)菜單。登錄登錄管理員功能選擇界面普通用戶功能選擇界面(1.1)登錄模塊財(cái)務(wù)信息添加使用人姓名財(cái)務(wù)信息添加使用人姓名收入金額支出金額資金用途使用時(shí)間(1.2)添加信息模塊修改信息:輸入姓名之后,程序會(huì)列出所有該姓名的財(cái)務(wù)信息,此時(shí)可以選擇編號(hào)以修改。(圖1.3)財(cái)務(wù)信息修改財(cái)務(wù)信息修改使用人姓名收入金額支出金額資金用途使用時(shí)間(1.3)修改信息模塊刪除信息:輸入姓名之后,程序會(huì)列出所有該姓名的財(cái)務(wù)信息,此時(shí)可以選擇編號(hào)以刪除。(圖1.4)刪除財(cái)務(wù)信息刪除財(cái)務(wù)信息輸入姓名列出可刪除項(xiàng)目(1.4)刪除信息模塊查詢財(cái)務(wù)狀況:(圖1.5)查詢財(cái)務(wù)狀況查詢財(cái)務(wù)狀況計(jì)算各項(xiàng)數(shù)據(jù)輸出各項(xiàng)數(shù)據(jù)(1.5)查詢財(cái)務(wù)模塊統(tǒng)計(jì)財(cái)務(wù)信息:第一步是選擇統(tǒng)計(jì)月度信息還是學(xué)期信息,然后輸入年份、月度或?qū)W期。(圖1.6)統(tǒng)計(jì)財(cái)務(wù)狀況統(tǒng)計(jì)財(cái)務(wù)狀況統(tǒng)計(jì)月度財(cái)務(wù)信息統(tǒng)計(jì)學(xué)期財(cái)務(wù)信息(1.6)統(tǒng)計(jì)財(cái)務(wù)模塊分類(lèi)統(tǒng)計(jì)財(cái)務(wù):(圖1.7)分類(lèi)統(tǒng)計(jì)財(cái)務(wù)分類(lèi)統(tǒng)計(jì)財(cái)務(wù)計(jì)算各種用途總支出輸出支出信息(1.7)分類(lèi)統(tǒng)計(jì)模塊導(dǎo)出Excel報(bào)告:(圖1.8)導(dǎo)出Excel報(bào)告導(dǎo)出Excel報(bào)告輸出財(cái)務(wù)信息項(xiàng)目名稱(chēng)輸出對(duì)應(yīng)信息(1.8)導(dǎo)出Excel模塊功能模塊之間關(guān)系設(shè)計(jì):(圖1.9)(1.9)總體關(guān)系設(shè)計(jì)1.3數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)帳戶信息結(jié)構(gòu)體:typedefstruct//用戶信息結(jié)構(gòu)體{charnumber[13],password[7];intpower;}account;number是學(xué)號(hào),password是密碼,power是權(quán)限,power=1是管理員,power=0是普通用戶。財(cái)務(wù)信息結(jié)構(gòu)體:structinfo{charname[10];//使用者名稱(chēng)charusage[50];//用途floatmoneyin;//收入floatmoneyout;//支出chartime[11];//發(fā)生時(shí)間floatsum;//余額structinfo*next;};分類(lèi)統(tǒng)計(jì)時(shí)復(fù)制原始信息所用結(jié)構(gòu)體:structgetout//分類(lèi)統(tǒng)計(jì)功能所需要的新鏈表{charuse[10];//用途floatmonout;//支出structgetout*next;};1.4界面設(shè)計(jì)(1)登錄界面(圖2.1):(2.1)登陸界面(2)一級(jí)菜單(圖2.2):(2.2)一級(jí)菜單(3)信息錄入界面(圖2.3):(2.3)信息錄入界面(4)信息修改界面(圖2.4):(2.4)信息修改界面信息刪除界面(圖2.5):(2.5)信息刪除界面信息查詢界面(圖2.6):(2.6)信息查詢界面信息統(tǒng)計(jì)界面(圖2.7):(2.7)信息統(tǒng)計(jì)界面信息分類(lèi)界面(圖2.8):(2.8)信息分類(lèi)界面Excel導(dǎo)出界面(圖2.9):(2.9)Excel導(dǎo)出界面系統(tǒng)實(shí)現(xiàn)與模塊詳細(xì)設(shè)計(jì)(1)登錄模塊(圖3.1),intLogin(account*loguser)//登錄驗(yàn)證(3.1)登錄模塊錄入模塊(圖3.2):voidAddinfo(structinfo*head1)//添加新財(cái)務(wù)信息(3.2)錄入模塊修改模塊(圖3.3):voidChangeinfo(structinfo*head30)//修改財(cái)務(wù)信息(3.3)修改模塊刪除模塊(圖3.4):structinfo*Deleteinfo(structinfo*head50)//刪除財(cái)務(wù)信息(3.4)刪除模塊查詢模塊(圖3.5):voidCheckinfo(structinfo*head60)//查詢財(cái)務(wù)狀況(3.5)查詢模塊(6)統(tǒng)計(jì)模塊(圖3.6):voidSumupinfo(structinfo*head70)//統(tǒng)計(jì)學(xué)期、月的財(cái)務(wù)狀況(3.6)統(tǒng)計(jì)模塊(7)分類(lèi)模塊(圖3.7):voidClassinfo(structinfo*head80)//分類(lèi)統(tǒng)計(jì)支出(3.7)分類(lèi)模塊(8)Excel模塊(圖3.8):voidExcel(structinfo*head100)//新功能,導(dǎo)出財(cái)務(wù)信息至excel表格(3.8)Excel模塊4.系統(tǒng)測(cè)試一、模塊與系統(tǒng)測(cè)試:初始財(cái)務(wù)信息為:朱穎超2000.001000.001000.00購(gòu)書(shū)2013091016任芮0.00200.00800.00交團(tuán)費(fèi)2013092011林春賢1000.000.001800.00收班費(fèi)2013092017黃婷婷1500.001200.002100.00秋游2013110118黃治民0.00200.001900.00體檢2013120110<1>測(cè)試用例:帳號(hào):201330330414,密碼:123456,再次輸入330414。添加財(cái)務(wù)信息:測(cè)試員0100測(cè)試2014051420修改財(cái)務(wù)信息:修改“測(cè)試員”為“哈哈哈”刪除財(cái)務(wù)信息:刪除使用人為“哈哈哈”的條目查詢財(cái)務(wù)信息、統(tǒng)計(jì)2013學(xué)年第1學(xué)期信息、分類(lèi)統(tǒng)計(jì)、導(dǎo)出至Excel文檔。預(yù)期結(jié)果:提示密碼錯(cuò)誤,重新輸入后進(jìn)入管理員菜單。刪除條目后余額應(yīng)為原始 的1900.00元。<2>運(yùn)行結(jié)果:運(yùn)行結(jié)果:(1)輸入帳號(hào):201330330414,密碼:123456(錯(cuò)誤密碼)(圖4.1)(4.1)輸入帳號(hào)密碼(2)輸入錯(cuò)誤密碼的結(jié)果(圖4.2):(4.2)結(jié)果提示(3)重新輸入正確密碼(圖4.3):(4.3)重新輸入密碼(4)成功進(jìn)入管理員界面(圖4.4):(4.4)成功進(jìn)入管理員界面(5)添加財(cái)務(wù)信息:測(cè)試員0100測(cè)試2014051420(圖4.5):(4.5)添加財(cái)務(wù)信息(6)修改財(cái)務(wù)信息:修改“測(cè)試員”為“哈哈哈”(圖4.6)(4.6)修改財(cái)務(wù)信息(7)刪除財(cái)務(wù)信息:刪除使用人為“哈哈哈”的條目(圖4.7):(4.7)刪除財(cái)務(wù)信息(8)查詢財(cái)務(wù)信息(圖4.8):(4.8)查詢財(cái)務(wù)信息統(tǒng)計(jì)2013學(xué)年第1學(xué)期信息(圖4.9、圖4.10、圖4.11):(4.9)輸入統(tǒng)計(jì)學(xué)年(4.10)輸入統(tǒng)計(jì)學(xué)期(4.11)統(tǒng)計(jì)結(jié)果(10)分類(lèi)統(tǒng)計(jì)(圖4.12):(4.12)分類(lèi)統(tǒng)計(jì)(11)導(dǎo)出至Excel文檔(圖4.13):(4.13)導(dǎo)出至Excel文檔 二、結(jié)論:測(cè)試樣例滿足功能需求??偨Y(jié)剛開(kāi)始設(shè)計(jì)時(shí)毫無(wú)頭緒,代碼也是寫(xiě)得一團(tuán)糟,后來(lái)才意識(shí)到必須重頭開(kāi)始設(shè)計(jì)整個(gè)程序的結(jié)構(gòu)。由于所以信息要求必須存在文件里面,而且數(shù)據(jù)操作要用鏈表,所以我將程序設(shè)計(jì)為開(kāi)始時(shí)讀取文件信息到鏈表,退出時(shí)再把鏈表信息全部覆蓋寫(xiě)回文件里面。由于關(guān)于鏈表的知識(shí)還沒(méi)有非常熟悉,所以在寫(xiě)讀取文件的函數(shù)時(shí)出現(xiàn)了一點(diǎn)錯(cuò)誤,有時(shí)候其他細(xì)節(jié)也有一些疏忽導(dǎo)致出錯(cuò),這里要多謝蘇銳佳和林智兩位同學(xué)的幫助??傮w來(lái)說(shuō)絕大部分功能都能夠順利完成,其中的Sumrevise函數(shù)是寫(xiě)到查詢功能的時(shí)候才意識(shí)到其重要性,因?yàn)樵谛薷幕騽h除財(cái)務(wù)信息時(shí),如果涉及到收入、支出的修改,將導(dǎo)致之后的信息余額不正確,所以才寫(xiě)了這個(gè)函數(shù)以修正余額信息。還有學(xué)期總支出這一項(xiàng),由于學(xué)期涉及垮年度,所以還要考慮到下一年信息的整合。分類(lèi)統(tǒng)計(jì)這個(gè)功能想了最久,因?yàn)橛猛驹阪湵砝锩鏇](méi)有規(guī)律可循。當(dāng)時(shí)想到的第一個(gè)方案是從頭到尾檢索鏈表,將尋到的第一個(gè)前面未尋到過(guò)的“用途”添加到新的鏈表,再用這個(gè)新的鏈表從頭到尾,根據(jù)用途的關(guān)鍵字在原來(lái)的鏈表里面尋找對(duì)應(yīng)的支出信息并累加。后來(lái)覺(jué)得這樣操作很麻煩,又想到了并采用第二個(gè)方案:復(fù)制一個(gè)原來(lái)的鏈表,將頭結(jié)點(diǎn)里面的用途與后續(xù)結(jié)點(diǎn)對(duì)比,若相同,則累加計(jì)算支出,并刪除后面相同的結(jié)點(diǎn),到達(dá)表尾后,刪除頭結(jié)點(diǎn),并從新的頭結(jié)點(diǎn)開(kāi)始同樣的操作。這樣就可以保證所有不同用途都會(huì)被計(jì)算總支出并一一列出。這次課程設(shè)計(jì)讓我有機(jī)會(huì)重新認(rèn)識(shí)到自己的不足,也是一次對(duì)知識(shí)的重新梳理。雖然很不走運(yùn)地被分配到了相對(duì)較難的題目,不過(guò)這也起了強(qiáng)迫自己加強(qiáng)對(duì)C語(yǔ)言掌握程度的作用,并且讓我寫(xiě)出了自己目前為止最復(fù)雜的程序。參考文獻(xiàn)C語(yǔ)言程序設(shè)計(jì)教材《百度百科》關(guān)于system()函數(shù)的詞條。附錄:代碼清單#include<stdio.h>#include<string.h>#include<stdlib.h>#include<windows.h>structinfo{charname[10];//使用者名稱(chēng)charusage[50];//用途floatmoneyin;//收入floatmoneyout;//支出chartime[11];//發(fā)生時(shí)間floatsum;//余額structinfo*next;};structgetout//分類(lèi)統(tǒng)計(jì)功能所需要的新鏈表{charuse[50];//用途floatmonout;//支出structgetout*next;};typedefstruct//用戶信息結(jié)構(gòu)體{charnumber[13],password[7];intpower;}account;intLogin(account*loguser)//登錄驗(yàn)證{intmark=1;FILE*fp;charcmp[13];if((fp=fopen("user.in","r"))==NULL){printf("文件打開(kāi)錯(cuò)誤!\n");exit(0);}while(!feof(fp)){fgets(cmp,13,fp);if(strcmp(cmp,loguser->number)==0){mark=0;break;}}returnmark;}structinfo*Rfile(structinfo*headrf)//讀取文件儲(chǔ)存到鏈表{FILE*fr,*fw;charch;structinfo*p2,*p1;charname[10];//使用者名稱(chēng)charusage[50];//用途floatmoneyin;//收入floatmoneyout;//支出chartime[11];//發(fā)生時(shí)間floatsum;//余額fr=fopen("money.in","r");if(fr==NULL){fw=fopen("money.in","w");fr=fopen("money.in","r");}while((ch=fgetc(fr))!=EOF){fseek(fr,-1,SEEK_CUR);p1=(structinfo*)malloc(sizeof(structinfo));fscanf(fr,"%s%f%f%f%s%s\n",name,&moneyin,&moneyout,&sum,usage,time);p1->moneyin=moneyin;p1->moneyout=moneyout;strcpy(p1->name,name);p1->sum=sum;strcpy(p1->time,time);strcpy(p1->usage,usage);p1->next=NULL;if(headrf==NULL)headrf=p1;elsep2->next=p1;p2=p1;}returnheadrf;}voidAddinfo(structinfo*head1)//添加新財(cái)務(wù)信息{system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("★★★您的身份是管理員★★★\n\n");printf("┅┅┅┅財(cái)務(wù)信息錄入┅┅┅┅\n\n");structinfo*p,*p1,*p2;charname[10];//使用者名稱(chēng)charusage[50];//用途floatmoneyin;//收入floatmoneyout;//支出chartime[11];//發(fā)生時(shí)間floatsum;//余額p2=head1;while(p2){sum=p2->sum;p1=p2;p2=p2->next;}printf("請(qǐng)輸入使用人的姓名:");scanf("%s",name);printf("請(qǐng)輸入收入金額:");scanf("%f",&moneyin);printf("請(qǐng)輸入支出金額:");scanf("%f",&moneyout);printf("請(qǐng)輸入資金用途:");scanf("%s",usage);printf("年月日時(shí)\n");printf("請(qǐng)輸入使用時(shí)間:");scanf("%s",time);system("CLS");printf("┏━━━━━━━━━┓\n");printf("┃財(cái)務(wù)信息添加成功!┃\n");printf("┗━━━━━━━━━┛\n");Sleep(1000);p=(structinfo*)malloc(sizeof(structinfo));strcpy(p->name,name);p->moneyin=moneyin;p->moneyout=moneyout;strcpy(p->usage,usage);strcpy(p->time,time);p->sum=sum+moneyin-moneyout;p1->next=p;p->next=NULL;}voidSumrevise(structinfo*head40)//修正刪除或修改后更新的信息條以及后面的所有余額信息{structinfo*ppp1=head40,*ppp2=ppp1->next;while(ppp1&&ppp2){ppp2->sum=(ppp1->sum)+(ppp2->moneyin)-(ppp2->moneyout);ppp1=ppp1->next;ppp2=ppp1->next;}}voidChangeinfo(structinfo*head30)//修改財(cái)務(wù)信息{system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("★★★您的身份是管理員★★★\n\n");printf("┅┅┅┅財(cái)務(wù)信息修改┅┅┅┅\n\n");inti=0,choice;structinfo*pp1=head30,*pp2=head30,*pp3,*pp4=head30;charname[10];printf("請(qǐng)輸入要修改的財(cái)務(wù)信息使用人的名字:");scanf("%s",name);printf("\n使用人│收入金額│支出金額│余額│用途│使用時(shí)間\n\n");while(pp1){if(strcmp(pp1->name,name)==0){i++;printf("[%d]%s%.2f%.2f%.2f%s%s\n",i,pp1->name,pp1->moneyin,pp1->moneyout,pp1->sum,pp1->usage,pp1->time);}pp1=pp1->next;}if(i!=0){printf("\n請(qǐng)選擇序號(hào)以修改賬務(wù)信息:");scanf("%d",&i);while(i){if(strcmp(pp2->name,name)==0){i--;pp3=pp2;pp2=pp2->next;}else{pp3=pp2;pp2=pp2->next;}}system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("★★★您的身份是管理員★★★\n\n");printf("┅┅┅┅財(cái)務(wù)信息修改┅┅┅┅\n\n");printf("┌──────┬──────┐\n");printf("│[1]姓名│[2]收入金額│\n");printf("├──────┼──────┤\n");printf("│[3]支出金額│[4]用途│\n");printf("├──────┼──────┤\n");printf("│[5]時(shí)間│[0]取消│\n");printf("└──────┴──────┘\n\n請(qǐng)輸入要修改的信息項(xiàng)目對(duì)應(yīng)的序號(hào):");scanf("%d",&choice);while(choice){switch(choice){case1:{printf("請(qǐng)輸入正確的姓名:");scanf("%s",pp3->name);system("CLS");printf("┏━━━━━━━━━┓\n");printf("┃財(cái)務(wù)信息修改成功!┃\n");printf("┗━━━━━━━━━┛\n");Sleep(1000);break;}case2:{printf("請(qǐng)輸入正確的收入金額:");scanf("%f",&pp3->moneyin);system("CLS");printf("┏━━━━━━━━━┓\n");printf("┃財(cái)務(wù)信息修改成功!┃\n");printf("┗━━━━━━━━━┛\n");Sleep(1000);break;}case3:{printf("請(qǐng)輸入正確的支出金額:");scanf("%f",&pp3->moneyout);system("CLS");printf("┏━━━━━━━━━┓\n");printf("┃財(cái)務(wù)信息修改成功!┃\n");printf("┗━━━━━━━━━┛\n");Sleep(1000);break;}case4:{printf("請(qǐng)輸入正確的用途:");scanf("%s",pp3->usage);system("CLS");printf("┏━━━━━━━━━┓\n");printf("┃財(cái)務(wù)信息修改成功!┃\n");printf("┗━━━━━━━━━┛\n");Sleep(1000);break;}case5:{printf("請(qǐng)輸入正確的使用時(shí)間:");scanf("%s",pp3->time);system("CLS");printf("┏━━━━━━━━━┓\n");printf("┃財(cái)務(wù)信息修改成功!┃\n");printf("┗━━━━━━━━━┛\n");Sleep(1000);break;}case0:break;default:system("CLS");system("color0C");printf("┏━━━━━━━━┓\n");printf("┃請(qǐng)輸入正確編號(hào)!┃\n");printf("┗━━━━━━━━┛\n");Sleep(1000);system("color0b");break;}if(choice==2||choice==3){if(pp4==pp3){pp4->sum=pp3->moneyin-pp3->moneyout;}else{while(pp4->next!=pp3){pp4=pp4->next;}Sumrevise(pp4);}}system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("★★★您的身份是管理員★★★\n\n");printf("┅┅┅┅財(cái)務(wù)信息修改┅┅┅┅\n\n");printf("┌──────┬──────┐\n");printf("│[1]姓名│[2]收入金額│\n");printf("├──────┼──────┤\n");printf("│[3]支出金額│[4]用途│\n");printf("├──────┼──────┤\n");printf("│[5]時(shí)間│[0]取消│\n");printf("└──────┴──────┘\n\n請(qǐng)輸入要修改的信息項(xiàng)目對(duì)應(yīng)的序號(hào):");scanf("%d",&choice);}}else{system("CLS");system("color0C");printf("┏━━━━━┓\n");printf("┃查無(wú)此人!┃\n");printf("┗━━━━━┛\n");Sleep(1000);system("color0b");}}structinfo*Deleteinfo(structinfo*head50)//刪除財(cái)務(wù)信息{system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("★★★您的身份是管理員★★★\n\n");printf("┅┅┅┅財(cái)務(wù)信息刪除┅┅┅┅\n\n");inti=0,choice,k=0;structinfo*p11=head50,*p12=head50,*p13,*p14=head50;charname[10];printf("請(qǐng)輸入要?jiǎng)h除的財(cái)務(wù)信息使用人的名字:");scanf("%s",name);printf("\n使用人│收入金額│支出金額│余額│用途│使用時(shí)間\n\n");while(p11){if(strcmp(p11->name,name)==0){i++;printf("[%d]%s%.2f%.2f%.2f%s%s\n",i,p11->name,p11->moneyin,p11->moneyout,p11->sum,p11->usage,p11->time);}p11=p11->next;}if(i!=0){printf("\n[0]取消\n");printf("\n請(qǐng)選擇序號(hào)以刪除賬務(wù)信息:");scanf("%d",&choice);if(choice){system("CLS");system("color0C");printf("┏━━━━━━━━━┓\n");printf("┃確定要?jiǎng)h除信息?┃\n");printf("┣━━━━┳━━━━┫\n");printf("┃[1]刪除┃[0]取消┃\n");printf("┗━━━━┻━━━━┛\n");scanf("%d",&k);system("color0b");if(k==0)choice=k;}i=choice;if(choice)choice=1;switch(choice){case1:while(i){if(strcmp(p12->name,name)==0){i--;p13=p12;p12=p12->next;}else{p13=p12;//記錄修正余額需要的最后一條信息p12=p12->next;}}if(head50==p13)//如果要?jiǎng)h除的是第一個(gè)結(jié)點(diǎn){if(p12==NULL)//如果整個(gè)鏈表只有一個(gè)結(jié)點(diǎn){head50=NULL;free(p13);}elsehead50=p12;}else{while(p14->next!=p13){p14=p14->next;}p14->next=NULL;if(p12){p14->next=p12;}Sumrevise(p14);}system("CLS");printf("┏━━━━━━━━━┓\n");printf("┃財(cái)務(wù)信息刪除成功!┃\n");printf("┗━━━━━━━━━┛\n");Sleep(1000);case0:break;default:system("CLS");system("color0C");printf("┏━━━━━━━━┓\n");printf("┃請(qǐng)輸入正確編號(hào)!┃\n");printf("┗━━━━━━━━┛\n");Sleep(1000);system("color0b");break;}}else{system("CLS");system("color0C");printf("┏━━━━━┓\n");printf("┃查無(wú)此人!┃\n");printf("┗━━━━━┛\n");Sleep(1000);system("color0b");}returnhead50;}voidCheckinfo(structinfo*head60)//查詢財(cái)務(wù)狀況{system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("┅┅┅┅財(cái)務(wù)信息查詢┅┅┅┅\n\n");floatinin=0,outout=0,sum=0;structinfo*p00=head60;while(p00){inin=inin+p00->moneyin;outout=outout+p00->moneyout;sum=sum-p00->moneyout+p00->moneyin;p00=p00->next;}printf("*==============================*\n");printf("歷史總收入金額:%.2f\n",inin);printf("*==============================*\n");printf("歷史總支出金額:%.2f\n",outout);printf("*==============================*\n");printf("現(xiàn)存余額:%.2f\n",sum);printf("*==============================*\n\n");system("pause");}voidSumupinfo(structinfo*head70)//統(tǒng)計(jì)學(xué)期、月的財(cái)務(wù)狀況{structinfo*p41=head70,*p42=head70;intchoice=1,i=0,j=0,k=0;charyear[5],mmday[10],chcmp[10],tcmp[5],tcmp1[5],mcmp[3];charyue[3];intterm=1;floatsumin,sumout;while(choice){system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("┅┅┅┅財(cái)務(wù)信息統(tǒng)計(jì)┅┅┅┅\n\n");printf("┏━━━━┳━━━━┳━━━━┓\n");printf("┃[1]月度┃[2]學(xué)期┃[0]取消┃\n");printf("┗━━━━┻━━━━┻━━━━┛\n\n");printf("請(qǐng)輸入要統(tǒng)計(jì)月度信息還是學(xué)期信息:");scanf("%d",&choice);switch(choice){case1:{while(1){system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("┅┅┅┅財(cái)務(wù)信息統(tǒng)計(jì)┅┅┅┅\n\n");printf("請(qǐng)輸入年份(輸入[0]返回上一級(jí)):");scanf("%s",year);if(year[0]=='0')break;while(1){sumin=0;sumout=0;system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("┅┅┅┅財(cái)務(wù)信息統(tǒng)計(jì)┅┅┅┅\n\n");printf("請(qǐng)輸入月份(如:[01]一月份[00]返回上一級(jí)):");scanf("%s",yue);if(yue[0]=='0'&&yue[1]=='0')break;strcpy(mmday,year);strcat(mmday,yue);mmday[6]='\0';while(1){if(p41==NULL)break;strcpy(chcmp,p41->time);chcmp[6]='\0';for(k=6;k>0;k--)//strcmp在此出錯(cuò),改變了mmday[0]的值導(dǎo)致比較結(jié)果出錯(cuò){if(mmday[k]!=chcmp[k])break;}if(k==0){i++;sumin=sumin+p41->moneyin;sumout=sumout+p41->moneyout;}p41=p41->next;}if(i!=0){system("CLS");printf("\n*==============================================*\n\n");printf("%s年%s月總收入為:%.2f,總支出為:%.2f\n",year,yue,sumin,sumout);printf("\n*==============================================*\n\n");system("pause");}else{system("CLS");system("color0C");printf("┏━━━━━━━━━━━┓\n");printf("┃沒(méi)有%s年%s月的信息!┃\n",year,yue);printf("┗━━━━━━━━━━━┛\n");Sleep(1500);system("color0b");}p41=head70;}}}break;case2:{while(1){system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("┅┅┅┅財(cái)務(wù)信息統(tǒng)計(jì)┅┅┅┅\n\n");printf("請(qǐng)輸入學(xué)年(輸入[0]返回上一級(jí)):");scanf("%s",year);if(year[0]=='0')break;while(1){sumin=0;sumout=0;system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("┅┅┅┅財(cái)務(wù)信息統(tǒng)計(jì)┅┅┅┅\n\n");printf("請(qǐng)輸入學(xué)期([1]第一學(xué)期[2]第二學(xué)期[0]返回上一級(jí)):");scanf("%d",&term);if(!term)break;while(1){if(p42==NULL)break;strcpy(tcmp,p42->time);tcmp[4]='\0';strcpy(tcmp1,year);tcmp1[3]=year[3]+1;//第一學(xué)期為9月-下年2月份,所以要將輸入的年份+1tcmp1[4]='\0';if(tcmp1[3]==':'){tcmp1[2]=tcmp1[2]+1;tcmp1[3]=tcmp1[3]-10;if(tcmp1[2]==':'){tcmp1[1]=tcmp1[1]+1;tcmp1[2]=tcmp1[2]-10;if(tcmp1[1]==':'){tcmp1[0]=tcmp1[0]+1;tcmp1[1]=tcmp1[1]-10;}}}mcmp[0]=p42->time[4];mcmp[1]=p42->time[5];mcmp[2]='\0';if(term==1){if(strcmp(tcmp,year)==0){if((strcmp(mcmp,"09")==0)||(strcmp(mcmp,"10")==0)||(strcmp(mcmp,"11")==0)||(strcmp(mcmp,"12")==0)){j++;sumin=sumin+p42->moneyin;sumout=sumout+p42->moneyout;}}if(strcmp(tcmp1,tcmp)==0){if((strcmp(mcmp,"01")==0)||(strcmp(mcmp,"02")==0)){j++;sumin=sumin+p42->moneyin;sumout=sumout+p42->moneyout;}}}if(term==2){if(strcmp(tcmp1,tcmp)==0){if((strcmp(mcmp,"03")==0)||(strcmp(mcmp,"04")==0)||(strcmp(mcmp,"05")==0)||(strcmp(mcmp,"06")==0)||(strcmp(mcmp,"07")==0)||(strcmp(mcmp,"08")==0)){j++;sumin=sumin+p42->moneyin;sumout=sumout+p42->moneyout;}}}p42=p42->next;}if(j!=0){j=0;system("CLS");printf("\n*=================================================*\n\n");printf("%s學(xué)年第%d學(xué)期總收入為:%.2f,總支出為:%.2f\n",year,term,sumin,sumout);printf("\n*=================================================*\n\n");system("pause");}else{system("CLS");system("color0C");printf("┏━━━━━━━━━━━━━━┓\n");printf("┃沒(méi)有%s學(xué)年第%d學(xué)期的信息!┃\n",year,term);printf("┗━━━━━━━━━━━━━━┛\n");Sleep(1500);system("color0b");}p42=head70;}}}break;case0:break;default:system("CLS");system("color0C");printf("┏━━━━━━━━┓\n");printf("┃請(qǐng)輸入正確編號(hào)!┃\n");printf("┗━━━━━━━━┛\n");Sleep(1000);system("color0b");break;}}}voidClassinfo(structinfo*head80)//分類(lèi)統(tǒng)計(jì)支出{system("CLS");printf("\n╔╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");printf("╠歡迎使用班級(jí)財(cái)務(wù)管理系統(tǒng)!╣\n");printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n\n");printf("┅┅┅┅財(cái)務(wù)信息分類(lèi)┅┅┅┅\n\n");structinfo*p91=head80,*p92=NULL;structgetout*get1=NULL,*get2=NULL,*get3=NULL,*get4=NULL,*get5=NULL;;charuseuse[50];floatmmout=0.0;inti=1;if(head80==NULL){system("CLS");system("color0C");printf("┏━━━━━━━┓\n");printf("┃沒(méi)有財(cái)務(wù)信息!┃\n");printf("┗━━━━━━━┛\n");Sleep(1000);system("color0b");}else{get1=(structgetout*)malloc(sizeof(structgetout));strcpy(get1->use,p91

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論