交通处罚单管理系统 李勇峰.docx

上传人:牧羊曲112 文档编号:2057843 上传时间:2023-01-05 格式:DOCX 页数:15 大小:186.58KB
返回 下载 相关 举报
交通处罚单管理系统 李勇峰.docx_第1页
第1页 / 共15页
交通处罚单管理系统 李勇峰.docx_第2页
第2页 / 共15页
交通处罚单管理系统 李勇峰.docx_第3页
第3页 / 共15页
交通处罚单管理系统 李勇峰.docx_第4页
第4页 / 共15页
交通处罚单管理系统 李勇峰.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《交通处罚单管理系统 李勇峰.docx》由会员分享,可在线阅读,更多相关《交通处罚单管理系统 李勇峰.docx(15页珍藏版)》请在三一办公上搜索。

1、 C语言设计实习报告 勘查技术与工程(基础工程方向) 姓名: 李勇峰 班号: 054081 学号: 20081004133 题目:交通处罚单管理系统 指导教师: 王老师 时间: 2009-2010学年秋 一,题目要求【要求】:交通处罚单涉及到车辆,驾驶员和开单交警的信息,还有交通处罚单的号码,处罚时间等信息。【功能】:(1) 要求可以输入,删除,浏览交通处罚单信息。 (2)可以按车辆,驾驶员和开单交警查询。(3)统计某时间段某个驾驶员的交通处罚数目及交通处罚单号码。 【提示】(1)需求分析:交通处罚单信息用文件存储,提供文件的输输出操作;要求可以输入,输出,删除,浏览交通处罚单信息,因而要提供

2、输入,删除和显示操作;要实现按车辆,驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。 (2)总体设计: 整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块,信息统计模块。交通处罚单管理系统 统计输入查找删除退出二,详细设计: 1,处罚单管理系统界面函数 此函数包括的功能是建立新的罚单,按司机姓名查询罚单并浏览相关信息,按交警姓名查询罚单并浏览相关信息,按罚单号查询罚单并浏览相关信息,删除罚单,数据统计和退出处罚单管理系统。void Menu() printf( ); printf( 欢迎来到交通处罚单管理系统! n );print

3、f(*n);; printf( 1. 建立新的罚单 n ); printf( 2. 根据司机姓名查找并浏览相关信息 n ); printf( 3. 根据交通警察姓名查找并浏览相关信息 n ); printf( 4. 根据车牌号码查询并浏览相关信息 n ); printf( 5. 删除处罚单 n ); printf( 6. 数据统计 n ); printf( 0. 退出 n ); printf( *n );2,各功能模块设计(1)创建新的交通处罚单处罚单包含的内容有处罚单号,车牌号,司机姓名,交警姓名,和处罚日期,因此相应的函数也应包含这些内容,在这个函数所控制的操作会依次提示输入以上内容。特别

4、的,罚单号不能有重复,若输入的罚单号有重复,操作界面会提示罚单好重复,请重新输入。创建新的罚单处罚日期交警姓名罚单号车牌号司机姓名PTPR CreatTPR( PTPR pHead ) PTP R pTemp = InitNode();Int iYear, iMon, iDay;printf( 请输入相关信息:n );printf( 处罚单号: );flushall();scanf( %s, pTemp-m_sRecnum );if( SearchNode_1( pHead, pTemp-m_sRecnum ) )printf( 处罚单有重复,请重新输入 );free( pTemp );ret

5、urn pHead;printf( 车牌号码: );flushall();scanf( %s, pTemp-m_sCarid );printf( 司机姓名: );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_CDate, iYear, iMon, iDay );return

6、InsertNode( pHead, pTemp );(2)按司机姓名查询罚单:先输入命令2,再输入待查找司机姓名.在这里函数会在记录在案的处罚单进行循环查找,如果有该司机的罚单记录,就会相应显示在屏幕上。如果没有该司机的处罚记录,就会打印:没有相关信息。其中If(!(i/4) i=0;continue;这一句的作用是因为有时若因为某哪位司机的处罚记录过多以至于屏幕无法在一夜里全部显示时,多的就打印到下页.void SearchByDriName( PTPR pHead )Char name10;Int i = 1, check = 0;if( pHead )printf( 请输入要查询的司机

7、的姓名: );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( 没有相关信息!n );Else printf( 目前还没有该处罚单! ); (3)按交警姓名查询罚单:先输入命令3,再输入待查找交警姓名.在这里函数会在记录在案的处罚单进行循环查找

8、,如果有该交警所开的的罚单记录,就会相应显示在屏幕上。如果没有该交警开的处罚记录,就会打印:没有相关信息。其中If(!(i/4) i=0;continue;此句的作用同(2)void SearchByPocName( PTPR pHead )Char name10;Int i = 1, check = 0;if( pHead ) printf( 请输入处罚交警的姓名: );flushall();scanf( %s, name );while( pHead ) pHead = SearchNode_3( pHead, name );if( pHead ) check+;ShowNode( pHe

9、ad );printf(n);i+;pHead = pHead-m_pNext;if( !( i % 4 ) ) i = 0; CONTINUE;if( !check ) printf( 没有相关信息!n );Else printf( 目前还没有该处罚单! ); (4)按车牌号查询罚单:先输入命令4,再输入待查找车牌号码.在这里函数也会对记录在案的处罚单进行循环查找,如果有该车牌号记录,就会相应显示在屏幕上。如果没有该车牌号的处罚信息,就会打印:没有相关信息。If(!(i/4) i=0;continue;此句的作用同(2)void SearchByCarId( PTPR pHead )char

10、 name10;Int i = 1, check = 0;if( pHead ) printf( 请输入要查询的车牌号码: );flushall();scanf( %s, name );while( pHead ) pHead = 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( 没有相关信息!n ); Else printf( 目前还没有该

11、处罚单! );(5)删除罚单操作者先输入删除命令5,在按操作要求输入要删除的处罚单号码,系统浏览处罚单,找到相关信息后,在删除这张处罚信息,再把这个信息的尾地址结到下一个信息的头地址上从而达到删除此信息的作用.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 = p

12、Head-m_pNext; else if( !pTemp-m_pNext ) pT = 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)统计此操作会首先提示操作者输入查询的起始时间和结束时间.判断.如是第一个时间大

13、于第二个时间,相应会提示“输入错误”,若输入正确,会提示继续输入待查司机姓名.给i赋初值0.每循环查找到一个记录就给i的值加1.最后在显示屏上显示出i的值.如果查找此段时间内没有该司机罚单信息,则打印“目前还没有该处罚单。void StatisticsTPR( PTPR pHead ) Dated1, d2;charname10;intindex = 0, i = 0; if( pHead ) printf( 请输入起始时间: );flushall();scanf( %d %d %d, &d1.m_iYear, &d1.m_iMonth, &d1.m_iDay );printf( 请输入结束时

14、间: );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 );while( pHead ) pHead = SearchNode_2( pHead, name );if( pHead ) if( ComDate( &pHead-m_CDate, &d1 ) 0 & ComDate( &pHead-m_CDate, &d

15、2 ) m_sRecnum );pHead = pHead-m_pNext;if( !( index % 30 ) ) index = 0; CONTINUE;printf( 一共有 %d 条记录n, i );Else printf( 目前还没有该处罚单! ); (7)退出模块: 在这个模块里,输入命令0后,若程序发现文件里有处罚信息,会相应的保存该信息,然后退出程序,若没有信息,则会提示“不能打开文件!”,然后退出程序。void ExitTPRSystem( PTPR pHead ) FILE*out;inti;printf( 保存数据.n );if( ( out = fopen( a.tx

16、t, at ) ) = NULL ) printf( 不能打开文件! ); CONTINUE; Else while( pHead ) for( i = 0; i m_sRecnum ); i+ )fputc( pHead-m_sRecnumi, out ); fputc( n, out );for( i = 0; i m_sDriname ); i+ ) fputc( pHead-m_sDrinamei, out ); fputc( n, out );for( i = 0; i m_sCarid ); i+ ) fputc( pHead-m_sCaridi, out ); fputc( n,

17、 out );for( i = 0; i m_sTPName ); i+ ) fputc( pHead-m_sTPNamei, out ); fputc( n, out );fputc( pHead-m_CDate.m_iYear, out );fputc( , out );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 ); Desto

18、ryTPR( pHead );printf( 保存成功!n );三,上机操作:1,数据源(1)处罚单号01 车牌号码2001 司机姓名li 警察姓名wang 处罚日期20090901(2)处罚单号02 车牌号码2002 司机姓名zhang 警察姓名li 处罚日期20090902(3)处罚单号03 车牌号码2003 司机姓名ma 警察姓名li 处罚日期20090903(4)处罚单号04 车牌号码2004 司机姓名song 警察姓名chen 处罚日期20090904(5)处罚单号05车牌号码2005 司机姓名chen 警察姓名ren 处罚日期20090905 2, 运行结果 (1)主菜单函数 (2

19、)输入处罚信息 (3)按司机姓名查找并浏览相关处罚信息模块 (4)按交通警察姓名查找并浏览相关信息模块 (5)按车牌号码查询并浏览相关信息模块 (6)删除处罚单模块 (7)数据统计模块 四,C程序实习总结 通过这7天的上机实习,编写运行并运行C程序,让我对C语言又有了进一步的认识并巩固了以前所学,在编写C程序的过程中,得到了老师和同学耐心的指导和帮助,很多问题都是在老师和同学的帮助下我才能够解决的,没有你们的帮助我部可能顺利的完成此次编程.以前对C的概念比较模糊,但是在这次实习中我发现了C在生产生活中有着广泛的应用,比如我这次编写的交通交通处罚单管理系统,还有其他同学编写的一些等等。在实际交通管理中运用此类程序会节省大量的体力和脑力劳动.而且使得交通管理比较容易.避免了以往的那种繁琐的人力劳动。准确率也会大幅度上升,不会造成因为人为失误造成不必要的麻烦。通过该实例的设计分析。,我初步掌握了模块化设计方法,理解和运用结构化程设计的思想和方法.学会了用流程图表示算法,掌握和提高了利用C语言进行程序设计的能力.在各方面都得到了提高。更重要的是这次实习让我了解到了我的不足,该如何让自己的编程能力得到提高,在今后的学习生活里我会多多的上机编程,让自己能力得到进一步的提高

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号