C語言課程設計報告 飯卡管理程序_第1頁
C語言課程設計報告 飯卡管理程序_第2頁
C語言課程設計報告 飯卡管理程序_第3頁
C語言課程設計報告 飯卡管理程序_第4頁
C語言課程設計報告 飯卡管理程序_第5頁
已閱讀5頁,還剩32頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言課程設計報告飯卡管理程序完成日期:2009年12月【題目描述】該程序為飯卡管理程序,具有下列功能:(1) 錄入某位持卡人的基本信息。教師:職工號、姓名、院系、金額;學生:學號、姓名、院系、金額;隨機分配一個密碼,分配一個卡號。(2) 給定卡號,顯示此卡的基本信息;(3) 給定卡號,修改密碼或查詢密碼;(4) 給定卡號,修改持卡人信息;(5) 給定卡號,查詢余額或加錢; (6) 給定卡號,輸入密碼后,若余額充足即可消費;(7) 掛失處理;給定卡號或職工號(學號)等信息進行掛失處理,掛失處理后能查到該卡號,但顯示“該卡已掛失”信息。(8) 刪除處理;給定卡號或職工號(學號),對該卡進行刪除處

2、理;刪除處理后無法找到該卡號。(9) 提供一些統計各類信息的功能。可統計當前教師、學生持卡人數;當前已掛失卡卡號;當前卡中余額少于10元的卡號,并顯示其余額?!居脩粑臋n】應用程序功能詳細說明1、進入操作菜單。按照菜單提示選擇需要的操作。選擇09號,若超出該范圍,系統將提示警告信息,且切回到主菜單。若需退出系統選擇0。每項操作執行完畢,將出現是否返回原菜單的提示信息,選擇是將返回主菜單,選擇否將返回該項操作的選擇菜單。2、錄入持卡人信息:該程序可分別管理教師學生各100人。持卡人分教師卡和學生兩種,進入錄入界面后,用戶按菜單選擇卡的類別。之后按照程序提示的文本格式及長度要求,按順序依次輸入教師號

3、(學生號)、姓名、院系及金額。超出允許的范圍,系統可能出現運行錯誤。查詢飯卡基本信息:進入查詢界面,輸入卡號,即可顯示持卡人的卡號、姓名、教師號(學生號)、院系、卡上金額。若輸入卡號不存在,系統將提示卡號錯誤。修改或查詢密碼:進入密碼編輯界面,輸入卡號,將會顯示出命令選擇菜單。根據提示選擇希望進行的操作。密碼修改成功后,系統會給出密碼修改成功信息。若輸入卡號不存在,系統將提示卡號錯誤。修改個人信息:進入修改界面輸入卡號,系統將逐項詢問是否要修改該項信息,選擇是即可修改,選擇否,將跳轉到下一條信息修改。修改信息的格式及長度要求與錄入相同。若輸入卡號不存在,系統將提示卡號錯誤。飯卡加錢或查詢余額:

4、進入余額操作界面,輸入卡號,根據屏幕提示選擇需要的操作。加錢成功后系統會顯示成功操作信息。若輸入卡號不存在,系統將提示卡號錯誤。處理消費信息:進入消費界面,按照提示輸入卡號以及消費金額,系統會提示輸入密碼。若密碼正確,則顯示消費成功信息,并從賬戶中扣除相應余額,若密碼錯誤,系統將警告密碼錯誤,并返回主菜單。若消費金額超出余額范圍,則系統提示余額不足信息,消費不成功并返回主菜單。若輸入卡號不存在,系統將提示卡號錯誤。掛失:進入掛失界面,根據系統提示選擇輸入卡號或輸入教師號(學生號)進行操作。若正確輸入相應卡號系統將確認是否掛失,選擇是則掛失成功。掛失后若進行以上各項操作以及刪除操作,系統均將提示

5、已掛失信息,并無法進行操作。若輸入卡號不存在,系統將提示卡號錯誤。刪除:進入刪除界面,根據菜單提示選擇輸入卡號還是教師號(學生號),輸入相應號碼,系統將詢問是否要刪除該號碼。選擇是,則提示該卡刪除成功,選擇否,將返回主菜單。若輸入的號碼不存在,系統將提示號碼錯誤并返回主菜單。刪除后,該卡在系統中將不能被查出。統計其他信息:進入統計界面,根據菜單選擇需要進行哪項統計。選擇1,將統計出當前教師及學生的持卡人數;選擇2,將統計出當前所有掛失卡卡號;選擇3,將統計出當前卡中余額不足10元的卡號及相應余額。應用程序運行環境的要求或Win-tc環境下均可運行。應用程序的安裝與啟動方法將程序源代碼置入或Wi

6、n-tc中,運行程序?;蛑苯与p擊運行.exe格式的可執行文件運行該程序。程序的界面、交互方式和操作方法以下是程序運行后的主菜單操作界面。按照系統的詢問,選擇需要的操作。程序運行過程中輸入命令完畢需鍵入回車鍵確認。輸入數據類型、格式和內容限制教師及學生的個人信息屬于結構體型數據;菜單選擇項:整型數據,只可輸入系統提供的選項代號;確認選項:字符型數據,大小寫均可,只可輸入Y或N;教師號(學生號):整型數據,只可輸入介于1000至9999間的整型數據;姓名:字符型一維數組,姓氏與名字之間用空格隔開,少于20個字符;院系:字符型一維數組,院與系之間可用空格隔開,少于50個字符;金額:單精度實型數據,精

7、確到分,可輸入介于至間的數據;卡號、密碼:整型數據,介于1000至9999之間隨機產生。應用程序運行中,用戶需要使用的交互命令名稱、功能和格式的詳細解決和示例數字選擇交互命令。以菜單為例,在操作界面中選下需要的操作所對應的數字,按回車鍵,即可進入相應的操作界面。Y、N選擇交互命令。 當系統詢問否是,選擇Y,鍵入回車即為是,選擇N鍵入回車即為否。如上圖,選擇Y回車,即返回主菜單;選擇N回車即不返回主菜單,繼續執行該項操作?!炯夹g文檔】程序整體結構以及各模塊功能描述程序整體分為10個模塊。分別為:菜單模塊函數原型:void displayMenu();函數功能:顯示并輸出主菜單;無返回值。注冊信息

8、模塊函數原型:void registing(tea T,stu S);函數功能:輸入持卡人基本信息;無返回值。i持卡人身份選項,用于選擇持卡人身份;x用于記錄程序中中的字符量。查詢模塊函數原型:void searchInfo(tea T,stu S);函數功能:查詢持卡人基本信息;無返回值。number卡號,用于輸入卡號并在程序中查找該卡號;flag用于判斷該函數操作是否完畢; i教師循環控制變量; j學生循環控制變量。密碼操作模塊函數原型:void editpassword(tea T,stu S);函數功能:查詢或修改密碼;無返回值。c功能選項,用于選擇修改密碼還是查詢密碼; number

9、卡號,用于輸入卡號并在程序中查找該卡號; flag用于判斷該函數操作是否完畢; i教師循環控制變量; j學生循環控制變量。信息修改模塊函數原型:void editinfo(tea T,stu S);函數功能:修改持卡人個人信息;無返回值。number卡號,用于輸入卡號并在程序中查找該卡號;flag用于判斷該函數操作是否完畢; i教師循環控制變量; j學生循環控制變量;decide用于確定是否進行該項操作。余額操作模塊函數原型:void editmoney(tea T,stu S);函數功能:飯卡加錢或查詢余額;無返回值。c功能選項,用于選擇加錢還是查詢余額; number卡號,用于輸入卡號并在

10、程序中查找該卡號; flag用于判斷該函數操作是否完畢; i教師循環控制變量; j學生循環控制變量; money用于記錄函數中要操作的錢數。消費模塊函數原型:void editmealinfo(tea T,stu S);函數功能:處理消費信息;無返回值。number卡號,用于輸入卡號并在程序中查找該卡號; money金額,用于輸入需要消費的金額;flag用于判斷該函數操作是否完畢; i教師循環控制變量; j學生循環控制變量;password函數中用于記錄密碼。掛失模塊函數原型:void reportloss(tea T,stu S);函數功能:賬戶掛失注冊;無返回值。c功能選項,用于選擇輸入卡

11、號還是教師號(學生號);i教師循環控制變量;j學生循環控制變量; number號碼,用于輸入號碼并在程序中查找是卡號還是教師號(學生號);decide確認選擇,用于確認是否確實要掛失;flag用于判斷該函數操作是否完畢。刪除模塊函數原型:void deleterecord(tea T,stu S);函數功能:刪除賬戶;無返回值。c功能選項,用于選擇輸入卡號還是教師號(學生號); number號碼,用于輸入號碼并在程序中查找是卡號還是教師號(學生號);tn教師卡數,用于程序中記錄教師卡數量;sn學生卡數,用于程序中記錄學生卡數量;i教師循環控制變量;j學生循環控制變量;k循環控制變量,用于使教師

12、及學生卡號注銷的循環中;decide確認選擇,用于確認是否確實要掛失;flag用于判斷該函數操作是否完畢。統計模塊函數原型:void countotherinfo(tea T,stu S);函數功能:統計持卡人數、統計掛失卡信息、統計余額不足卡信息;無返回值。i教師循環控制變量;j學生循環控制變量;c功能選項,用于程序中選擇想要統計的內容。各模塊的主要算法和數據結構解釋1)主函數結束開始執行對應函數choice=19清屏return0choice!=0 N Y N Y開始菜單模塊輸出主菜單結束 3)信息注冊模塊結束輸入學生信息輸入教師信息開始i=2i=1 N Y N Y 4)信息查詢模塊fla

13、g=0結束提示號碼錯誤j+輸出學生信息number=scnumberjsn0jflag=0i+number=tcnumberitn開始0i N Y N 輸出教師信息 Y N Y N Y N Y N Y5)密碼操作模塊結束輸出號碼錯誤輸出密碼輸入新密碼開始c=2flag=0c=1 N Y N Y N Y 6)信息修改模塊flag=0結束提示號碼錯誤j+輸入學生信息number=scnumberjsn0jflag=0i+number=tcnumberitn開始0i N Y N 輸入教師信息 Y N Y N Y N Y N Y 7)余額操作模塊c=1 開始 Nc=2輸入卡號 Y Y Y 輸入卡號 輸

14、出加錢金額 輸出卡中余額flag=0結束輸出號碼錯誤 N Y 8)消費模塊flag=0結束提示號碼錯誤j+輸入消費金額及密碼number=scnumberjsn0jflag=0i+number=tcnumberitn開始0i N Y N 輸入消費金額及密碼 Y N Y N Y N Y N Y 9)掛失模塊結束loss=1輸入學生號或教師號c=2輸入卡號loss=1開始c=1 N Y N Y 10)統計模塊輸出余額不足卡卡號及余額卡號結束輸出掛失卡卡號輸出教師卡及學生卡數量開始c=3c=2c=1 N Y N Y N Y選用的測試數據及測試結果信息注冊測試結果如下:信息查詢測試結果如下:密碼修改測

15、試結果如下:密碼查詢測試結果如下:信息修改測試結果如下:加錢測試結果如下:查詢余額測試結果如下:消費測試結果如下:掛失測試結果如下:刪除測試結果如下:輸入號碼錯誤測試結果如下:掛失后查詢基本信息測試結果如下:程序運行環境以及有關信息該程序在windows XP操作系統中運行成功,在此環境下運行或Win-tc寫入源代碼均可?;蛑苯舆\行.exe格式的可執行文件。程序源代碼清單#include /*I/O函數*/#include /*字符串函數*/#include /*其它說明*/#include /*屏幕操作函數*/int sn=0; /*學生卡人數初始化*/int tn=0; /*教師卡人數初始

16、化*/typedef struct student /*定義學生卡數據結構*/ int snumber; /*學號*/ int scnumber; /*學生卡號*/ char sname20; /*學生姓名數組*/ char scollege50; /*學生院系數組*/ float smoney; /*學生卡余額*/ int spassword; /*學生卡密碼*/ int sloss; /*學生卡掛失變量*/stu;typedef struct teacher /*定義教師卡數據結構*/ int tnumber; /*教師號*/ int tcnumber; /*教師卡號*/ char tna

17、me20; /*教師姓名數組*/ char tcollege50; /*教師院系數組*/ float tmoney; /*教師卡余額*/ int tpassword; /*教師卡密碼*/ int tloss; /*教師卡掛失變量*/tea; void displayMenu(void); /*列菜單函數*/void registing(tea T,stu S); /*注冊函數*/void searchInfo(tea T,stu S); /*信息查找函數*/void editpassword(tea T,stu S); /*密碼修改或查詢函數*/void editinfo(tea T,stu

18、S); /*信息修改函數*/void editmoney(tea T,stu S); /*加錢或查詢余額函數*/void editmealinfo(tea T,stu S); /*就餐信息處理函數*/void reportloss(tea T,stu S); /*掛失函數*/ void deleterecord(tea T,stu S); /*賬戶刪除函數*/void countotherinfo(tea T,stu S); /*統計函數*/*主函數*/main() stu S100; /*學生結構體數組*/ tea T100; /*教師結構體數組*/ int choice; char x;

19、randomize(); /*初始化隨機數發生器*/ displayMenu(); /*顯示菜單*/ scanf(%d,&choice); /*輸入函數選擇*/ while(choice!=0) switch(choice) case 1: do registing(T,S); /*信息注冊*/ printf(Do you want to return to the menu?(Y or N):); getchar(); /*輸入是否返回主菜單*/ scanf(%c,&x); while(x=N|x=n); break; case 2: do searchInfo(T,S); /*信息查找*/

20、 printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 3: do editpassword(T,S); /*密碼修改或查詢*/ printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 4: do editinfo(T,S); /*信息修改*/ printf(Do you want t

21、o return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 5: do editmoney(T,S); /*飯卡加錢或查詢余額*/ printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 6: do editmealinfo(T,S); /*處理就餐信息*/ printf(Do you want to return to the

22、menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 7: do reportloss(T,S); /*掛失*/ printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; case 8: do deleterecord(T,S); /*刪除*/ printf(Do you want to return to the menu?(Y or N):); getchar()

23、; scanf(%c,&x); while(x=N|x=n); break; case 9: do countotherinfo(T,S); /*統計*/ printf(Do you want to return to the menu?(Y or N):); getchar(); scanf(%c,&x); while(x=N|x=n); break; default : printf(warning:wrong choice!Please enter the right choice.n); /*提示錯誤信息*/ break; clrscr(); /*清屏*/ displayMenu();

24、 scanf(%d,&choice); return 0;/*主菜單*/void displayMenu() printf(n=MENU=n); printf(Input personal information.1n); /*輸入個人信息*/ printf(The basic information of the card.2n); /*飯卡基本信息*/ printf(Change or inquire the password.3n); /*修改或查詢密碼*/ printf(Change personal information.4n); /*修改個人信息*/ printf(Inquire

25、 balance or add money.5n); /*查詢余額或加錢*/ printf(Manage the dining information.6n); /*處理就餐信息*/ printf(Report the loss of the card.7n); /*掛失*/ printf(Delate process.8n); /*刪除*/ printf(Count other information.9n); /*統計其他信息*/ printf(Exit.0n); /*退出*/ printf(=n); printf(Please choose the service you want:(0

26、9); /*請選擇需要的服務*/*賬戶注冊*/void registing(tea T,stu S) int i; /*身份變量*/ char x; /*姓名*/ clrscr(); /*清屏*/ printf(=system of registing=n); printf(Please choose your positionn); printf(1-teachern); printf(2-studentn); printf(Please input your choice (1 or 2):); scanf(%d,&i); if(i=1) /*選擇教師*/ printf(Please in

27、put your teacher number(4 numbers):); scanf(%d,&Ttn.tnumber); /*輸入教師號*/ printf(Please input name(less than 20 letters):(Wang Ming); scanf(%c,&x); /*輸入姓名*/ gets(Ttn.tname); printf(Please input college information(less than 50 integers):(mechanic electricity)n); gets(Ttn.tcollege); /*輸入院系*/ printf(Ple

28、ase input the money(0.005000.00):); scanf(%f,&Ttn.tmoney); /*輸入金額*/ Ttn.tcnumber=random(8999)+1000; /*隨機分配卡號*/ printf(The card number is:%dn,Ttn.tcnumber); /*輸出卡號*/ Ttn.tpassword=random(8999)+1000; /*隨機分配密碼*/ printf(The password is:%dn,Ttn.tpassword); /*輸出密碼*/ Ttn.tloss=0; /*初始化掛失變量*/ tn+; /*教師卡數累加*

29、/ else if(i=2) /*選擇學生*/printf(Please input your school number(less than 4 numbers):);scanf(%d,&Ssn.snumber); /*輸入學生號*/ printf(Please input name(less than 20 integers):(Wang Ming); scanf(%c,&x); /*輸入姓名*/ gets(Ssn.sname); printf(Please input college information(less than 50 integers):(mechanic electri

30、city)n); gets(Ssn.scollege); /*輸入院系*/ printf(Please input the money(0.005000.00):); scanf(%f,&Ssn.smoney); /*輸入金額*/ Ssn.scnumber=random(8999)+1000; /*隨機分配卡號*/ printf(The card number is:%dn,Ssn.scnumber); /*輸出卡號*/ Ssn.spassword=random(8999)+1000; /*隨機分配密碼*/ printf(The password is:%dn,Ssn.spassword);

31、/*輸出密碼*/ Ssn.sloss=0; /*初始化掛失變量*/ sn+; /*學生卡數累加*/ /*信息查找*/void searchInfo(tea T,stu S) int number,flag=0; /*number記錄卡號、flag記錄查找是否結束*/ int i,j; /*i為控制教師的循環變量、j為控制學生的循環變量*/ clrscr(); /*清屏*/ printf(=system of inquiring personal information=n); printf(Please enter your card number(4 numbers):); scanf(%d

32、,&number); /*輸入卡號*/ for(i=0;itn;i+) if(number=Ti.tcnumber) /*若為教師卡號*/ if(Ti.tloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else printf(=information=n); /*輸出教師基本信息*/ printf(CardNumber: %dn,Ti.tcnumber); printf(Name: %sn,Ti.tname);

33、 printf(Teacher number: %dn,Ti.tnumber); printf(College: %sn,Ti.tcollege); printf(Money: %4.2fn,Ti.tmoney); flag=1; break; if(flag=0) for(j=0;jsn;j+) /*若為學生卡號*/ if(number=Sj.scnumber) if(Sj.sloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提

34、示掛失信息*/ else printf(=information=n); /*輸出學生基本信息*/ printf(CardNumber: %dn,Sj.scnumber); printf(Name: %sn,Sj.sname); printf(School number: %dn,Sj.snumber); printf(College: %sn,Sj.scollege); printf(Money: %4.2fn,Sj.smoney); flag=1; break; if(flag=0) /*若未找到該卡號*/ printf(=warning=n); /*提示卡號錯誤*/ printf(Thi

35、s is a wrong number.n); /*密碼查詢或修改*/void editpassword(tea T,stu S) int number,flag=0; /*number記錄卡號、flag記錄掛失程序是否完成*/ int i,j,c; /*i為控制教師的循環變量、j為控制學生的循環變量、c為命令選擇變量*/ clrscr(); /*清屏*/ printf(=system of changing/inquiring password=n); printf(Please enter the card number:); scanf(%d,&number); /*輸入卡號*/ pri

36、ntf(1-change the passwordn); /*修改密碼*/ printf(2-inquire the passwordn); /*查詢密碼*/ printf(Please choose the service you want:(1 or 2); scanf(%d,&c); /*選擇需要的操作*/ if(c=1) /*選擇修改密碼*/ for(i=0;itn;i+) if(number=Ti.tcnumber) /*若為教師卡號*/ if(Ti.tloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go

37、to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(Please enter your new password:(00009999); scanf(%d,&Ti.tpassword); /*輸入新密碼*/ printf(The password is changed successfully.n); /*提示密碼修改成功信息*/ flag=1; break; if(flag=0) for(j=0;jsn;j+) if(number=Sj.scnumber) /*若為學生卡號*/ if(Sj.sloss

38、=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(Please enter your new password:(00009999); scanf(%d,&Sj.spassword); /*輸入新密碼*/ printf(The password is changed successfully.n); /*提示密碼修改成功信息*/ flag=1; break; else if(c=

39、2) /*選擇查詢密碼*/ for(i=0;itn;i+) if(number=Ti.tcnumber) /*若為教師卡號*/ if(Ti.tloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(=password information=n); printf(password:%dn,Ti.tpassword); /*輸出密碼*/ flag=1; break; if(fla

40、g=0) for(j=0;jsn;j+) if(number=Sj.scnumber) /*若為學生卡號*/ if(Sj.sloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; ; /*提示掛失信息*/ else /*若未掛失*/ printf(=password information=n); printf(password:%dn,Sj.spassword); /*輸出密碼*/ flag=1; break; if(flag=0) /*

41、若未找到該卡號*/ printf(=password information=n); printf(It is a wrong number.n); /*提示卡號錯誤*/ /*基本信息修改*/void editinfo(tea T,stu S) int i,j; /*i為控制教師的循環變量、j為控制學生的循環變量*/ int number,flag=0; /*number記錄卡號、flag記錄修改程序是否完成*/ char decide; /*decide記錄是否更改*/ clrscr(); /*清屏*/ printf(=system of changing personal informat

42、ion=n); printf(Please enter your card number:(4 numbers); scanf(%d,&number); /*輸入卡號*/ getchar(); for(i=0;itn;i+) if(number=Ti.tcnumber) /*若為教師卡號*/ if(Ti.tloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(=persona

43、l information=n); /*輸出可更改的基本信息*/ printf(Name: %sn,Ti.tname); printf(School number: %dn,Ti.tnumber); printf(College: %sn,Ti.tcollege); printf(Do you want to change your name?(Y or N):); /*是否更改姓名*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new name(less than 20 integ

44、ers):(Wang Ming); gets(Ti.tname); /*輸入新姓名*/ printf(Do you want to change your college?(Y or N):); /*是否更改院系*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new college:(less than 50 integers); gets(Ti.tcollege); /*輸入新院系*/ printf(Do you want to change your teacher number

45、?(Y or N):); /*是否更改教師號*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new teacher number(4 numbers):); scanf(%d,&Ti.tnumber); /*輸入新教師號*/ getchar(); flag=1; break; if(flag=0) for(j=0;jtn;j+) if(number=Sj.scnumber) /*若為學生卡號*/ if(Sj.sloss=1) /*若該卡已掛失*/ printf(This card i

46、s registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(=personal information=n); /*輸出可更改的基本信息*/ printf(Name: %sn,Sj.sname); printf(School number: %dn,Sj.snumber); printf(College: %sn,Sj.scollege); printf(Do you want to change your name?(Y or N):); /*是否更改

47、姓名*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new name(less than 20 integers):(Wang Hong); gets(Sj.sname); /*輸入新姓名*/ printf(Do you want to change your college?(Y or N):); /*是否更改院系*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new c

48、ollege:(less than 50 integers); gets(Sj.scollege); /*輸入新院系*/ printf(Do you want to change your school number?(Y or N):); /*是否更改學生號*/ scanf(%c,&decide); getchar(); if(decide=Y|decide=y) printf(Please enter your new school number:(09999); scanf(%d,&Sj.snumber); /*輸入新學生號*/ getchar(); flag=1; break; if(

49、flag=0) /*若未找到該卡號*/ printf(=warning=n); printf(It is a wrong number.n); /*提示卡號錯誤*/ void editmoney(tea T,stu S) int i,j,c; /*i為控制教師的循環變量、j為控制學生的循環變量、c為買命令選擇變量*/ int number,flag=0; /*number記錄卡號、flag記錄掛失程序是否完成*/ float money; /*加入錢數*/ clrscr(); /*清屏*/ printf(=system of adding/inquiring money=n); printf(

50、Please enter your card number:); scanf(%d,&number); /*輸入卡號*/ printf(1-Add moneyn); /*加錢*/ printf(2-Inquire the moneyn); /*查詢余額*/ printf(Please choose the service you want(1 or 2):); scanf(%d,&c); /*輸入需要的操作*/ if(c=1) /*若選擇加錢*/ for(i=0;itn;i+) if(number=Ti.tcnumber) /*若為教師卡號*/ if(Ti.tloss=1) /*若該卡已掛失*

51、/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(Please enter the amount of money you want to add:(0.005000.00); scanf(%f,&money); /*輸入需要加入的金額*/ Ti.tmoney+=money; printf(=information=n); printf(The money is successfully added.n)

52、; /*提示加錢成功*/ printf(The money in the card now:%4.2fn,Ti.tmoney); /*輸出現有余額*/ flag=1; break; if(flag=0) for(j=0;jsn;j+) if(number=Sj.scnumber) /*若為學生卡號*/ if(Sj.sloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(Ple

53、ase enter the amount of money you want to add:(0.005000.00); scanf(%f,&money); /*輸入需要加入的金額*/ Sj.smoney+=money; printf(=information=n); printf(The money is successfully added.n); /*提示加錢成功*/ printf(The money in the card now:%4.2fn,Sj.smoney); /*輸出現有余額*/ flag=1; break; else if(c=2) /*若選擇查詢余額*/ for(i=0;

54、itn;i+) if(number=Ti.tcnumber) /*若為教師卡號*/ if(Ti.tloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(=money information=n); printf(money:%4.2fn,Ti.tmoney); /*輸出卡中余額*/ flag=1; break; if(flag=0) for(j=0;jsn;j+) if(nu

55、mber=Sj.scnumber) /*若為學生卡號*/ if(Sj.sloss=1) /*若該卡已掛失*/ printf(This card is registed loss!nYou must go to the office to restart it.n); flag=1; /*提示掛失信息*/ else /*若未掛失*/ printf(=money information=n); printf(money: %4.2fn,Sj.smoney); /*輸出卡中余額*/ flag=1; break; if(flag=0) /*若未找到該卡號*/ printf(=warning=n); p

56、rintf(It is a wrong number.n); /*提示卡號錯誤*/ /*處理就餐信息*/void editmealinfo(tea T,stu S) int i,j,password; /*i為控制教師的循環變量、j為控制學生的循環變量、password為密碼*/ int number,flag=0; /*number記錄卡號、flag記錄掛失程序是否完成*/ float money; /*加入錢數*/ clrscr(); /*清屏*/ printf(=system of consumption=n); printf(Please enter the card number(4

57、 numbers):); scanf(%d,&number); /*輸入卡號*/ for(i=0;i=money) /*若余額充足*/ Ti.tmoney-=money; printf(=consumption information=n); printf(The money in the card now: %4.2fn,Ti.tmoney); /*顯示消費后余額*/ flag=1; break; else /*若余額不足*/ printf(The money is not enough.You need to charge it.n); /*提示充值*/ flag=1; break; el

58、se /*若密碼錯誤*/ printf(=warning=n); printf(Wrong password!n); /*提示密碼錯誤*/ flag=1; break; if(flag=0) for(j=0;j=money) /*若余額充足*/ Sj.smoney-=money; printf(=consumption information=n); printf(The money in the card now: %4.2fn,Sj.smoney); /*顯示消費后余額*/ flag=1; break; else /*若余額不足*/ printf(The money is not enou

59、gh.You need to charge it.n); /*提示充值*/ flag=1; break; else /*若密碼錯誤*/ printf(=warning=n); printf(Wrong password!n); /*提示密碼錯誤*/ flag=1; break; if(flag=0) /*若未找到該卡號*/ printf(=warning=n); printf(It is a wrong number.n); /*提示卡號錯誤*/ /*掛失*/void reportloss(tea T,stu S) int i,j,c; /*i為控制教師的循環變量、j為控制學生的循環變量、c為

60、操作方法選項*/ int number,flag=0; /*number記錄卡號、flag記錄掛失程序是否完成*/ char decide; /*decide記錄是否更改*/ clrscr(); /*清屏*/ printf(=system of registing loss=n); printf(1-Enter card numbern); /*輸入卡號*/ printf(2-Enter school numbern); /*輸入教師號(學生號)*/ printf(Please enter the service you want(1 or 2):); scanf(%d,&c); if(c=1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論