C语言程序设计之交通处罚单管理系统 报告(内含代码)

合集下载

(交通运输)交通惩罚单管理系统李勇峰精编

(交通运输)交通惩罚单管理系统李勇峰精编

(交通运输)交通惩罚单管理系统李勇峰(交通运输)交通惩罚单管理系统李勇峰C语言设计实习报告勘查技术和工程(基础工程方向)姓名:李勇峰班号:054081学号:20081004133题目:交通处罚单管理系统指导教师:王老师时间: 2009-2010学年秋壹,题目要求【要求】:交通处罚单涉及到车辆,驾驶员和开单交警的信息,仍有交通处罚单的号码,处罚时间等信息。

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

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

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

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

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

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

voidMenu(){printf("");printf("欢迎来到交通处罚单管理系统!\n");printf("************************************************\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)创建新的交通处罚单处罚单包含的内容有处罚单号,车牌号,司机姓名,交警姓名,和处罚日期,因此相应的函数也应包含这些内容,在这个函数所控制的操作会依次提示输入之上内容。

C语言交通处罚单管理系统

C语言交通处罚单管理系统
exit(0);
}
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语言课程设计交通处罚单管理系统C语言课程设计1、设计目的随着社会的不断发展,交通事故频发,交通管理逐渐成为了每个城市必须要解决的问题。

而交通处罚单管理系统(简称它为“系统”)便是为了更好地解决这个问题而被设计的。

系统能够有效地记录违规者的信息,违规行为以及处罚措施,并能够根据不同的情况对其进行分类和管理。

它不仅可以节约工作时间和人力资源,还能迅速让违规者得到及时的处罚,使道路更加安全,保护公共安全。

2、系统设计2.1 系统功能本系统的主要功能包括:违章记录、罚款、扣除驾照分数、上报违规记录、信息输入和查询、信息修改和删除等主要功能项。

违章记录:系统可以记录所有交通违法行为,包括罚款和扣分等信息。

罚款:系统可以将罚款记录下来,并可以将其发送给罚款的人。

扣除驾照分数:系统可以记录扣除的分数并将其发送给驾照的持有人。

上报违规记录:系统可以根据不同情况自动生成违规记录并将其上报。

信息输入和查询:系统可以对所有交通违法行为信息进行系统记录,包括车主信息、车辆信息和罚款信息。

其次,系统还具有较为便利的查询功能,快速定位到违规者的信息。

信息修改和删除:系统在管理中还可以对一些信息进行修改和删除,更好地保证了信息的及时更新和有效管理。

2.2 系统设计系统的设计基本上可以分为前端设计和后端设计两部分。

2.2.1 前端设计设计前端系统的正确流程显然是十分重要的。

在本系统中,我们首先采用了图形化界面来实现用户与系统的交互,界面设计简洁明了易于操作。

另外,系统还采用了文本模式界面,在需要大量输入或者查询时,用户可以直接使用命令行界面操作软件。

2.2.2 后端设计后端设计是系统运行的核心。

在本系统中,我们主要采用了c语言的基础来实现系统的后端代码,用c语言基础的快速处理能力来满足系统管理中对于不同功能的处理需要。

3、系统优势通过上述系统的设计,该系统具有如下优势:·系统具有良好的稳定性,信息处理的准确与高效。

交通处罚单管理

交通处罚单管理

/*交通罚单管理*/#include <stdio.h> /*库函数调用*/#include <stdlib.h>#include <ctype.h>#include <string.h>typedef struct /*定义一个结构体类型*/{char driver[10]; /*司机姓名*/int car; /*驾驶的车牌号*/char police[10]; /*开罚单的交警姓名*/int num; /*罚单编号*/int year; /*开罚单的年*/int month; /*开罚单的月*/int date; /*开罚单的日*/}Traffic;int menu_select() /*主菜单*/{char c;do {system("cls"); /*清屏*/printf("\t\t\t交通处罚单管理系统\n");printf("1.Input records 输入数据请按1\n");printf("2.Display all records 输出记录请按2\n");printf("3.Delete a recode 删除记录请按3\n");printf("4.Sort 排序请按4\n");printf("5.Insert a record 插入一条记录请按5\n");printf("6.Query 查询记录请按6\n");printf("7.Add records from a text file! 从文件中添加数据请按7\n");printf("8.Write to a text file 输出文件记录请按8\n");printf("0.Quit the system 退出系统请按0\n");printf("Give your choice (0-8):");c=getchar();}while (c<'0' || c>'8');return (c-'0');}int Input(Traffic traList[],int n)/*输入数据Fun1 第一个参数是定义的结构体数组,第二个参数为记录数*/{char c;do{system("cls");printf("请依次输入司机姓名·驾驶车牌号·交警姓名·罚单编号·开罚单的年·月·日:\n"); scanf("%s%d%s%d%d%d%d\n",traList[n].driver,&traList[n].car,traList[n].police,&traList[n].num,&traList[n].year,&traList[n].month,&traList[n].date);n++;printf("是否继续输入('Y'或'N')?\n");c=getchar();}while( c != 'N');return n; /*返回输入记录总数*/}void Display(Traffic trafList[],int n)/*输出数据Fun2 第一个参数是定义的结构体数组,第二个参数为记录数*/{int i;printf("司机\t车牌号\t交警姓名\t罚单编号\t年份\t月份\t日期\n");for(i=0;i<n;i++){if(i%10==0&&i>0){system("pause");printf("\n");}printf("%s\t%d\t%s\t\t%d\t\t%d\t%d\t%d\n",trafList[i].driver,trafList[i].car,trafList[i].police,trafList[i].num,trafList[i].year,trafList[i].month,trafList[i].date);}printf("\n");}int Delete(Traffic trafList[],int n, char *name) /*第一个参数是定义的结构体数组,第二个参数为记录数,第三个参数为要删除的司机姓名*/{int i,j;Traffic t; /*定义结构体变量*/for(i=0;i<n;i++)if(!strcmp(trafList[i].driver,name)){t=trafList[i];for(j=i;j<n-1;j++)trafList[j]=trafList[j+1];trafList[n-1]=t;n--;i++;break;/*只删除一条,如果要全部删除,要删去此句“break;”*/}return n; /*返回删除后记录总数*/}int Delete_a_record(Traffic trafList[],int n)/*删除数据Fun3 第一个参数是定义的结构体数组,第二个参数为记录数*/{char c,name[10];int i=n;printf("请输入您要删除记录的司机姓名:");scanf("%s",name);printf("您确定要删除“%s”的记录吗?(“Y”or“N”)\n",name);c=getchar();c=getchar();if(c=='Y') n=Delete(trafList,n,name);if(i>n)printf("成功删除%s 的数据信息!\n",name);else printf("抱歉,未找到%s 的数据信息!\n",name);return n; /*返回删除后记录总数*/}void Sort_by_Name(Traffic trafList[],int n)/*对数据排序Fun4 第一个参数是定义的结构体数组,第二个参数为记录数*/{int i,j,p;Traffic t;for(i=0;i<n-1;i++){p=i;for(j=i+1;j<n;j++)if(strcmp(trafList[j].driver,trafList[p].driver)<0)p=j;if(p!=i){t=trafList[i];trafList[i]=trafList[p];trafList[p]=t;}}}int Insert(Traffic trafList[], int n, Traffic *s){int i,j;for(i=0;i<n;i++)if(strcmp(trafList[i].driver,(*s).driver)>0) break;for(j=n-1;j>i-1;j--)trafList[j+1]=trafList[j];trafList[i]=*s;n++;return n; /*返回插入记录后记录总数*/}int Insert_a_record(Traffic trafList[],int n )/*插入数据Fun5 第一个参数是定义的结构体数组,第二个参数为记录数*/{Traffic s,*p;p=&s;printf("请依次输入要插入的司机姓名·驾驶车牌号·交警姓名·罚单编号·年·月·日:\n");scanf("%s%d%s%d%d%d%d\n",s.driver,&s.car,s.police,&s.num,&s.year,&s.month,&s.date);n=Insert(trafList,n,p);printf("插入成功!\n");return n; /*返回插入数据后记录总数*/}int Query(Traffic trafList[],int n, char *name){int i,j;for(i=0;i<n;i++){if(!strcmp(trafList[i].driver,name)){j=i;break;}else j=-1;}return j; /*返回查找到的司机对应的记录数*/}void Query_a_record(Traffic trafList[],int n)/*查找数据Fun6 第一个参数是定义的结构体数组,第二个参数为记录数*/{char name[20];int i;printf("请输入您要查询的司机姓名:");scanf("%s",name);i=Query(trafList,n,name);if(i==-1)printf("\t抱歉,未找到“%s”的数据信息!\n",name);else{printf("\t“%s”的数据查找成功!\n",name);printf("司机\t车牌号\t交警姓名\t罚单编号\t年份\t月份\t日期\n");printf("%s\t%d\t%s\t\t%d\t\t%d\t%d\t%d\n",trafList[i].driver,trafList[i].car,trafList[i].police,trafList[i].num,trafList[i].year,trafList[i].month,trafList[i].date);}}int AddfromText(Traffic trafList[],int n,char *filename) /*从文件中整批输入数据Fun7 第一个参数是定义的结构体数组,第二个参数为记录数,第三个参数为函数名称*/{FILE *fp;int i,t;char c;Traffic s[100];printf("请输入文件名称:");c=getchar();gets(filename);if((fp=fopen(filename,"r"))==NULL){printf("不能打开文件%s !\n",filename);exit(1);}fscanf(fp,"%d",&t);for(i=0;i<t;i++){fscanf(fp,"%s%d%s%d%d%d%d",s[i].driver,&s[i].car,s[i].police,&s[i].num,&s[i].year,&s[i].month,&s[i].date);n=Insert(trafList,n,&s[i]);fprintf(fp,"\n");}fclose(fp);printf("添加数据成功!\n");return n; /*返回从文件中读入数据后记录总数*/}void WritetoText(Traffic trafList[],int n, char *filename)/*将记录写入文件Fun8 第一个参数是定义的结构体数组,第二个参数为记录数,第三个参数为文件名称*/{FILE *fp;int i;char c;printf("请输入文件名称:");c=getchar();gets(filename);if((fp=fopen(filename,"w"))==NULL){printf("不能打开文件%s !\n",filename);exit(2);}fprintf(fp,"%d\n",n);for(i=0;i<n;i++){fprintf(fp,"%s\t\t%d\t%s\t\t%d\t\t%d\t%d\t%d\n",trafList[i].driver,trafList[i].car, trafList[i].police,trafList[i].num,trafList[i].year,trafList[i].month,trafList[i].date);}fclose(fp);printf("保存数据成功!\n");}void main(){int Input(Traffic trafList[],int n); /*函数声明*/void Display(Traffic trafList[],int n);int Delete(Traffic trafList[],int n, char *name);int Detlet_a_record(Traffic trafList[],int n);void Sort_by_Name(Traffic trafList[],int n);int Insert(Traffic trafList[], int n, Traffic *s);int Insert_a_record(Traffic trafList[],int n );int Query(Traffic trafList[],int, char *name);void Query_a_record(Traffic trafList[],int n);int AddfromText(Traffic trafList[],int n,char *filename);void WritetoText(Traffic trafList[],int n, char *filename);Traffic trafList[40];int n=0; /*统计记录数目*/char filename[100];for (;;){switch(menu_select()){case 1: n=Input(trafList,n); system("pause"); break;case 2: Display(trafList,n); system("pause"); break;case 3: n=Delete_a_record(trafList,n); system("pause"); break; case 4: Sort_by_Name(trafList,n); system("pause"); break;case 5: n=Insert_a_record(trafList,n); system("pause"); break;case 6: Query_a_record(trafList,n); system("pause"); break;case 7: n=AddfromText(trafList,n,filename); system("pause"); break; case 8: WritetoText(trafList,n,filename);system("pause"); break; case 0: printf("退出系统!\n"); exit(0);}}}。

交通处罚单管理系统390430459.doc

交通处罚单管理系统390430459.doc

C语言设计实习报告工程学院土木工程052097班姓名:***班号:052097学号:***********题目:交通处罚单管理系统指导老师:***日期: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语言课程设计)

交通处罚单管理系统(C语言课程设计) 交通处罚单管理系统中国地质大学(武汉) 地球科学学院 014072班2010-11-26用C语言编写一个简单的模拟交通处罚单管理系统 [要求]交通处罚单涉及到车辆、驾驶员和开单交警的信息,还有交通处罚单号码、处罚时间等信息;[功能](1) 要求可以输入、删除、浏览交通处罚单信息; (2) 可以按车辆、驾驶员和开单交警查询; (3) 统计某段时间某个驾驶员的交通处罚单数目及交通处罚单号;源代码:#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 车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)\n");printf("\n注意:中间用空格隔开!\n");scanf("%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&lis t[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();}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车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)\n");printf("\n注意:中间用空格隔开!\n");scanf("%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&lis t[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,lis t[j].pname,list[j].pno,list[j].no,list[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("\n没有找到该班号的记录!\n");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("\n没有找到该班号的记录!\n");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("\n没有找到该班号的记录!\n");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();}。

C语言实战应用交通处罚单管理系统

C语言实战应用交通处罚单管理系统

项目不足与改进方向
项目不足:功能不完善,界 面不够友好,操作不够便捷
改进方向:增加更多功能, 优化界面设计,提高操作效

THANK YOU
汇报人:
系统设计
数据库设计
数据库连接:使用合适的数 据库连接方式,如ODBC、 JDBC等
数据库表结构:包括交通处 罚单信息表、车辆信息表、 驾驶员信息表等
数据库查询:使用SQL语句 进行查询和操作
数据库安全性:包括数据加 密、权限管理等
界面设计
用户登录界面:简洁明了,输入用户名和密码即可登录 主界面:列出所有功能选项,方便用户快速找到所需功能 交通处罚单录入界面:提供详细的表单,方便用户录入详细信息 查询界面:支持按日期、车牌号等多种方式查询交通处罚单
交通处罚单管理系统的现状和问题
单击此处输入你的智能图形项正文,文字是您思想的提炼,请尽量言简意赅的阐述观点
交通处罚单管理系统的需求和目标
单击此处输入你的智能图形项正文,文字是您思想的提炼,请尽量言简意赅的阐述观点
交通处罚单管理系统的架构和功能
单击此处输入你的智能图形项正文,文字是您思想的提炼,请尽量言简意赅的阐述观点
除等操作
技术应用:总 结在项目中使 用的技术,如 C语言、数据 结构和算法等
团队协作:强 调团队成员之 间的协作和沟 通,以及在项 目中所遇到的 挑战和解决方

经验教训:总 结在项目中遇 到的问题和经 验教训,为今 后的项目提供
参考和借鉴
项目亮点
实战应用:将C语言应用于交通处罚单管理系统中,具有实际应用价值 系统功能:系统功能全面,涵盖了交通处罚单管理的各个方面 高效性能:系统运行高效,能够快速处理大量的交通处罚单数据 良好的可维护性:系统设计合理,易于维护和升级

交通处罚单管理系统_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语言实习,我深刻认识到了良好的交通管理对于国家的重要性。

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

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.信息储存函数。

void save(){FILE *fp;int i;if((fp=fopen("fadan.txt","w"))==NULL){printf("不能打开");return;}for(i=0;i<M;i++)if(fwrite(&TPB[i],sizeof(struct tranficpunishbill),1,fp)!=1)printf("出错");fclose(fp);}3.信息读取函数。

FILE*fp;if((fp=fopen("fadan.txt","r"))==NULL){printf("不能打开");exit(0);}for(i=0;i<N;i++)fscanf(fp,"%s%s%s%s%s",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[i].cfd,TPB[i].cfsj);fclose(fp);4.信息从键盘输入函数。

void shuru(){int j;printf("请输入数据:\n");for(j=0;j<M;j++)scanf("%s%s%s%s%s",TPB[j].cp,TPB[j].jz,TPB[j].kdjj,TPB[j].cfd,TPB[j].cfsj);save();return 0;}5.信息显示函数。

void liulan(){ FILE*fp;int i,j;if((fp=fopen("fadan.txt","r+"))==NULL){printf("不能打开");exit(0);}system("cls");printf("车牌号驾照号开单交警号处罚单号处罚时间\n");for(i=0,j=0;i<N;i++,j++){fscanf(fp,"%s%s%s%s%s",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[i].cfd,TPB[i].cf sj);printf("%3.2s%10.2s%10.2s%12.2s%12.2s",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[ i].cfd,TPB[i].cfsj);}}6.记录删除函数。

void shanchu(){FILE*fp;int i,k,j=-1;char m[10],d[10],f[10];if((fp=fopen("fadan.txt","r"))==NULL) //打开文件{printf("不能打开");exit(0);}for(i=0;i<N;i++) //读取文件到结构体中fscanf(fp,"%s%s%s%s%s",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[i].cfd ,TPB[i].cfsj);fclose(fp); //关闭文件system("cls");printf("删除模块:");printf("\n\n\n");printf(" ********************************************\n");printf(" * *\n"); printf(" * *\n"); printf(" * *\n"); printf(" * 1.车牌号 2.驾照号 3.开单交警号 *\n"); printf(" * *\n"); printf(" * *\n"); printf(" * *\n");printf(" ********************************************\n");printf("\n\n请输入删除选项:");scanf("%d",&k);if(k==1){printf("请输入车牌号:");scanf("%s",m);for(i=0;i<N;i++)if(strcmp(m,TPB[i].cp)==0)j=i;}else if(k==2){printf("请输入驾照号:");scanf("%s",d);for(i=0;i<N;i++)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;}else if(j==-1)printf("不能打开");if((fp=fopen("fadan.txt","w"))==NULL) /***打开文件***/ {printf("不能打开");exit(0);}for(i=0;i<N;i++) /***写入文件***/ fprintf(fp,"\n%5s%10s%13s%11s%12s",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TP B[i].cfd,TPB[i].cfsj);fclose(fp); /***关闭文件***/}7.信息查询函数。

void chaxun(){int i,k,t=0;char m[10],d[10],f[10];FILE*fp;if((fp=fopen("fadan.txt","r+"))==NULL) //打开文件{printf("不能打开");exit(0);}for(i=0;i<N;i++) //读取文件{fscanf(fp,"%s%s%s%s%s",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[i].cfd ,TPB[i].cfsj);}fclose(fp); //关闭文件system("cls");printf("查询模块");printf("\n\n\n");printf(" ********************************************\n");printf(" * *\n");printf(" * *\n");printf(" * *\n");printf(" * 1.车牌号 2.驾照号 3.开单交警号 *\n");printf(" * *\n");printf(" * *\n");printf(" * *\n");printf(" ********************************************\n");printf("\n\n请输入查询选项:");scanf("%d",&k);//system("cls");if(k==1){printf("请输入车牌号:");scanf("%s",&m);system("cls");for(i=0;i<N;i++){if(strcmp(m,TPB[i].cp)==0){printf("车牌号驾照号开单交警号处罚单号处罚时间\n");printf("%5s%10s%13s%11s%12s\n",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[i].cfd,TPB[i].cfsj);t++;}else if(strcmp(d,TPB[i].jz)!=0) printf("\n");}}else if (k==2){printf("请输入驾照号:");scanf("%s",&d);system("cls");for(i=0;i<N;i++){if(strcmp(d,TPB[i].jz)==0){printf("车牌号驾照号开单交警号处罚单号处罚时间\n");printf("%5s%10s%13s%11s%12s\n",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[i].cfd,TPB[i].cfsj); t++;}else if(strcmp(d,TPB[i].jz)!=0) printf("\n");}}else if (k==3){printf("请输入开单交警号:");scanf("%s",&f);system("cls");for(i=0;i<N;i++){if(strcmp(f,TPB[i].kdjj)==0){printf("车牌号驾照号开单交警号处罚单号处罚时间\n");printf("%5s%10s%13s%11s%12s\n",TPB[i].cp,TPB[i].jz,TPB[i].kdjj,TPB[i].cfd,TPB[i].cfsj); t++;}else if(strcmp(f,TPB[i].kdjj)!=0) printf("\n");}}}8.信息统计函数。

相关文档
最新文档