欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    交通处罚单管理系统(共33页).doc

    • 资源ID:16677717       资源大小:140.50KB        全文页数:33页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    交通处罚单管理系统(共33页).doc

    精选优质文档-倾情为你奉上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 filen"); exit(0);/调用此函数时必须包含<stdlib.h> printf("请输入车牌号码:n"); scanf("%d",&danNUM .chepai); printf("请输入驾驶员姓名:n"); scanf("%s",danNUM .name); printf("请输交警ID:n"); scanf("%d",&danNUM .id); printf("请输入开单日期(以年/月/日形式输入):n"); scanf("%d/%d/%d",&dani.date.year,&dani.date.month,&dani.date.day); printf("请输入处罚单号:n"); scanf("%d",&danNUM .num); for (i=0;i<=NUM;i+) if(fwrite(&dani,sizeof(struct cfd),1,fp)!=1)printf("file write errorn"); /此处for循环的作用是:在每次调用输入函数时都能够把结构体数组中已有的数据和本次输入的数据都记录在文件data.txt中 printf("已经有%d个罚单n",i); NUM+;/NUM用来记录罚单总数,每调用一次输入函数NUM就加一 fclose(fp);【删除罚单模块】:按操作者的指令在结构体数组中找到删除的信息,把结构体数组中的信息抄到文件中去忽略要删除的信息达到要删除的目的。【流程图】:输入要删除的罚单号通过for循环在结构体数组找到与之对应的信息for循环,i= =c?若i= =c抄入文件若i!=c不抄入文件【程序】:void shanchu()int i;int c;/待删除罚单号码int w;/删除处罚单号FILE *fp;printf("请输入要删除的处罚单号:");scanf("%d",&w);fp=fopen("data.txt","rb");for(i=0;i<NUM;i+)if(w=dani.num) /查找要删除的罚单号码c=i; /待删除罚单号码fclose(fp);fp=fopen("data.txt","wb");for(i=0;i<NUM;i+)if(i!=c)fwrite(&dani,sizeof(struct cfd),1,fp); /如果罚单号与待删除罚单号不同,就写入文件 /此处for循环的作用是:从文件中把待删除的信息删除NUM-;/全局变量更新printf("删除成功n罚单号是%dn",danc.num );fclose(fp);【信息浏览模块】:把储存在文件中信息全部输出。【程序】:void liulan()int i;FILE *fp;fp=fopen("data.txt","rb");printf("已有%d个罚单",NUM);for(i=0;i<NUM;i+)if(fread(&dani,sizeof(struct cfd),1,fp)printf("第%d罚单信息n",i+1);prntf(i);else break;fclose(fp);【信息查询模块】:用户根据界面的提示选择查询方式,并根据进一步的提示进行相关输入,程序根据用户输入的信息通过for循环找到与之相对应的信息,并输出相关信息。【流程图】:根据提示输入查询方式按警察ID查询按司机姓名查询按车牌号查询通过循环找到与之对应的信息,并将之输出【程序】:void chaxun()int i,w,x,flag;FILE *fp;char v8; /驾驶员名字printf("请输入你想查询的信息:n");printf("1 - 按车牌号查询n");printf("2 - 按司机姓名查询n");printf("3 - 按警察ID查询n");scanf("%d",&x);flag=0;/查找成功的标志,查找成功FLAG=1if(x=3)printf("请输入要查询的警察ID:n");scanf("%d",&w);fp=fopen("data.txt","rb");for(i=0;i<NUM;i+)if(fread(&dani,sizeof(struct cfd),1,fp)!=1) break;if(dani.id=w)prntf(i);flag=1;break;if(flag=0)printf("找不到此处罚单信息!n");fclose(fp);else if(x=2)printf("请输入要查询的司机姓名:n");scanf("%s",v);fp=fopen("data.txt","rb");for(i=0;i<NUM;i+)if(fread(&dani,sizeof(struct cfd),1,fp)!=1) break;if(strcmp(dani.name,v)=0) /使用此函数时必须包含string.hprntf(i);flag=1;break;if(flag=0)printf("找不到此处罚单信息!n");fclose(fp);else if(x=1)printf("请输入要查询的车牌号:n");scanf("%d",&w);fp=fopen("data.txt","rb");for(i=0;i<NUM;i+)if(fread(&dani,sizeof(struct cfd),1,fp)!=1) break;if(dani.num=w)prntf(i);flag=1;break;if(flag=0)printf("找不到此处罚单信息!n");fclose(fp);else printf("输入错误!n");信息统计模块:用户根据提示输入驾驶员姓名和一个时间段,程序将对储存在文件中的信息逐个进行检验看其是否与输入的信息相对应,若相对应,就会将其输出,并使统计变量加一,最终输出此驾驶员在此时间段内总共有多少罚单。【流程图】:输入驾驶员姓名输入要统计的时间段通过循环将文件中的每一个信息与输入条件对比,判断是否满足。输出满足条件的罚单号,并每输出一个罚单号使统计变量加一。输出驾驶员此段时间罚单总数【程序】:void tongji() int a1,b1,c1;/ 分别用来表示起始时间的年、月、日int a2,b2,c2;/ 分别用来表示截止时间的年、月、日int t;/用来统计驾驶员在此时间段的罚单个数int i;char v8;/要对其进行统计的驾驶员姓名printf("请输入驾驶员姓名:");scanf("%s",v);printf("请输入要统计的时间段(以年/月/日的形式表示日期):n");printf("请输入起始日期:");scanf("%d/%d/%d",&a1,&b1,&c1);printf("截止时间日期:");scanf("%d/%d/%d",&a2,&b2,&c2);for(i=0;i<=NUM;i+)if(strcmp(v,dani.name)=0)if(dani.date.year>a1&&dani.date.year<a2)printf("%dn",dani.num);t+;else if(dani.date.year>a1&&dani.date.year=a2)if(dani.date.month<b2)printf("%dn",dani.num);t+;else if(dani.date.month=b2&&dani.date.day<=c2)printf("%dn",dani.num);t+;else if(dani.date.year=a1&&dani.date.year<a2)if(dani.date.month>b1)printf("%dn",dani.num);t+;else if(dani.date.month=b1&&dani.date.day=c2)printf("%dn",dani.num);t+;else if(dani.date.year=a1&&dani.date.year=a2)if(dani.date.month>b1&&dani.date.month<b2)printf("%dn",dani.num);t+;else if(dani.date.month>b1&&dani.date.month=b2&&dani.date.day<=c2)printf("%dn",dani.num);t+;else if(dani.date.month=b1&&dani.date.month<b2&&dani.date.day>=c2)printf("%dn",dani.num);t+;else if(dani.date.month=b1&&dani.date.month=b2)if(dani.date.day>=c1&&dani.date.day<=c2)printf("%dn",dani.num);t+;/此处for循环的作用是:将文件中的罚单信息与输入的驾驶员姓名和时间段进行比较,如果吻合就输出罚单信息,直到将所有满足条件的信息全部输出printf("从%d/%d/%d到%d/%d/%d这段时间内司机",a1,b1,c1,a2,b2,c2);puts(v);printf("共有罚单数目是:%dn",t);【信息输出模块】:由于程序中有多处都需要用到信息输出功能,为了使程序简洁明了,将信息输出拿出来,作为一个单独的模块供其它地方调用。【程序】:void prntf(int i)printf("处罚单号:%dn",dani.num);printf("车牌号码:%dn",dani.chepai);printf("司机姓名:");puts(dani.name);printf("警察I D :%dn",dani.id);printf("处罚时间:%d/%d/%d",dani.date.year,dani.date.month,dani.date.day);printf("-n");第五部分:程序设计数据、运行结果程序主界面:为用户提供输入操作的提示,输入相应的数字可以进入相应的下级菜单。选择信息输入模块后的执行结果。选择信息浏览模块后的显示结果。选择信息查询模块后并进行相关输入显示的结果。选择信息统计模块后并进行相关输入得到的结果。选择信息删除模块后,删除相关信息后显示的结果。第六部分:附录(源代码)#include <stdio.h>#include <string.h>#include <stdlib.h>int NUM=0;struct cfd int num; int chepai; char name8;long int id;struct timeint year;int month;int day;date; dan1000;void prntf(int i)printf("处罚单号:%dn",dani.num);printf("车牌号码:%dn",dani.chepai);printf("司机姓名:");puts(dani.name);printf("警察I D :%dn",dani.id);printf("处罚时间:%d/%d/%d",dani.date.year,dani.date.month,dani.date.day);printf("-n");void shuru() FILE *fp; int i=0; if(fp=fopen("data.txt","wb")=NULL) printf("Can not open the filen"); exit(0);/调用此函数时必须包含<stdlib.h> printf("请输入车牌号码:n"); scanf("%d",&danNUM .chepai); printf("请输入驾驶员姓名:n"); scanf("%s",danNUM .name); printf("请输交警ID:n"); scanf("%d",&danNUM .id); printf("请输入开单日期:n"); scanf("%d %d %d",&dani.date.year,&dani.date.month,&dani.date.day); printf("请输入处罚单号:n"); scanf("%d",&danNUM .num); for (i= 0;i<=NUM;i+) if(fwrite(&dani,sizeof(struct cfd),1,fp)!=1)printf("file write errorn"); printf("已经有%d个罚单n",i); NUM+; fclose(fp);void shanchu() int i; int c;/待删除罚单号码 int w;/删除处罚单号 FILE *fp; printf("请输入要删除的处罚单号:"); scanf("%d",&w); fp=fopen("data.txt","rb"); for(i=0;i<NUM;i+) if(w=dani.num) /查找要删除的罚单号码 c=i; /待删除罚单号码 fclose(fp); fp=fopen("data.txt","wb"); for(i=0;i<NUM;i+) if(i!=c) fwrite(&dani,sizeof(struct cfd),1,fp); NUM-;/全局变量更新 for(i=0;i<NUM;i+) fread(&dani,sizeof(struct cfd),1,fp); printf("删除成功n罚单号是%dn",danc.num ); fclose(fp);void liulan() int i; FILE *fp; fp=fopen("data.txt","rb"); printf("已有%d个罚单",NUM); for(i=0;i<NUM;i+) printf("第%d罚单信息n",i+1); prntf(i); fclose(fp);void chaxun() int i,w,x,flag; FILE *fp;char v8; /驾驶员名字printf("请输入你想查询的信息:n"); printf("1 - 按车牌号查询n"); printf("2 - 按司机姓名查询n");printf("3 - 按警察ID查询n");scanf("%d",&x); flag=0;/查找成功的标志,查找成功FLAG=1if(x=3) printf("请输入要查询的警察ID:n"); scanf("%d",&w); fp=fopen("data.txt","rb"); for(i=0;i<NUM;i+) if(fread(&dani,sizeof(struct cfd),1,fp)!=1) break; if(dani.id=w) prntf(i);flag=1;break; if(flag=0)printf("找不到此处罚单信息!n"); fclose(fp);else if(x=2) printf("请输入要查询的司机姓名:n"); scanf("%s",v); fp=fopen("data.txt","rb"); for(i=0;i<NUM;i+) if(fread(&dani,sizeof(struct cfd),1,fp)!=1) break; if(strcmp(dani.name,v)=0) prntf(i);flag=1;break; if(flag=0)printf("找不到此处罚单信息!n"); fclose(fp); else if(x=1) printf("请输入要查询的车牌号:n"); scanf("%d",&w); fp=fopen("data.txt","rb"); for(i=0;i<NUM;i+) if(fread(&dani,sizeof(struct cfd),1,fp)!=1) break; if(dani.num=w) prntf(i);flag=1;break; if(flag=0)printf("找不到此处罚单信息!n"); fclose(fp);else printf("输入错误!n"); void tongji() int a1,b1,c1;int a2,b2,c2;int t;int i; char v8;printf("请输入驾驶员姓名:");scanf("%s",v);printf("请输入要统计的时间段(以年/月/日的形式表示日期):n");printf("请输入起始日期:");scanf("%d/%d/%d",&a1,&b1,&c1);printf("截止时间日期:");scanf("%d/%d/%d",&a2,&b2,&c2);for(i=0;i<=NUM;i+)if(strcmp(v,dani.name)=0)if(dani.date.year>a1&&dani.date.year<a2)printf("%dn",dani.num);t+;else if(dani.date.year>a1&&dani.date.year=a2)if(dani.date.month<b2)printf("%dn",dani.num);t+;else if(dani.date.month=b2&&dani.date.day<=c2)printf("%dn",dani.num);t+;else if(dani.date.year=a1&&dani.date.year<a2)if(dani.date.month>b1)printf("%dn",dani.num);t+;else if(dani.date.month=b1&&dani.date.day=c2)printf("%dn",dani.num);t+;else if(dani.date.year=a1&&dani.date.year=a2)if(dani.date.month>b1&&dani.date.month<b2)printf("%dn",dani.num);t+;else if(dani.date.month>b1&&dani.date.month=b2&&dani.date.day<=c2)printf("%dn",dani.num);t+;else if(dani.date.month=b1&&dani.date.month<b2&&dani.date.day>=c2)printf("%dn",dani.num);t+;else if(dani.date.month=b1&&dani.date.month=b2)if(dani.date.day>=c1&&dani.date.day<=c2)printf("%dn",dani.num);t+;printf("从%d/%d/%d到%d/%d/%d这段时间内司机",a1,b1,c1,a2,b2,c2);puts(v);printf("共有罚单数目是:%dn",t);void main()int a; while(1) printf("欢迎来到交通处罚单管理系统!请输入您的操作(0-5):n信息输入(1)n信息删除(2)n信息浏览(3)n信息查询(4)n信息统计(5)n退出(0)n"); printf("请输入你的操作:") scanf("%d",&a); if(a=0) break; switch(a) case 1:shuru();break; case 2:shanchu();break; case 3:liulan();break; case 4:chaxun();break; case 5:tongji();break; default : printf("illegal inpute!"); 第七部分:结束语一个星期的C语言课程设计结束了,在这几天的时间里,我自己独立完成了一个程序从构思结构,到编写代码,然后上机调试运行的过程,感觉自己收获很大。通过解决一个又一个的问题,熟悉了C语言的应用,对计算机语言应用的理解又深了一层,在老师的指导下,学会了模块设计的方法,用流程图表示算法,掌握了用C语言进行程序设计的能力。在设计过程中,我理解了对于一个较大的程序,不可能一次编写出一个较大的系统,通常要采取自顶向下的设计思想,先设计主函数,再通过完善一个个的功能模块来完成程序的设计过程,在设计过程中要充分理解整个程序的设计思路,采用逐步细化的方式来完成整个程序。专心-专注-专业

    注意事项

    本文(交通处罚单管理系统(共33页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开