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

下载本文档

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

文档简介

1、课程设计报告专业:电气工程及其自动化年级:学号:成绩:批改时间:红河学院工学院编制说明1、本报告供学生课程设计时使用。2、学生应认真阅读课程设计要求。3、课程设计报告里面的容要手工填写,以备存档使用(源程序可打印)。4、课程设计的总评成绩根据课程的性质,按一定比例计入该门课程成绩。5、课程设计报告中的各模块填写的容是评分的主要依据,如果不够书写,可以自行添加附页。6、按规定的时间提交报告给教师评定成绩,由任课教师交到工学院存档。课程设计目录课程名称:高级语言程序设计序号课程设计名称起止页码交通处罚单管理系统29设计任务题目交通处罚单管理系统名称班级指导成绩地点教师开始结束学年日期日期一、问题分

2、析 (围绕设计题目,进行课程设计开始前的准备过程,在此以问题分析的形式展开,从设计的总体性上对所承担的设计题目的思考,分析,此模块容请手工填写)( 1)需求分析:交通处罚单信息用文件存储, 提供文件的输输出操作 ; 要求可以输入 , 输出 , 删除 , 浏览交通处罚单信息 , 因而要提供输入 , 删除和显示操作 ; 要实现按车辆 , 驾驶员和开单交警查询 , 则要提供查找操作 ; 另外提供统计操作和键盘式选择菜单以实现功能选择。( 2)总体设计:整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块,信息统计模块。交通处罚单管理系统输查删统入找除计退出二、设计流程图(问题分

3、析与算法设计,并画出流程图,此模块容请打印)1、主函数 主函数流程图 显示一系列功能选项输入 n,判断 n 是否是 16根据 n 的值调用各功能模块函数2· 输入模块流程图 开始能否打开文件输入用户要输入处罚单纪录的条数j退出i 从 0 到 j-1 依次输入处罚单信息,并保存到文件中j选择浏览还是返回主菜单3· 删除模块流程图 打开文件统计出文件中的处罚单总数m输入要删除的处罚单的处罚单号jj=dani.num把此 i 的值赋给作为比较的变量n关闭文件后再打开文件依次比较i!=n把不要求删除的罚单信息在文件中输入选择浏览还是返回主菜单4· 查询模块流程图 打开文件

4、输入用户要查询的信息x让用户选择输入查询的车牌号j输入查询的驾驶员姓名m输入查询的开单警察j输入错误dani.chstrcmp(dani.dani.id=epai=jname,m)=0=j显示显示显示显示“找“找“找“找不到不到不到不到此罚此罚此罚此罚单信单信单信单信息息息息关闭文件选择浏览还是返回主菜单5· 统计模块流程图 打开文件输入需要统计的时间段和驾驶员姓名依次查找是否有符合统计要求的处罚单信息输出处罚单号输出“找不到统计罚单信息”统计找到的处罚单条数关闭文件选择浏览还是返回主菜单6· 一个任务结束时是选择浏览还是返回的函数的流程图开始选择What do you w

5、ant to do?调用浏览函数调用主界面函数1、主函数 主函数流程图 显示一系列功能选项输入 n,判断 n 是否是 16根据 n 的值调用各功能模块函数 主函数程序 menu()/*主界面 */int n,w; /* 变量 n 保存选择菜单数字 ,w 判断输入的数字是否在功能菜单对应数字围 */doprintf("ttt 欢迎来到交通处罚单管理系统 !nn"); printf("tt*MENU*nn");printf("tttt1.printf("tttt2.printf("tttt3.printf("tttt4

6、.printf("tttt5.printf("tttt6.信息输入 n");信息删除 n");信息浏览 n");信息查询 n");信息统计 n");退出 n");puts("nntt*n");printf("tt请输入您的操作(1-6): bb");scanf("%d",&n);if(n<1|n>6)/*对选择的数字作判断*/w=1;getchar();elsew=0;while(w=1);/*选择功能 */switch(n)case

7、1:shuru();break;case 2:shanchu();break;case 3:liulan();break;case 4:chaxun();break;case 5:tongji();break;case 6:exit(0);return(n);void main()/*主函数 */menu();2、各功能模块设计(1)、输入模块 数据结构 采用结构体的形式,把处罚单的处罚单号、车牌、驾驶员、开单警察 ID 、处罚时间作为结构体成员,用结构体数组的形式存放若干条处罚单信息。struct fandanint num;/*处罚单 */int chepai;/*车牌 */char na

8、me8;/*驾驶员名字 */int id;/*开单警察的信息ID*/char time11;/*处罚时间为年月日排列 */danN;/*dan500中每个数组元素对应一个处罚单信息*/注意danN 中的 N为处罚单条数,本程序采用宏定义#define N 500。 输入模块流程图 开始能否打开文件输入用户要输入处罚单纪录的条数j退出i 从 0 到 j-1 依次输入处罚单信息,并保存到文件中j选择浏览还是返回主菜单 输入模块程序 void shuru()/*输入模块 */int i,j;FILE *fp;if(fp=fopen("data.txt","w"

9、)=NULL)printf("无法打开文件 !n");exit(0);printf("n你要输入多少条处罚单信息:");scanf("%d",&j);for(i=0;i<j;i+)printf("n请依次输入罚单信息 :n");printf("n罚单号车牌号驾驶员警察 ID处罚时间 n");scanf("%3d %5d %8s %5d %11s",&dani.num,&dani.chepai,&,&d ani.i

10、d,&dani.time);fprintf(fp,"n%3d %5d %8s %5d %11s",dani.num,dani.chepai,,dani.id,dani.time);/* 输入罚单信息 */printf("输入信息成功 !n");fclose(fp);printf_back();( 2)、删除模块 删除模块流程图 打开文件统计出文件中的处罚单总数m输入要删除的处罚单的处罚单号jj=dani.num把此 i 的值赋给作为比较的变量n关闭文件后再打开文件依次比较i!=n把不要求删除的罚单信息在文件中输入选择浏览还是返回

11、主菜单 删除模块程序 void shanchu()/*删除模块 */int i,j,m,n;FILE *fp;printf("请输入要删除的处罚单号:");scanf("%d",&j);fp=fopen("data.txt","r");for(i=0;!feof(fp);i+)fscanf(fp,"%3d %5d %8s %5d %11s",&dani.num,&dani.chepai,&dani.nam e,&dani.id,&dani.time

12、);m=i;/*统计出文件中罚单总数 */for(i=0;i<m;i+)if(j=dani.num)n=i;fclose(fp);fp=fopen("data.txt","w");for(i=0;i<m;i+)if(i!=n)fprintf(fp,"n%3d %5d %8s %5d %11s",dani.num,dani.chepai,,dani.id,dani.time);/*把不要求删除的罚单信息在文件中输入*/fclose(fp);printf_back();(3) 、浏览模块 需求分析 该模块的功

13、能是显示文件中所有的处罚但记录信息。 浏览模块流程图 打开文件逐条显示文件中的处罚单信息关闭文件选择浏览还是返回主菜单 浏览模块程序 void liulan()/*浏览模块 */int i;FILE *fp;fp=fopen("data.txt","r");for(i=0;!feof(fp);i+)fscanf(fp,"%3d %5d %8s %5d %11s",&dani.num,&dani.chepai,&dani.nam e,&dani.id,&dani.time);printf(&quo

14、t;-n");printf("处罚单号 :%dn",dani.num);printf("车牌 :%dn",dani.chepai);printf("驾驶员 :%sn",);printf("开单警察 ID:%dn",dani.id);printf("处罚时间 :%sn",dani.time);printf("-n");/*逐条输出文件信息*/fclose(fp);printf_back();(4)、查询模块 需求分析 该模块的功能是可以实现按车辆、驾

15、驶员和开单交警查询。 查询模块流程图 打开文件输入用户要查询的信息x让用户选择输入查询的车牌号j输入查询的驾驶员姓名m输入查询的开单警察j输入错误dani.chstrcmp(dani.dani.id=epai=jname,m)=0=j显示显示显示显示“找“找“找“找不到不到不到不到此罚此罚此罚此罚单信单信单信单信息息息息关闭文件选择浏览还是返回主菜单 查询模块程序 void chaxun()/*查询模块 */int i,j,x,flag=0;FILE *fp;char m8;printf("请输入您想查询的信息 : n");printf("1_按车牌号查询 n&q

16、uot;);printf("2_按驾驶员查询 n");printf("3_按开单警察 ID 查询 n");scanf("%d",&x);if(x=1)printf("请输入您要查询的车牌号: n");scanf("%d",&j);fp=fopen("data.txt","r");for(i=0;!feof(fp);i+)fscanf(fp,"%3d %5d %8s %5d %11s",&dani.num,&

17、;dani.chepai,&dani.nam e,&dani.id,&dani.time);if(dani.chepai=j)printf("处罚单号 :%dn",dani.num);printf("车牌 :%dn",dani.chepai);printf("驾驶员 :");puts();printf("开单警察 ID:%dn",dani.id);printf("处罚时间 :");puts(dani.time);printf("-n"

18、);flag=1;break;if(flag=0)printf("找不到此罚单信息 !n");fclose(fp);printf_back();else if(x=2)printf("请输入您要查询的驾驶员:");scanf("%s",m);fp=fopen("data.txt","r");for(i=0;!feof(fp);i+)fscanf(fp,"%3d %5d %8s %5d %11s",&dani.num,&dani.chepai,&dani

19、.nam e,&dani.id,&dani.time);if(strcmp(,m)=0)printf("处罚单号 :%dn",dani.num);printf("车牌 :%dn",dani.chepai);printf("驾驶员 :");puts();printf("开单警察 ID:%dn",dani.id);printf("处罚时间 :");puts(dani.time);printf("-n");flag=1;break

20、;if(flag=0)printf("找不到此罚单信息 !n");fclose(fp);printf_back();else if(x=3)printf("请输入您要查询的开单警察ID: ");scanf("%d",&j);fp=fopen("data.txt","r");for(i=0;!feof(fp);i+)fscanf(fp,"%3d %5d %8s %5d %11s",&dani.num,&dani.chepai,&dani.nam

21、e,&dani.id,&dani.time);if(dani.id=j)printf("处罚单号 :%dn",dani.num);printf("车牌 :%dn",dani.chepai);printf("驾驶员 :");puts();printf("开单警察 ID:%dn",dani.id);printf("处罚时间 :");puts(dani.time);printf("-n");flag=1;break;if(flag=0)printf

22、("找不到此处罚单信息 !n");fclose(fp);printf_back();else printf(" 输入错误 !n"); printf_back();(5)、统计模块 需求分析 该模块的功能是可以实现统计某时间段某个驾驶员的交通处罚单数目及交通处罚单。 统计模块流程图 打开文件输入需要统计的时间段和驾驶员姓名依次查找是否有符合统计要求的处罚单信息输出处罚单号输出“找不到统计罚单信息”统计找到的处罚单条数关闭文件选择浏览还是返回主菜单3、公共函数一个任务结束时是选择浏览还是返回的函数: 一个任务结束时是选择浏览还是返回的函数的流程图开始选择Wh

23、at do you want to do?调用浏览函数调用主界面函数 一个任务结束时是选择浏览还是返回的函数的程序void printf_back()/*一个任务结束时是选择浏览还是返回主界面*/void liulan();int w;printf("nWhat do you want to do?nnt(1). 浏览 t(2). 返回主界面 bb"); scanf("%d",&w);if(w=1)liulan();elsemenu();三、程序代码(源程序清单,要求给出必要的说明与注释,此模块容请打印)( 1)主菜单函数( 2)输入处罚信息(

24、3)按司机查找并浏览相关处罚信息模块( 4)按交通警察查找并浏览相关信息模块( 5)按车牌查询并浏览相关信息模块( 6)删除处罚单模块( 7)数据统计模块程序代码#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 100struct Plist/处罚单char vno20;/车牌号char dname20;/驾驶员char pname20;/交警char pno20;/交警编号char no20;/处罚单编号char date20;/处罚日期 listN;/处罚单数组void inpu

25、t();/输入模块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;dosystem("cls");printf("ntttt交通处罚单管理系统n");printf("?&qu

26、ot;);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

27、 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 menun");getchar();

28、menu();printf("n请输入处罚单数量:");scanf("%d", &i);printf("nn");for(j = 0; j < i; j+)printf("输入第 %d处罚单的 :n", j + 1);printf("n车牌号、驾驶员、交警、交警号、处罚单号、日期(如printf("n注意 : 中间用空格隔开!n");scanf("%s%s%s%s%s%s",&listj.vno,&listj.dname,2010111

29、2)n"); &listj.pname,&listj.pno, &listj.no, &listj.date);for(j = 0; j < i; j+)fprintf(fp,"n%st%st%st%st%st%s",listj.vno,listj.dname,listj.pname, listj.pno, listj.no, listj.date);fclose(fp);printf("n保存成功! ");printf("npress enter to return menun");g

30、etchar();getchar();menu();printf("n请输入处罚单数量:");scanf("%d", &i);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 + i;if(num > N)printf("n结构体数组数的N 太

31、小,请先修改N 的值 n");printf("npress enter to return menun");getchar();getchar();menu();printf("n");for(j = 0; j < i; j+)printf("输入第 %d处罚单的 :n", j + 1);printf("n车牌号、驾驶员、交警、交警号、处罚单号、日期(如printf("n注意 : 中间用空格隔开!n");scanf("%s%s%s%s%s%s",&listj.v

32、no,&listj.dname,&listj.pno, &listj.no, &listj.date);for(j = 0; j < i; j+)20101112)n");&listj.pname,fprintf(fp,"n%st%st%st%st%st%s",listj.vno,listj.dname,listj.pname, listj.pno, listj.no, listj.date);fclose(fp);printf("n保存成功! ");printf("npress ente

33、r 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 menun");getchar();getchar();menu();for(j = 0; !

34、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 < num; j+)if(strcmp(s1, listj.no) = 0)f = j;if(f &

35、lt; num - 1)for(j = f; j < num - 1; 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.date);if(fp2 = fopen("list.txt", "w") = NULL)printf(

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

37、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)printf("can not open filen&qu

38、ot;);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.pno, &listj.no, &listj.date);fclose(fp);num = j;printf("n已添加 %d条记录 nn", num);printf("车牌号驾驶员交警交警编号处罚单编号fo

39、r(j = 0; j < num; j+)/输出&listj.dname,处罚日期 n");&listj.pname,printf("n%st%st%st%st%st%s",listj.vno,listj.dname,listj.pname,listj.pno, listj.no, listj.date);printf("npress enter to return menun");getchar();getchar();menu();void search()int n;int r;dosystem("cls&

40、quot;);printf("n请选择查询类型:nt1-按车牌号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_

41、search()int f = -1;int num;int j;char no20;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,&listj.pno,

42、 &listj.no, &listj.date);num = j;fclose(fp);printf("n请输入车牌号:");scanf("%s", no);printf("n罚单的信息为:nn");printf("车牌号驾驶员交警交警编号处罚单编号&listj.dname,处罚日期 n");&listj.pname,for(j = 0; j < num; j+)if(strcmp(no, listj.vno) = 0)f = j;printf("n%st%st%st

43、%st%st%s", listj.vno, listj.dname, listj.pname, listj.pno, listj.no, listj.date);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 *fp;if(fp = fopen("lis

44、t.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.pno, &listj.no, &listj.date);num = j;fclose(fp);printf("n请输入驾驶员的:&

45、quot;);scanf("%s", name);printf("n罚单的信息为:nn");printf("车牌号驾驶员交警交警编号处罚单编号&listj.dname,处罚日期 n");&listj.pname,for(j = 0; j < num; j+)if(strcmp(name, listj.dname) = 0)f = j;printf("n%st%st%st%st%st%s", listj.vno, listj.dname, listj.pname, listj.pno, listj.no, listj.date);if(f < 0)printf("n没有找到该班号的记录!n");printf("npress enter to return sub menun");getchar();getchar();search();void pna_search()int f = -1;int num;int j;char name20;FILE *fp;if(fp = fopen("list.txt", "r") = NULL)printf("文件打不

温馨提示

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

评论

0/150

提交评论