版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> C語言程序設計</b></p><p><b> 課程設計報告</b></p><p> 課設題目: 車票管理系統(tǒng) </p><p> 專 業(yè): 自動化(汽車工業(yè)電氣自動化) </p><p
2、> 班 級: </p><p> 姓 名: </p><p> 成 績: </p><p> 完成日期:
3、 2012年6月18日-2012年6月22日 </p><p> 指導教師: </p><p><b> 目 錄</b></p><p> 1.課程設計目的2</p><p><b> 2.需求分析2</b><
4、;/p><p><b> 2.1要求2</b></p><p><b> 2.2任務描述2</b></p><p><b> 2.3運行環(huán)境3</b></p><p><b> 2.4開發(fā)工具3</b></p><p>
5、<b> 3.總體設計3</b></p><p> 3.1系統(tǒng)流設計3</p><p> 3.2系統(tǒng)模塊設計4</p><p><b> 4.詳細設計5</b></p><p> 4.1數(shù)據(jù)結構設計5</p><p> 4.2模塊接口設計6</p
6、><p> 4.3 以下是幾個主要模塊的流程圖:7</p><p><b> 5.運行結果10</b></p><p> 5.1主菜單界面:10</p><p> 5.2信息錄入界面:10</p><p> 5.3信息瀏覽界面:11</p><p> 5.
7、4 信息查詢界面:11</p><p> 5.5信息修改界面:12</p><p> 6.程序調試與測試12</p><p> 6.1程序調試12</p><p> 6.2程序測試12</p><p> 7.問題與不足12</p><p><b> 8.建議1
8、2</b></p><p><b> 9.編程體會12</b></p><p> 10.程序源代碼:12</p><p> 11.參考文獻13</p><p> 12.用戶使用手冊13</p><p><b> 1.課程設計目的</b></
9、p><p> 通過課程設計,加深對結構化程序設計思想的理解,能對系統(tǒng)功能進行分析,并設計合理的模塊化結構。</p><p> 通過課程設計,進一步掌握C語言中重要的數(shù)據(jù)結構。掌握并熟練運用指針、鏈表、結構體、文件等數(shù)據(jù)結構。</p><p> 通過課程設計,提高程序開發(fā)能力,能運用合理的控制流編寫清晰高效的程序。</p><p> 通過課
10、程設計,培養(yǎng)C語言知識運用和自學能力,真正的把課堂上獲得的知識運用起來,培養(yǎng)自己對程序編寫的興趣,并能獨立設計和實現(xiàn)一個小型系統(tǒng)。</p><p> 通過課程設計,加強了自己的程序分析能力。</p><p><b> 2.需求分析</b></p><p><b> 2.1要求</b></p><p
11、> 遵循軟件開發(fā)過程的基本規(guī)范;能靈活應用,初步具備運用C程序解決實際問題的能力。</p><p> 運用結構化程序設計方法,按照課程設計題目要求,完成包括需求分析、數(shù)據(jù)結構設計、概要設計、詳細設計、編寫代碼、調試和測試C程序等過程。</p><p> 學會利用數(shù)組、結構體、鏈表進行相關信息表示。</p><p> 功能模塊劃分清晰,系統(tǒng)結構圖符合功能
12、操作要求,且有詳盡的功能描述</p><p> 各主要功能模塊有詳盡的流程圖及描述,用函數(shù)的形式實現(xiàn),且調用入口、功能、出口等關系正確。</p><p> 所設計的C程序較好的可讀性和可靠性;程序書寫風格規(guī)范,注釋清晰。</p><p> 界面友好(良好的人機互交),凡需要輸入信息時,都有較詳盡的提示信息,并對輸入信息有較完善的值域分析。</p>
13、<p> 程序經上機調試通過,不應出現(xiàn)語法型、功能型錯誤,并獲得滿意的結果。</p><p> 學會通過各功能性測試用例測試程序的能力,盡可能避免原則性錯誤的出現(xiàn)。</p><p> 掌握編寫、調試和測試C語言程序的基本技巧,充分理解結構化程序設計的基本方法。</p><p> C語言課程設計報告的內容反應實際設計過程,且符合格式要求,無抄襲現(xiàn)象
14、。</p><p><b> 2.2任務描述</b></p><p><b> 車票管理系統(tǒng)</b></p><p><b> 題目描述</b></p><p> 一車站每天有n個發(fā)車班次,每個班次都有一班次號(1、2、3…n),固定的發(fā)車時間,固定的路線(起始站、終點
15、站),大致的行車時間,固定的額定載客量。如</p><p> 班次 發(fā)車時間 起點站 終點站 行車時間 額定載量 已定票人數(shù) 票價</p><p> 1 8:00 十堰 丹江 3 45 30 36</p><p> 2
16、 6:30 十堰 鄖縣 1 40 40 48</p><p> 3 7:00 十堰 鄖西 4 40 20 47</p><p> 4 10:00 十堰 竹山 3
17、 40 2 27 </p><p> 試設計車票管理系統(tǒng),使之能提供以下功能:</p><p> 錄入班次信息(信息用文件保存),可不定時地增加班次數(shù)據(jù)</p><p> 瀏覽班次信息,可顯示出所有班次當前狀總(如果當前系統(tǒng)時間超過了某班次的發(fā)車時間,則顯示“此班已發(fā)出
18、”的提示信息)。</p><p> 查詢路線:可按班次號查詢 ,可按終點站查詢</p><p><b> 售票和退票功能</b></p><p> A:當查詢出已定票人數(shù)小于額定載量且當前系統(tǒng)時間小于發(fā)車時間時才能售票,自動更新已售票人數(shù);</p><p> B:退票時,輸入退票的班次,當本班車未發(fā)出時才能退票,
19、自動更新已售票人數(shù);</p><p> 所有數(shù)據(jù)符合實際應用要求</p><p><b> 題目要求</b></p><p> 按分析、設計、編碼、調試和測試的軟件開發(fā)過程完成這個應用程序。</p><p> 班次信息應該包括:班次、發(fā)車時間、起點站、終點站、行車時間、額定載量、已定票人數(shù)等。</p>
20、<p> 為各項操作功能設計一個菜單。應用程序運行后,先顯示這個菜單,然后用戶通過菜單項選擇希望進行的操作項目。</p><p> 每個功能操作中,不應有原則性的錯誤出現(xiàn);</p><p> 對輸入值用測試用例測試,不應有錯誤出現(xiàn);</p><p> 界面應友好,操作應流暢。</p><p><b> 輸入要
21、求</b></p><p> 應用程序運行后,在屏幕上顯示一個菜單。用戶可以根據(jù)需求,選定相應的操作項目。進入每個操作后,一般應有相應的子菜單,或有相應的提示信息,根據(jù)提示信息的要求,從鍵盤或文件輸入相應的信息。</p><p><b> 輸出要求</b></p><p> 應用程序運行后,要在屏幕上顯示一個菜單。</p
22、><p> 要求用戶輸入數(shù)據(jù)時,要給出清晰、明確的的提示信息,包括輸入的數(shù)據(jù)內容、格式及結束方式等。</p><p><b> 提示`</b></p><p> 設計一個結構體類型和一維數(shù)組類型,用來存放班次信息。</p><p><b> 擴展功能</b></p><p&g
23、t; 將所有班次信息存儲在一個文件中,并實現(xiàn)文件讀寫的操作。</p><p><b> 2.3運行環(huán)境</b></p><p> WindowsXP/7系統(tǒng)</p><p> VC++6.0編譯環(huán)境</p><p><b> 2.4開發(fā)工具</b></p><p>
24、;<b> C語言</b></p><p><b> 3.總體設計</b></p><p><b> 3.1系統(tǒng)流設計</b></p><p> 本系統(tǒng)的功能模塊如圖1所示,主要有以下模塊</p><p><b> 3.</b></p>
25、;<p><b> 2.系統(tǒng)模塊設計</b></p><p> 課程名稱界面:主函數(shù)int main(),實現(xiàn)課程設計名稱以歡迎界面。</p><p> 主菜單界面:構造函數(shù)void mainmenu(),實現(xiàn)系統(tǒng)主菜單的顯示。</p><p> 系統(tǒng)時間顯示:構造系統(tǒng)時間函數(shù)int system_time()。實現(xiàn)系統(tǒng)時
26、間的顯示以及和車開的時間比較式否以開車。</p><p> 主菜單的選擇:構造主菜單選擇函數(shù) void chose(),實現(xiàn)主菜單的選擇。</p><p> 班次信息的讀入:構造主菜單讀入函數(shù)void load(void),實現(xiàn)文件信息的讀入。</p><p> 增加班次函數(shù):構造增加班次函數(shù)void add(),實現(xiàn)班次的增加。</p><
27、;p> 班次信息的瀏覽:構造主菜單瀏覽函數(shù) void show(),實現(xiàn)車票信息瀏覽界面的顯示。</p><p> 班次的查詢:構造主菜單查詢函數(shù)void searsh(),實現(xiàn)車次的查詢界面的顯示,并通過對班次查詢函數(shù)void searsh1(),終點站瀏覽查詢函數(shù)void searsh2()的調用,實現(xiàn)相應的查詢。</p><p> 按班次查詢:構造按車次查詢函數(shù)void
28、searsh1(),實現(xiàn)按車次的查詢界面。</p><p> 按終點站查詢:構造按終點站查詢函數(shù)void searsh2(),實現(xiàn)按終點站的查詢界面。</p><p> 售票:構造主菜單售票函數(shù)void buy_system(),實現(xiàn)買票的界面。</p><p> 退票:構造主菜單退票函數(shù)void back_ticket(),實現(xiàn)退票的界面</p>
29、<p> 時間比較:構造時間比較函數(shù)int canpan(),實現(xiàn)時間比較功能,判斷車是否開出。</p><p> 儲存當前班次信息:構造儲存函數(shù)void save(),實現(xiàn)自動更新班次信息功能。</p><p><b> 4.詳細設計</b></p><p><b> 4.1數(shù)據(jù)結構設計</b>&l
30、t;/p><p> 根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的數(shù)據(jù)信息,其結構如下:</p><p> 為了能實現(xiàn)程序的操作性和修改性,采用鏈表的結構保存車次信息,在車次的基本信息時,創(chuàng)建一個車票的節(jié)點,將其插入到鏈表中,示意圖如下。 </p><p> 為此,先聲明一個類型為struct ticket的結構體,其成員為車次的基本信息。然后通過對指針、鏈表、文件等數(shù)據(jù)結構的操
31、作,實現(xiàn)對車次基本信息的錄入,瀏覽,存盤,等一系列操作。其中,結構體定義如下:</p><p> struct ticket //定義記錄車票信息的結構體 </p><p><b> {</b></p><p> int number; //定義車
32、次</p><p> int hour; //記錄發(fā)車時間包含小時 </p><p> int minute; //分鐘 </p><p> char origin_station[20]; //起始站名稱數(shù)組</p><p>
33、 char last_station[20]; //終點站名稱數(shù)組</p><p> float last_time; //持續(xù)時間</p><p> int max_number; //車次最大運載量</p><p> int sold_ticket;
34、 //已售車票</p><p> int piaojia ; //車票的價格</p><p> struct ticket *next;</p><p><b> };</b></p><p> ; 4.2模塊接口設計</p><p
35、> 所有函數(shù)模塊聲明如下:</p><p><b> /*函數(shù)聲明*/ </b></p><p> int system_time(); //系統(tǒng)時間函數(shù)</p><p> void mainmenu(); //主菜單函數(shù)</p><
36、;p> void chose(); //主菜單選擇函數(shù)</p><p> void load(void); //主菜單讀入函數(shù)</p><p> void add(); //增加班次函數(shù)</p><p> voi
37、d show(); //主菜單瀏覽函數(shù)</p><p> void searsh(); //主菜單查詢函數(shù)</p><p> void searsh1(); //按車次查詢函數(shù)</p><p> void searsh2(
38、); //查詢函數(shù)</p><p> void buy_system(); //主菜單售票函數(shù)</p><p> void back_ticket(); //主菜單退票函數(shù)</p><p> int canpan();
39、 //時間比較函數(shù)</p><p> void save(); //儲存函數(shù)</p><p> void timu(); //題目函數(shù)</p><p> 并定義九個全局變量:</p><p><b> i
40、nt s;</b></p><p> int flag = 1; </p><p> int syshour; </p><p> int sysminute; </p><p> char file
41、name[50];</p><p> struct ticket *head=NULL,*p1,*p2,*p3</p><p><b> 主要模塊的實現(xiàn)</b></p><p> 系統(tǒng)以主函數(shù)int main()為入,進入系統(tǒng)歡迎界面。</p><p> 然后調用void mainmenu()函數(shù),進入主菜單界面
42、。系統(tǒng)接收用戶輸入的選擇,調用相應的函數(shù),進入到下一級菜單進行相關工作。</p><p> ?。?如果用戶選擇選擇1,則調用錄入班次函數(shù)void load(void)錄入班次信息。</p><p> 2如果用戶選擇選擇2,則調用增加班次函數(shù)void add()增加班次信息。</p><p> 3如果用戶選擇選擇3,則調用瀏覽班次函數(shù)void show()瀏覽班次
43、信息。</p><p> 4如果用戶選擇4,則條用查詢函數(shù)void searsh()進入查詢界面菜單。系統(tǒng)接收用戶輸入的選擇,調用相應的函數(shù),進入到下一級菜單進行相關工作。</p><p> ?。?如果用戶選擇1,則調用按班次查詢函數(shù)void searsh1()進行班次查詢。</p><p> 2如果用戶選擇2,則調用按終點站查詢函數(shù)void searsh2()
44、進行班次查詢。</p><p> 3如果用戶選擇3,則返回主菜單界面。</p><p> 5如果用戶選擇5,則調用售票void buy_system()進行買票功能。</p><p> 6如果用戶選擇6,則調用退票void back_ticket()函數(shù)進行退票功能。</p><p> 7如果用戶選擇7,則調用題目void timu(
45、)函數(shù)顯示題目信息。</p><p> 8如果用戶選擇8,則調用保存函數(shù)void save()函數(shù)保存對當前班次信息到文件中。</p><p> 7如果用戶選擇0,則返回主菜單。</p><p> 4.3 以下是幾個主要模塊的流程圖:</p><p><b> 主菜單函數(shù):</b></p><
46、p><b> 圖1 主函數(shù)流程圖</b></p><p><b> 查詢班次函數(shù):</b></p><p><b> 圖2查詢班次流程圖</b></p><p><b> 退票函數(shù):</b></p><p><b> 否</
47、b></p><p><b> 是</b></p><p><b> 圖3訂票流程圖</b></p><p><b> 5.運行結果</b></p><p><b> 5.1歡迎系統(tǒng)界面</b></p><p><
48、;b> 圖4</b></p><p><b> 5.2主菜單界面</b></p><p><b> 圖5</b></p><p><b> 5.3瀏覽班次界面</b></p><p><b> 圖6</b></p>
49、<p><b> 5.4查詢菜單界面</b></p><p><b> 6.程序調試與測試</b></p><p><b> 6.1程序調試</b></p><p><b> 1歡迎系統(tǒng)界面</b></p><p><b>
50、 圖1主菜單界面</b></p><p> 按任意鍵,進入主菜單界面。</p><p><b> 2主菜單界面:</b></p><p><b> 圖2 信息錄入界面</b></p><p> 等待用戶選擇,進入相應的功能界面。</p><p><b
51、> 3錄入班次界面:</b></p><p> 圖3 錄入班次信息成功</p><p> 圖4錄入班次信息失敗</p><p><b> 4增加班次信息</b></p><p> 圖5增加班次信息成功</p><p><b> 5 瀏覽班次界面</b&
52、gt;</p><p> 圖6顯示當前所有班次信息</p><p><b> 5查詢班次界面</b></p><p> 圖7 等待用戶選擇,進入相應的查詢方案。</p><p><b> 圖8按班次查詢結果</b></p><p> 圖9 按終點站查詢結果</
53、p><p><b> 6售票界面</b></p><p> 圖10車已開出。無法售票</p><p> 圖11票以賣完,無法買票</p><p><b> 圖12買票成功</b></p><p> 圖13更新當前剩余車票</p><p><
54、b> 7退票界面</b></p><p><b> 圖14退票成功</b></p><p><b> 圖15退票失敗</b></p><p> 圖16退票成功后更新當前剩余票數(shù)</p><p><b> 6.2程序測試</b></p>
55、<p> 各模塊測試用例數(shù)據(jù)的確定</p><p> 班次 發(fā)車時間 起點站 終點站 行車時間 額定載量 已定票人數(shù) 票價</p><p> 1 8:00 十堰 丹江 3.0 45 30 45</p><p> 2
56、6:30 十堰 鄖縣 1.0 40 40 56</p><p> 7:00 十堰 鄖西 4.0 40 20 67</p><p> 4 23:00 十堰 竹山 3.0 40
57、 40 46</p><p> 5 8:00 十堰 孝感 3.0 45 30 45</p><p> 6 6:30 十堰 襄樊 1.0 40 40 56</p>
58、<p> 7 7:00 十堰 鄂州 4.0 40 20 67</p><p> 8 23:0 十堰 漢川 3.0 40 40 46</p><p> 9 23:30 丹江
59、 仙桃 5.0 45 16 42</p><p><b> 測試結果</b></p><p> 測試中出現(xiàn)的問題的原因和分析</p><p> 由于給定的數(shù)據(jù)有特定的格式。測試數(shù)據(jù)只能是按照程序編的格式寫入,否者就會讀入錯誤。無法正常顯示,不能隨便讀入一個測試文件。程序的讀入有
60、點局限性。</p><p><b> 7.問題與不足</b></p><p> 總體上這個程序還是很嚴密,一些的小bug也防止,不會出現(xiàn)程序突然死機的情況。但是測試文件具有局限性,只能用給定的測試文件測試,不能隨便自己編一個文件測試,否者就會顯示錯誤,要按照程序的格式編寫文件,才能正確讀入,其他情況基本正常,總體上這個程序比較完美。</p><
61、p><b> 8.建議</b></p><p> 就我個人而言,我認為本次課程設計的題目選擇還是比較公平的,但是時間安排還是有點欠缺的,到學期最后一些考試集中到一起了,時間比較少,天氣也比較熱,課程設計應該提前很早就開始準備的。讓學生有個心理準備和這個意識,讓大家對課程設計更加重視,這個輔導由于人數(shù)太多,也不能全部都輔導到,只能大家有選擇性的問一些問題,老師只能簡單為你解答,主要是
62、還是要靠自己的。老師是只是個輔導作用。</p><p><b> 9.編程體會</b></p><p> 本次c語言訓練,讓我們獨立完成一個小系統(tǒng),我從頭到尾努力獨立完成,一方面對c語言有了更好的認識,對c語言語法上面的知識有了一個應用性的復習,同時對文件和鏈表操作有了更好的學習,另一方面我對編程的一些良好習慣也有了認識,編程上的細節(jié)處理也有了了解,總之這次訓練讓
63、我學到很多,這次課程設計讓我學到很多知識,讓我對c語言又有了個全新的認識,這方面的知識有增加了不少,現(xiàn)在我的個人c語言水平有很大的提高,我覺得任何成果都是通過自己的努力得來的,對自己也是一個考驗和鍛煉。</p><p><b> 10.程序源代碼:</b></p><p> #include <stdio.h></p><p>
64、 #include <string.h></p><p> #include <malloc.h></p><p> #include <windows.h></p><p> #include <stdlib.h></p><p> #include <conio.h>&
65、lt;/p><p> /*鏈表操作所用結構體指針*/</p><p> struct ticket *head=NULL,*p1,*p2,*p3; /*定義結構體指針head 為頭指針p1 為輸入數(shù)據(jù)緩存空間指針p2 為尾指針*/</p><p> struct ticket //定義記錄車票信息的結構體 <
66、/p><p><b> {</b></p><p> int number; //定義車次</p><p> int hour; //記錄發(fā)車時間包含小時 </p><p> int minute;
67、 //分鐘 </p><p> char origin_station[20]; //起始站名稱數(shù)組</p><p> char last_station[20]; //終點站名稱數(shù)組</p><p> float last_time; //持續(xù)時間</p>
68、<p> int max_number; //車次最大運載量</p><p> int sold_ticket; //已售車票</p><p> int piaojia ; //車票的價格</p><p> struct ticket
69、*next;</p><p><b> };</b></p><p><b> /*函數(shù)聲明*/ </b></p><p> int system_time(); //系統(tǒng)時間函數(shù)</p><p> void mainmenu();
70、 //主菜單函數(shù)</p><p> void chose(); //主菜單選擇函數(shù)</p><p> void load(void); //主菜單讀入函數(shù)</p><p> void add(); /
71、/增加班次函數(shù)</p><p> void show(); //主菜單瀏覽函數(shù)</p><p> void searsh(); //主菜單查詢函數(shù)</p><p> void searsh1(); //按車次查詢函數(shù)<
72、;/p><p> void searsh2(); //查詢函數(shù)</p><p> void buy_system(); //主菜單售票函數(shù)</p><p> void back_ticket(); //主菜單退票函數(shù)</p><
73、p> int canpan(); //時間比較函數(shù)</p><p> void save(); //儲存函數(shù)</p><p> void timu(); //題目函數(shù)</p><p> /*定義全局變量*/
74、</p><p><b> int s;</b></p><p> int flag = 1; </p><p> int syshour; //記錄系統(tǒng)時間小時 </p><p> int sysminute;
75、 //記錄系統(tǒng)時間分鐘 </p><p> char filename[50]; //文件名數(shù)組 </p><p> /*主函數(shù)*/ </p><p> int main()</p><p><b>
76、; { </b></p><p> printf("\t\t\t\t*****歡迎使用車票管理系統(tǒng)*****\t\t\t\n");</p><p> system("pause");</p><p><b> while(1)</b></p><p><b
77、> {</b></p><p> mainmenu();</p><p><b> chose();</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><
78、;b> }</b></p><p><b> /*主菜單*/</b></p><p> void mainmenu() </p><p><b> { </b></p><p> system(&qu
79、ot;cls");</p><p> printf(" 當前時間:"); </p><p> system_time(); </p><p> printf("\t*****
80、*******************************主菜單**************************************\n");</p><p> printf("\t* ☆ 1.錄入班次信息 ☆*\n");</p><p&
81、gt; printf("\t* ☆ 2.增加班次信息 ☆ *\n");</p><p> printf("\t* ☆ 3.瀏覽班次信息 ☆ *\n"
82、);</p><p> printf("\t* ☆ 4.查詢班次信息 ☆ *\n");</p><p> printf("\t* ☆ 5.售票
83、 ☆ *\n");</p><p> printf("\t* ☆ 6.退票 ☆ *\n");</p><p> printf("\t* ☆
84、7.題目信息 ☆ *\n");</p><p> printf("\t* ☆ 8.保存 ☆ *\n");</p><p> printf("\t*
85、 ☆ 0.退出系統(tǒng) ☆ *\n");</p><p> printf("\t********************************************************************************\n");</p>&l
86、t;p><b> }</b></p><p> /*系統(tǒng)時間函數(shù)*/</p><p> int system_time() </p><p><b> {</b></p><p> SYSTEMTIME sys;</p>
87、<p> GetLocalTime( &sys ); //調用系統(tǒng)時間</p><p> printf( "%4d /%02d/%02d %02d:%02d:%02d 星期%1d\n",</p><p> sys.wYear,</p><p> sys.wMonth,</p>
88、<p><b> sys.wDay,</b></p><p> sys.wHour,</p><p> sys.wMinute,</p><p> sys.wSecond,</p><p> sys.wDayOfWeek);</p><p> syshour=sys.wHo
89、ur; </p><p> sysminute=sys.wMinute; </p><p><b> return 0;</b></p><p><b> }</b></p><p> /*主菜單選擇函數(shù)*/</p><p>
90、 void chose()</p><p><b> { </b></p><p><b> int n;</b></p><p> printf(" 請輸入您想做的操作(0~)8: ");</p><p&g
91、t;<b> do{</b></p><p> scanf("%d",&n);</p><p> if(n<0||n>8)</p><p> printf("\t\t\t您的輸入錯誤請從新輸入(整數(shù)0~8):");</p><p> rewind(st
92、din);</p><p> }while(n<0||n>8);</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1:load();</p><p> system("cl
93、s"); //每次進入主菜單清空</p><p> mainmenu(); break;</p><p> case 2:add();break;</p><p> case 3:show();break;</p><p> case 4:searsh();break;</p><
94、;p> case 5:buy_system();break;</p><p> case 6:back_ticket();break;</p><p> case 7:timu();break;</p><p> case 8:save();break;</p><p> case 0:exit(0);
95、 //調用系統(tǒng)函數(shù)退出程序</p><p><b> }</b></p><p><b> }</b></p><p> /*主菜單讀入函數(shù)*/</p><p> void load(void) //載入文件 <
96、/p><p><b> {</b></p><p> char n; //定義變量記錄輸入字符 </p><p><b> FILE *fp;</b></p><p> biaoji : printf("請輸入文件名或者文
97、件路徑名:"); //標記當前位置</p><p> scanf("%s",filename); </p><p> getchar();</p><p> printf("您確定您輸入的文件路徑是否正確(y/n):"); //確定文件輸入正確</p><p>
98、; scanf("%c",&n);</p><p> if(n=='y') </p><p><b> {</b></p><p> if((fp=fopen(filename,"r"))==NULL) //判斷文件的存在,是否可讀</p&
99、gt;<p><b> {</b></p><p> printf("文件%s不可讀,請確認文件%s存在或者文件路徑正確.\n\n",filename,filename);</p><p> system("pause");//暫停顯示文件狀態(tài)</p><p><b> r
100、eturn;</b></p><p><b> }</b></p><p> head=p1=(struct ticket *)malloc(sizeof(struct ticket));/*開辟一個新單元*/</p><p> p1->next =NULL;</p><p> while
101、(!feof(fp))</p><p><b> {</b></p><p> fscanf(fp,"%03d", &p1->number);</p><p> fscanf(fp, "%d%02d", &p1->hour, &p1->minute)
102、;</p><p> fscanf(fp, "%s%s", p1->origin_station,p1->last_station);</p><p> fscanf(fp, "%f%2d%2d%2d", &p1->last_time, &p1->max_number, &p1->so
103、ld_ticket,&p1->piaojia);</p><p> if(p1->number<0) break;</p><p> p2=(struct ticket *)malloc(sizeof(struct ticket));/*開辟一個新單元*/</p><p> p1->next =p2;</p>
104、<p><b> p3=p1;</b></p><p><b> p1=p2;</b></p><p> p1->next =NULL;</p><p><b> }</b></p><p><b> free(p2);</b>&
105、lt;/p><p> p3->next=NULL; </p><p> fclose(fp); //關閉文件</p><p> printf("\n");</p><p> printf("文件錄入成功\t\t\t"); </p>
106、;<p> system("pause");</p><p><b> }</b></p><p><b> else </b></p><p> goto biaoji; //當文件名輸入錯誤時,選擇'n'可返回標記處重新輸入&l
107、t;/p><p><b> }</b></p><p><b> //增加班次信息</b></p><p> void add()</p><p><b> {</b></p><p> int n=0,m,i;</p>&
108、lt;p><b> p1=head;</b></p><p> if(head==NULL) //空數(shù)據(jù)庫插入在第一個位置</p><p><b> {</b></p><p> getchar();</p><p> printf("\t車次信息數(shù)據(jù)庫為空,只能
109、插入第一個位置,按任意鍵將繼續(xù)。:\n");</p><p> getchar();</p><p> printf("請按班次 發(fā)車時間 起點 終點行車時間(小時) 額定載量已訂票人數(shù) 票價(請輸入0)的形式輸入1條車次記錄(提示班次不與已存在班次相同):\n");</p><p> head=(struct ticket
110、*)malloc(sizeof(struct ticket));/*開辟一個新單元*/</p><p> head->next=NULL;</p><p><b> do{</b></p><p> scanf("%d%d%2d%s%s%f%d%d%d",&head->number,&h
111、ead->hour,&head->minute,head->origin_station,head->last_station,&head->last_time,&head->max_number,&head->sold_ticket,&head->piaojia);</p><p> if((head->number
112、<0)||(head->number<0)||((head->hour<0)||(head->hour>24))||((head->minute<0)||(head->minute>60))||(head->max_number<0)||(head->sold_ticket<0))</p><p> printf(&quo
113、t;對不起您的輸入錯誤,請從新輸入:\n");</p><p> rewind(stdin);</p><p> }while((head->number<0)||(head->number<0)||((head->hour<0)||(head->hour>24))||((head->minute<0)||(head
114、->minute>60))||(head->max_number<0)||(head->sold_ticket<0));</p><p> printf("%03d\t%d:%02d\t\t%s\t%s\t %.1f\t \t%2d\t\t%2d%2d\n", head->number, head->hour, head->mi
115、nute, head->origin_station, head->last_station, head->last_time, head->max_number, head->sold_ticket,head->piaojia);</p><p> printf("\t\t\t1項信息成功輸入完畢!\n");</p><p>
116、system("pause");</p><p><b> return;</b></p><p><b> }</b></p><p> /*數(shù)據(jù)庫不為空時,分插入第一個位置,中間位置,最后一個位置三種情況*/</p><p><b> do{</b&
117、gt;</p><p><b> n++;</b></p><p> p1=p1->next;</p><p> }while(p1!=0);</p><p> printf("\t車次信息數(shù)據(jù)庫中共有%d條記錄,請輸入插入的位置n(n>=1&&n<=%d):\n&qu
118、ot;,n,n+1);</p><p><b> do{</b></p><p> scanf("%d",&m);</p><p> if(m<1||m>n+1) printf("\t\t\t輸入范圍有誤,請重新輸入希望插入的正確位置(n>=1&&n<=%d)
119、:\n",n+1);</p><p> rewind(stdin);</p><p> }while(m<1||m>n+1);</p><p><b> if(m==1) </b></p><p> {/*插入在數(shù)據(jù)庫的第一個位置*/</p><p><b&
120、gt; p1=head;</b></p><p> getchar();</p><p> printf("請按班次 發(fā)車時間 起點 終點行車時間(小時) 額定載量 已訂票人數(shù) 票價(請輸入0)的形式輸入1條車次記錄(提示班次不與已存在班次相同):\n");</p><p> head=(struct ticket *)ma
121、lloc(sizeof(struct ticket));/*開辟一個新單元*/</p><p><b> do{</b></p><p> scanf("%d%d%2d%s%s%f%d%d%d",&head->number,&head->hour,&head->minute,head->ori
122、gin_station,head->last_station,&head->last_time,&head->max_number,&head->sold_ticket,&head->piaojia);</p><p> if((head->number<0)||(head->number<0)||((head->hou
123、r<0)||(head->hour>24))||((head->minute<0)||(head->minute>60))||(head->max_number<0)||(head->sold_ticket<0))</p><p> printf("對不起您的輸入錯誤,請從新輸入:\n");</p><p&
124、gt; rewind(stdin);</p><p> }while((head->number<0)||(head->number<0)||((head->hour<0)||(head->hour>24))||((head->minute<0)||(head->minute>60))||(head->max_number<0
125、)||(head->sold_ticket<0));</p><p> printf("%03d\t%d:%02d\t\t%s\t%s\t %.1f\t \t%2d\t\t%2d%2d\n", head->number, head->hour, head->minute, head->origin_station, head->last_s
126、tation, head->last_time, head->max_number, head->sold_ticket,head->piaojia);</p><p> head->next =p1;</p><p> printf("\t\t\t1項信息成功輸入完畢!\n");</p><p> syste
127、m("pause");</p><p><b> return;</b></p><p><b> }</b></p><p> if(m==n+1)/*插入在數(shù)據(jù)庫的最后一個位置*/</p><p><b> {</b&g
128、t;</p><p><b> p1=head;</b></p><p> while( p1->next!=NULL)</p><p> p1=p1->next;</p><p> printf("請按班次 發(fā)車時間 起點 終點行車時間(小時) 額定載量已訂票人數(shù) 票價(請輸入0)的形
129、式輸入1條車次記錄(提示班次不與已存在班次相同):\n");</p><p> p2=(struct ticket *)malloc(sizeof(struct ticket));/*開辟一個新單元*/</p><p><b> do{</b></p><p> scanf("%d%d%2d%s%s%f%d%d%d
130、",&p2->number,&p2->hour,&p2->minute,p2->origin_station,p2->last_station,&p2->last_time,&p2->max_number,&p2->sold_ticket,&p2->piaojia);</p><p> if(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車票管理系統(tǒng)c語言課程設計報告
- c語言課程設計--車票管理系統(tǒng)
- c語言課程設計車票管理系統(tǒng)
- c語言課程設計報告---車票信息管理系統(tǒng)
- c語言課程設計--火車票信息管理系統(tǒng)
- 車票管理系統(tǒng)課程設計報告
- 課程設計報告--車票管理系統(tǒng)
- 車票管理系統(tǒng)課程設計報告
- 課程設計報告-車票管理系統(tǒng)
- c語言課程設計報告(宿舍管理系統(tǒng))
- c語言課程設計報告--成績管理系統(tǒng)
- c語言課程設計報告(宿舍管理系統(tǒng))
- c語言課程設計報告---銷售管理系統(tǒng)
- c語言課程設計報告-物資管理系統(tǒng)
- 車票管理系統(tǒng)課程設計
- c語言課程設計---職工管理系統(tǒng)設計報告
- c語言課程信息管理系統(tǒng)課程設計報告
- c語言課程設計報告課程信息管理系統(tǒng)
- c語言課程設計報告~圖書管理系統(tǒng)
- c語言課程設計銷售管理系統(tǒng)報告
評論
0/150
提交評論