

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《高級(jí)語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)</p><p><b> 實(shí)驗(yàn)報(bào)告</b></p><p> 題目: 車(chē)票信息管理系統(tǒng) </p><p> 完成日期: 2011年 12 月 30 日</p><p> 《高級(jí)語(yǔ)言程序設(shè)計(jì)》</p><p> ——車(chē)票信息管理系統(tǒng)
2、</p><p><b> 一、課程設(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ì),學(xué)會(huì)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)。其中包括對(duì)結(jié)構(gòu)數(shù)組、鏈表和數(shù)據(jù)文件等知識(shí)的運(yùn)用。</p><p> 通過(guò)課程設(shè)計(jì),提高程序開(kāi)發(fā)功能,能
3、運(yùn)用合理的控制流程編寫(xiě)清晰高效的程序。</p><p> 通過(guò)課程設(shè)計(jì),訓(xùn)練C程序調(diào)試能力,能將一個(gè)中小型各級(jí)組織系統(tǒng)聯(lián)調(diào)通過(guò)。</p><p> 通過(guò)課程設(shè)計(jì),開(kāi)發(fā)一個(gè)中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過(guò)程。</p><p> 通話課程設(shè)計(jì),培養(yǎng)分析問(wèn)題、解決實(shí)際問(wèn)題的能力。</p><p><b> 二、課程設(shè)計(jì)內(nèi)容</b
4、></p><p> 設(shè)計(jì)一個(gè)實(shí)用的車(chē)票信息管理系統(tǒng),能以簡(jiǎn)便高效的方式對(duì)車(chē)票進(jìn)行管理和檢索,具體要示:</p><p> 保存:車(chē)票信息包括:車(chē)次,始發(fā)站,票價(jià),余票。以結(jié)構(gòu)數(shù)組或數(shù)據(jù)文件的形式存放車(chē)票信息。</p><p> 更新:能添加、刪除,修改車(chē)票信息。</p><p> 瀏覽:所有車(chē)票信息瀏覽。</p>
5、<p> 查詢:能實(shí)現(xiàn)指定車(chē)次查看車(chē)次信息。</p><p> 系統(tǒng)以菜單方式工作,要求界面友好,易于操作。</p><p><b> 三、總體設(shè)計(jì)</b></p><p><b> 1、模塊化設(shè)計(jì)</b></p><p> 為實(shí)現(xiàn)系統(tǒng)功能,本程序主要分為六個(gè)模塊。它們分別為:
6、輸入一個(gè)車(chē)票信息、刪除一個(gè)車(chē)票信息、查詢一個(gè)車(chē)票信息、添加一個(gè)車(chē)票信息、列出所有的車(chē)票信息、退出并且保存該程序。這六個(gè)函數(shù)再通過(guò)主函數(shù)調(diào)用分別得以實(shí)現(xiàn)。</p><p> 主函數(shù),首先提供了程序運(yùn)行時(shí)的友好界面,列出了清單,提供用戶做出選擇,以便決定使用車(chē)票的哪種功能。然后,通過(guò)執(zhí)行多分支選擇語(yǔ)句——switch語(yǔ)句,分別實(shí)現(xiàn)其它各個(gè)函數(shù)的調(diào)用功能。</p><p> 其它各個(gè)函數(shù)的功
7、能分別如下: </p><p> Delete函數(shù)用于對(duì)車(chē)票中指定信息的刪除;</p><p> Search函數(shù)用于對(duì)車(chē)票中指定信息的查詢;</p><p> Add函數(shù)用于在車(chē)票中插入信息;</p><p> Print函數(shù)用于對(duì)車(chē)票中所有信息進(jìn)行瀏覽;</p><p> Save函數(shù)用于保存車(chē)票信息并且
8、退出。</p><p><b> 2、模塊調(diào)用圖</b></p><p><b> 四、詳細(xì)設(shè)計(jì)</b></p><p><b> ?。?)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p> 本程序中,運(yùn)用了多種數(shù)據(jù)結(jié)構(gòu)。首先對(duì)于車(chē)票中各項(xiàng)詳細(xì)信息的記錄用了結(jié)構(gòu)數(shù)組的形式,然后又運(yùn)用
9、鏈表動(dòng)態(tài)地分配內(nèi)存單元,在main函數(shù)中,把保存在數(shù)組中的值再賦值給其中的一個(gè)結(jié)點(diǎn),通過(guò)指針的后移,把多個(gè)數(shù)據(jù)連成一個(gè)鏈,形成一個(gè)鏈表。在這過(guò)程當(dāng)中,還運(yùn)用了數(shù)據(jù)文件的方式,每一次從終端輸入的數(shù)據(jù)都以數(shù)據(jù)文件的形式保存到了磁盤(pán)。</p><p> 對(duì)于主要數(shù)據(jù)結(jié)構(gòu)的舉例如下:</p><p><b> 結(jié)構(gòu)數(shù)組:</b></p><p>&
10、lt;b> ?、佟?lt;/b></p><p> struct ticket</p><p><b> {</b></p><p> char number[8];</p><p> char m[50];</p><p> struct ticket *next;<
11、/p><p><b> };</b></p><p><b> 鏈表:</b></p><p> ① struct ticket a,b,c,d,e,*head,*p;</p><p><b> head=&a;</b></p><p>
12、a.next=&b;</p><p> b.next=&c;</p><p> c.next=&d;</p><p> d.next=&e;</p><p> e.next=NULL;</p><p><b> p=head;</b></p>
13、<p><b> ?、凇?lt;/b></p><p> while(p!=NULL)</p><p><b> { </b></p><p> if(strcmp(p->number,number)==0)</p><p><b> {</b></
14、p><p> if(p==head) head=p->next;</p><p><b> else</b></p><p><b> {</b></p><p> pr->next=p->next;</p><p> p=p->next;<
15、;/p><p> } </p><p><b> }</b></p><p><b> pr=p;</b></p><p> p=p->next;</p><p><b> }</b></p><p>
16、<b> 數(shù)據(jù)文件:</b></p><p><b> ?、佟?lt;/b></p><p> if((fp=fopen("ticket.txt","r+"))==NULL)</p><p><b> {</b></p><p> pr
17、intf("\ncannot open this file\n");</p><p><b> return;</b></p><p><b> }</b></p><p> while(p!=NULL)</p><p><b> {</b><
18、/p><p> fscanf(fp,"%s %s\n",p->number,p->m);</p><p> p=p->next;</p><p><b> }</b></p><p> ② void Save()</p><p><b> {&
19、lt;/b></p><p><b> FILE *fp;</b></p><p> struct ticket *p=head;</p><p> if((fp=fopen("ticket.txt","w"))==NULL)</p><p><b> {&
20、lt;/b></p><p> printf("\tcannot open this file\n");</p><p><b> exit (0);</b></p><p><b> }</b></p><p> while(p!=NULL)</p>
21、<p><b> {</b></p><p> fprintf(fp,A,p->number,p->m);</p><p> p=p->next;</p><p><b> }</b></p><p> fclose(fp);</p><p
22、> printf(" 感謝使用!\n");</p><p><b> }</b></p><p><b> ?。?)模塊接口設(shè)計(jì)</b></p><p> 由于本程序中大部分運(yùn)用了鏈表這一數(shù)據(jù)結(jié)構(gòu),函數(shù)中存在很多指針,所以這個(gè)程序中被調(diào)用的函數(shù)都是空類型的,但這并沒(méi)有影響最終結(jié)果的輸出,
23、反而使得函數(shù)調(diào)用的過(guò)程更加簡(jiǎn)便。</p><p> 本程序執(zhí)行的入口是main函數(shù),然后在main函數(shù)中首先實(shí)現(xiàn)了對(duì)車(chē)票中的數(shù)據(jù)以文件的方式進(jìn)行讀入。接下來(lái)在while語(yǔ)句中再套用switch語(yǔ)句實(shí)現(xiàn)對(duì)各個(gè)函數(shù)的調(diào)用。被調(diào)用的函數(shù)都是沒(méi)有形參的,但是通過(guò)對(duì)鏈表的使用,可以使得每一次的函數(shù)調(diào)用都能得到返回值。最后,再?gòu)膍ain函數(shù)中結(jié)束整個(gè)程序的運(yùn)行。 </p><p> 其中涉及到被調(diào)
24、用的函數(shù)有:</p><p><b> Menu();</b></p><p> Delete(head);</p><p> Search(head);</p><p> Modify(head);</p><p> Print(head);</p><p>
25、 DeleteMemory(head);</p><p> Add(head);</p><p> save(head);</p><p><b> 流程圖</b></p><p><b> Delete函數(shù)</b></p><p><b> Add 函數(shù)
26、:</b></p><p><b> Print 函數(shù):</b></p><p><b> Save函數(shù):</b></p><p><b> Search函數(shù):</b></p><p><b> 五、調(diào)試與測(cè)試</b></p>
27、;<p> 調(diào)試過(guò)程中的主要問(wèn)題</p><p> 由于本程序是分模塊設(shè)計(jì)的,所以運(yùn)行時(shí)選擇完任務(wù)并且執(zhí)行完任務(wù)后,又會(huì)繼續(xù)回到用戶選擇界面,供用戶繼續(xù)選擇任務(wù)并執(zhí)行任務(wù),整個(gè)程序以文件形式讀寫(xiě),所以每次都可對(duì)輸入的數(shù)據(jù)進(jìn)行保存。對(duì)于本程序的調(diào)試運(yùn)行,總體上情況良好。但是,其中也出現(xiàn)了一些小問(wèn)題。我發(fā)現(xiàn)的主要問(wèn)題有:</p><p> 1 會(huì)出現(xiàn)顯示兩次用戶界面,在網(wǎng)上
28、查找后,知道了用scanf(" %c", &ch);來(lái)表示輸入指令,在 %c 前加一個(gè)空格。</p><p> 2 在讀寫(xiě)文件的時(shí)候,會(huì)有“燙”出現(xiàn),在修改讀寫(xiě)的格式和讀寫(xiě)的函數(shù)后解決了。</p><p> 3 出現(xiàn)一些函數(shù)不能調(diào)用,檢查后,進(jìn)行了修改:在switch 語(yǔ)句里,case 后面有一個(gè)以上的語(yǔ)句加上了“{}”。</p><p&
29、gt; 4 遇到搜索比較的時(shí)候,出現(xiàn)錯(cuò)誤,后來(lái)用strcmp實(shí)現(xiàn)(strcmp(p->number,number)。</p><p> 測(cè)試結(jié)果的分析與討論</p><p><b> 用戶界面</b></p><p><b> 添加車(chē)票信息</b></p><p><b>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)--火車(chē)票信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--車(chē)票管理系統(tǒng)
- 車(chē)票管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告課程信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--車(chē)票管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)車(chē)票管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告----學(xué)生信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---職工信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---學(xué)生信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---學(xué)生信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--職工信息管理系統(tǒng)
- 教學(xué)信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告
- 教學(xué)信息管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告----職工信息管理系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論