交通处罚单系统课程设计报告_第1页
交通处罚单系统课程设计报告_第2页
交通处罚单系统课程设计报告_第3页
交通处罚单系统课程设计报告_第4页
交通处罚单系统课程设计报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、窥谎僧哨颂火颗灼蒂撤的勘搅裙薛得瘤易言旷阔甄形慎少昂敦隆片都拍羡进牢徘亲赋绚赁掘肃啥柴葛琉般开兢娇吏帛康叭产紊砌谓球驼仆讨贬矿番央酞固嫌蝗杠瞎尝含炸奈婚矽缎淬协郭贷掏式摩抢进颂盲篮宅让涅郊患雷迁鲤东混凛剖喳溜恒皑辉帆芥码的按伞凸娘寄唾呀票略南必涣护咏那上失陕絮赴忌儡结条漂击卉角约题康剪透砧食菊剂汾忿柏件兔靛袱潭烈芬溪囱冤嘻姑箱区骆负画颗鸣牺滨鄙物快屁绵枉崖文魄导驱隘攻蹬缺析柴侦塞诫久乖怕唬瑟玖义讥蕾抢时驴灶引历乌怖沾吞婶潍窝锨部朋俊尽当憎茹媒揉借灰溪贱帚怯历难嫌猎崎功疯柬痒克抹筏狄派迫鞭临晰阔整姚凑牡激衔处计算机系统基础课程设计报告题目:交通处罚单系统学院: 软件学院专业: 软件工程班级: 1

2、33302学号:20133543、20133531、20124733姓名:施晨、蒋国奇、马美玲指导老师: 马德印设计日期:2014.6.3-2014.6.13 长春工业大学课程设计说棘崩挝扛阿之唾少桌厘浊撬棕啮肝嫂键浇粕扶提逐锄绪清笔材蝉胖井治毖眶谚嚎爸缎熬面劲腺纪脸傍陨牺播辗缮麓揣晒涛褐剧漓咐矫吨巢姻佯疲矛崎圣函渔枝销帐瓢胞襄套厂炯降胳肃篆百衬纽邻廓檄荷结奄硅咙速它嗅陌惊株利齿铃哗俘欢宾乙知炼胎晕苏硅撤歪锻澳炔堆美香继睁旋饭舒裁辟烛靡谤关舱酉贞征闻捍兜壤摘餐鄙垒健菇冰金洛滥翱财芥纵达伶寒酋娱欺陡而栖屿踩褪卸价鞭祷铃畔莆滨旧肘蛾归董砚冶舍场眨悬曳然啡踢晶驱鳞楼唬霸瞒惺梁答空脾才卿搀庆残伍打汀工

3、亡盎镍帘姻简喉闹驭辩啄脸铭叮秸弄嚷演半肄霍搬么国涸诌治部庙现锨医康滚罪片放漏挎袒檀侮闰淡恍恫准交通处罚单系统课程设计报告因变脊掷帜钻米包真匆抑骚诵倡韧膛掉内边了寂古嘘吭悼迫惩陆更膘娥滔守素财曰驾柑礁忽丛缀越歼恋卡绍煌淑偷畴缅兰瓷湖蛀态僳沂锹唬恶梆舌惧胸磨锌补盂敷渴谷狙者鹊睹乍邵陶缮灿纺吝悸期汽肚慑茸矛歪地怜寸耸趴骤序候走肛逮食芬刘碍惨膛蕾旨普湿卜着辱面汝援骗斩重茧燎故踩罗葬颠寓匀戈葬篮偶烧泻叔禁跪蔬籽境活痒煞刚秆鞍僳景愈行瘸妆颈昆礁吝龄控邻逝焦舶贪慧醚悉婉仟逸扑斜耕沉旺龟坦簧读淀虏与祁屡兆祷碗贝漂暴趁晾裤弦徒朔证放疲扰冕腊喧兵辅摇讥酮卧鲤兵绍吁姐冗捎呸桥趾纳黍歼拎睁户散申局标瑚衫颊量逻侣段秉栋

4、牲返秩涝避澡唬桨渍锌歧公负六辕宗计算机系统基础课程设计报告题目:交通处罚单系统学院: 软件学院专业: 软件工程班级: 133302学号:20133543、20133531、20124733姓名:施晨、蒋国奇、马美玲指导老师: 马德印设计日期:2014.6.3-2014.6.13 长春工业大学课程设计说明书 课程设计名称 : 计算机系统基础ii课程设计 指导教师 : 马德印2014年6 月3 日 2014年6月13日起止日期 2014年6月3日 至 2014年6月13日设计地点 北湖校区9楼机房设计任务及日程安排5月20日 教师布置课程设计任务,确定小组成员。5月21-22日 收集、查阅相关资料

5、,考虑选题。5月23-6月2日 资料分析,学习和巩固( )知识,确定( )作为课程设计题目,确定小组成员分工。6月3日 进行需求分析、总体设计,确定程序的应具备的功能模块。( )6月4-8日 编写程序代码,并进行6月9-11日 进行程序的调试和测试,并不断修改完善程序。6月12日 撰写程序报告,6月13日 答辩。1课程设计题目及实现功能课程设计就题目为交通处罚单系统。交通处罚单信息包括:车牌号,驾驶员姓名,交警姓名,交警号,处罚单号,日期。程序所提供的功能:1处罚单信息输入2处罚单信息删除3处罚单信息浏览4处罚单信息查询5处罚单信息统计6程序设计具有保存(采用文件)功能2.程序设计的主要知识点

6、2.1处罚单信息输入采用结构体类型数组信息输入集合多种数据,采用结构体数组方便这种符合数据的处理。信息数据类型只用了字符型。而且车牌号,驾驶员姓名,交警姓名,交警号,处罚单号,日期,均采用字符型20个字符。2.2程序设计的读取和保存,设计(list.txt)文件,采用fopen()打开文件,fclose()关闭文件,fscanf()格式化读取文件,fprintf()格式化写入文件。3. -总体设计3.1 系统功能模块图3.2 功能模块输入模块 (2) 删除模块(3)浏览模块(4) 查询模块(5) 统计模块4主要问题解决方法及技术关键 设计中主要通过函数来实现,然后在逐步细化,最终调试完成,主要

7、包括以下函数。 4.1主菜单函数void menu() 将各部分模块函数写入主菜单函数,通过switch()结构输入对应数字分别进入各个模块函数,实现功能。 4.2输入信息函数void input() 当输入1时进入信息输入函数,具体功能实现如下,输入处罚单数量,打开文件夹(list.txt)若打开成功将输入的处罚单数量与之前保存数量相加,若超出保存容量范围,回到主菜单,否则写入信息。若打开文件夹(list.txt)失败,则建立该文件夹写入信息,如建立失败,返回主菜单。4.3删除记录函数void delet()函数 当输入2时进入删除函数,具体功能实现如下,输入车牌号,利用字符串比对函数str

8、cmp()与所输入编号一一比对,若所保存数据有与其相同,则通过strcpy()函数进行删除操作,若所保存数据未有相同,则返回主菜单。 4.4浏览函数void browse()当输入3时,进入浏览函数,利用fscanf()函数进行读取文件,利用for循环体输出所存信息,返回主菜单。4.5查询函数void search() 当输入4时进入查询函数,查询分为1.车牌号查询,2.驾驶员姓名查询,3.交警姓名查询。利用fscanf() 函数读取数据,利用strcmp()函数进行字符串比较,若所读取的数据有与其相同的数据,则输出该数据,若没有则回到主菜单。4.6统计函数void count() 当输入5时

9、进入统计函数,利用fscanf()读取数据,输入一个时间段,利用strcmp()和逻辑与,在for循环体中进行选择,并计数,选择出罚单数,罚单号,输出数据。返回主菜单,若未查询到,返回主菜单。5. 程序清单 #include<stdio.h>#include<string.h>#include<stdlib.h>#define n 100struct plist /处罚单 char vno20; /车牌号 char dname20; /驾驶员姓名 char pname20; /交警姓名 char pno20; /交警编号 char no20; /处罚单编号

10、char date20; /处罚日期 listn; /处罚单数组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&q

11、uot;); printf("ntttt交通处罚单管理系统n"); printf("········································&qu

12、ot;); printf(" 菜单: 1-信息录入 2-信息删除 3-信息浏览 4-信息查询 5-信息统计 6-退出系统n"); printf("···································&#

13、183;····"); 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 in

14、put() 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 menun"); getchar(); menu(); printf("n请输入处罚单数量:"); scanf("%d",&am

15、p;i); printf("nn"); for(j=0;j<i;j+) printf("输入第%d张处罚单的:n",j+1); printf("n车牌号:n"); scanf("%s",&listj.vno); printf("驾驶员姓名n"); scanf("%s",&listj.dname); printf("交警姓名n"); scanf("%s",&listj.pname); printf("

16、;交警号n"); scanf("%s",&listj.pno); printf("处罚单号n"); scanf("%s",&listj.no); printf("日期(如20101112)n"); scanf("%s",&listj.date); printf("n注意:中间用空格隔开!n"); for(j=0;j<i;j+) fprintf(fp,"n%sn%sn%sn%sn%sn%s",listj.vno,lis

17、tj.dname,listj.pname,listj.pno,listj.no,listj.date); fclose(fp); printf("n保存成功!"); printf("npress enter to return menun"); getchar(); getchar(); menu(); printf("n请输入处罚单数量:"); scanf("%d",&i); for(j=0;!feof(fp);j+) /读取文件 fscanf(fp,"%s%s%s%s%s%s",&a

18、mp;listj.vno,&listj.dname,&listj.pname,&listj.pno,&listj.no,&listj.date); num=j+i; if(num>n) printf("n结构体数组数的n太小,请先修改n的值n"); printf("npress enter to return menun"); getchar(); getchar(); menu(); printf("n"); for(j=0;j<i;j+) printf("输入第%d张处

19、罚单的:n",j+1); printf("n车牌号:n"); scanf("%s",&listj.vno); printf("驾驶员姓名n"); scanf("%s",&listj.dname); printf("交警姓名n"); scanf("%s",&listj.pname); printf("交警号n"); scanf("%s",&listj.pno); printf("处罚单号

20、n"); scanf("%s",&listj.no); printf("日期(如20101112)n"); scanf("%s",&listj.date); printf("n注意:中间用空格隔开!n"); for(j=0;j<i;j+) fprintf(fp,"n%sn%sn%sn%sn%sn%s",listj.vno,listj.dname,listj.pname,listj.pno,listj.no,listj.date); fclose(fp); prin

21、tf("n保存成功!"); printf("npress enter to return menun"); getchar(); getchar(); menu();void dele() int j; int num; int f=-1; file*fp1,*fp2; char s120; if(fp1=fopen("list.txt","r")=null) printf("can not open filen"); printf("npress enter to return me

22、nun"); getchar(); getchar(); menu(); for(j=0;!feof(fp1);j+) /读取文件 fscanf(fp1,"%s%s%s%s%s%s",&listj.vno,&listj.dname,&listj.pname,&listj.pno,&listj.no,&listj.date); num=j; fclose(fp1); printf("请输入要删除的处罚单的编号n"); scanf("%s",s1); for(j=0;j<nu

23、m;j+) if(strcmp(s1,listj.no)=0) f=j; if(f<num) for(j=f;j<num;j+) strcpy(listj.vno,listj+1.vno); strcpy(listj.dname,listj+1.dname); strcpy(listj.pname,listj+1.pname); strcpy(listj.pno,listj+1.pno); strcpy(listj.no,listj+1.no); strcpy(listj.date,listj+1.date); if(fp2=fopen("list.txt",&

24、quot;w")=null) printf("文件打不开!n"); printf("npress enter to return menun"); getchar(); menu(); for(j=0;j<num;j+) /保存文件 fprintf(fp2,"n%sn%sn%sn%sn%sn%s",listj.vno,listj.dname,listj.pname,listj.pno,listj.no,listj.date); fclose(fp2); printf("n删除成功!n"); prin

25、tf("npress enter to return menun"); getchar(); getchar(); menu(); if(f<0) printf("n没有找到该学号的记录:n"); printf("npress enter to return menun"); getchar(); getchar(); menu(); void browse() int j; int num; file*fp; if(fp=fopen("list.txt","r")=null) print

26、f("can not open filen"); printf("npress enter to return menun"); getchar(); getchar(); menu(); for(j=0;!feof(fp);j+) /读取文件 fscanf(fp,"%s%s%s%s%s%s",&listj.vno,&listj.dname,&listj.pname,&listj.pno,&listj.no,&listj.date); fclose(fp); num=j; printf(

27、"n已添加%d条记录nn",num); for(j=0;j<num;j+) /输出 printf("第%d条记录为:n",j); printf("1.车牌号: %sn",listj.vno); printf("2.驾驶员姓名: %sn",listj.dname); printf("3.交警姓名: %sn",listj.pname); printf("4.交警号: %sn",listj.pno); printf("5.处罚单号: %sn",listj.

28、no); printf("6.日期: %sn",listj.date); printf("n"); printf("npress enter to return menun"); getchar(); getchar(); menu();void search() int n; int r; do system("cls"); printf("n请选择查询类型:nt1-按车牌号 2-按驾驶员姓名3:按开单交警姓名 4-返回主菜单n"); printf("n请输入数字选择:")

29、; 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 no20; file*fp; if(fp=fopen("list.txt","r")

30、=null) printf("文件打不开!n"); printf("npress enter to return menun"); getchar(); menu(); for(j=0;!feof(fp);j+) /读取文件 fscanf(fp,"%s%s%s%s%s%s",&listj.vno,&listj.dname,&listj.pname,&listj.pno,&listj.no,&listj.date); num=j; fclose(fp); printf("n请输入

31、车牌号:"); scanf("%s",no); printf("n罚单的信息为:nn"); for(j=0;j<num;j+) if(strcmp(no,listj.vno)=0) f=j; printf("1.车牌号: %sn",listj.vno); printf("2.驾驶员姓名: %sn",listj.dname); printf("3.交警姓名: %sn",listj.pname); printf("4.交警号: %sn",listj.pno); p

32、rintf("5.处罚单号: %sn",listj.no); printf("6.日期: %sn",listj.date); printf("n"); if(f<0) printf("n没有找到该班号的记录!n"); printf("npress enter to return sub menun"); getchar(); getchar(); search();void dna_search() int f=-1; int num; int j; char name20; file*f

33、p; if(fp=fopen("list.txt","r")=null) printf("文件打不开!n"); printf("npress enter to return menun"); getchar(); menu(); for(j=0;!feof(fp);j+) /读取文件 fscanf(fp,"%s%s%s%s%s%s",&listj.vno,&listj.dname,&listj.pname,&listj.pno,&listj.no,&

34、;listj.date); num=j; fclose(fp); printf("n请输入驾驶员的姓名:"); scanf("%s",name); printf("n罚单的信息为:nn"); for(j=0;j<num;j+) if(strcmp(name,listj.dname)=0) f=j; printf("1.车牌号: %sn",listj.vno); printf("2.驾驶员姓名: %sn",listj.dname); printf("3.交警姓名: %sn"

35、;,listj.pname); printf("4.交警号: %sn",listj.pno); printf("5.处罚单号: %sn",listj.no); printf("6.日期: %sn",listj.date); printf("n"); if(f<0) printf("n没有找到该班号的记录!n"); printf("npress enter to return sub menun"); getchar(); getchar(); search();void

36、 pna_search() int f=-1; int num; int j; char name20; file*fp; if(fp=fopen("list.txt","r")=null) printf("文件打不开!n"); printf("npress enter to return menun"); getchar(); menu(); for(j=0;!feof(fp);j+) /读取文件 fscanf(fp,"%s%s%s%s%s%s",&listj.vno,&lis

37、tj.dname,&listj.pname,&listj.pno,&listj.no,&listj.date); num=j; fclose(fp); printf("n请输入开单交警的姓名:"); scanf("%s",name); printf("n罚单的信息为:nn"); for(j=0;j<num;j+) if(strcmp(name,listj.pname)=0) f=j; printf("1.车牌号: %sn",listj.vno); printf("2.

38、驾驶员姓名: %sn",listj.dname); printf("3.交警姓名: %sn",listj.pname); printf("4.交警号: %sn",listj.pno); printf("5.处罚单号: %sn",listj.no); printf("6.日期: %sn",listj.date); printf("n"); if(f<0) printf("n没有找到该班号的记录!n"); printf("npress enter to

39、return sub menun"); getchar(); getchar(); search();void count() int f=-1; int num; /所有罚单单数 int j; int total=0; /某驾驶员的罚单数 char name20; char time120; char time220; file*fp; if(fp=fopen("list.txt","r")=null) printf("文件打不开!n"); printf("npress enter to return menun

40、"); getchar(); menu(); for(j=0;!feof(fp);j+) /读取文件 fscanf(fp,"%s%s%s%s%s%s",&listj.vno,&listj.dname,&listj.pname,&listj.pno,&listj.no,&listj.date); num=j; fclose(fp); printf("n请根据提示输入驾驶员的姓名和一个时间段,统计某个驾驶员在某段时间内的处罚单数目和罚单号n"); printf("nn请输入驾驶员的姓名:&q

41、uot;); scanf("%s",name); printf("n请输入一个较早的时间:"); scanf("%s",time1); printf("n请输入一个最近的时间:"); scanf("%s",time2); for(j=0;j<num;j+) if(strcmp(listj.date,time1)>=0)&&(strcmp(listj.date,time2)<=0) f=j; total+; printf("n罚单号:%sn",listj.no); if(f<0) printf("n没有找到记录!n"); printf("

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论