c語(yǔ)言課程設(shè)計(jì)報(bào)告(銀行賬戶信息管理系統(tǒng))_第1頁(yè)
已閱讀1頁(yè),還剩49頁(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)介

1、<p>  HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY</p><p><b>  C語(yǔ)言程序設(shè)計(jì)</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課設(shè)題目: 銀行賬戶信息管理 </p>

2、<p>  專 業(yè): 電子信息工程(汽車電子) </p><p>  班 級(jí): T1223-14 </p><p>  姓 名: 朱鵬 </p><p>  成 績(jī):

3、 </p><p>  完成日期: 2013年18周-2013年19周 </p><p>  指導(dǎo)教師: 張吳波 田漫柳 </p><p><b>  目錄</b></p><

4、p><b>  C語(yǔ)言程序設(shè)計(jì)0</b></p><p><b>  課程設(shè)計(jì)報(bào)告0</b></p><p><b>  目錄1</b></p><p>  1.課程設(shè)計(jì)目的2</p><p><b>  2.需求分析2</b></p

5、><p><b>  2.1 要求2</b></p><p><b>  2.2任務(wù)描述3</b></p><p><b>  2.3運(yùn)行環(huán)境4</b></p><p><b>  2.4開(kāi)發(fā)工具4</b></p><p>&l

6、t;b>  3.總體設(shè)計(jì)4</b></p><p>  3.1系統(tǒng)流設(shè)計(jì)4</p><p>  3.2系統(tǒng)模塊設(shè)計(jì)5</p><p><b>  4.詳細(xì)設(shè)計(jì)6</b></p><p>  4.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)6</p><p>  4.2 模塊接口設(shè)計(jì)7</p&

7、gt;<p>  4.3主要功能模塊的流程圖9</p><p><b>  5.運(yùn)行結(jié)果14</b></p><p>  5.1 歡迎界面14</p><p>  5.2 主菜單14</p><p>  5.3 次菜單-信息輸入界面15</p><p>  5.4 信息查詢

8、界面15</p><p>  5.5記錄查詢界面16</p><p>  5.6退出界面16</p><p>  6.程序調(diào)試與測(cè)試17</p><p>  6.1 主菜單選擇測(cè)試17</p><p>  6.2 次菜單選擇測(cè)試17</p><p>  6.3客戶信息的輸入測(cè)試18

9、</p><p>  6.4客戶密碼測(cè)試20</p><p>  6.5存取款金額測(cè)試21</p><p>  6.6存取款日期測(cè)試22</p><p>  7.問(wèn)題與不足23</p><p><b>  8.建議23</b></p><p><b> 

10、 9.編程體會(huì)24</b></p><p>  10.程序源代碼25</p><p>  11.參考文獻(xiàn)42</p><p>  12.用戶使用手冊(cè)42</p><p>  12.1 程序主要用途42</p><p>  12.2使用說(shuō)明42</p><p>  12.3

11、注意事項(xiàng)43</p><p>  12.4維護(hù)與升級(jí)43</p><p><b>  1.課程設(shè)計(jì)目的</b></p><p>  通過(guò)課程設(shè)計(jì),加深對(duì)結(jié)構(gòu)化程序設(shè)計(jì)思想的理解,能對(duì)系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理的模塊化結(jié)構(gòu)。</p><p>  通過(guò)課程設(shè)計(jì),進(jìn)一步掌握C語(yǔ)言中重要的數(shù)據(jù)結(jié)構(gòu)。掌握并熟練運(yùn)用指針、鏈表

12、、結(jié)構(gòu)體、文件等數(shù)據(jù)結(jié)構(gòu)。</p><p>  通過(guò)課程設(shè)計(jì),提高程序開(kāi)發(fā)能力,能運(yùn)用合理的控制流編寫清晰高效的程序。</p><p>  通過(guò)課程設(shè)計(jì),培養(yǎng)C語(yǔ)言知識(shí)運(yùn)用和自學(xué)能力,真正的把課堂上獲得的知識(shí)運(yùn)用起來(lái),培養(yǎng)自己對(duì)程序編寫的興趣,并能獨(dú)立設(shè)計(jì)和實(shí)現(xiàn)一個(gè)小型系統(tǒng)。</p><p>  通過(guò)課程設(shè)計(jì),加強(qiáng)了自己的程序分析能力。</p><

13、;p><b>  2.需求分析</b></p><p><b>  2.1 要求</b></p><p>  遵循軟件開(kāi)發(fā)過(guò)程的基本規(guī)范;能靈活應(yīng)用,初步具備運(yùn)用C程序解決實(shí)際問(wèn)題的能力。</p><p>  運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)方法,按照課程設(shè)計(jì)題目要求,完成包括需求分析、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、

14、調(diào)試和測(cè)試C程序等過(guò)程。</p><p>  學(xué)會(huì)利用數(shù)組、結(jié)構(gòu)體、鏈表進(jìn)行相關(guān)信息表示。</p><p>  功能模塊劃分清晰,系統(tǒng)結(jié)構(gòu)圖符合功能操作要求,且有詳盡的功能描述</p><p>  各主要功能模塊有詳盡的流程圖及描述,用函數(shù)的形式實(shí)現(xiàn),且調(diào)用入口、功能、出口等關(guān)系正確。</p><p>  所設(shè)計(jì)的C程序較好的可讀性和可靠性;

15、程序書寫風(fēng)格規(guī)范,注釋清晰。</p><p>  界面友好(良好的人機(jī)互交),凡需要輸入信息時(shí),都有較詳盡的提示信息,并對(duì)輸入信息有較完善的值域分析。</p><p>  程序經(jīng)上機(jī)調(diào)試通過(guò),不應(yīng)出現(xiàn)語(yǔ)法型、功能型錯(cuò)誤,并獲得滿意的結(jié)果。</p><p>  學(xué)會(huì)通過(guò)各功能性測(cè)試用例測(cè)試程序的能力,盡可能避免原則性錯(cuò)誤的出現(xiàn)。</p><p>

16、;  掌握編寫、調(diào)試和測(cè)試C語(yǔ)言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計(jì)的基本方法。</p><p>  C語(yǔ)言課程設(shè)計(jì)報(bào)告的內(nèi)容反應(yīng)實(shí)際設(shè)計(jì)過(guò)程,且符合格式要求,無(wú)抄襲現(xiàn)象。</p><p><b>  2.2任務(wù)描述</b></p><p>  已知一銀行有5個(gè)客戶(客戶信息為:編號(hào)、客戶姓名、客戶地址、客戶電話、賬戶總金額(最開(kāi)始為0))。

17、設(shè)計(jì)一程序,完成以下功能。存、取款時(shí)間必須通過(guò)調(diào)用系統(tǒng)時(shí)間獲得。</p><p>  存款:輸入客戶編號(hào)、存款金額、存款日期,完成存款功能,需要判斷客戶編號(hào)是否存在,存款金額是否大于0,存款日期格式是否合法(格式為:YYYY-MM-DD,如2009-01-02))。</p><p>  取款:輸入客戶編號(hào)、存款金額、取款日期,完成取款功能,需要判斷客戶編號(hào)是否存在,取款金額是否大于0,取款

18、金額是否小于客戶的賬戶總金額,取款日期格式是否合法(格式為:YYYY-MM-DD,如2009-01-02))。</p><p><b>  查詢指定客戶的余額</b></p><p>  查詢指定客戶的存款記錄</p><p>  查詢指定客戶的取款記錄</p><p>  所有數(shù)據(jù)符合實(shí)際應(yīng)用要求</p>

19、<p><b>  2.3運(yùn)行環(huán)境</b></p><p>  Windows 7系統(tǒng)</p><p>  VC++6.0編譯環(huán)境</p><p><b>  2.4開(kāi)發(fā)工具</b></p><p><b>  C語(yǔ)言</b></p><p>

20、;<b>  3.總體設(shè)計(jì)</b></p><p><b>  3.1系統(tǒng)流設(shè)計(jì)</b></p><p>  程序整體功能結(jié)構(gòu)如圖一所示:</p><p><b>  3.2系統(tǒng)模塊設(shè)計(jì)</b></p><p>  1) 系統(tǒng)初始化模塊 函數(shù)void startvalue()

21、;實(shí)現(xiàn)初始化歡迎信息,并實(shí)現(xiàn)值得初始化。</p><p>  2) 菜單模塊 函數(shù)int menu();和int menu2();分別實(shí)現(xiàn)一級(jí)二級(jí)菜單顯示,一級(jí)菜單是主菜單,二級(jí)菜單是輸入菜單,并返回相應(yīng)的選項(xiàng)值。</p><p>  3) 存取款模塊 函數(shù)void Deposit_Withdraw();實(shí)現(xiàn)存取款的功能,其中會(huì)使用相關(guān)其他函數(shù)共同實(shí)現(xiàn)。</p><

22、p>  4) 信息查詢模塊 函數(shù)int InfoFind();實(shí)現(xiàn)信息的查詢功能,包括賬戶余額查詢,存取款歷史記錄查詢。</p><p>  5) 日期審查模塊 函數(shù)int isDataRight();實(shí)現(xiàn)對(duì)日期的審查,其中同樣會(huì)調(diào)用其他函數(shù)輔助實(shí)現(xiàn)。</p><p><b>  4.詳細(xì)設(shè)計(jì)</b></p><p><b>

23、;  4.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  根據(jù)系統(tǒng)要求,用戶信息包括:</p><p>  根據(jù)系統(tǒng)要求,日期信息包括:</p><p>  根據(jù)系統(tǒng)要求,存取款記錄包括:</p><p>  為了能實(shí)現(xiàn)系統(tǒng)的優(yōu)越性和c語(yǔ)言的精華采用鏈表的建立取款記錄表,示意圖如下。 </p><p>  4.

24、2 模塊接口設(shè)計(jì)</p><p><b>  1)所有函數(shù)聲明</b></p><p><b>  //初始化</b></p><p>  void startvalue();</p><p><b>  //頭部信息</b></p><p>  voi

25、d SysTitle();</p><p><b>  //一級(jí)菜單</b></p><p>  int menu();</p><p><b>  //二級(jí)菜單</b></p><p>  int menu2( int InfoClass );</p><p><b&

26、gt;  //輸入函數(shù)</b></p><p>  void InPut(char *cbox,int *ibox,double * money,int InPutClass,char *boxname);</p><p>  /******日期時(shí)間相關(guān)函數(shù)******/</p><p>  //將字符型的日期轉(zhuǎn)換為整型,并分離出年月日</p>

27、;<p>  void Char2Int ( char *DataIn,int *YearOut,int *MonthOut,int *DayOut);</p><p><b>  //判斷是否為閏年</b></p><p>  int leap(int year);</p><p>  //計(jì)算某年某月的天數(shù)</p>

28、<p>  int month_days(int year,int month);</p><p>  //計(jì)算若干年的總天數(shù)</p><p>  unsigned int yearsdays(int toyear);</p><p>  //計(jì)算某個(gè)月的總天數(shù)</p><p>  int days(int year,int m

29、onth);</p><p>  //日期換算為秒,用于排序</p><p>  unsigned int Data2Sec( USEDATA * DataIn );</p><p>  //判斷日期邏輯是否正確</p><p>  int isDataNumRight(int YearIn,int MonthIn,int DayIn);&l

30、t;/p><p>  //判斷日期是否正確</p><p>  int isDataRight(char *DataIn,int *YearOut,int *MonthOut,int *DayOut);</p><p>  //調(diào)用系統(tǒng)時(shí)間,給結(jié)日期結(jié)構(gòu)體添加時(shí)間</p><p>  void systime(USEDATA * Data4Tim

31、e);</p><p><b>  //客戶編號(hào)驗(yàn)證</b></p><p>  int isIDexist(int IDin);</p><p>  /*******存款、取款、查詢相關(guān)函數(shù)*****/</p><p><b>  //存取款</b></p><

32、;p>  void Deposit_Withdraw(int ActClass );</p><p><b>  //信息查詢</b></p><p>  int InfoFind( int ActClass , int InfoClass );</p><p><b>  //尋找插入點(diǎn)</b></p>

33、<p>  RECORDS * InPoint();</p><p>  //將存取款記錄按照日期排序</p><p>  void toorder();</p><p><b>  //增加存取款記錄</b></p><p>  int InOut(int IDin,double ActNum, USED

34、ATA * ActData, int ActClass);</p><p>  //ID、姓名、地址、電話查詢結(jié)構(gòu)體數(shù)組id</p><p>  int Find(int IDin,char *NameIn,char *AddressIn,int TelNumIn);</p><p>  //存取款記錄和余額查詢并輸出</p><p>  i

35、nt FindOutPut( int IDin,char * NameIn, char * AddressIn, int TelNumIn, int actclass );</p><p><b>  //退出</b></p><p>  void exit0();</p><p><b>  2)全局變量</b><

36、/p><p>  1、用于存儲(chǔ)正確的日期信息的結(jié)構(gòu)體USEDATA RightData;</p><p>  2、用于存儲(chǔ)客戶信息的結(jié)構(gòu)體數(shù)組CUSTOM customer[5];</p><p>  3、用于存儲(chǔ)存取款記錄的鏈表的指針RECORDS *head=NULL,*p1=NULL,*p2=NULL;</p><p><b> 

37、 3)主要模塊的實(shí)現(xiàn)</b></p><p>  系統(tǒng)以 int main()為入口,首先調(diào)用void startvalue()函數(shù)進(jìn)行初始化,并顯示歡迎信息。接著,按照用戶的要求,調(diào)用void Deposit_Withdraw()函數(shù)進(jìn)行存取款的操作,或者調(diào)用int InfoFind()函數(shù)進(jìn)行信息的查詢。不管還是存取款還是信息查詢,都需要調(diào)用void InPut()函數(shù)進(jìn)行輸入信息的輸入。存取款功

38、能還會(huì)調(diào)用日期審查函數(shù)int isDataRight()對(duì)日期進(jìn)行審查。通過(guò)審查之后,會(huì)調(diào)用int InOut()函數(shù)添加存取款記錄,并修改賬戶余額。</p><p>  最后調(diào)用void exit0()函數(shù)退出。</p><p>  4.3主要功能模塊的流程圖</p><p>  1) 系統(tǒng)初始化模塊 </p><p><b> 

39、 2) 菜單模塊 </b></p><p><b>  3) 存取款模塊 </b></p><p><b>  4) 信息查詢模塊</b></p><p>  5) 日期審查模塊 </p><p><b>  5.運(yùn)行結(jié)果</b></p><

40、p><b>  5.1 歡迎界面</b></p><p><b>  5.2 主菜單</b></p><p>  5.3 次菜單-信息輸入界面</p><p>  5.4 信息查詢界面</p><p><b>  5.5記錄查詢界面</b></p><

41、p><b>  5.6退出界面</b></p><p><b>  6.程序調(diào)試與測(cè)試</b></p><p><b>  測(cè)試數(shù)據(jù):</b></p><p>  6.1 主菜單選擇測(cè)試</p><p>  若用戶輸入錯(cuò)誤選項(xiàng),則如圖顯示:</p><

42、p>  6.2 次菜單選擇測(cè)試</p><p>  若用戶輸入錯(cuò)誤選項(xiàng),則如圖顯示:</p><p>  6.3客戶信息的輸入測(cè)試</p><p>  1)若輸入了不存在的客戶編號(hào):</p><p>  2)若輸入了不存在的客戶姓名:</p><p>  3)若輸入了不存在的客戶地址:</p>&l

43、t;p>  4)若輸入了不存在的客戶電話:</p><p><b>  6.4客戶密碼測(cè)試</b></p><p><b>  1)密碼輸入錯(cuò)誤:</b></p><p><b>  2)密碼錯(cuò)誤三次:</b></p><p>  6.5存取款金額測(cè)試</p>

44、<p><b>  1)金額為負(fù)值:</b></p><p>  2)取款金額大于賬戶余額:</p><p>  6.6存取款日期測(cè)試</p><p>  1)若輸入錯(cuò)誤格式的日期:</p><p>  2)若輸入正確格式的日期,但是日期不符合實(shí)際:</p><p><b>

45、;  7.問(wèn)題與不足</b></p><p>  1、需求分析中存在的為題</p><p>  題目中說(shuō)只有5個(gè)用戶,而且沒(méi)有對(duì)賬戶信息進(jìn)行修改等操作,如果對(duì)賬戶信息的增刪改三個(gè)功能,程序會(huì)更加完美。</p><p>  2、程序設(shè)計(jì)中的缺陷</p><p>  存取款的時(shí)候,給系統(tǒng)添加記錄的時(shí)候,會(huì)同時(shí)進(jìn)行排序,排序方法用的是排

46、序,排序方法比較簡(jiǎn)陋,數(shù)據(jù)量較大的時(shí)候會(huì)比較耗時(shí)間。</p><p><b>  8.建議</b></p><p>  課程設(shè)計(jì)的題目涉及范圍應(yīng)該更廣。對(duì)于課設(shè)的時(shí)間按排,可以提前把題目給學(xué)生,這樣可以提前做課設(shè)以及復(fù)習(xí)考試。程序設(shè)計(jì)的功能應(yīng)相對(duì)更加復(fù)雜一點(diǎn),這樣有利培養(yǎng)同學(xué)們的分析問(wèn)題,解決問(wèn)題的能力,同時(shí)也能提高同學(xué)們對(duì)代碼的掌握能力。再者,就是題目,盡量少給一些

47、提示,這樣同學(xué)們可以更大程度的自己動(dòng)腦子考慮怎解決問(wèn)題。</p><p><b>  9.編程體會(huì)</b></p><p>  經(jīng)歷了編c語(yǔ)言課程設(shè)計(jì)后,我弄懂了在前幾周課堂上沒(méi)搞明白的東西,例如,鏈表的建立,排序,遍歷等等。也提高了自己對(duì)指針的熟練度。以前就聽(tīng)說(shuō)對(duì)指針的掌握程度決定了一個(gè)人的編程水平。所以,雖然寫程序的過(guò)程中,遇到各種問(wèn)題,調(diào)試的時(shí)候也是遇到各種令人

48、頭大的問(wèn)題,但能借助課程設(shè)計(jì)提高自己對(duì)指針的熟練度,提高自己對(duì)c語(yǔ)言編程的熟練度,我還是覺(jué)得很開(kāi)心的,也希望學(xué)??梢远嚅_(kāi)設(shè)一些這樣的課程,既是讓我們對(duì)自己所學(xué)知識(shí)的一個(gè)綜合理解與使用,也可以提高我們的動(dòng)手實(shí)踐能力、對(duì)知識(shí)的運(yùn)用能力。</p><p><b>  10.程序源代碼</b></p><p><b>  /*</b></p>

49、<p>  *************************************</p><p>  *簡(jiǎn)易銀行信息管理系統(tǒng)*</p><p>  *作者:朱鵬*</p><p>  *學(xué)號(hào):20120231406*</p><p>  *指導(dǎo)老師:張吳波 田漫柳*</p>

50、;<p>  *************************************</p><p><b>  */</b></p><p>  /**************************************頭文件**************************************/</p><p>

51、  #include<stdio.h></p><p>  #include<string.h></p><p>  #include<stdlib.h></p><p>  #include<time.h></p><p>  #include<malloc.h></p>

52、;<p>  #include<conio.h></p><p>  #include<windows.h></p><p>  #define LEN sizeof(struct records)</p><p>  /**************************************記錄修改標(biāo)記**********

53、**************************/</p><p>  int RecorsChanged = 0;</p><p><b>  FILE *fp;</b></p><p>  /**************************************日期結(jié)構(gòu)體******************************

54、********/</p><p>  typedef struct data</p><p><b>  {</b></p><p><b>  int year;</b></p><p>  int month;</p><p><b>  int day;

55、</b></p><p><b>  int hour;</b></p><p><b>  int min;</b></p><p><b>  int sec;</b></p><p><b>  }USEDATA;</b></p&g

56、t;<p>  USEDATA RightData;</p><p>  /**************************************客戶信息結(jié)構(gòu)體**************************************/</p><p>  typedef struct custom</p><p><b>  {

57、</b></p><p><b>  int id;</b></p><p>  char name[10];</p><p>  char address[1024];</p><p>  int telnum;</p><p>  double account;</p>

58、<p>  int password;</p><p><b>  }CUSTOM;</b></p><p>  CUSTOM customer[5];</p><p>  /**************************************存取款記錄鏈表*********************************

59、*****/</p><p>  typedef struct records</p><p><b>  {</b></p><p><b>  int id;</b></p><p>  USEDATA InOutData;</p><p>  int ActionC

60、lass;</p><p>  double ActionNum;</p><p>  struct records * next;</p><p><b>  }RECORDS;</b></p><p>  //head為頭指針,p1,p2為鏈表操作指針</p><p>  RECORDS *h

61、ead=NULL,*p1=NULL,*p2=NULL;</p><p>  /**************************************函數(shù)聲明**************************************/</p><p><b>  //初始化</b></p><p>  void startvalue();

62、</p><p><b>  //頭部信息</b></p><p>  void SysTitle();</p><p><b>  //一級(jí)菜單</b></p><p>  int menu();</p><p><b>  //二級(jí)菜單</b><

63、;/p><p>  int menu2( int InfoClass );</p><p><b>  //輸入函數(shù)</b></p><p>  void InPut(char *cbox,int *ibox,double * money,int InPutClass,char *boxname);</p><p>  /*

64、**************************************日期時(shí)間相關(guān)函數(shù)***************************************/</p><p>  //將字符型的日期轉(zhuǎn)換為整型,并分離出年月日</p><p>  void Char2Int ( char *DataIn,int *YearOut,int *MonthOut,int *DayOu

65、t);</p><p><b>  //判斷是否為閏年</b></p><p>  int leap(int year);</p><p>  //計(jì)算某年某月的天數(shù)</p><p>  int month_days(int year,int month);</p><p>  //計(jì)算若干年的總

66、天數(shù)</p><p>  unsigned int yearsdays(int toyear);</p><p>  //計(jì)算某個(gè)月的總天數(shù)</p><p>  int days(int year,int month);</p><p>  //日期換算為秒,用于排序</p><p>  unsigned int Da

67、ta2Sec( USEDATA * DataIn );</p><p>  //判斷日期邏輯是否正確</p><p>  int isDataNumRight(int YearIn,int MonthIn,int DayIn);</p><p>  //判斷日期是否正確</p><p>  int isDataRight(char *Data

68、In,int *YearOut,int *MonthOut,int *DayOut);</p><p>  //調(diào)用系統(tǒng)時(shí)間,給結(jié)日期結(jié)構(gòu)體添加時(shí)間</p><p>  void systime(USEDATA * Data4Time);</p><p><b>  //客戶編號(hào)驗(yàn)證</b></p><p&

69、gt;  int isIDexist(int IDin);</p><p>  /***************************************存款、取款、查詢相關(guān)函數(shù)***************************************/</p><p><b>  //存取款</b></p><p>  void D

70、eposit_Withdraw(int ActClass );</p><p><b>  //信息查詢</b></p><p>  int InfoFind( int ActClass , int InfoClass );</p><p><b>  //尋找插入點(diǎn)</b></p><p>  R

71、ECORDS * InPoint();</p><p>  //將存取款記錄按照日期排序</p><p>  void toorder();</p><p><b>  //增加存取款記錄</b></p><p>  int InOut(int IDin,double ActNum, USEDATA * ActData,

72、 int ActClass);</p><p>  //ID、姓名、地址、電話查詢結(jié)構(gòu)體數(shù)組id</p><p>  int Find(int IDin,char *NameIn,char *AddressIn,int TelNumIn);</p><p>  //存取款記錄和余額查詢并輸出</p><p>  int FindOutPut(

73、 int IDin,char * NameIn, char * AddressIn, int TelNumIn, int actclass );</p><p><b>  //退出</b></p><p>  void exit0();</p><p>  /**************************************主函數(shù)*

74、*************************************/</p><p><b>  /*</b></p><p>  功能:調(diào)用各個(gè)子函數(shù)完成功能</p><p><b>  輸入:無(wú)</b></p><p><b>  返回:無(wú)</b></p>

75、;<p><b>  */</b></p><p>  int main()</p><p><b>  {</b></p><p>  int curID=0,curTel=0;</p><p>  double curMoney=0;</p><p>  c

76、har InPutData[20]={0},curName[20]={0},curAddress[1024];</p><p><b>  //客戶名單初始化</b></p><p>  startvalue();</p><p><b>  while(1)</b></p><p><b&g

77、t;  {</b></p><p>  switch( menu() )</p><p><b>  {</b></p><p>  case 1://存款</p><p>  system("cls");</p><p>  Deposit_Withdr

78、aw(1);</p><p><b>  break;</b></p><p>  case 2://取款</p><p>  system("cls");</p><p>  Deposit_Withdraw(-1);</p><p><b>  brea

79、k;</b></p><p>  case 3://余額查詢</p><p>  system("cls");</p><p>  if( InfoFind(0,3) != -1 )</p><p><b>  {</b></p><p>  print

80、f("\t\t 查詢完成!按任意鍵繼續(xù)!");</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  break;</b></p><p>  case 4://存款記錄查詢&l

81、t;/p><p>  system("cls");</p><p>  if( InfoFind(1,4) != -1 )</p><p><b>  {</b></p><p>  printf("\t\t 查詢完成!按任意鍵繼續(xù)!");</p><p>&

82、lt;b>  getch();</b></p><p><b>  }</b></p><p><b>  break;</b></p><p>  case 5://取款記錄查詢</p><p>  system("cls");</p>

83、<p>  if( InfoFind(-1,5) != -1 )</p><p><b>  {</b></p><p>  printf("\t\t 查詢完成!按任意鍵繼續(xù)!");</p><p><b>  getch();</b></p><p><b&

84、gt;  }</b></p><p><b>  break;</b></p><p>  case 6://退出</p><p>  system("cls");</p><p><b>  exit0();</b></p><p>

85、;<b>  break;</b></p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p&

86、gt;<p><b>  return 0;</b></p><p><b>  }</b></p><p>  /**************************************初始化**************************************/</p><p><b>

87、;  /*</b></p><p>  功能:給用戶結(jié)構(gòu)體數(shù)組賦值,并從文件中讀取歷史操作記錄寫入鏈表</p><p><b>  輸入:無(wú)</b></p><p><b>  返回:無(wú)</b></p><p><b>  */</b></p><

88、;p>  void startvalue()</p><p><b>  {</b></p><p>  int i=0,startID=0,startActClass=0;</p><p>  double startActNum=0;</p><p>  USEDATA startData;</p>

89、<p>  customer[0].id=1;strcpy(customer[0].name,"唐僧");strcpy(customer[0].address,"東土大唐");customer[0].telnum=88888880;customer[0].account=1000000.0;customer[0].password=8888888;</p><p&

90、gt;  customer[1].id=2;strcpy(customer[1].name,"孫悟空");strcpy(customer[1].address,"花果山");customer[1].telnum=88888881;customer[1].account=100000.0;customer[1].password=8888888;</p><p>  cust

91、omer[2].id=3;strcpy(customer[2].name,"豬八戒");strcpy(customer[2].address,"高老莊");customer[2].telnum=88888882;customer[2].account=10000.0;customer[2].password=8888888;</p><p>  customer[3].id

92、=4;strcpy(customer[3].name,"沙和尚");strcpy(customer[3].address,"流沙河");customer[3].telnum=88888883;customer[3].account=1000.0;customer[3].password=8888888;</p><p>  customer[4].id=5;strcpy(c

93、ustomer[4].name,"佛祖");strcpy(customer[4].address,"西天");customer[4].telnum=88888884;customer[4].account=100000000.0;customer[4].password=8888888;</p><p>  if( !( ( fp=fopen("records.t

94、xt","r") )==NULL ) )</p><p><b>  {</b></p><p>  while(!feof(fp))</p><p><b>  {</b></p><p>  fscanf(fp,"%d%lf%d%d%d%d%d%d%d&q

95、uot;,</p><p>  &startID,&startActNum,&startActClass,&startData.year,&startData.month,&startData.day,&startData.hour,&startData.min,&startData.sec);</p><p>  i

96、f(feof(fp))</p><p><b>  break;</b></p><p>  InOut(startID,startActNum,&startData,startActClass);</p><p><b>  }</b></p><p>  fclose(fp);</

97、p><p><b>  }</b></p><p><b>  start:</b></p><p>  printf("\n\n\n");</p><p>  SysTitle();</p><p>  printf("\t\t▉▔▔▔▔▔▔▔▔▔

98、▔▔▔▔▔▔▔▔▔▔▔▉\n");</p><p>  printf("\t\t▉ 作者:朱鵬 學(xué)號(hào):20120231406 ▉\n");</p><p>  printf("\t\t▉▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▉\n");</p><p>  printf("\t\t

99、\n");</p><p><b>  if(i==0)</b></p><p><b>  {</b></p><p>  printf("\t\t\t系統(tǒng)正在初始化~不要著急哦~親~");</p><p>  for(i=0;i<4;i++)</p>

100、;<p><b>  {</b></p><p>  Sleep(1000);</p><p>  printf(".");</p><p><b>  }</b></p><p>  system("cls");</p><

101、p>  goto start;</p><p><b>  }</b></p><p>  printf("\t\t\t親~恭喜哦!初始化成功了哦~\n");</p><p>  printf("\t\t\t按任意鍵進(jìn)入系統(tǒng)了哦~~");</p><p><b> 

102、 getch();</b></p><p>  fflush(stdin);</p><p><b>  return;</b></p><p><b>  }</b></p><p>  /**************************************頭部信息******

103、********************************/</p><p><b>  /*</b></p><p>  功能:顯示程序頭部信息</p><p><b>  輸入:無(wú)</b></p><p><b>  返回:無(wú)</b></p><p

104、><b>  */</b></p><p>  void SysTitle()</p><p><b>  {</b></p><p>  system("title 簡(jiǎn)易銀行信息管理系統(tǒng) By 朱鵬");</p><p>  printf("\n\n"

105、;);</p><p>  printf("\t\t▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\n");</p><p>  printf("\t\t▉※※※※※※※※歡迎使用※※※※※※※※▉\n");</p><p>  printf("\t\t▉※※※※※簡(jiǎn)易銀行信息管理系統(tǒng)※※※※※▉\n");&

106、lt;/p><p>  printf("\t\t▉※※※※※※※※※※※※※※※※※※※※▉\n");</p><p><b>  }</b></p><p>  /**************************************一級(jí)菜單**************************************/&

107、lt;/p><p><b>  /*</b></p><p>  功能:顯示主菜單,并完成菜單的選擇</p><p><b>  輸入:無(wú)</b></p><p>  返回:選擇的菜單序號(hào)[整型]</p><p><b>  */</b></p>

108、<p>  int menu()</p><p><b>  {</b></p><p><b>  int x;</b></p><p>  system("cls");</p><p>  SysTitle();</p><p>  pr

109、intf("\t\t▉▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▉\n");</p><p>  printf("\t\t▉ 主菜單 ▉\n");</p><p>  printf("\t\t▉▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▉\n");</p>

110、<p>  printf("\t\t▉ ▉\n");</p><p>  printf("\t\t▉ 1、存款 ▉ \n");</p><p>  printf("\t\t▉

111、 2、取款 ▉ \n");</p><p>  printf("\t\t▉ 3、查詢余額 ▉ \n");</p><p>  printf("\t\t▉ 4、查詢存款記錄 ▉ \n");</p

112、><p>  printf("\t\t▉ 5、查詢?nèi)】钣涗?▉ \n");</p><p>  printf("\t\t▉ 6、退出 ▉ \n");</p><p>  printf("\t\t▉▁▁▁▁▁▁▁▁▁

113、▁▁▁▁▁▁▁▁▁▁▁▉\n");</p><p>  printf("\t\t 親~輸入數(shù)字1~6就能使用對(duì)應(yīng)的功能了哦:");</p><p><b>  do{</b></p><p>  fflush(stdin);</p><p>  scanf("%d&qu

114、ot;,&x);</p><p>  if(x<1||x>6)</p><p>  printf("\t\t 親~您的輸入有誤喲~請(qǐng)重新輸入:");</p><p>  }while(x<1||x>6);</p><p>  fflush(stdin);</p><p

115、><b>  return x;</b></p><p><b>  }</b></p><p>  /**************************************二級(jí)菜單**************************************/</p><p><b>  /*<

116、/b></p><p>  功能:顯示二級(jí)菜單,并完成菜單的選擇</p><p>  輸入:操作類型[整型]</p><p>  返回:選擇的菜單序號(hào)[整型]</p><p><b>  */</b></p><p>  int menu2( int InfoClass )</p>

117、;<p><b>  {</b></p><p><b>  int x;</b></p><p>  char InfoName[20]={0};</p><p>  switch (InfoClass)</p><p><b>  {</b></p>

118、;<p><b>  case 1:</b></p><p>  strcpy( InfoName,"存款" );break;</p><p><b>  case -1:</b></p><p>  strcpy( InfoName,"取款" );break;<

119、/p><p><b>  case 3:</b></p><p>  strcpy( InfoName,"余額" );break;</p><p><b>  case 4:</b></p><p>  strcpy( InfoName,"存款記錄" );brea

120、k;</p><p><b>  case 5:</b></p><p>  strcpy( InfoName,"取款記錄" );break;</p><p><b>  }</b></p><p>  system("cls");</p>&l

121、t;p>  SysTitle();</p><p>  printf("\t\t▉▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▉\n");</p><p>  printf("\t\t▉ %s--用戶信息查詢 \t ▉\n",InfoName);</p><p>  printf("\t\t▉

122、▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▉\n");</p><p>  printf("\t\t▉ ▉\n");</p><p>  printf("\t\t▉ 1、輸入客戶編號(hào)查詢(1~5) ▉ \n");</p>&

123、lt;p>  printf("\t\t▉ 2、輸入客戶姓名查詢 ▉ \n");</p><p>  printf("\t\t▉ 3、輸入客戶地址查詢 ▉ \n");</p><p>  printf("\t\t▉ 4、輸入客戶電話查詢

124、 ▉ \n");</p><p>  printf("\t\t▉ 0、返回 ▉ \n");</p><p>  printf("\t\t▉▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▉\n");</p><p>  printf("\t\

125、t 親~輸入數(shù)字0~4就能使用對(duì)應(yīng)的功能了哦:");</p><p><b>  do{</b></p><p>  fflush(stdin);</p><p>  scanf("%d",&x);</p><p>  if(x<0||x>4)</p&g

126、t;<p>  printf("\t\t 親~您的輸入有誤喲~請(qǐng)重新輸入:");</p><p>  }while(x<0||x>4);</p><p>  fflush(stdin);</p><p><b>  return x;</b></p><p><b&

127、gt;  }</b></p><p>  /**************************************輸入函數(shù)**************************************/</p><p><b>  /*</b></p><p>  功能:顯示需要輸入的內(nèi)容,并在給定的地址中賦值</p>

128、;<p>  輸入對(duì)應(yīng)功能</p><p>  char *cbox存放字符串輸入內(nèi)容</p><p>  int *ibox存放整型數(shù)據(jù)</p><p>  double * money[金額]存放雙精度數(shù)據(jù)[金額]</p><p>  int InPutClass[1.2.3]對(duì)應(yīng)前面的三個(gè)

129、輸入值類型</p><p>  char *boxname輸入信息的名字</p><p><b>  返回:無(wú)</b></p><p><b>  */</b></p><p>  void InPut(char *cbox,int *ibox,double * money,int

130、 InPutClass,char *boxname)</p><p><b>  {</b></p><p>  fflush(stdin);</p><p>  printf("\t\t 請(qǐng)輸入%s:",boxname);</p><p>  if(InPutClass==1)//值為1,輸

131、入字符</p><p>  gets(cbox);</p><p>  else if(InPutClass==2)//值為2,輸入整數(shù)</p><p>  scanf("%d",ibox);</p><p>  else if(InPutClass==3)//值為3,輸入金額</p><p&g

132、t;<b>  {</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  scanf("%lf",money);</p><p>  if( *money < 0 )</p><

133、;p>  printf("\t\t 金額不能為負(fù)值哦~重新輸入吧親~:");</p><p>  }while( *money < 0 );</p><p><b>  }</b></p><p>  fflush(stdin);</p><p><b>  return ;&

134、lt;/b></p><p><b>  }</b></p><p>  /**************************************日期、時(shí)間相關(guān)函數(shù)**************************************/</p><p><b>  /*</b></p>&l

135、t;p>  功能:將字符型的日期轉(zhuǎn)換為整型,并分離出年月日</p><p>  輸入對(duì)應(yīng)功能</p><p>  char *DataIn輸入用戶輸入的字符型日期</p><p>  int *YearOut存放年</p><p>  int *MonthOut存放月</p><p>

136、  int *DayOut存放日</p><p><b>  返回:無(wú)</b></p><p><b>  */</b></p><p>  void Char2Int ( char *DataIn,int *YearOut,int *MonthOut,int *DayOut)</p>

137、<p><b>  {</b></p><p>  int count=0,i=0;</p><p>  for (i=0;i<strlen(DataIn);i++)</p><p><b>  {</b></p><p>  if(DataIn[i]=='-')&l

溫馨提示

  • 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ù)僅提供信息存儲(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)論