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语言交通处罚单管理系统

}
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语言程序设计之交通处罚单管理系统报告(内含代码)

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.信息储存函数。
交通处罚单管理系统(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语言版交通管理系统》课程设计实验指导

任务四:数据更新与删除模块
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语言实习报告一、实习背景我在大学期间学习了计算机科学与技术专业,其中涉及的编程语言有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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计课程设计材料学生姓名:王嘉廉学号:*********** 系(院):信息工程学院专业:信息管理与信息系统设计(论文)题目: 交通处罚单管理系统完成日期: 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(),输入想要查询的方式,用三种方式查询交通处罚单基本信息。
(4)交通处罚单基本信息统计:构造函数void tongji(),对文件中所有的交通处罚单进行精确统计。
(5)交通处罚单基本信息删除:构造函数void shanchu(),通过输入书名,判断此交通处罚单是否存在,若存在,则删除该交通处罚单所有信息,然后再把剩下的交通处罚单信息保存到文件。
系统功能模块图图一四、详细设计结构体定义如下:#define N 500struct chufadan{int num; /*处罚单号码*/int chepai; /*车牌号码*/char name[10]; /*驾驶员名字*/int id; /*开单警察的信息ID*/int year;int month;int day; /*处罚时间为年月日排列*/}chufadan[N]; /*dan[500]中每个数组元素对应一个处罚单信息*/(一)信息输入函数:图2 信息录入功能流程图(三)信息删除函数:图3 信息删除功能流程图图4 信息查询功能流程图(四)统计功能函数:图5 信息统计功能流程图开始打开文件逐条输出交通处罚单信息。
输出满足条件的罚单结束图6 信息浏览功能流程图五、运行结果主菜单界面图7输入建立模块图8 查询模块图9浏览模块图10统计模块图11删除模块图12六、程序调试自从把整体的c语言处罚单管理系统编成以后,就开始进行调试。
调试的过程中不知道修改了多少次源代码,为了能让交通处罚单管理系统在输入任何代码的情况下都能正常使用,不会出错,反复的修改,看书,查资料,询问同学调试之后,终于运行成功。
主要克服了以下问题:(1)怎么样把交通处罚单数据输入文件中。
(2)通过主函数把其他的函数连接起来,形成一个完整的有序的程序。
(3)难度最大的是统计模块,算法十分复杂。
七、编程体会老师布置完程序设计任务的第二天,我就开始寻找题目准备入手,见到交通处罚单管理系统这个课题以后,我对此很感兴趣。
于是,当天下午开始做准备工作,重新把c语言复习一遍,开始编程。
起初是挺困难的,偌大的一个程序,我之前从未编过,无从下手,然后,我通过查资料,了解其大概模型,首先是把管理系统所含有的功能各自分成几个模块,建立一个主函数,把主函数和其他数个函数连接起来。
我想好了做输入、查询、浏览、删除、统计这五个功能,先把主函数完成,另外设计一个主界面。
一开始真的困难重重,虽然c语言复习过了,但是看书看懂了和真正的运用学到的知识写程序是完全不同的,不断的对照例题,不断的尝试与修改。
当我把所有的功能完成以后,已经花了将近五天的时间,结果,编程程序检查我的源代码时候,有超过一百个错误。
我顿时绝望了。
我自己做的程序,我很想把它做好,我一个一个的检查,发现原来是我的结构体没有设置好,导致系统无法识别后面的源代码。
对照书本上结构体例题把结构体给完成,剩下的便是一些小毛病。
陆陆续续的修改了几天,最后一刻,发现程序能够运行了,我心情顿时兴奋澎湃了!源代码#include<stdio.h>#include<stdlib.h>#include <string.h>#define N 1000void shurujianli();void liulan();void chaxun();void tongji();void shanchu();void printf_back();void menu();void main(){int n;while(1){menu();scanf("%d",&n);switch(n){case 1:shurujianli();break; /*建立新的罚单 */ case 2:shanchu();break; /*删除处罚单 */case 3:liulan();break; /*浏览交通处罚单相关信息*/case 4:chaxun();break; /*查询交通处罚单相关信息 */case 5:tongji();break; /*交通处罚单数据统计 */ case 6:exit(0); /*退出*/return;}}}void menu(){{printf(" \n ");printf(" 欢迎来到交通处罚单管理系统!\n" );printf("*******************************************************************************\n");printf( " 1. 建立新的罚单\n" );printf( " 2. 删除交通处罚单\n" );printf( " 3. 浏览交通处罚单相关信息 \n" );printf( " 4. 查询交通处罚单相关信息 \n" );printf( " 5. 统计交通处罚单数据信息 \n" );printf( " 6. 退出\n" );printf( "************************************************* ******************************\n" );printf("\t\t\t请输入您的操作(1-6):[ ]\b\b");}}struct chufadan{int num; /*处罚单号码*/int chepai; /*车牌号码*/char name[10]; /*车主名字*/int id; /*开单警察的信息ID*/int year;int month;int day; /*处罚时间为年月日排列*/}chufadan[N]; /*dan[500]中每个数组元素对应一个处罚单信息*/void shurujianli() /*输入建立模块*/{int i,j,k;int NUM;FILE *fp; /*打开文件,定义指向文件的指针变量*/if((fp=fopen("data.txt","r"))==NULL){if((fp=fopen("data.txt","w"))==NULL){printf("无法打开文件!\n");exit(0);}printf("------------------------输入建立模块-----------------------------\n");printf("\n你要输入多少条处罚单信息:");scanf("%d",&j);printf("\n\n请依次输入罚单信息:\n\n");for(i=0;i<j;i++){printf("请输入车牌号码:\n");scanf("%d",&chufadan[i].chepai);printf("请输入车主姓名:\n");scanf("%s",chufadan[i].name);printf("请输交警ID:\n");scanf("%d",&chufadan[i].id);printf("请输入开单日期:年.月.日\n");scanf("%d.%d.%d",&chufadan[i].year,&chufadan[i].month,& chufadan[i].day);printf("请输入处罚单号:\n");scanf("%d",&chufadan[i].num);printf("\n\n");printf("-----------------------------------------------------------------\n");fprintf(fp,"\n%5d %5d %10s %5d %d.%d.%d",chufadan[i].num,chufadan[i].chepai,chufadan[i].name,chu fadan[i].id,chufadan[i].year,chufadan[i].month,chufadan[i] .day);}printf("输入信息成功!\n");fclose (fp);printf_back();}printf("------------------------输入建立模块-----------------------------\n");fp=fopen("data.txt","r");for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%5d %5d %10s %5d %d.%d.%d",&chufadan[i].num,&chufadan[i].chepai,chufadan[i].name,& chufadan[i].id,&chufadan[i].year,&chufadan[i].month,&chufa dan[i].day);}fp=fopen("data.txt","a");printf("\n你要输入多少条处罚单信息:");scanf("%d",&j);NUM=i+j;if(NUM>N){printf("您输入的所有数据超过储存最大限额!/n请联系管理系统开发人员。