C语言车辆违章管理系统
C语言交通处罚单管理系统
}
for(i=0;i<N;i++) /***写入文件***/
fprintf(fp,"\n%5s%10s%13s%11s%12s",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[i].cfd,TPB[i].cfsj);
char jz[20]; /***驾照号***/
char kdjj[10]; /***开单交警号码***/
char cfd[20]; /***处罚单号码***/
char cfsj[12]; /***处罚时间(yyyymmddhhmm, 年月日时分)***/
if(strcmp(d,TPB[i].jz)==0)
j=i;
}
else if(k==3)
{
printf("请输入开单交警号:");
scanf("%s",f);
for(i=0;i<N;i++)
if(strcmp(f,TPB[i].kdjj)==0)
j=i;
}
if(j!=-1) //在结构体中运算
{
for(i=j;i<N&&j!=-1;i++)
TPB[i]=TPB[i+1]; N=N-1;}
printf(" * *\n");
printf(" * *\n");
printf(" * 1.车牌号 2.驾照号 3.开单交警号 *\n");
else if(j==-1)
printf("不能打开");
交通处罚单管理系统C语言课程设计
交通处罚单管理系统C语言课程设计交通处罚单管理系统C语言课程设计1、设计目的随着社会的不断发展,交通事故频发,交通管理逐渐成为了每个城市必须要解决的问题。
而交通处罚单管理系统(简称它为“系统”)便是为了更好地解决这个问题而被设计的。
系统能够有效地记录违规者的信息,违规行为以及处罚措施,并能够根据不同的情况对其进行分类和管理。
它不仅可以节约工作时间和人力资源,还能迅速让违规者得到及时的处罚,使道路更加安全,保护公共安全。
2、系统设计2.1 系统功能本系统的主要功能包括:违章记录、罚款、扣除驾照分数、上报违规记录、信息输入和查询、信息修改和删除等主要功能项。
违章记录:系统可以记录所有交通违法行为,包括罚款和扣分等信息。
罚款:系统可以将罚款记录下来,并可以将其发送给罚款的人。
扣除驾照分数:系统可以记录扣除的分数并将其发送给驾照的持有人。
上报违规记录:系统可以根据不同情况自动生成违规记录并将其上报。
信息输入和查询:系统可以对所有交通违法行为信息进行系统记录,包括车主信息、车辆信息和罚款信息。
其次,系统还具有较为便利的查询功能,快速定位到违规者的信息。
信息修改和删除:系统在管理中还可以对一些信息进行修改和删除,更好地保证了信息的及时更新和有效管理。
2.2 系统设计系统的设计基本上可以分为前端设计和后端设计两部分。
2.2.1 前端设计设计前端系统的正确流程显然是十分重要的。
在本系统中,我们首先采用了图形化界面来实现用户与系统的交互,界面设计简洁明了易于操作。
另外,系统还采用了文本模式界面,在需要大量输入或者查询时,用户可以直接使用命令行界面操作软件。
2.2.2 后端设计后端设计是系统运行的核心。
在本系统中,我们主要采用了c语言的基础来实现系统的后端代码,用c语言基础的快速处理能力来满足系统管理中对于不同功能的处理需要。
3、系统优势通过上述系统的设计,该系统具有如下优势:·系统具有良好的稳定性,信息处理的准确与高效。
车辆管理系统C源程序
#include<stdio.h>#include<string.h>typedef struct Pe{char vno[8]; /*车牌号*/char name[15]; /*车主姓名*/int times1; /*违章停车次数*/int times2; /*闯红灯次数*/int times3; /*超速次数*/}PECCANCY;void main(){ int e,a,c,d,m=0,n=0,sum,i;char k[8],j[8];PECCANCY b[100];printf("请输入违章车辆信息:\n");for(i=0;i<100;i++){printf("输入车牌号:\n");scanf("%s",b[i].vno);printf("输入车主姓名:\n");scanf("%s",b[i].name);printf("输入违章停车次数:\n");scanf("%d",&b[i].times1);printf("输入闯红灯次数:\n");scanf("%d",&b[i].times2);printf("输入超速次数:\n");scanf("%d",&b[i].times3);printf("请输入1继续车辆信息,输入0结束录入\n"); scanf("%d",&a);if(a==0)break;}printf("\n\n\n");printf("输入车牌号查询其违章情况及罚款金额。
\n");for(e=0;e<100;e++){ m=0;printf("输入车牌号:\n");scanf("%s",j);for(i=0;i<100;i++)if(strcmp(j,b[i].vno)==0){ printf("车主姓名:"); printf("%s\n", b[i].name);printf("违章停车次数:"); printf("%d\n",b[i].times1);printf("闯红灯次数:"); printf("%d\n", b[i].times2); m=1;printf("超速次数:"); printf("%d\n", b[i].times3);sum=(b[i].times1)*100+(b[i].times2)*200+(b[i].times3)*500;printf("车牌号为"); printf("%s",j); printf("的罚款总金额为:");printf("%d\n",sum);m=1;break;}if(m!=1)printf("未找到符合条件的车辆\n");printf("输入1继续输入车牌号查询,输入0结束查询:\n");scanf("%d",&c);if(c==0)break;}printf("\n\n\n");}欢迎您的下载,资料仅供参考!。
C语言程序设计之交通处罚单管理系统报告(内含代码)
C语言程序设计姓名:张强强学号:20121003695班序号:011121前言:C语言是近年来国内得到迅速推广使用的一种计算机语言。
C语言程序设计课程是计算机专业和信息管理专业的核心专业基础课,无论是计算机专业还是非计算器专业的学生,学习好C语言是非常重要的。
一.交通处罚单管理要求:交通处罚单涉及到车辆,驾驶员和开单交警的信息,还有交通处罚单的号码,处罚时间等信息。
功能:(1) 要求可以输入,删除,浏览交通处罚单信息。
(2) 可以按车辆,驾驶员和开单交警进行查询。
(3) 统计某时间段某个驾驶员的交通处罚数目及交通处罚单号码。
(一)需求分析交通处罚单信息用文件存储,提供文件的输入输出操作;要求可以输入,输出,删除,浏览交通处罚单信息,因而要提供输入,删除和显示操作;要实现按车辆,驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。
(二)总体设计整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块和信息统计模块等。
如下图:(三)详细设计1.主函数实现的是显示菜单以及函数调用,其中各功能模块用菜单方式选择。
程序:int main(){int n; /**变量n保存选择菜单数字**/printf("\n\n")printf ( " ****************菜单*****************\n");printf ( " * *\n");printf ( " * 1.输入 2.删除 *\n");printf ( " * *\n");printf ( " * 3.浏览 4.查询 *\n");printf ( " * *\n");Printf ( " * 5.统计 6.退出*\n");printf ( "* *\n");printf("****************************************\n");printf("请选择功能菜单: [ ]\b\b");scanf("%d",&n);if (n<1||n>7) n=7;switch (n) /***选择功能***/ {case 1:shuru();liulan();main();break; /***输入模块***/ case 2:shanchu();liulan();main();break; /***删除模块***/ case 3:liulan();main();break; /*** 浏览模块***/ case 4:chaxun();main();break; /*** 查询模块***/ case 5:tongji();main();break; /*** 统计模块***/ case 6:exit(0); break; /***退出***/case 7: printf("error\n");}}2.信息储存函数。
车辆违章管理系统
车辆违章管理系统刘双星通信工程学院系统功能模以及结构图:数据结构设计及用法说明:typedef struct Pe{char vno[8]; /*车牌号*/char name[15]; /*车主姓名*/int time1; /*违章停车次数*/int time2; /*闯红灯次数*/int time3; /*超速次数*/}PECCANCY;根据题目要求,该编程对象必须包括车牌,车主姓名,违章停车次数,闯红灯次数以及超速次数,因此定义结构题时要包括上边说明的要素,另外改程序用定义数组方法来定义对象。
程序结构(画流程图)实验结果(包括输入数据和输出结果)菜单:输入1时:输入数据:输入1返回菜单,再输入2:输入1234567:输入1返回菜单,再输入3退出。
实验体会运用清屏代码可以使界面更加清楚,符合我们平时运用的软件,编辑菜单时要使菜单循环起来使用,这样更加人性化。
编辑代码时,中文输入法的分号和括号在c++中不可识别,当一个函数里边有很多括号时,要注意检查括号是否对应。
附录:程序清单#include <stdio.h>#include<string.h>#include<stdlib.h>void main(){typedef struct Pe{char vno[8]; /*车牌号*/char name[15]; /*车主姓名*/int time1; /*违章停车次数*/int time2; /*闯红灯次数*/int time3; /*超速次数*/}PECCANCY; /*定义对象*/PECCANCY v[1000];int i;int k;int c;do{system("cls"); /*每次回到菜单时清屏*/printf("\n**********************\n"); /**菜单*/printf("\n**********************\n");printf("\n车辆及违章信息的录入请按1..........");printf("\n车牌号查询每台车辆的违章情况2..........");printf("\n 退出请按3..........");scanf("%d",&c);switch(c){case 1: /*车辆及违章信息的录入*/{system("cls");printf("车辆及违章信息的录入");for(i=0;i<1000;i++){printf("请输入车牌号:");scanf("%s",v[i].vno);printf("请输入车主姓名:");scanf("%s",v[i].name);printf("请输入违章停车次数:");scanf("%d",&v[i].time1);printf("请输入闯红灯次数:");scanf("%d",&v[i].time2);printf("请输入超速次数:");scanf("%d",&v[i].time3);printf("录入结束请输入1: ");scanf("%d",&k);if(k==1)break;}break;}case 2: /*基于车牌号查询每台车辆的违章情况*/ {system("cls");printf("车牌号查询每台车辆的违章情况");int l;for(l=0;l<1000;l++){char m[8];printf("请输入查询的车牌号:");scanf("%s",m);for(i=0;i<1000;i++){if(strcmp(m,v[i].vno)==0)break;}if(i==1000){printf("没找到要查询的车牌号");break;}printf("\n \n车牌号:%s \n",v[i].vno);printf("车主姓名:%s \n",v[i].name);printf("违章停车次数:%d \n",v[i].time1);printf("违章闯红灯次数:%d \n",v[i].time2);printf("违章超速次数:%d \n",v[i].time3);int n; /*基于车牌号统计每台车辆的罚款总金额*/ n=v[i].time1*100+v[i].time2*200+v[i].time3*500;printf("车牌号为%s罚款%d",m,n);printf("\n查询结束请输入1:..........");int h;scanf("%d",&h);if(h==1)break;}break;}case 3:exit(0);}}while(c!=3);}。
《C语言版交通管理系统》课程设计实验指导
任务四:数据更新与删除模块
2. 实现事务处理机制,确保数据一致性。
3. 提供友好的用户界面,方便管理员进行操作。
04
实验结果与演示
实验结果展示
实验结果展示
学生需要将实验结果以书面报告 的形式展示出来,包括程序代码、 运行结果、数据分析和结论等部 分。
实验结果评价
教师对学生的实验结果进行评估, 包括程序的正确性、效率、可读 性和可维护性等方面。
03
培养学生对实际问题的分析和解决能力,提高学生 的编程实践能力和团队协作能力。
实验要求
01
完成一个简单的交通管理系统,实现车辆信息录入、
查询、修改和删除等基本功能。
02
在实现基本功能的基础上,可适当增加其他功能,如
按车牌号查询、按车主姓名查询、统计车辆数量等。
03
保证程序的正确性、稳定性和可维护性,遵循良好的
将各个模块进行整合,实现系统整体功能。
数据结构设计
车辆信息表
存储车辆的基本信息,如车牌号、车 型、颜色等。
驾驶员信息表
存储驾驶员的基本信息,如姓名、性 别、年龄等。
违章记录表
存储违章记录的信息,如违章时间、 地点、违章内容等。
事故处理表
存储事故处理的信息,如事故时间、 地点、责任方等。
03
实验任务与步骤
任务一:数据录入模块
2. 实现添加新数据的函数,包括输入验证和错误处理。
3. 确保数据的一致性和完整性。
任务二:数据查询模块
• 数据查询模块概述:该模块允许 用户根据特定条件查询交通信息。
任务二:数据查询模块
功能要求 1. 能够按车辆ID查询车辆信息。 2. 能够按驾驶员ID查询驾驶员信息。
C语言实战应用交通处罚单管理系统
项目不足与改进方向
项目不足:功能不完善,界 面不够友好,操作不够便捷
改进方向:增加更多功能, 优化界面设计,提高操作效
率
THANK YOU
汇报人:
系统设计
数据库设计
数据库连接:使用合适的数 据库连接方式,如ODBC、 JDBC等
数据库表结构:包括交通处 罚单信息表、车辆信息表、 驾驶员信息表等
数据库查询:使用SQL语句 进行查询和操作
数据库安全性:包括数据加 密、权限管理等
界面设计
用户登录界面:简洁明了,输入用户名和密码即可登录 主界面:列出所有功能选项,方便用户快速找到所需功能 交通处罚单录入界面:提供详细的表单,方便用户录入详细信息 查询界面:支持按日期、车牌号等多种方式查询交通处罚单
交通处罚单管理系统的现状和问题
单击此处输入你的智能图形项正文,文字是您思想的提炼,请尽量言简意赅的阐述观点
交通处罚单管理系统的需求和目标
单击此处输入你的智能图形项正文,文字是您思想的提炼,请尽量言简意赅的阐述观点
交通处罚单管理系统的架构和功能
单击此处输入你的智能图形项正文,文字是您思想的提炼,请尽量言简意赅的阐述观点
除等操作
技术应用:总 结在项目中使 用的技术,如 C语言、数据 结构和算法等
团队协作:强 调团队成员之 间的协作和沟 通,以及在项 目中所遇到的 挑战和解决方
法
经验教训:总 结在项目中遇 到的问题和经 验教训,为今 后的项目提供
参考和借鉴
项目亮点
实战应用:将C语言应用于交通处罚单管理系统中,具有实际应用价值 系统功能:系统功能全面,涵盖了交通处罚单管理的各个方面 高效性能:系统运行高效,能够快速处理大量的交通处罚单数据 良好的可维护性:系统设计合理,易于维护和升级
车辆违章管理系统
一:实验目使用标准C或C++实现一般管理系统的基本功能。
进一步巩固C 语言的学习,培养一定的综合编程能力。
二:需要处理的基础数据1.设违章种类分为违章停车、闯红灯、超速等三种。
2. 设违章停车每次罚款100元闯红灯每次罚款200元超速每次罚款500元3.需处理的车辆及违章基本信息包括:车牌号车主姓名违章停车次数闯红灯次数超速次数三:本系统主要具备以下三个功能1.车辆及违章信息的录入。
2.基于车牌号查询每台车辆的违章情况。
3.基于车牌号统计每台车辆的罚款总金额。
4.系统功能结构图如下:四:数据结构设计及用法说明需处理的车辆及违章基本信息包括:车牌号、车主姓名、违章停车次数、闯红灯次数、超速次数。
这些信息采用结构体数据类型表示更为方便,因为违章信息数量的不确定性,所以信息应采用链表进行存储,这更符合实际应用所以采用的数据结构如下typedef struct Pe{char vno[8]; /*车牌号*/char name[15]; /*车主姓名*/int times1; /*违章停车次数*/int times2; /*闯红灯次数*/int times3; /*超速次数*/struct Pe *next /*结构体指针*/}PECCANCY;其中char vno[8] 用来存储车牌号,char name[15]存储车主姓名int times1记录违章停车次数,int times2记录闯红灯次数,int times3记录超速次数,struct Pe *next为结构体指针,用于链表链接。
五:程序结构六:各模块的功能本程序一共具有3个功能。
因此,一共将程序分为3个模块。
模块一:车辆及违章信息的录入具体流程为:根据输入的车牌号判断原有的链表是否存在这个车牌号。
如果存在,则要输入这个车牌号所违章的项目,并在相应的违章记录次数上+1.如果原链表不存在这个车牌号,则需要创建新的节点,并提示输入完整的信息。
最后将这个节点用尾插法插入链表中。
C语言在智能交通管理系统中的设计与实现
C语言在智能交通管理系统中的设计与实现智能交通管理系统是利用先进的信息技术和通信技术,对城市道路交通进行智能化管理的系统。
在这个系统中,C语言作为一种高效、灵活的编程语言,发挥着重要的作用。
本文将介绍C语言在智能交通管理系统中的设计与实现。
1. 智能交通管理系统概述智能交通管理系统是利用计算机、通信、控制等技术手段,对城市道路交通进行实时监测、调度和管理的系统。
通过各种传感器和设备采集道路交通信息,实现交通信号灯控制、车辆识别、违章检测等功能,提高道路交通效率,减少交通事故发生率,改善城市交通环境。
2. C语言在智能交通管理系统中的应用2.1 数据结构设计在智能交通管理系统中,需要对各种数据进行有效的管理和处理。
C语言提供了丰富的数据结构和算法库,可以方便地实现各种数据结构,如链表、栈、队列等,以及各种排序和查找算法,保证系统数据的高效管理和操作。
2.2 算法设计智能交通管理系统中涉及到很多复杂的算法,如车辆识别算法、信号灯控制算法、路径规划算法等。
C语言作为一种结构化程序设计语言,可以清晰地表达这些算法逻辑,保证算法的正确性和高效性。
2.3 设备控制智能交通管理系统涉及到大量的设备控制,如传感器、摄像头、信号灯等。
C语言可以通过底层编程接口直接控制这些设备,实现数据采集、处理和控制功能。
2.4 实时性要求智能交通管理系统对实时性要求非常高,需要及时响应各种事件并做出相应处理。
C语言作为一种编译型语言,在性能上有很大优势,可以满足系统对实时性的要求。
3. C语言在智能交通管理系统中的实现3.1 系统架构设计在设计智能交通管理系统时,首先需要考虑系统架构。
通过使用C语言进行模块化设计,将系统划分为多个模块,每个模块负责不同的功能,便于代码维护和扩展。
3.2 数据采集与处理智能交通管理系统需要大量的数据进行支撑,包括车辆信息、道路信息、信号灯状态等。
通过C语言编写数据采集和处理模块,可以实现对这些数据的高效管理和处理。
c语言交通处罚单管理系统(含实验报告和源代码)
C语言程序设计课程设计材料学生姓名:王嘉廉学号:11562255123系 (院):信息工程学院专业:信息管理与信息系统设计(论文)题目: 交通处罚单管理系统完成日期: 2012年9月指导教师: xx!二○一二年九月● 课程设计目的 (3)● 课程设计内容 (3)● 总体设计 (3)● 详细设计 (4)● 运行结果 (8)● 程序调试 (10)● 编程体会 (11)一、课程设计目的1. 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
2. 通过课程设计,进一步掌握C有并重要的数据结构。
掌握并熟练运用指针、链表、结构体、文件等数据结构。
3. 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
4. 通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个中小型系统。
5. 通过课程设计,加强了自己的程序分析能力。
6. 通过课程设计,完成了交通处罚单管理系统,很多功能还待完善。
二、课程设计内容用C语言编写软件完成以下任务:1交通处罚单基本信息输入(数据包括处罚单号码,车牌号码,姓名,开单警察的信息ID,处罚时间等),信息保存在data.txt文件中,2交通处罚单基本信息浏览。
将文件内所有的交通处罚单信息全部输出展现出来。
3交通处罚单基本信息查询。
可以查询特定的交通处罚单信息。
4交通处罚单基本信息统计。
可以查询某一个时间段的所有的交通处罚单信息。
5 交通处罚单基本信息删除。
删除不需要的交通处罚单信息。
三、总体设计本系统的功能模块如图1所示,主要有以下模块:(1)交通处罚单基本信息输入:构造函数void shurujianli()),对产生新的交通处罚单的信息进行输入。
(2)交通处罚单基本信息浏览:构造函数void liulan(),全部浏览已被录入交通处罚单的所有信息。
(3)交通处罚单基本信息查询:构造函数void chaxun(),输入想要查询的方式,用三种方式查询交通处罚单基本信息。
C语言开发的智能交通管理系统设计
C语言开发的智能交通管理系统设计智能交通管理系统是利用现代信息技术对城市道路交通进行智能化管理的系统,通过实时监测、数据分析和智能决策,提高交通运行效率,减少交通拥堵,改善交通环境。
本文将介绍如何利用C语言开发智能交通管理系统,包括系统架构设计、功能模块实现等内容。
1. 系统架构设计智能交通管理系统主要包括数据采集模块、数据处理模块、决策控制模块和用户界面模块四大部分。
数据采集模块负责采集道路交通信息,包括车辆数量、车速、车辆类型等数据。
数据处理模块对采集到的数据进行处理和分析,提取有用信息。
决策控制模块根据数据分析结果进行智能决策,如调整信号灯时长、引导车辆绕行等。
用户界面模块为用户提供友好的操作界面,展示交通信息和系统运行状态。
2. 功能模块实现2.1 数据采集模块数据采集模块可以利用传感器、摄像头等设备获取道路上的交通信息。
在C语言中,可以通过串口通信或网络编程实现与外部设备的数据交互。
例如,通过串口读取传感器数据,或通过网络接收摄像头传输的图像数据。
2.2 数据处理模块数据处理模块主要负责对采集到的原始数据进行处理和分析。
在C语言中,可以编写算法对车辆数量、车速等数据进行统计和分析。
同时,还可以利用数据结构如链表、树等存储和管理数据,提高处理效率。
2.3 决策控制模块决策控制模块根据数据处理结果进行智能决策。
在C语言中,可以编写决策算法实现自动调整信号灯时长、优化路线规划等功能。
同时,还可以结合实时性操作系统技术确保系统响应速度和稳定性。
2.4 用户界面模块用户界面模块为用户提供操作界面,展示交通信息和系统状态。
在C语言中,可以利用图形库如GTK+、Qt等实现GUI界面。
通过按钮、图表等元素展示交通信息,并提供操作接口供用户进行设置和查询。
3. 系统优化与扩展为了进一步提升智能交通管理系统的性能和功能,可以考虑以下优化与扩展方向:算法优化:对数据处理和决策算法进行优化,提高系统响应速度和准确性。
c语言课程设计车辆管理系统
c语言课程设计车辆管理系统一、教学目标本课程的目标是让学生掌握C语言的基本语法,能够运用C语言设计一个简单的车辆管理系统。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法,理解变量、数据类型、运算符、控制结构等基本概念。
2.技能目标:学生能够运用C语言编写程序,实现对车辆信息的增删改查功能。
3.情感态度价值观目标:培养学生对编程的兴趣,提高学生解决问题的能力,培养学生的团队合作精神。
二、教学内容本课程的教学内容主要包括C语言的基本语法、变量、数据类型、运算符、控制结构等。
具体安排如下:1.第一章:C语言概述,介绍C语言的基本语法和编程环境。
2.第二章:数据类型和变量,讲解整型、浮点型、字符型等数据类型以及变量的使用。
3.第三章:运算符和表达式,介绍算术运算符、关系运算符、逻辑运算符等。
4.第四章:控制结构,讲解顺序结构、选择结构、循环结构等。
5.第五章:函数,介绍函数的定义、声明和调用,以及常用的库函数。
6.第六章:指针,讲解指针的概念和运用,以及指针数组和指向指针的指针。
7.第七章:车辆管理系统,运用所学知识设计一个简单的车辆管理系统。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过讲解C语言的基本语法、数据类型、运算符等概念,使学生掌握基础知识。
2.案例分析法:通过分析实际案例,让学生理解控制结构、函数、指针等知识点在实际编程中的应用。
3.实验法:安排实验课程,让学生动手编写程序,培养实际编程能力。
四、教学资源1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C语言编程思想》3.多媒体资料:PPT课件、教学视频4.实验设备:计算机、编程环境五、教学评估本课程的评估方式包括平时表现、作业、考试等。
具体评估标准如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。
2.作业:占课程总评的30%,包括课后练习、编程任务等。
C语言课程设计—车辆违章查询系统
C语言课程设计题目:车辆违章查询系统车辆违章查询系统姓名:学号:时间:指导教师:C语言课程设计要求: 能够根据车辆的牌号,进行违章记录的查询。
功能:(1)车辆信息的维护;(2)违章记录的查询。
(一)需求分析违章车辆信息用文件存储,提供文件的输入输出操作;要求可以输入,输出,删除,浏览车辆违章信息,因而要提供输入,删除和显示操作;要实现按车辆,驾驶员和违章类别查询,则要提供查找操作。
(二)总体设计整个查询系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块和信息统计模块等。
如下图:(三)详细设计1. 主函数实现的是显示系统菜单(功能代码及违章类别代码)以及函数调用,其中各功能模块用菜单方式选择。
main(){int key=1;system("cls");while(key)C语言课程设计{ printf("\n\t\t欢迎来到车辆违章信息查询系统!\n"); printf("\n\t\t\t1.信息写入。
\n");printf("\t\t\t2.信息查看。
\n");printf("\t\t\t3.信息删除。
\n");printf("\t\t\t4.信息添加。
\n");printf("\t\t\t5.信息查找。
\n");printf("\t\t\t6.信息管理。
\n");printf("\t\t\t0.退出系统。
\n");printf("\t\t\t注:违章类别代码:\n");printf("\t\t\t1.超速2.未系安全带3.逆行4.违规停车5.酒驾\n"); printf("\t\t\t6.无证驾驶7.超载8.闯红灯9.无人驾驶10.违规倒车\n"); printf("请选择功能代码:");scanf("%d",&key);switch(key){case 1:out();break;case 2:p();break;case 3:del();break;case 4:add();break;case 5:search();break;case 6:manage();break;case 0:break;default:printf("输入有误!\n");}}}2. 一些预处理命令、结构体定义和函数声明。
C语言程序设计--交通处罚单管理系统
C语言设计实习报告课程名称计算机高级语言课程设计(C)教师姓名孔春芳本科生姓名本科生学号*******本科生专业电子信息工程所在院系机械与电子信息学院类别: C. 本科生日期: 2013-7-5课程设计评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目录1.题目要求 (4)2.需求分析 (4)3.总体设计................................................................. 错误!未定义书签。
4.详细设计. (5)5.上机操作 (17)6.总结 (21)7.参考文献................................................................. 错误!未定义书签。
1.题目要求【要求】:交通处罚单涉及到车辆,驾驶员和开单交警的信息,还有交通处罚单的号码,处罚时间等信息。
【功能】:(1) 要求可以输入,删除,浏览交通处罚单信息。
(2)可以按车辆,驾驶员和开单交警查询。
(3)统计某时间段某个驾驶员的交通处罚数目及交通处罚单号码。
2.需求分析交通处罚单信息用文件存储,提供文件的输输出操作;要求可以输入,输出,删除,浏览交通处罚单信息,因而要提供输入,删除和显示操作;要实现按车辆,驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。
3.总体设计整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块,信息统计模块。
4.详细设计1,处罚单管理系统界面函数此函数包括的功能是建立新的罚单,按司机姓名查询罚单并浏览相关信息,按交警姓名查询罚单并浏览相关信息,按罚单号查询罚单并浏览相关信息,删除罚单,数据统计和退出处罚单管理系统。
void menu(){ int n,r;do{system(“cls”);printf(“\n\t\t\t 交通处罚管理系统\n”);printf(“**********************************”);printf(“菜单:1-信息录入\n”);printf(“2-信息删除\n”);printf(“3-信息浏览\n”);printf(“4-信息查询\n”);printf(“5-信息统计\n”);printf(“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);}}2,各功能模块设计(1)输入模块处罚单包含的内容有处罚单号,车牌号,司机姓名,交警姓名,和处罚日期,因此相应的函数也应包含这些内容,在这个函数所控制的操作会依次提示输入以上内容。
利用C实现的智能交通管理系统设计与开发
利用C实现的智能交通管理系统设计与开发智能交通管理系统是利用先进的技术手段,对城市交通进行智能化管理和调度的系统。
随着城市化进程的加快和交通工具的增多,传统的交通管理方式已经无法满足日益增长的交通需求。
因此,利用C语言实现智能交通管理系统成为了一种必然选择。
本文将介绍利用C语言实现智能交通管理系统的设计与开发过程。
1. 智能交通管理系统的功能需求智能交通管理系统主要包括车辆管理、信号灯控制、路况监测、违章检测等功能模块。
在设计系统时,首先需要明确系统的功能需求,以便于合理地划分模块和确定各模块之间的关联关系。
1.1 车辆管理车辆管理模块主要负责车辆信息的录入、查询和更新。
通过该模块可以实现对车辆的管控,包括车辆类型、车牌号、驾驶员信息等。
1.2 信号灯控制信号灯控制模块是智能交通管理系统中至关重要的一部分,它通过对路口信号灯的控制,实现交通流量的合理分配和道路拥堵情况的缓解。
1.3 路况监测路况监测模块通过安装在道路上的传感器,实时监测道路的车流量、车速等信息,为系统提供实时的路况数据,以便于及时调整信号灯控制策略。
1.4 违章检测违章检测模块主要负责对车辆违章行为进行监测和记录,包括闯红灯、超速等行为。
通过该模块可以及时发现违章行为并进行处理。
2. 系统设计与架构在明确了系统功能需求后,接下来需要进行系统设计与架构的规划。
智能交通管理系统可以采用客户端-服务器架构,客户端负责与用户进行交互,服务器负责处理业务逻辑和数据存储。
3. C语言在智能交通管理系统中的应用C语言作为一种高效、灵活的编程语言,在智能交通管理系统中有着广泛的应用。
通过C语言可以方便地实现各个功能模块,并且具有较高的性能表现。
3.1 数据结构设计在利用C语言开发智能交通管理系统时,需要合理设计数据结构以存储各种信息。
比如使用链表来存储车辆信息、使用数组来表示信号灯状态等。
3.2 算法设计智能交通管理系统涉及到很多复杂的算法,比如最短路径算法、流量优化算法等。
基于C++语言实现机动车违章处罚管理系统
基于C++语言实现机动车违章处罚管理系统这篇文章主要介绍了基于C++语言实现机动车违章处罚管理系统的相关资料,需要的朋友可以参考下:源码:#include <iostream>#include <iomanip>#include <fstream>#include <string>#include <list>using namespace std;class Violation{public:Violation(){points=fine=0;number=carNumber=tel=location=isSpot=police=camera=type=isTreated=treatmentDate=notes="";}Violation(string snumber,string sdate="",string scarNumber="",string stel="",string slocation="",int ipoints=-1,string sisSpot="",string spolice="",string scamera="",string itype="",int ifine=0,string sisTreated="",string streatmentDate="",string snotes=""):number(snumber),date(sdate),carNumber(scarNumber),tel(stel),location(slocation),points(ipoints),isSpot(sisSpot),police(spolice),camera(scamera),type(itype),fine(ifine),isTreated(sisTreated),treatmentDate(streatmentDate),notes(snotes){}bool operator==(const Violation& vltn); //查找用friend bool compNumber(Violation& vltn1,Violation& vltn2); //编号比较规则friend bool compDate(Violation& vltn1,Violation& vltn2); //日期比较规则friend bool compCarNumber(Violation& vltn1,Violation& vltn2); //车牌号比较规则friend bool compLocation(Violation& vltn1,Violation& vltn); //地点比较规则friend bool compPoints(Violation& vltn1,Violation& vltn); //扣分比较规则friend istream& operator>>(istream& input,Violation& vltn);friend ostream& operator<<(ostream& output,Violation& vltn);friend class List;friend int saveFile();private:string number; //编号string date; //日期string carNumber; //车牌号string tel; //联系电话-string location; //地点int points; //扣分string isSpot; //现场string police; //现场执勤交警string camera; //非现场摄像头编号string type; //违章类别int fine; //罚款string isTreated; //是否处理string treatmentDate; //处理日期string notes; //备注};bool Violation::operator==(const Violation& vltn){if(location==""||vltn.location=="")if(tel==""||vltn.tel=="")if(carNumber==""||vltn.carNumber=="")if(date==""||vltn.date=="")return number==vltn.number;else return date==vltn.date;else return carNumber==vltn.carNumber;else return tel==vltn.tel;else return location==vltn.location;}bool compNumber(Violation& vltn1,Violation& vltn2){return vltn1.number>vltn2.number;}bool compDate(Violation& vltn1,Violation& vltn2){return vltn1.date>vltn2.date;}bool compCarNumber(Violation& vltn1,Violation& vltn2){return vltn1.carNumber<vltn2.carNumber;}bool compLocation(Violation& vltn1,Violation& vltn2){return vltn1.location>vltn2.location;}bool compPoints(Violation& vltn1,Violation& vltn2){return vltn1.points>vltn2.points;}istream& operator>>(istream& input,Violation& vltn){input>>vltn.number>>vltn.date>>vltn.carNumber>>vltn.tel>>vltn.location >>vltn.points>>vltn.isSpot>>vltn.police>>vltn.camera>>vltn.type>>vltn.fine>>vltn.isTreated>>vltn.treatmentDate>>vltn.notes;return input;}ostream& operator<<(ostream& output,Violation& vltn){output<<setw(6)<<vltn.number<<setw(9)<<vltn.date<<setw(9)<<vltn.carNumber<<setw(12)<<vltn.tel<<setw(11)<<vltn.location<<setw(5)<<vltn.points<<setw(9)<<vltn.isSpot<<setw(13)<<vltn.police<<setw(17)<<vltn.camera<<setw(11)<<vltn.type<<setw(5)<<vltn.fine<<setw(9)<<vltn.isTreated<<setw(9)<<vltn.treatmentDate<<setw(33)<<vltn.notes<<endl;return output;}class List{public:friend class User;int loadFile(); //读取文件int saveFile(); //保存到文件int insert(); //添加记录int change(); //修改记录int del(); //删除记录int browse(); //浏览记录int searchMenu(); //查询信息int searchCarNumber(); //按车牌号int searchDate(); //按日期查找int searchTel(); //按电话查找int searchLocation(); //按地点查询int countMenu(); //统计信息int countDate(); //按日期统计违章int countCarNumber(); //按车牌统计违章int countLocation(); //按地点统计违章int countPoints(); //按扣分统计违章static List* getList();private:list <Violation> vltnlist;static List* m_list;List(){};List(const List&){}List& operator=(const List&){}};const char* filepath="violation.dat"; //指定数据文件路径bool checkNumber(string s,int size){if(s.size()!=size) return false;for(int i=0;i<size;i++)if(s[i]<'0'||s[i]>'9') return false;return true;}List* List::m_list=NULL;List* List::getList(){if(NULL==m_list) m_list=new List;return m_list;}int List::loadFile(){ifstream infile(filepath,ios::in);if(infile)for(;!infile.eof();){Violation vltn;infile>>vltn;vltnlist.push_back(vltn);}infile.close();return 0;}int List::saveFile(){ofstream outfile(filepath,ios::out);list<Violation>::iterator it;for(it=vltnlist.begin();it!=vltnlist.end();it++)outfile<<endl<<it->number<<' '<<it->date<<' '<<it->carNumber<<' '<<it->tel<<' '<<it->location<<' '<<it->points<<' '<<it->isSpot<<' '<<it->police<<' '<<it->camera<<' '<<it->type<<' '<<it->fine<<' '<<it->isTreated<<' '<<it->treatmentDate<<' '<<it->notes;outfile.close();return 0;}int List::insert(){list<Violation>::iterator it;string number,date,carNumber,tel,location,isSpot,police,camera,type, isTreated,treatmentDate,notes;int points,fine;cout<<"请输入违章编号【放弃添加0】【5位数字,如16384】:"; for(;;){cin>>number;cin.sync();if(number=="0") return 0;if(!checkNumber(number,5)) {cout<<"请输入有效编号:";continue;}Violation l(number);it=find(vltnlist.begin(),vltnlist.end(),l);if(it!=vltnlist.end())cout<<"编号已存在,请重新输入:";else break;}cout<<"请输入违章日期【8位数字,如20160630】:";while(1){cin>>date;cin.sync();if(!checkNumber(date,8)){cout<<"请输入有效日期:";continue;}else break;}cout<<"请输入违章车辆车牌号:";cin>>carNumber;cin.sync(); cout<<"请输入登记联系电话【11位数字,如137********】:"; while(1){cin>>tel;cin.sync();if(!checkNumber(tel,11)){cout<<"请输入有效电话:";continue;}else break;}cout<<"请输入违章地点:";cin>>location;cin.sync();cout<<"请输入处罚扣分【0~12分】:";while(1){if(cin>>points){cin.sync();if(points<0||points>12){cout<<"请输入有效扣分:";continue;}else break;}else{cin.clear();cin.sync();cout<<"请输入有效扣分:";continue;}}cout<<"请输入是否现场【是1】:";cin>>isSpot;cin.sync();if(isSpot=="1"){cout<<"请输入现场执勤交警:";cin>>police;cin.sync();isSpot="是";camera="现场";}else{cout<<"请输入非现场摄像头编号【6位数字,如646464】:";while(1){cin>>camera;cin.sync();if(!checkNumber(camera,6)){cout<<"请输入有效编号:";continue;}else break;}isSpot="否";police="非现场";}cout<<"*******************************************************"<<endl; cout<<"* ┌------------违章类别-------------请输入---------┐*"<<endl;cout<<"* | | *"<<endl;cout<<"* | ◆超速1 | *"<<endl;cout<<"* | ◆酒驾2 | *"<<endl;cout<<"* | ◆闯红灯3 | *"<<endl;cout<<"* | ◆违规变道4 | *"<<endl;cout<<"* | ◆未系安全带5 | *"<<endl;cout<<"* | ◆超载6 | *"<<endl;cout<<"* | | *"<<endl;cout<<"* └------------------------------------------------┘*"<<endl;cout<<"*******************************************************"<<endl; cout<<"请选择违章类别:";int Mark=1;while(Mark){char n;cin>>n;cin.sync();switch(n){case '1': type="超速";Mark=0;break;case '2': type="酒驾";Mark=0;break;case '3': type="闯红灯";Mark=0;break;case '4': type="违规变道";Mark=0;break;case '5': type="未系安全带";Mark=0;break;case '6': type="超载";Mark=0;break;default : cout<<"输入有误,请重新输入:";}}cout<<"请输入罚款金额【0~5000元】:";while(1){if(cin>>fine){cin.sync();if(fine<0||fine>50000){cout<<"请输入有效金额:";}else break;}else{cin.clear();cin.sync();cout<<"请输入有效金额:";continue;}}cout<<"请输入是否处理【是1】:";cin>>isTreated;cin.sync();if(isTreated=="1"){cout<<"请输入处理日期【8位数字,如20160630】:";//cin>>treatmentDate;cin.sync(); while(1){cin>>treatmentDate;cin.sync();if(!checkNumber(treatmentDate,8)){cout<<"请输入有效日期:";continue;}else break;}isTreated="是";}else{isTreated="否";treatmentDate="未处理";}cout<<"请输入备注【无0】:";cin>>notes;cin.sync();if(notes=="0") notes="无";Violation vltn(number,date,carNumber,tel,location,points,isSpot,police,camera,type,fine,isTreated,treatmentDate,notes);vltnlist.push_back(vltn);saveFile();cout<<"车辆违章信息添加成功!";getchar();return 0;}int List::change(){list<Violation>::iterator it;if(!vltnlist.size()){cout<<"还没有记录,不能修改!"<<endl;getchar();return 0;}string number,date,carNumber,tel,location,isSpot,police,camera,type,isTreated,treatmentDate,notes;int points,fine;cout<<"请输入想要修改的记录编号【放弃0】:";cin>>number;cin.sync();if(number=="0") return 0;Violation vltn(number);it=find(vltnlist.begin(),vltnlist.end(),vltn);if(it==vltnlist.end()){cout<<"此编号不存在!";getchar();return 0;}while(1){system("cls");cout<<" 当前信息请输入"<<endl;cout<<" 违章编号:"<<setw(17)<<(*it).number<<" 1"<<endl<<" 违章日期:"<<setw(17)<<(*it).date<<" 2"<<endl<<" 车辆车牌号:"<<setw(17)<<(*it).carNumber<<" 3"<<endl<<" 登记联系电话:"<<setw(17)<<(*it).tel<<" 4"<<endl<<" 违章地点:"<<setw(17)<<(*it).location<<" 5"<<endl<<" 处罚扣分:"<<setw(17)<<(*it).points<<" 6"<<endl<<" 是否现场:"<<setw(17)<<(*it).isSpot<<endl<<" 现场执勤交警:"<<setw(17)<<(*it).police<<" 7"<<endl<<" 非现场摄像头编号:"<<setw(17)<<(*it).camera<<" 8"<<endl<<" 违章类别:"<<setw(17)<<(*it).type<<" 9"<<endl<<" 罚款金额:"<<setw(17)<<(*it).fine<<" a"<<endl<<" 是否处理:"<<setw(17)<<(*it).isTreated<<" b"<<endl<<" 处理日期:"<<setw(17)<<(*it).treatmentDate<<" c"<<endl<<" 备注:"<<endl<<setw(34)<<(*it).notes<<" d"<<endl;cout<<"请选择要修改的条目【放弃修改0】:";int Mark=1;while(Mark){char n;cin>>n;cin.sync();switch(n){case '0': return 0;case '1': cout<<"请输入违章编号【5位数字,如16384】:";//cin>>(*it).number;cin.sync(); for(;;){cin>>number;cin.sync();if(!checkNumber(number,5)) {cout<<"请输入有效编号:";continue;}Violation l(number);list<Violation>::iterator nit;nit=find(vltnlist.begin(),vltnlist.end(),l);if(nit!=vltnlist.end())cout<<"编号已存在,请重新输入:";else {(*it).number=number;break;}}Mark=0;break;case '2': cout<<"请输入违章日期【8位数字,如20160630】:";//cin>>(*it).date;cin.sync(); while(1){cin>>date;cin.sync();if(!checkNumber(date,8)){cout<<"请输入有效日期:";continue;}else {(*it).date=date;break;}}Mark=0;break;case '3': cout<<"请输入车辆车牌号:";cin>>(*it).carNumber;cin.sync();Mark=0;break;case '4': cout<<"请输入登记联系电话:";//cin>>(*it).tel;cin.sync();while(1){cin>>tel;cin.sync();if(!checkNumber(tel,11)){cout<<"请输入有效电话【11位数字,如137********】:";continue;}else {(*it).tel=tel;break;}}Mark=0;break;case '5': cout<<"请输入违章地点:";cin>>(*it).location;cin.sync();Mark=0;break;case '6': cout<<"请输入处罚扣分【0~12分】:";//cin>>(*it).points;cin.sync();while(1){if(cin>>points){cin.sync();if(points<0||points>12){cout<<"请输入有效扣分:";continue;}else{(*it).points=points;break;}}else{cin.clear();cin.sync();cout<<"请输入有效扣分:";continue;}}Mark=0;break;case '7': cout<<"请输入现场执勤交警:";cin>>(*it).police;cin.sync();(*it).isSpot="是";(*it).camera="现场";Mark=0;break;case '8': cout<<"请输入非现场摄像头编号【6位数字,如646464】:";//cin>>(*it).camera;cin.sync();while(1){cin>>camera;cin.sync();if(!checkNumber(camera,6)){cout<<"请输入有效编号:";continue;}else{(*it).camera=camera;break;}}(*it).isSpot="否";(*it).police="非现场";Mark=0;break;case '9': {cout<<"*******************************************************"<<endl;cout<<"* ┌------------违章类别-------------请输入---------┐*"<<endl;cout<<"* | | *"<<endl;cout<<"* | ◆超速1 | *"<<endl;cout<<"* | ◆酒驾2 | *"<<endl;cout<<"* | ◆闯红灯3 | *"<<endl;cout<<"* | ◆违规变道4 | *"<<endl;cout<<"* | ◆未系安全带5 | *"<<endl;cout<<"* | ◆超载6 | *"<<endl;cout<<"* | | *"<<endl;cout<<"* └------------------------------------------------┘*"<<endl;cout<<"*******************************************************"<<endl;cout<<"请选择违章类别:";int Mark1=1;while(Mark1){char n1;cin>>n1;cin.sync();switch(n1){case '1': (*it).type="超速";Mark1=0;break;case '2': (*it).type="酒驾";Mark1=0;break;case '3': (*it).type="闯红灯";Mark1=0;break;case '4': (*it).type="违规变道";Mark1=0;break;case '5': (*it).type="未系安全带";Mark1=0;break;case '6': (*it).type="超载";Mark1=0;break;default : cout<<"输入有误,请重新输入:";}}Mark=0;break;}case 'a': cout<<"请输入罚款金额【0~5000元】:";//cin>>(*it).fine;cin.sync(); while(1){if(cin>>fine){cin.sync();if(fine<0||fine>50000){cout<<"请输入有效金额:";continue;}else{(*it).fine=fine;break;}}else{cin.clear();cin.sync();cout<<"请输入有效金额:";continue;}}Mark=0;break;case 'b': cout<<"请输入是否处理【是1】:";cin>>(*it).isTreated;cin.sync(); if((*it).isTreated=="1"){cout<<"输入处理日期:";//cin>>(*it).treatmentDate;cin.sync();while(1){cin>>treatmentDate;cin.sync();if(!checkNumber(treatmentDate,8)){cout<<"请输入有效日期:";continue;}else {(*it).treatmentDate=treatmentDate;break;}}(*it).isTreated="是";}else{(*it).isTreated="否";(*it).treatmentDate="未处理";}Mark=0;break;case 'c': cout<<"请输入处理日期【8位数字,如20160630】:";//cin>>(*it).treatmentDate;cin.sync();while(1){cin>>treatmentDate;cin.sync();if(!checkNumber(treatmentDate,8)){cout<<"请输入有效日期:";continue;}else{(*it).treatmentDate=treatmentDate;break;}}Mark=0;break;case 'd': cout<<"请输入备注:";cin>>(*it).notes;cin.sync();Mark=0;break;default : cout<<"输入有误,请重新输入:";}}saveFile();cout<<"修改成功!"<<endl<<"继续修改请输入任意键,修改完毕请输入0:";char ch;cin>>ch;cin.sync();if(ch=='0') return 0;}}int List::del(){list<Violation>::iterator it;if(!vltnlist.size()){cout<<"还没有记录,不能删除!"<<endl;getchar();return 0;}string number;browse();cout<<"请输入想要删除的编号【放弃0】:";cin>>number;cin.sync();if(number=="0") return 0;Violation vltn(number);it=find(vltnlist.begin(),vltnlist.end(),vltn);if(it==vltnlist.end()){cout<<"此编号不存在!";getchar();return 0;}vltnlist.erase(it);if(!vltnlist.size()) remove(filepath);else saveFile();cout<<"删除记录成功!";getchar();return 0;}int List::browse(){list<Violation>::iterator it;if(!vltnlist.size()){cout<<"还没有记录!"<<endl;getchar();return 0;}vltnlist.sort(compNumber); //按编号降序排列cout<<"当前共有"<<vltnlist.size()<<"条记录,已按编号降序排列:"<<endl<<" 编号日期车牌号联系电话地点扣分是否现场现场执勤交警非现场摄像头编号违章类别罚款是否处理处理日期备注"<<endl;for(it=vltnlist.begin();it!=vltnlist.end();it++)cout<<*it;getchar();return 0;}int List::searchMenu(){if(!vltnlist.size()){cout<<"还没有记录,不能查询!"<<endl;getchar();return 0;}while(1){system("cls");cout<<"*******************************************************"<<endl;cout<<"* ★机动车违章处罚管理系统★*"<<endl;cout<<"* *"<<endl;cout<<"*******************************************************"<<endl;cout<<"* ┌-------------------查询菜单---------------------┐*"<<endl;cout<<"* | | *"<<endl;cout<<"* | 查询方式请输入| *"<<endl;cout<<"* | ◆按日期查询1 | *"<<endl;cout<<"* | ◆按车牌号查询2 | *"<<endl;cout<<"* | ◆按电话查询3 | *"<<endl;cout<<"* | ◆按地点查询4 | *"<<endl;cout<<"* | | *"<<endl;cout<<"* └------------------------------------------------┘*"<<endl;cout<<"*******************************************************"<<endl;cout<<"* ●返回主菜单0 *"<<endl;cout<<"*******************************************************"<<endl;cout<<"请选择查询方式:";int Mark=1;while(Mark){char n;cin>>n;cin.sync();switch(n){case '1': searchDate();Mark=0;break;case '2': searchCarNumber();Mark=0;break;case '3': searchTel();Mark=0;break;case '4': searchLocation();Mark=0;break;case '0': return 0;default : cout<<"输入有误,请重新输入:";}}}vltnlist.sort(compNumber);return 0;getchar();return 0;}int List::searchDate(){list<Violation>::iterator it;string date;cout<<"请输入日期:";cin>>date;cin.sync();Violation vltn("",date);it=find(vltnlist.begin(),vltnlist.end(),vltn);if(it!=vltnlist.end()){cout<<"已找到日期为"<<date<<" 的违章记录:"<<endl<<" 编号日期车牌号联系电话地点扣分是否现场现场执勤交警非现场摄像头编号违章类别罚款是否处理处理日期备注"<<endl<<*it;for(it++;it!=vltnlist.end();it++)if(*it==vltn) cout<<*it;}else cout<<"没有该日期的违章记录!";getchar();return 0;}int List::searchCarNumber(){list<Violation>::iterator it;string carNumber;cout<<"请输入车牌号:";cin>>carNumber;cin.sync();Violation vltn("","",carNumber);it=find(vltnlist.begin(),vltnlist.end(),vltn);if(it!=vltnlist.end()){cout<<"已找到车牌号为"<<carNumber<<" 的违章记录:"<<endl<<" 编号日期车牌号联系电话地点扣分是否现场现场执勤交警非现场摄像头编号违章类别罚款是否处理处理日期备注"<<endl<<*it;for(it++;it!=vltnlist.end();it++)if(*it==vltn) cout<<*it;}else cout<<"没有该车牌号的违章记录!";getchar();return 0;}int List::searchTel(){list<Violation>::iterator it;string tel;cout<<"请输入联系电话:";cin>>tel;cin.sync();Violation vltn("","","",tel);it=find(vltnlist.begin(),vltnlist.end(),vltn);if(it!=vltnlist.end()){cout<<"已找到联系电话为"<<tel<<" 的违章记录:"<<endl<<" 编号日期车牌号联系电话地点扣分是否现场现场执勤交警非现场摄像头编号违章类别罚款是否处理处理日期备注"<<endl<<*it;for(it++;it!=vltnlist.end();it++)if(*it==vltn) cout<<*it;}else cout<<"没有该联系电话的违章记录!";getchar();return 0;}int List::searchLocation(){list<Violation>::iterator it;string location;cout<<"请输入地点:";cin>>location;cin.sync();Violation vltn("","","","",location);it=find(vltnlist.begin(),vltnlist.end(),vltn);if(it!=vltnlist.end()){cout<<"已找到地点为"<<location<<" 的违章记录:"<<endl<<" 编号日期车牌号联系电话地点扣分是否现场现场执勤交警非现场摄像头编号违章类别罚款是否处理处理日期备注"<<endl<<*it;for(it++;it!=vltnlist.end();it++)if(*it==vltn) cout<<*it;}else cout<<"没有该地点的违章记录!";getchar();return 0;}int List::countMenu(){list<Violation>::iterator it;if(!vltnlist.size()){cout<<"还没有记录,不能统计!"<<endl;getchar();return 0;}while(1){system("cls");cout<<"*******************************************************"<<endl; cout<<"* *"<<endl;cout<<"* ★机动车违章处罚管理系统★*"<<endl;cout<<"* *"<<endl;cout<<"*******************************************************"<<endl; cout<<"* ┌--------------------统计菜单--------------------┐*"<<endl;cout<<"* | | *"<<endl;cout<<"* | 统计方式请输入| *"<<endl;cout<<"* | ◆按日期统计违章数量1 | *"<<endl;cout<<"* | ◆按车牌号统计违章次数2 | *"<<endl;cout<<"* | ◆按地点统计违章数量3 | *"<<endl;cout<<"* | ◆显示处罚>=12分的记录4 | *"<<endl;cout<<"* | | *"<<endl;cout<<"* └------------------------------------------------┘*"<<endl;cout<<"*******************************************************"<<endl; cout<<"* ●返回主菜单0 *"<<endl;cout<<"*******************************************************"<<endl; cout<<"请选择统计方式:";int Mark=1;while(Mark){char n;cin>>n;cin.sync();switch(n){case '1': countDate();Mark=0;break;case '2': countCarNumber();Mark=0;break;case '3': countLocation();Mark=0;break;case '4': countPoints();Mark=0;break;case '0': return 0;default : cout<<"输入有误,请重新输入:";}}}return 0;getchar();return 0;}int List::countDate(){list<Violation>::iterator it;vltnlist.sort(compDate);int sumVltn=0;string y,m1,m2,date1,date2;cout<<"输入日期范围:"<<endl ;cout<<"输入年份:";cin>>y;cin.sync();cout<<"输入起始月份:";cin>>m1;cin.sync();cout<<"输入结束月份:";cin>>m2;cin.sync();date1=y+m1;date2=y+m2;for(it=vltnlist.begin();it!=vltnlist.end();it++){if((*it).date>=date1&&(*it).date<=date2) sumVltn++;}cout<<"该段时间内违章数量为:"<<sumVltn;//getchar();//vltnlist.push_back(Violation("cutme"));//it=vltnlist.begin();/*cout<<"已按月份统计违章数量:"<<endl<<" 违章日期违章数量"<<endl;int sumVltn=0;string mouth=((*it).date).substr(4,2),date=(*it).date.substr(0,4); for(it=vltnlist.begin();it!=vltnlist.end();it++)if((*it).date!=""){if(mouth!=((*it).date).substr(4,2)){cout<<(*it).date.substr(0,4)<<"年"<<mouth<<"月"<<setw(9)<<sumVltn<<endl; sumVltn=1;mouth=(*it).date.substr(4,2);date=(*it).date.substr(0,4);}else {sumVltn++;}}else{cout<<date<<"年"<<mouth<<"月"<<setw(9)<<sumVltn<<endl;}*///vltnlist.pop_back();getchar();return 0;}int List::countCarNumber(){list<Violation>::iterator it;vltnlist.sort(compCarNumber);vltnlist.push_back(Violation("cutme"));it=vltnlist.begin();cout<<"已按车牌号统计违章次数:"<<endl<<" 车牌号违章次数"<<endl;string carNumber=(*it).carNumber;int sumVltn=0;for(it=vltnlist.begin();it!=vltnlist.end();it++)if(carNumber!=(*it).carNumber){cout<<setw(9)<<carNumber<<setw(9)<<sumVltn<<endl; carNumber=(*it).carNumber;sumVltn=1;}else sumVltn++;vltnlist.pop_back();getchar();return 0;}int List::countLocation(){list<Violation>::iterator it;vltnlist.sort(compLocation);vltnlist.push_back(Violation("cutme"));it=vltnlist.begin();string location=(*it).location;int sumVltn=0;cout<<"已按地点统计违章数量:"<<endl<<" 地点违章数量"<<endl;for(it=vltnlist.begin();it!=vltnlist.end();it++)if(location !=(*it).location){cout<<setw(11)<<location<<setw(9)<<sumVltn<<endl; location=(*it).location;sumVltn=1;}else sumVltn++;vltnlist.pop_back();getchar();return 0;}int List::countPoints(){list<Violation>::iterator it;vltnlist.sort(compCarNumber);vltnlist.push_back(Violation("cutme"));it=vltnlist.begin();string carNumber=(*it).carNumber,tel=(*it).tel;int sumPoints=0;cout<<"已显示处罚>=12分的违章记录:"<<endl<<" 车牌号联系电话"<<endl;for(it=vltnlist.begin();it!=vltnlist.end();it++)if(carNumber!=(*it).carNumber){if(sumPoints>11)cout<<setw(9)<<carNumber<<setw(12)<<tel<<endl; carNumber=(*it).carNumber;sumPoints=(*it).points;tel=(*it).tel; }else sumPoints+=(*it).points;。
车辆违章管理系统C语言版
#include<stdio.h>#include<stdlib.h>#include<string.h>#define BUFLEN 100 // 缓冲区最大字符数#define LEN 15 // 学号和姓名最大字符数,实际请更改#define N 100 // 最大学生人数,实际请更改struct record //结构体{char code[LEN+1]; // 车牌号char name[LEN+1]; // 车主姓名char police[20]; // 警官姓名char add[30]; // 家庭地址char tel[LEN+1]; // 电话号码char id[30]; //罚单编号char content[30]; // 罚单内容}sheet[N];int k=1,n,m; // 定义全局变量void readfile(); // 函数声明void seek();void modify();void insert();void del();void display();void save();void menu();/*********主函数开始************/int main(){while(k)menu();system("pause");return 0;}/*********主函数结束************/void help() //帮助函数{printf("0. 欢迎使用系统帮助!\n");printf("1. 进入系统后,先载入违章信息,再查询;\n");printf("2. 按照菜单提示键入数字代号;\n");printf("3. 增加违章信息后,切记保存信息;\n");printf("4. 谢谢您的使用!\n\n");}void readfile() // 建立信息{char *p="database.txt";FILE *fp;int i=0;if ((fp=fopen("database.txt","r"))==NULL){printf("打开文件%s 错误! 按任意键退出!",p);system("pause");exit(0);}while(fscanf(fp,"%s %s %s %s %s %s %s",sheet[i].code,sheet[i].name,sheet[i].police,sheet[i].add,s heet[i].tel,sheet[i].id,sheet[i].content)==7){i++;i=i;}fclose(fp);n=i; //此处的n在下面的“按车牌号排序”函数中调用,为文件中罚单的数量printf("\n************录入完毕!************\n");}void seek() //查找{int i,item,flag;char s1[21]; // 以姓名和车牌号最长长度+1为准printf("\n");printf(" 1.按车牌号查询\n");printf("----------------\n");printf(" 2.按车主姓名查询\n");printf("----------------\n");printf(" 3.退出本菜单\n");printf("\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的车牌号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(sheet[i].code,s1)==0) //strcmp函数进行比对,若为0,则相同{flag=1;printf("车牌号车主姓名警官姓名家庭住址电话罚单编号罚单内容\n");printf("-------------------------------------------------------------------------------\n");printf("%4s %14s %10s %10s %8s %8s %10s\n",sheet[i].code,sheet[i].name,sheet[i].police, sheet[i].add,sheet[i].tel,sheet[i].id,sheet[i].content);}if(flag==0)printf("该车牌号不存在!\n"); break;case 2:printf("请输入要查询的车主姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(sheet[i].name,s1)==0){flag=1;printf("车牌号车主姓名警官姓名家庭住址电话罚单编号罚单内容\n");printf("--------------------------------------------------------------------\n");printf("%4s %14s %10s %10s %8s %8s %10s\n",sheet[i].code,sheet[i].name,sheet[i].police, sheet[i].add,sheet[i].tel,sheet[i].id,sheet[i].content);}if(flag==0)printf("该车主姓名不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}}void modify() //修改信息{int i,item,num;char s1[LEN+1],s2[LEN+1]; // 以姓名和车牌号最长长度+1为准printf("请输入要要修改的车辆的车牌号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(sheet[i].code,s1)==0) //比较字符串是否相等num=i;printf(" 1.修改车主姓名\n"); printf(" 2.修改警官姓名\n"); printf(" 3.修改家庭地址\n"); printf(" 4.修改电话号码\n"); printf(" 5.修改罚单内容\n"); printf(" 6.修改罚单编号\n"); printf(" 7.退出本菜单\n"); while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的车主姓名:\n");scanf("%s",s2);strcpy(sheet[num].name,s2); break;case 2:printf("请输入新的警官姓名:\n");scanf("%s",&s2);strcpy(sheet[num].police,s2); break;case 3:printf("请输入新的家庭地址:\n");scanf("%s",s2);strcpy(sheet[num].add,s2); break;case 4:printf("请输入新的电话号码:\n");scanf("%s",s2);strcpy(sheet[num].tel,s2); break;case 5:printf("请输入新的罚单编号:\n");scanf("%s",s2);strcpy(sheet[num].id,s2); break;case 6:printf("请输入新的罚单内容:\n");scanf("%s",s2);strcpy(sheet[num].content,s2); break;case 7:return;default:printf("请在1-7之间选择\n");}}}/*void sort() //按车牌号排序{int i,j;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(sheet[j-1].code,sheet[j].code)>0) //若后者编号大于前者,则进入if语句//用strcpy函数,利用temp中间变量,对二者的信息调换{strcpy(temp,sheet[j-1].code);strcpy(sheet[j-1].code,sheet[j].code);strcpy(sheet[j].code,temp);strcpy(temp,sheet[j-1].name);strcpy(sheet[j-1].name,sheet[j].name);strcpy(sheet[j].name,temp);strcpy(temp,sheet[j-1].police);strcpy(sheet[j-1].police,sheet[j].police);strcpy(sheet[j].police,temp);strcpy(temp,sheet[j-1].add);strcpy(sheet[j-1].add,sheet[j].add);strcpy(sheet[j].add,temp);strcpy(temp,sheet[j-1].tel);strcpy(sheet[j-1].tel,sheet[j].tel);strcpy(sheet[j].tel,temp);strcpy(temp,sheet[j-1].id);strcpy(sheet[j-1].id,sheet[j].id);strcpy(sheet[j].id,temp);strcpy(temp,sheet[j-1].id);strcpy(sheet[j-1].content,sheet[j].content);strcpy(sheet[j].content,temp);}}}*/void insert() //插入函数{int i=n,j,flag;printf("请输入待增加的罚单数:\n");scanf("%d",&m);do{flag=1;while(flag){flag=0;printf("请输入第%d 个罚单的车牌号:\n",i+1);scanf("%s",sheet[i].code);for(j=0;j<i;j++)if(strcmp(sheet[i].code,sheet[j].code)==0){printf("已有该车牌号,请检查后重新录入!\n");flag=1;break; //如有重复立即退出该层循环,提高判断速度}}printf("请输入第%d 个的车主姓名:\n",i+1);scanf("%s",sheet[i].name);printf("请输入第%d 个的警官姓名:\n",i+1);scanf("%s",&sheet[i].police);printf("请输入第%d 个的家庭住址:\n",i+1);scanf("%s",sheet[i].add);printf("请输入第%d 个的电话号码:\n",i+1);scanf("%s",sheet[i].tel);printf("请输入第%d 个的罚单编号:\n",i+1);scanf("%s",sheet[i].id);printf("请输入第%d 个的罚单内容:\n",i+1);scanf("%s",sheet[i].content);if(flag==0){i=i;i++;}printf("------录入完毕!------\n\n");}void del() //删除函数{int i,j,flag=0;char s1[LEN+1];printf("请输入要删除罚单的车牌号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(sheet[i].code,s1)==0){flag=1;for(j=i;j<n-1;j++)sheet[j]=sheet[j+1];}if(flag==0)printf("该车牌号不存在!\n");if(flag==1){printf("车牌号车主姓名警官姓名家庭住址电话罚单编号罚单内容\n");printf("-------------------------------------------------------------------------------\n");printf("%4s %14s %10s %10s %8s %8s %10s\n",sheet[i-1].code,sheet[i-1].name,sheet[i-1].police, sheet[i-1].add,sheet[i-1].tel,sheet[i-1].id,sheet[i-1].content);printf("---------------------该罚单删除成功---------------------\n显示结果请选择菜单\n");n--;}}void display() //显示函数{int i;printf("所有罚单的信息为:\n");printf("车牌号车主姓名警官姓名家庭住址电话罚单编号罚单内容\n");printf("-------------------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%4s %14s %10s %10s %8s %8s %10s\n",sheet[i].code,sheet[i].name,sheet[i].police, sheet[i].add,sheet[i].tel,sheet[i].id,sheet[i].content);}}void save() //保存函数{int i;FILE *fp;fp=fopen("database.txt","w"); //写入for(i=0;i<n;i++){fprintf(fp,"%s %s %s %s %s %s %s\n",sheet[i].code,sheet[i].name,sheet[i].police,sheet[i].add,sheet[i].tel,sheet[i].id,sheet[i].content);}printf("------保存成功!------\n");fclose(fp);}void menu() // 主界面函数{int num;printf(" \n ****************车辆违章管理系统****************\n"); printf(" ————————————————————————\n"); printf(" ↓功能菜单↓\n");printf(" ---------------------------------------------- \n");printf("\n");printf(" 0.系统帮助及说明 1.载入罚单信息\n"); printf("\n");printf(" 2.查询罚单信息 3.修改罚单信息\n"); printf("\n");printf(" 4.增加罚单信息 5.按车牌号删除信息\n"); printf("\n");printf(" 6.显示当前信息7.保存当前罚单信息\n"); printf("\n");printf(" 8.退出系统\n"); printf("\n");printf(" ----友情提醒:操作前请先载入罚单信息!----\n");printf("请选择菜单编号:");scanf("%d",&num);switch(num){case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf("请在0-8之间选择\n");}}。
车辆信息管理系统c语言
车辆信息管理系统c语言1.引言1.1 概述车辆信息管理系统是一个用于记录和管理车辆相关信息的系统。
随着汽车使用量的不断增长,车辆信息的管理变得越来越重要。
这个系统可以帮助车辆所有者或管理者更轻松地管理他们的车辆信息,提高管理效率。
本文将重点介绍车辆信息管理系统中使用C语言的应用。
C语言是一种通用的编程语言,被广泛应用于软件开发和系统编程中。
它的简洁和高效特性使得它成为开发车辆信息管理系统的理想选择。
在本文中,我们将首先介绍车辆信息管理系统的基本概念和功能。
然后,我们将详细探讨C语言在该系统中的应用。
我们将介绍C语言的特性如何帮助我们构建一个高效、可靠且易于维护的车辆信息管理系统。
通过本文的阅读,读者将对车辆信息管理系统以及C语言在该系统中的应用有一个全面的了解。
这将有助于读者掌握使用C语言开发车辆信息管理系统的技能,并且能够在实际应用中灵活运用这些技术。
最后,我们将对车辆信息管理系统的未来发展进行展望,探讨可能的改进和扩展方向。
本文的目的是帮助读者深入了解车辆信息管理系统及其在实际应用中的重要性和优势。
通过学习本文,读者将能够更好地理解和应用C语言开发车辆信息管理系统的技术,并且为该系统的未来发展提供参考和建议。
1.2 文章结构文章结构部分的内容是对整篇文章的组织和安排进行介绍。
在本篇文章中,文章结构部分可以包括以下内容:文章将按照以下结构展开:第一部分是引言部分,其中包括概述、文章结构和目的。
在概述中,将简要介绍车辆信息管理系统的背景和重要性。
然后,在文章结构部分,将说明文章的整体结构,包括各个章节的内容和顺序。
最后,在目的部分,将明确本文的撰写目的和意义。
第二部分是正文部分,其中包括车辆信息管理系统介绍和C语言在车辆信息管理系统中的应用。
在车辆信息管理系统介绍部分,将详细介绍车辆信息管理系统的定义、功能和特点。
然后,在C语言在车辆信息管理系统中的应用部分,将探讨C语言在开发和实现车辆信息管理系统过程中的具体应用和优势。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int main() { printf("\t\t$************************¥¥****************************$\t\t\t\n"); printf("\t\t$****************欢迎进入车辆违章管理系*****************$\t\t\t\n"); printf("\t\t$************************¥¥****************************$\t\t\t\n"); for(int t=0;t<100;t++)
七,模块功能 Main 函数模块:是 input 和 search 的综合; Input 函数模块:车辆违章信息的录入; Search 函数模块:查询和统计的功能 八,实验结果
体会: 通过本次车辆违章系统设计实验,我学会了数据结构体的设计和பைடு நூலகம்数的调度和使用,对 以前所学的知识进行了进一步的巩固, 及时发现错误及时改正, 并在规定时间内完成了实验 任务。
五,数据结构设计 typedefstructPe { char vno[8]; //车牌号 char name[15]; //车主姓名 int times1; //违规停车次数 int times2; //闯红灯次数 int times3; //超速次数 }PECCANCY; 用 typedef 声明结构体为 PECCANY,结构体里包含了两个字符数组和三个整型变量,分别用 来表示车牌号、车主姓名和违规停车次数、闯红灯次数、超速次数。 六,程序结构流程图
inti,j; int k=0; char p[8]; for(j=0;j<100;j++) { //标志变量 //利用车牌号查车辆的违章情况
printf("\n 请输入查询车牌号:"); scanf("%s",p); for(i=0;i<100;i++) { if(strcmp(p,v[i].vno)==0) break; else k=1; } if(k==1){ printf("您输入的车辆信息暂没录入系统——谢谢使用");} printf("\n 车牌号:%s \n",v[i].vno); printf("车主姓名:%s \n",v[i].name); printf("违章停车次数:%d \n",v[i].times1); printf("违章闯红灯次数:%d \n",v[i].times2); printf("违章超速次数:%d \n",v[i].times3);
int sum; //根据车牌号统计每台车辆的罚款金额 int a; int b; int c; int t; a=v[i].times1; b=v[i].times2; c=v[i].times3; sum=a*100+b*200+c*500; printf("车牌号为%s 罚款%d\n",p,sum); printf("查询结束请输入 0\n"); printf("继续查询请输入任意非零数\n"); scanf("%d",&t); if(t==0) break; else continue; } return 0; }
车辆违章管理系统
一,实验目的 基于 C 实现简单的管理系统的功能,并完成简易的车辆违章管理系统。 二,系统功能 1 车辆及违章信息的录入。 2 基于车牌号查询每台车辆的违章情况。 3 基于车牌号统计每台车辆的罚款总金额。 三,需要处理的数据 设违章种类分为违章停车、闯红灯、超速等三种。 违章停车每次罚款 100 元、闯红灯每次罚款 200 元、超速每次罚款 500 元。 车辆及违章基本信息包括: 1 车牌号②车主姓名③违章停车次数④闯红灯次数⑤超速次数 四,系统功能模块图
附录: #include <stdio.h> #include <string.h> typedefstructPe { char vno[8]; //车牌号 char name[15]; //车主姓名 int times1; //违规停车次数 int times2; //闯红灯次数 int times3; //超速次数 }PECCANCY; PECCANCY v[100]; void input(){ inti; int m; for (i=0;i<100;i++) { //录入车辆和违章信息
{printf("请选择:录入——>0 查询——>1\n"); int n; scanf("%d",&n); if(n==0) input(); if(n==1) search();} return 0; }
车辆违章管理系统
院系:通信工程 姓名:郭庆阳 班级:22 班
printf("请输入录入车牌号:"); scanf("%s",v[i].vno); printf("请输入车主姓名:"); scanf("%s",v[i].name); printf("请输入违章停车次数:"); scanf("%d",&v[i].times1); printf("请输入闯红灯次数:"); scanf("%d",&v[i].times2); printf("请输入超速次数:"); scanf("%d",&v[i].times3); printf("录入结束请输入 0:\n"); printf("继续录入请输入任意非零数:\n"); scanf("%d",&m); if(m==0) break; else continue; } } int search(){