版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 C語言設計實習報告 勘查技術(shù)與工程(基礎(chǔ)工程方向) 姓名: 李勇峰 班號: 054081 學號: 20081004133 題目:交通處罰單管理系統(tǒng) 指導教師: 王老師 時間: 2009-2010學年秋 一,題目要求【要求】:交通處罰單涉及到車輛,駕駛員和開單交警的信息,還有交通處罰單的號碼,處罰時間等信息?!竟δ堋浚?1) 要求可以輸入,刪除,瀏覽交通處罰單信息。 (2)可以按車輛,駕駛員和開單交警查詢。(3)統(tǒng)計某時間段某個駕駛員的交通處罰數(shù)目及交通處罰單號碼。 【提示】(1)需求分析:交通處罰單信息用文件存儲,提供文件的輸輸出操作;要求可以輸入,輸出,刪除,瀏覽交通處罰單信息,因而要提供
2、輸入,刪除和顯示操作;要實現(xiàn)按車輛,駕駛員和開單交警查詢,則要提供查找操作;另外提供統(tǒng)計操作和鍵盤式選擇菜單以實現(xiàn)功能選擇。 (2)總體設計: 整個管理系統(tǒng)被設計為信息輸入模塊,信息刪除模塊,信息瀏覽模塊,信息查詢模塊,信息統(tǒng)計模塊。交通處罰單管理系統(tǒng) 統(tǒng)計輸入查找刪除退出二,詳細設計: 1,處罰單管理系統(tǒng)界面函數(shù) 此函數(shù)包括的功能是建立新的罰單,按司機姓名查詢罰單并瀏覽相關(guān)信息,按交警姓名查詢罰單并瀏覽相關(guān)信息,按罰單號查詢罰單并瀏覽相關(guān)信息,刪除罰單,數(shù)據(jù)統(tǒng)計和退出處罰單管理系統(tǒng)。void Menu() printf(" " ); printf( " 歡迎來到
3、交通處罰單管理系統(tǒng)! n" );printf("*n");; printf( " 1. 建立新的罰單 n" ); printf( " 2. 根據(jù)司機姓名查找并瀏覽相關(guān)信息 n" ); printf( " 3. 根據(jù)交通警察姓名查找并瀏覽相關(guān)信息 n" ); printf( " 4. 根據(jù)車牌號碼查詢并瀏覽相關(guān)信息 n" ); printf( " 5. 刪除處罰單 n" ); printf( " 6. 數(shù)據(jù)統(tǒng)計 n" ); printf( &quo
4、t; 0. 退出 n" ); printf( "*n" );2,各功能模塊設計(1)創(chuàng)建新的交通處罰單處罰單包含的內(nèi)容有處罰單號,車牌號,司機姓名,交警姓名,和處罰日期,因此相應的函數(shù)也應包含這些內(nèi)容,在這個函數(shù)所控制的操作會依次提示輸入以上內(nèi)容。特別的,罰單號不能有重復,若輸入的罰單號有重復,操作界面會提示罰單好重復,請重新輸入。創(chuàng)建新的罰單處罰日期交警姓名罰單號車牌號司機姓名PTPR CreatTPR( PTPR pHead ) PTP R pTemp = InitNode();Int iYear, iMon, iDay;printf( "請輸入相關(guān)
5、信息:n" );printf( "處罰單號: " );flushall();scanf( "%s", pTemp->m_sRecnum );if( SearchNode_1( pHead, pTemp->m_sRecnum ) )printf( "處罰單有重復,請重新輸入" );free( pTemp );return pHead;printf( "車牌號碼: " );flushall();scanf( "%s", pTemp->m_sCarid );printf(
6、"司機姓名: " );flushall();scanf( "%s", pTemp->m_sDriname );printf( "交通警察姓名: " );flushall();scanf( "%s", pTemp->m_sTPName );printf( "處罰日期: " );flushall();scanf( "%d %d %d", &iYear, &iMon, &iDay );InitDate( &pTemp->m_CDat
7、e, iYear, iMon, iDay );return InsertNode( pHead, pTemp );(2)按司機姓名查詢罰單:先輸入命令2,再輸入待查找司機姓名.在這里函數(shù)會在記錄在案的處罰單進行循環(huán)查找,如果有該司機的罰單記錄,就會相應顯示在屏幕上。如果沒有該司機的處罰記錄,就會打?。簺]有相關(guān)信息。其中If(!(i/4) i=0;continue;這一句的作用是因為有時若因為某哪位司機的處罰記錄過多以至于屏幕無法在一夜里全部顯示時,多的就打印到下頁.void SearchByDriName( PTPR pHead )Char name10;Int i = 1, check =
8、0;if( pHead )printf( "請輸入要查詢的司機的姓名: " );flushall();scanf( "%s", name );while( pHead )pHead = SearchNode_2( pHead, name );if( pHead )check+;ShowNode( pHead );printf("n");i+;pHead = pHead->m_pNext;if( !( i % 4 ) ) i = 0;CONTINUE;if( !check ) printf( "沒有相關(guān)信息!n"
9、; );Else printf( "目前還沒有該處罰單!" ); (3)按交警姓名查詢罰單:先輸入命令3,再輸入待查找交警姓名.在這里函數(shù)會在記錄在案的處罰單進行循環(huán)查找,如果有該交警所開的的罰單記錄,就會相應顯示在屏幕上。如果沒有該交警開的處罰記錄,就會打?。簺]有相關(guān)信息。其中If(!(i/4) i=0;continue;此句的作用同(2)void SearchByPocName( PTPR pHead )Char name10;Int i = 1, check = 0;if( pHead ) printf( "請輸入處罰交警的姓名: " );flus
10、hall();scanf( "%s", name );while( pHead ) pHead = SearchNode_3( pHead, name );if( pHead ) check+;ShowNode( pHead );printf("n");i+;pHead = pHead->m_pNext;if( !( i % 4 ) ) i = 0; CONTINUE;if( !check ) printf( "沒有相關(guān)信息!n" );Else printf( "目前還沒有該處罰單!" ); (4)按車牌號查
11、詢罰單:先輸入命令4,再輸入待查找車牌號碼.在這里函數(shù)也會對記錄在案的處罰單進行循環(huán)查找,如果有該車牌號記錄,就會相應顯示在屏幕上。如果沒有該車牌號的處罰信息,就會打?。簺]有相關(guān)信息。If(!(i/4) i=0;continue;此句的作用同(2)void SearchByCarId( PTPR pHead )char name10;Int i = 1, check = 0;if( pHead ) printf( "請輸入要查詢的車牌號碼: " );flushall();scanf( "%s", name );while( pHead ) pHead =
12、 SearchNode_4( pHead, name );if( pHead ) check+;ShowNode( pHead );printf("n");i+;pHead = pHead->m_pNext;if( !( i % 4 ) ) i = 0;CONTINUE;if( !check ) printf( "沒有相關(guān)信息!n" ); Else printf( "目前還沒有該處罰單!" );(5)刪除罰單操作者先輸入刪除命令5,在按操作要求輸入要刪除的處罰單號碼,系統(tǒng)瀏覽處罰單,找到相關(guān)信息后,在刪除這張?zhí)幜P信息,再把這個信
13、息的尾地址結(jié)到下一個信息的頭地址上從而達到刪除此信息的作用.PTPR DeleteTPR( PTPR pHead ) char num11;PTPR pTemp, pT;if( pHead ) printf( "請輸入要查詢的處罰單號: " );flushall(); scanf( "%s", num );pTemp = SearchNode_1( pHead, num );if( pTemp ) if( pTemp = pHead ) pHead = pHead->m_pNext; else if( !pTemp->m_pNext ) pT
14、 = SearchNode_1_rf( pHead, num ); pT->m_pNext = NULL;Else pT = SearchNode_1_rf( pHead, num );pT->m_pNext = pTemp->m_pNext;free( pTemp );printf( "刪除成功!n" );Else printf( "輸入的號碼不存在!n" ); Else printf( "目前還沒有該處罰單!" );return pHead;(6)統(tǒng)計此操作會首先提示操作者輸入查詢的起始時間和結(jié)束時間.判斷.如是
15、第一個時間大于第二個時間,相應會提示“輸入錯誤”,若輸入正確,會提示繼續(xù)輸入待查司機姓名.給i賦初值0.每循環(huán)查找到一個記錄就給i的值加1.最后在顯示屏上顯示出i的值.如果查找此段時間內(nèi)沒有該司機罰單信息,則打印“目前還沒有該處罰單。void StatisticsTPR( PTPR pHead ) Dated1, d2;charname10;intindex = 0, i = 0; if( pHead ) printf( "請輸入起始時間: " );flushall();scanf( "%d %d %d", &d1.m_iYear, &d
16、1.m_iMonth, &d1.m_iDay );printf( "請輸入結(jié)束時間: " );flushall();scanf( "%d %d %d", &d2.m_iYear, &d2.m_iMonth, &d2.m_iDay );if( ComDate( &d1, &d2 ) > 0 ) printf( "輸入錯誤!n" ); else printf( "輸入司機姓名: " );flushall();scanf( "%s", name )
17、;while( pHead ) pHead = SearchNode_2( pHead, name );if( pHead ) if( ComDate( &pHead->m_CDate, &d1 ) > 0 && ComDate( &pHead->m_CDate, &d2 ) < 0 ) i+; index+;printf( "%sn", pHead->m_sRecnum );pHead = pHead->m_pNext;if( !( index % 30 ) ) index = 0; CO
18、NTINUE;printf( "一共有 %d 條記錄n", i );Else printf( "目前還沒有該處罰單!" ); (7)退出模塊: 在這個模塊里,輸入命令0后,若程序發(fā)現(xiàn)文件里有處罰信息,會相應的保存該信息,然后退出程序,若沒有信息,則會提示“不能打開文件!”,然后退出程序。void ExitTPRSystem( PTPR pHead ) FILE*out;inti;printf( "保存數(shù)據(jù).n" );if( ( out = fopen( "a.txt", "at" ) ) = N
19、ULL ) printf( "不能打開文件!" ); CONTINUE; Else while( pHead ) for( i = 0; i < strlen( pHead->m_sRecnum ); i+ )fputc( pHead->m_sRecnumi, out ); fputc( 'n', out );for( i = 0; i < strlen( pHead->m_sDriname ); i+ ) fputc( pHead->m_sDrinamei, out ); fputc( 'n', out
20、);for( i = 0; i < strlen( pHead->m_sCarid ); i+ ) fputc( pHead->m_sCaridi, out ); fputc( 'n', out );for( i = 0; i < strlen( pHead->m_sTPName ); i+ ) fputc( pHead->m_sTPNamei, out ); fputc( 'n', out );fputc( pHead->m_CDate.m_iYear, out );fputc( ' ', out );
21、fputc( pHead->m_CDate.m_iMonth, out );fputc( ' ', out );fputc( pHead->m_CDate.m_iDay, out );fputc( 'n', out );fputc( 'n', out );pHead = pHead->m_pNext; fclose( out ); DestoryTPR( pHead );printf( "保存成功!n" );三,上機操作:1,數(shù)據(jù)源(1)處罰單號01 車牌號碼2001 司機姓名li 警察姓名wang 處罰日期20090901(2)處罰單號02 車牌號碼2002 司機姓名zhang 警察姓名li 處罰日期20
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年武漢車都建設投資有限公司招聘筆試參考題庫含答案解析
- 2025年度電子產(chǎn)品分期購買與售后服務合同
- 2025年度人事代理與員工薪酬福利調(diào)整服務協(xié)議3篇
- 2025年高新技術(shù)企業(yè)授權(quán)合同簽訂委托書規(guī)范3篇
- 2025版新能源汽車租賃與智能交通控制系統(tǒng)合作框架協(xié)議3篇
- 2025年全球及中國垂直旋轉(zhuǎn)模塊行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國TGV玻璃芯基材行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025版城市更新項目土地使用權(quán)作價出資合作協(xié)議3篇
- 二零二五年度成都市二手房交易合同范本 正版官方規(guī)范修訂3篇
- 二零二五年度車隊運輸保險合作協(xié)議3篇
- 小學六年級數(shù)學100道題解分數(shù)方程
- 部編版五年級語文下冊第七單元大單元教學設計
- 社區(qū)獲得性肺炎護理查房內(nèi)科
- 淺談提高中學生歷史學習興趣的策略
- 藥品儲存養(yǎng)護知識大全
- 新版藥品批發(fā)企業(yè)質(zhì)量管理體系文件大全
- 項目管理實施規(guī)劃-無錫萬象城
- 浙大一院之江院區(qū)就診指南
- 離婚協(xié)議書電子版下載
- 相似三角形判定專項練習30題(有答案)
- 2023學年完整公開課版mydreamjob作文教學
評論
0/150
提交評論