交通罚单管理系统

合集下载

罚单系统——信息系统设计

罚单系统——信息系统设计

罚单系统——信息系统设计罚单系统是一个信息系统,用于管理和记录交通违法行为并发放相应的罚单。

该系统可以提高交通管理的效率和准确性,减少人力资源的浪费,促进交通秩序的规范。

一、系统目标罚单系统的目标是实现以下功能:1.交通违法信息记录:系统可以记录交通违法的详细信息,包括违法行为、时间、地点、交通工具信息等。

2.罚单发放:系统可以根据违法行为自动生成罚单,并将罚单发送给违法行为的相关人员。

3.罚单管理:系统可以管理罚单的状态,包括罚单的结案情况、罚款金额的收取情况等。

4.数据统计和分析:系统可以统计和分析交通违法行为的情况,生成相关报表和图表,为交通管理部门提供数据支持。

二、系统架构罚单系统的架构包括前端用户界面、后台数据库和业务逻辑处理模块。

1.前端用户界面:提供给交通执法人员、交通管理人员以及违法行为相关人员使用的界面。

交通执法人员可以通过界面记录交通违法信息,交通管理人员可以对违法行为信息进行查询和管理,违法行为相关人员可以查看自己的罚单信息和缴费情况。

2.后台数据库:用于存储罚单系统的所有数据,包括交通违法信息、罚单信息、人员信息等。

数据库应具备高效的读写能力和数据安全保护措施。

3.业务逻辑处理模块:负责实现前端用户界面和后台数据库之间的交互逻辑和业务处理。

该模块包括交通违法信息记录、罚单生成和发送、罚单状态管理、数据统计和分析等功能。

三、系统功能详细设计1.交通违法信息记录:交通执法人员通过系统录入违法行为信息,包括违法行为类型、时间、地点、车辆信息等。

系统会对信息进行校验和存储,同时生成违法行为的唯一标识。

2.罚单生成和发送:根据输入的违法行为信息,系统自动生成相应的罚单,并将罚单发送给违法行为的相关人员。

罚单中包括违法行为的详细信息、罚款金额、缴费期限等。

系统会将罚单状态设为待缴费,待用户缴费后更新罚单状态。

3.罚单状态管理:交通管理人员可以通过系统查询和管理罚单的状态。

系统将罚单分为不同的状态,包括待缴费、已缴费、已结案等。

交通违法信息管理系统的设计与实现

交通违法信息管理系统的设计与实现

交通违法信息管理系统的设计与实现随着社会的发展,交通违法行为也在悄然增加,为了加强对交通违法行为的管理,交通违法信息管理系统应运而生。

交通违法信息管理系统是一种以实现对交通违法信息的采集、管理、统计、分析、查询、交流和控制为目标的信息化系统。

本文将从系统架构、功能设计和实现方面,来介绍交通违法信息管理系统的设计与实现。

一、系统架构交通违法信息管理系统是一个复杂的信息化系统,其开发需要遵循系统分层设计原则。

整个系统可分为四层:表现层、应用层、业务层和数据层。

表现层:表现层是用户交互和信息展示的界面。

用户可以通过表现层完成对系统的操作,包括输入查询条件、提交违法信息、查看违法记录等。

表现层要求具有良好的交互界面和友好的用户体验, 可以使用网页或客户端进行设计。

应用层:应用层主要负责处理表现层传递过来的请求,并对请求进行处理,完成对数据库的CRUD操作。

应用层的实现可以使用MVC或三层架构。

业务层:业务层是整个系统的核心部分,主要负责业务逻辑的处理。

包括违法信息的采集、管理、统计、分析、查询、交流和控制等。

业务层设计要满足系统的可扩展性和可维护性。

数据层:数据层是系统的底层,主要用于处理数据和数据存储。

包括数据库的设计、数据访问等。

数据层的设计要注意数据的安全性和稳定性。

二、功能设计交通违法信息管理系统主要分为以下几个功能模块:1、用户管理模块:对用户的增删改查,主要包括用户注册、登陆、修改密码等。

该模块需要进行身份验证,确保信息的安全性。

2、违法信息采集模块:该模块对违法信息的采集进行管理,主要包括对驾驶员和车辆的信息采集以及违法时间、地点、违法行为等信息的录入。

3、违法信息管理模块:该模块对违法信息的管理功能进行设计,包括对违法信息的增删改查、批量导入导出、图片上传和售后服务等。

4、违法信息统计模块:该模块对违法信息进行统计分析,并输出统计报表,提供给相关部门进行分析和决策支持。

5、违法信息查询模块:该模块可供公众、警察、交通部门、保险公司等进行信息查询,为管理各类交通违法行为提供便利。

交通处罚单管理系统

交通处罚单管理系统

交通处罚单管理系统交通处罚单管理系统一、概述交通处罚单管理系统是针对交通违法行为的记录、处理、储存、管理而设计的软件系统,采用计算机技术和网络通讯技术,实现对交通警察、公安机关、交通管理部门以及违法行为当事人之间的信息共享、数据管理、实时响应等功能。

二、系统架构交通处罚单管理系统由控制中心、前端设备、通讯网络三个主要部分构成。

1. 控制中心控制中心是整个系统的核心部分,包括服务器、数据库、应用程序以及监管终端等组成部分。

服务器提供系统稳定运行的基础环境,数据库存储系统所需的数据信息,应用程序提供系统功能。

监管终端是交通管理部门的监管工具之一,用于对前端设备进行管理和调度。

2. 前端设备前端设备主要指道路监控摄像头、交通违法抓拍相机、交警执法终端等。

这些设备通过视频传输、数据采集等方式,将现场信息传输至控制中心,提供数据支持。

3. 通讯网络通讯网络是整个系统的数据传输通道,包括有线、无线、广域、局域等多种网络形式。

通过网络通讯,前端设备可以传输数据给控制中心,交通管理部门可以实时查看系统数据。

三、系统功能交通处罚单管理系统具有如下主要功能:1. 违法行为记录:通过前端设备对道路交通状况进行实时监控,自动抓拍交通违法行为,记录行驶车辆信息和违法类型,生成电子处罚单。

2. 数据管理:将系统抓拍到的违法行为信息进行分类、整理、存储和管理,可以对这些数据进行查询、分析、报表、统计等处理。

3. 数据共享:通过网络通讯,将系统记录的违法行为信息共享给相关部门,比如公安机关、交通管理部门等。

4. 警情联动:当发生重大交通安全事件时,系统可以将该事件信息自动推送给警务部门,以支持警务行动。

5. 线上缴费:通过系统绑定银行卡或第三方支付账户,违法行为当事人可以在线完成罚款缴纳等操作。

6. 人员管理:将警务人员和违法行为当事人信息进行管理,提供查询、统计、分析等功能。

四、系统优势交通处罚单管理系统作为一个以科技手段为支撑的管理工具,拥有以下优势:1. 实现对违法行为的准确记录,提高警务部门执法效率。

交通处罚单管理系统_C语言实习报告

交通处罚单管理系统_C语言实习报告

交通处罚单管理系统_C语言实习报告交通处罚单管理系统_C语言实习报告一、实习背景我在大学期间学习了计算机科学与技术专业,其中涉及的编程语言有Java、C以及Python等。

但是在我个人的评估中,C语言是最难的,因为它需要更多的细节处理和代码实现。

因此,我决定进入XX交通管理局实习,学习如何使用C语言开发交通处罚单管理系统。

此次实习有助于我提高我的编程技能,尤其是在C语言方面。

二、项目背景介绍在过去的几年中,交通事故在全国范围内逐年增加。

因此,各个城市交通管理部门制定了不同的管理措施来降低这些事故。

其中,处罚单作为一项重要的处罚手段,已经被广泛应用。

然而,由于管理方式的复杂性,很难人工维护处罚单,因此需要一种自动化的方式来管理。

基于此,我们设计了一个交通处罚单管理系统。

该系统是一个命令行工具,输入命令后可以执行以下操作:1. 生成处罚单:输入驾驶员和车辆的信息,系统将生成一张处罚单并记录在系统中;2. 查找处罚单:输入违规者的信息,系统将返回该违规者的所有处罚单信息;3. 修改处罚单:输入需要更改的处罚单信息,系统将修改处罚单;4. 删除处罚单:输入需要删除的处罚单信息,系统将删除处罚单;5. 统计系统中处罚单数量和处罚总金额;6. 退出系统。

三、技术实现1.使用C语言开发命令行界面,采用鼠标和键盘输入操作;2.使用C语言结构体,定义并维护每张处罚单的信息;3.使用C语言文件操作,记录和读取已生成的处罚单;4.使用C语言指针对各个处罚单进行操作;5.使用C语言函数实现操作的不同步骤;6.使用C语言条件判断和循环语句,实现不同操作的逻辑处理。

四、实习收获1.学习和加强了C语言的编程技能;2.增加了应对复杂问题的能力;3.了解了交通管理部门的一些相关规定;4.进一步了解了实际应用的开发流程和方法;5.知道了如何建立有效的交通管理系统。

五、实习总结通过这次C语言实习,我深刻认识到了良好的交通管理对于国家的重要性。

交通处罚单管理系统_C语言实习报告

交通处罚单管理系统_C语言实习报告

交通处罚单管理系统_C语言实习报告交通处罚单管理系统_C语言实习报告一、实习介绍在大学期间,我有幸参加了一次C语言实习,实习的主题是交通处罚单管理系统。

通过这段实习,我了解了如何使用C 语言实现一个功能完备的交通处罚单管理系统,并且在实践中巩固了自己的C语言知识。

二、实习内容1.需求分析在实习开始前,我们的导师向我们详细阐述了这个交通处罚单管理系统的需求,包括以下功能:(1)添加罚单:管理员可以通过输入违法车辆的相关信息,添加罚单,并将罚款金额记录在罚单中。

(2)查询罚单:管理员可以通过输入违法车辆的相关信息,查询系统中已经添加的罚单。

(3)修改罚单:管理员可以通过输入罚单号,修改罚单中一些信息,如罚款金额。

(4)删除罚单:管理员可以通过输入罚单号,删除某个罚单。

(5)统计罚单:管理员可以根据时间或者地点等条件,对系统中的罚单进行统计,包括罚款金额、数量等。

2.设计实现在学习了C语言基础知识之后,我们开始着手设计实现交通处罚单管理系统。

由于需求比较明确,我们很快确定了系统的各个模块及其实现方式。

具体来说,我们定义了结构体来表示违法车辆的相关信息,例如车牌号、违法地点、罚款金额等。

然后我们设计了相应的函数,如添加罚单函数、查询罚单函数、修改罚单函数、删除罚单函数、统计罚单函数等。

在函数的实现中,我们采用了指针来简化程序的设计,并且尽可能考虑了错误处理的情况,以保证系统的稳定性。

3.测试验证完成代码的编写之后,我们还进行了系统的测试验证。

在测试中,我们通过自行构造一些罚单数据,并进行各种操作,比如添加、查询、修改、删除、统计等操作。

通过测试,我们发现系统完全符合我们的需求,并且稳定性也得到了有效保证。

三、实习收获通过这段实习,我对C语言的掌握更加深入了解,对算法的实现能力也有了一定的提升。

同时,在实现这个交通处罚单管理系统的过程中,我还加深了对软件工程的理解,了解了开发一个完整系统需要考虑的方方面面,比如需求分析、模块设计、代码实现、测试验证等等。

交通处罚单管理系统

交通处罚单管理系统

精品文档C语言实践应用交通处罚单管理系统内容:〔要求〕交通处罚单涉及到车辆、驾驶员和开单交警的信息,还有交通处罚单号码,处罚时间等信息。

功能:(1)要求可以输入、删除、浏览交通处罚单信息。

(2)可以按车辆、驾驶员和开单交警查询。

(3)统计某时间段某个驾驶员的交通处罚单数目及交通处罚单号码。

第二部分:需求分析1.交通处罚单信息用文件存储,提供文件的输入输出操作;2.要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;3.要车辆、驾驶员和开单交警查询,则要提供查找操作;4.另外提供系统操作和键盘式选择菜单以实现功能选择。

第三部分:程序总体设计思路由于 C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。

在编写本程序的过程中,首先,确定目标程序运行的次序与界面,精品文档即本程序首先运行【用户系统】菜单界面,菜单界面上为用户提供信息输入,信息删除,信息查询,信息浏览,信息统计,退出菜单共六种操作选择。

此功能用switch 语句来实现。

其次,根据目标程序运行的次序与界面,确定设计顺序,设计界面(包括各部分菜单与用户提示信息)。

再次,按照程序运行的各界面下的菜单功能编写各功能模块,并调试程序各功能模块,使各模块能够稳定高效准确地完成对应功能。

第四部分:程序功能模块划分、图示及流程图系统的结构图:交通处罚单管理系统信息信息信息信息信息删除统计输入查找浏览.【信息输入模块】该模块的功能是为用户提供信息输入界面,用户可以根据信息提示进行信息输入,用户输入的信息将被保存在文件当中。

【流程图】精品文档请输入车牌号码:请输入驾驶员姓名:请输入开单日期:请输入罚单号:显示已有罚单数目【程序】:void shuru(){FILE *fp;int i=0;if((fp=fopen("data.txt","wb"))==NULL){printf("Can not open the file\n");exit(0);//调用此函数时必须包含 <stdlib.h>}printf("请输入车牌号码: \n");scanf("%d",&dan[NUM ].chepai);printf("请输入驾驶员姓名: \n");scanf("%s",dan[NUM ].name);printf("请输交警 ID:\n");scanf("%d",&dan[NUM ].id);printf("请输入开单日期 ( 以年 / 月/ 日形式输入 ) :\n");scanf("%d/%d/%d",&dan[i].date.year,&dan[i].date.month,&dan[ i].date.day);printf("请输入处罚单号: \n");scanf("%d",&dan[NUM ].num);for (i=0;i<=NUM;i++){if(fwrite(&dan[i],sizeof(struct cfd),1,fp)!=1)printf("file write error\n");}//此处for循环的作用是:在每次调用输入函数时都能够把结构体数组中已有的数据和本次输入的数据都记录在文件 data.txt中printf("已经有 %d个罚单 \n",i);NUM++;//NUM用来记录罚单总数,每调用一次输入函数NUM就加一fclose(fp);}【删除罚单模块】:按操作者的指令在结构体数组中找到删除的信息,把结构体数组中的信息抄到文件中去忽略要删除的信息达到要删除的目的。

交通处罚单管理系统390430459

交通处罚单管理系统390430459

C语言设计实习报告工程学院土木工程052097班姓名:彭文博班号:052097学号:20091000692题目:交通处罚单管理系统指导老师:梁老师日期:20110826一,题目要求:【要求】:交通处罚单涉及到车辆,驾驶员和开单交警的信息,还有交通处罚单的号码,处罚时间等信息。

【功能】:(1) 要求可以输入,删除,浏览交通处罚单信息。

(2)可以按车辆,驾驶员和开单交警查询。

(3)统计某时间段某个驾驶员的交通处罚数目及交通处罚单号码。

二,需求分析:交通处罚单信息用文件存储,提供文件的输输出操作;要求可以输入,输出,删除,浏览交通处罚单信息,因而要提供输入,删除和显示操作;要实现按车辆,驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。

三,总体设计:整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块,信息统计模块。

四,详细设计及实现:1,处罚单管理系统界面函数此函数包括的功能是建立新的罚单,按司机姓名查询罚单并浏览相关信息,按交警姓名查询罚单并浏览相关信息,按罚单号查询罚单并浏览相关信息,删除罚单,数据统计和退出处罚单管理系统。

void Menu()printf("\n\t\t\t\t交通处罚单管理系统\n");printf("········································");printf(" 菜单: 1-信息录入2-信息删除3-信息浏览4-信息查询5-信息统计6-退出系统\n");printf("········································");printf("请从输入数字选择相应的功能:");2,各功能模块设计(1)创建新的交通处罚单处罚单包含的内容有处罚单号,车牌号,司机姓名,交警姓名,和处罚日期,因此相应的函数也应包含这些内容,在这个函数所控制的操作会依次提示输入以上内容。

(完整版)C语言交通处罚单管理系统

(完整版)C语言交通处罚单管理系统

2011年度高级语言课程设计期末大作业《题目》院系:工学院机械系专业:机械工程及自动化年级:10 级学生姓名:学号:指导教师:题号:第29 题2011年6月一、题目(课程设计题库第X题)【说明及要求】实现交通罚款信息(车辆牌号、驾驶证号、交警代号、违章时间、罚款金额、缴费状态)的登记、删除、修改功能,并能分别按车辆牌号、驾驶证号、交警代号查询交通罚款信息。

【提示】(1)定义结构体表示罚款信息;(2)用文件实现罚款信息存储;(3)分别编写函数实现罚款信息登记、修改、删除以及按车辆牌号、驾驶证号、交警代号查询交通罚款信息。

(4)在main 函数中调用上述函数进行演示。

二、问题分析(一)需求分析1.交通处罚单信息用文件储存,提供文件的输入输出操作;2.要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;3.要车辆、驾驶员和开单交警查询,则要提供查找操作;4.另外提供系统操作和键盘式选择菜单以实现功能选择。

(二)该问题可以分为以下几个模块三、程序流程图【信息输入模块】N YY NFILE*fp; (fp=fopen("list.txt","r+"))==N printf("\n 请输入处罚单数量:"); j=0 !feof(fp) j++MultiIF Multi fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&l 开始结束【删除罚单模块】【信息查询模块】【信息查询模块】输入驾驶员姓名四、程序代码#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100struct Plist //处罚单{char vno[20]; //车牌号char dname[20]; //驾驶员姓名char pname[20]; //交警姓名char pno[20]; //交警编号char no[20]; //处罚单编号char date[20]; //处罚日期} list[N]; //处罚单数组void input(); //输入模块void dele(); //删除模块void browse(); //浏览模块void search(); //查询模块void count(); //统计模块void menu(); //主菜单void vno_search(); //按车牌号查询void dna_search(); //按驾驶员姓名查询void pna_search(); //按开单交警姓名查询main(){menu();getchar();}void menu(){int n;int r;do{system("cls");printf("\n\t\t\t\t交通处罚单管理系统\n");printf("········································");printf(" 菜单: 1-信息录入2-信息删除3-信息浏览4-信息查询5-信息统计6-退出系统\n");printf("········································");printf("请从输入数字选择相应的功能:");scanf("%d",&n);if(n<1||n>6){r=1;getchar();}else r=0;}while(r==1);switch(n){case 1:input();break;case 2:dele();break;case 3:browse();break;case 4:search();break;case 5:count();break;case 6:exit(0);}}void input(){FILE*fp;int num;int i,j;if((fp=fopen("list.txt","r+"))==NULL){if((fp=fopen("list.txt","w"))==NULL){printf("文件打开或创建失败!\n");printf("\npress enter to return menu\n");getchar();menu();}printf("\n请输入处罚单数量:");scanf("%d",&i);printf("\n\n");for(j=0;j<i;j++){printf("输入第%d张处罚单的:\n",j+1);printf("\n 车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20110601)\n");printf("\n注意:中间用空格隔开!\n");scanf("%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list [j].date);}for(j=0;j<i;j++){fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,lis t[j].date);}fclose(fp);printf("\n保存成功!");printf("\npress enter to return menu\n");getchar();getchar();menu();}printf("\n请输入处罚单数量:");scanf("%d",&i);for(j=0;!feof(fp);j++) //读取文件{fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no, &list[j].date);}num=j+i;if(num>N){printf("\n结构体数组数的N太小,请先修改N的值\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}printf("\n");for(j=0;j<i;j++){printf("输入第%d张处罚单的:\n",j+1);printf("\n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20110601)\n");printf("\n注意:中间用空格隔开!\n");scanf("%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list [j].date);}for(j=0;j<i;j++){fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j]. no,list[j].date);}fclose(fp);printf("\n保存成功!");printf("\npress enter to return menu\n");getchar();getchar();menu();}void dele(){int j;int num;int f=-1;FILE*fp1,*fp2;char s1[20];if((fp1=fopen("list.txt","r"))==NULL){printf("can not open file\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}for(j=0;!feof(fp1);j++) //读取文件{fscanf(fp1,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no, &list[j].date);}num=j;fclose(fp1);printf("请输入要删除的处罚单的编号\n");scanf("%s",s1);for(j=0;j<num;j++){if(strcmp(s1,list[j].no)==0){f=j;if(f<num-1){for(j=f;j<num-1;j++){strcpy(list[j].vno,list[j+1].vno);strcpy(list[j].dname,list[j+1].dname);strcpy(list[j].pname,list[j+1].pname);strcpy(list[j].pno,list[j+1].pno);strcpy(list[j].no,list[j+1].no);strcpy(list[j].date,list[j].date);}}if((fp2=fopen("list.txt","w"))==NULL){printf("文件打不开!\n");printf("\npress enter to return menu\n");getchar();menu();}for(j=0;j<num-1;j++) //保存文件{fprintf(fp2,"\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,l ist[j].date);}fclose(fp2);printf("\n删除成功!\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}}if(f<0){printf("\n没有找到该学号的记录:\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}}void browse(){int j;int num;FILE*fp;if((fp=fopen("list.txt","r"))==NULL){printf("can not open file\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}for(j=0;!feof(fp);j++) //读取文件{fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no, &list[j].date);}fclose(fp);num=j;printf("\n已添加%d条记录\n\n",num);printf("车牌号驾驶员姓名交警姓名交警编号处罚单编号处罚日期\n");for(j=0;j<num;j++) //输出{printf("\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j] .date);}printf("\npress enter to return menu\n");getchar();getchar();menu();}void search(){int n;int r;do{system("cls");printf("\n请选择查询类型:\n\t1-按车牌号2-按驾驶员姓名3:按开单交警姓名4-返回主菜单\n");printf("\n请输入数字选择:");scanf("%d",&n);if(n<1||n>4){r=1;getchar();}else r=0;}while(r==1);switch(n){case 1:vno_search();break;case 2:dna_search();break;case 3:pna_search();break;case 4:menu();}}void vno_search(){int f=-1;int num;int j;char no[20];FILE*fp;if((fp=fopen("list.txt","r"))==NULL){printf("文件打不开!\n");printf("\npress enter to return menu\n");getchar();menu();}for(j=0;!feof(fp);j++) //读取文件{fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no, &list[j].date);}num=j;fclose(fp);printf("\n请输入车牌号:");scanf("%s",no);printf("\n罚单的信息为:\n\n");printf("车牌号驾驶员姓名交警姓名交警编号处罚单编号处罚日期\n");for(j=0;j<num;j++){if(strcmp(no,list[j].vno)==0){f=j;printf("\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j] .date);}}if(f<0)printf("\npress enter to return sub menu\n");getchar();getchar();search();}void dna_search(){int f=-1;int num;int j;char name[20];FILE*fp;if((fp=fopen("list.txt","r"))==NULL){printf("文件打不开!\n");printf("\npress enter to return menu\n");getchar();menu();}for(j=0;!feof(fp);j++) //读取文件{fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no, &list[j].date);}num=j;fclose(fp);printf("\n请输入驾驶员的姓名:");scanf("%s",name);printf("\n罚单的信息为:\n\n");printf("车牌号驾驶员姓名交警姓名交警编号处罚单编号处罚日期\n");for(j=0;j<num;j++){if(strcmp(name,list[j].dname)==0){f=j;printf("\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j] .date);}}if(f<0)printf("\npress enter to return sub menu\n");getchar();getchar();search();}void pna_search(){int f=-1;int num;int j;char name[20];FILE*fp;if((fp=fopen("list.txt","r"))==NULL){printf("文件打不开!\n");printf("\npress enter to return menu\n");getchar();menu();}for(j=0;!feof(fp);j++) //读取文件{fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no, &list[j].date);}num=j;fclose(fp);printf("\n请输入开单交警的姓名:");scanf("%s",name);printf("\n罚单的信息为:\n\n");printf("车牌号驾驶员姓名交警姓名交警编号处罚单编号处罚日期\n");for(j=0;j<num;j++){if(strcmp(name,list[j].pname)==0){f=j;printf("\n%s\t%s\t%s\t%s\t%s\t%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j] .date);}}if(f<0)printf("\npress enter to return sub menu\n");getchar();getchar();search();}void count(){int f=-1;int num; //所有罚单单数int j;int total=0; //某驾驶员的罚单数char name[20];char time1[20];char time2[20];FILE*fp;if((fp=fopen("list.txt","r"))==NULL){printf("文件打不开!\n");printf("\npress enter to return menu\n");getchar();menu();}for(j=0;!feof(fp);j++) //读取文件{fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no, &list[j].date);}num=j;fclose(fp);printf("\n请根据提示输入驾驶员的姓名和一个时间段,统计某个驾驶员在某段时间内的处罚单数目和罚单号\n");printf("\n\n请输入驾驶员的姓名:");scanf("%s",name);printf("\n请输入一个较早的时间:");scanf("%s",time1);printf("\n请输入一个最近的时间:");scanf("%s",time2);for(j=0;j<num;j++){if((strcmp(list[j].date,time1)>=0)&&(strcmp(list[j].date,time2)<=0)){f=j;total++;printf("\n罚单号:%s\n",list[j].no);}}if(f<0)printf("\n没有找到记录!\n");printf("\n罚单总数为:%d\n",total);printf("\npress enter to return menu\n"); getchar();getchar();menu();}五、运行结果(截图)程序主界面:信息录入:信息录入后查看到的结果【信息查询】【查询结果】【信息统计结果】【选择信息删除模块后的结果】六、课程设计过程问题讨论。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交通罚单管理系统一.系统开发的背景 (2)二.系统分析与设计 (2)(一)系统功能要求 (2)(二)系统模块结构设计 (2)三.系统的设计与实现 (3)(一)罚单基本信息录入:input() (3)(二)信息删除:delete() (6)(三)find函数 (9)(四)show函数 (13)(五)sum函数 (14)四.系统测试 (16)(一)测试input函数 (16)(二)测试delet函数 (17)(三)测试find函数 (18)(四)测试show函数 (18)(五)测试sum函数 (19)五、总结 (20)六、附件(代码、部分图表) (21)交通罚单管理系统一.系统开发的背景为了方便单位对交通处罚的经一步解交通处罚单信息用文件存储,提供文件的输入输出操作;要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;要实现按车辆、驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。

二.系统分析与设计(一)系统功能要求可以录入交通罚单的信息,交通处罚单信息用文件存储,因而要提供文件的输入输出操作。

1.要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;2.要实现按车辆、驾驶员和开单交警查询,则要提供查找操作;3.另外提供统计操作和键盘式选择菜单以实现功能选择。

4.罚单信息(包括车牌号、驾驶员姓名、交警姓名、交警编号、罚单编号)(二)系统模块结构设计通过对系统功能的分析,交通罚单管理系统功能如图所示图1 交通管理系统功能图通过上图的功能分析,把整个系统划分为5个模块:1、交通罚单信息录入,该模块主要实现:车牌号、驾驶员姓名、交警姓名、交警编号、罚单编号的输入,用input函数实现。

2、信息删除模块,该模块主要实现信息的删除,用delet函数实现。

3、信息查询模块,该模块主要实现信息的查询﹕有车牌号查询、驾驶员查询、交警查询,共用四个函数进行查询,分别是find,4、信息统计模块,主要实现的是罚单数量的统计,用sum函数实现。

三.系统的设计与实现(一)罚单基本信息录入:input()分析:先输出表头,然后进行罚单的信息输入,单独看各个数据信息,开单日期以及驾驶员姓名为字符型,可以采用字符型数组;处罚单号码、车牌号码以及交警ID为整型,可以采用整型数组。

一条记录对应一张交通处罚单,方便交通部门管理。

流程图如图2所示。

图2 输入函数流程图***************************输入模块************************程序代码:void input(){FILE*fp;int num;int i,j;if((fp=fopen("plist.txt","r+"))==NULL)//r+为读和写而打开文本文件{if((fp=fopen("plist.txt","w"))==NULL) //w为读而打开文本文件{printf("文件打开或创建失败!\n");printf("\npress enter to return menu\n");getchar();menu();}printf("\n请输入处罚单数量:");scanf("%d",&i);printf("\n\n");for(j=0;j<i;j++) //控制罚单一次一次的输入{printf("输入第%d张处罚单的:\n",j+1);printf("\n 车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)\n"); printf("\n注意:中间用空格隔开!\n");scanf("%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j] .tbianhao,&list[j].fbianhao,&plist[j].date);}for(j=0;j<i;j++) //对罚单一次次的保存{fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",plist[j].chepai,plist[j].dname,plist[j].p name,plist[j].tbianhao,plist[j].fbianhao,plist[j].date);}fclose(fp);printf("\n保存成功!");printf("\npress enter to return menu\n");getchar();getchar();menu();}printf("\n请输入处罚单数量:");scanf("%d",&i);printf("\n\n");for(j=0;!feof(fp);j++) //读取文件{fscanf(fp,"%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plis t[j].tbianhao,&plist[j].fbianhao,&plist[j].date);}num=j+i;if(num>N){printf("\n结构体数组数的N太小,请先修改N的值\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}printf("\n");for(j=0;j<i;j++){printf("输入第%d张处罚单的:\n",j+1);printf("\n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)\n"); printf("\n注意:中间用空格隔开!\n");scanf("%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j] .tbianhao,&plist[j].fbianhao,&plist[j].date);}for(j=0;j<i;j++){fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",plist[j].chepai,plist[j].dname,plist[j].p name,plist[j].tbianhao,plist[j].fbianhao,plist[j].date);}fclose(fp);printf("\n保存成功!");printf("\npress enter to return menu\n");getchar();getchar();menu();}(二)信息删除:delete()分析:该模块的功能需要删除交通处罚单信息,要根据处罚单号、车辆号码、驾驶员姓名、开单时间以及交警ID查找处罚记录并删除。

流程图如图3所示。

图3 删除函数流程图************************删除模块*************************** 程序代码void delet(){int j;int num;int f=-1;FILE*fp1,*fp2; //文件的运用char s1[20];if((fp1=fopen("plist.txt","r"))==NULL){printf("can not open file\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}for(j=0;!feof(fp1);j++) //读取文件{fscanf(fp1,"%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&pli st[j].tbianhao,&plist[j].fbianhao,&plist[j].date);}num=j;fclose(fp1);printf("请输入要删除的处罚单的编号\n");scanf("%s",s1);for(j=0;j<num;j++){if(strcmp(s1,plist[j].fbianhao)==0){f=j;if(f<num-1){for(j=f;j<num-1;j++){strcpy(plist[j].chepai,plist[j+1].chepai);strcpy(plist[j].dname,plist[j+1].dname);strcpy(plist[j].pname,plist[j+1].pname);strcpy(plist[j].tbianhao,plist[j+1].tbianhao);strcpy(plist[j].fbianhao,plist[j+1].fbianhao);strcpy(plist[j].date,plist[j].date);}}if((fp2=fopen("plist.txt","w"))==NULL){printf("文件打不开!\n");printf("\npress enter to return menu\n");getchar();menu();}for(j=0;j<num-1;j++) //保存文件{fprintf(fp2,"\n%s\t%s\t%s\t%s\t%s\t%s",&plist[j].chepai,&plist[j].dname,&plist[ j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);}fclose(fp2);printf("\n删除成功!\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}}if(f<0){ printf("\n没有找到该学号的记录:\n");printf("\npress enter to return menu\n");getchar();getchar();menu();}}(三) find函数分析:该模块的功能是根据输入的处罚单号、车辆号码、驾驶员姓名、开单时间以及交警ID查找相应的记录,方便驾驶员了解自己的处罚情况。

相关文档
最新文档