欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    交通处罚单管理系统课程设计.docx

    • 资源ID:2057862       资源大小:1.26MB        全文页数:36页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    交通处罚单管理系统课程设计.docx

    课程设计报告专业:电气工程及其自动化年级:学号:姓名:成绩:批改时间:红河学院 工学院编制说 明1、本报告供学生课程设计时使用。2、学生应认真阅读课程设计要求。3、课程设计报告里面的内容要手工填写,以备存档使用(源程序可打印)。4、课程设计的总评成绩根据课程的性质,按一定比例计入该门课程成绩。5、课程设计报告中的各模块填写的内容是评分的主要依据,如果不够书写,可以自行添加附页。6、按规定的时间提交报告给教师评定成绩,由任课教师交到工学院存档。课程设计目录课程名称:高级语言程序设计序号课程设计名称起止页码29交通处罚单管理系统 设计任务题目名称交通处罚单管理系统班级指导教师地点成绩学年开始日期结束日期一、问题分析(围绕设计题目,进行课程设计开始前的准备过程,在此以问题分析的形式展开,从设计的总体性上对所承担的设计题目的思考,分析,此模块内容请手工填写)(1)需求分析:交通处罚单信息用文件存储,提供文件的输输出操作;要求可以输入,输出,删除,浏览交通处罚单信息,因而要提供输入,删除和显示操作;要实现按车辆,驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。 (2)总体设计: 整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块,信息统计模块。交通处罚单管理系统 统计输入查找删除退出二、设计流程图(问题分析与算法设计,并画出流程图,此模块内容请打印)1、 主函数主函数流程图显示一系列功能选项输入n,判断n是否是16根据n的值调用各功能模块函数2·输入模块流程图输入用户要输入处罚单纪录的条数j能否打开文件退出i从0到j-1依次输入处罚单信息,并保存到文件中j开始选择浏览还是返回主菜单3·删除模块流程图打开文件统计出文件中的处罚单总数m输入要删除的处罚单的处罚单号jj=dani.num把此i的值赋给作为比较的变量n关闭文件后再打开文件依次比较i!=n把不要求删除的罚单信息在文件中输入选择浏览还是返回主菜单4·查询模块流程图 打开文件输入用户要查询的信息x让用户选择输入查询的车牌号j输入查询的驾驶员姓名m输入查询的开单警察j输入错误dani.chepai=jdani.id=jstrcmp(dani.name,m)=0显示“找不到此罚单信息关闭文件选择浏览还是返回主菜单显示“找不到此罚单信息显示“找不到此罚单信息显示“找不到此罚单信息5·统计模块流程图输入需要统计的时间段和驾驶员姓名打开文件依次查找是否有符合统计要求的处罚单信息输出处罚单号输出“找不到统计罚单信息”统计找到的处罚单条数关闭文件选择浏览还是返回主菜单6·一个任务结束时是选择浏览还是返回的函数的流程图开始选择What do you want to do?调用浏览函数调用主界面函数1、 主函数主函数流程图显示一系列功能选项输入n,判断n是否是16根据n的值调用各功能模块函数主函数程序menu() /*主界面*/int n,w; /*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/doprintf("ttt欢迎来到交通处罚单管理系统!nn");printf("tt*MENU*nn");printf("tttt1.信息输入n");printf("tttt2.信息删除n");printf("tttt3.信息浏览n");printf("tttt4.信息查询n");printf("tttt5.信息统计n");printf("tttt6.退出n");puts("nntt*n"); printf("tt请输入您的操作(1-6): bb");scanf("%d",&n);if(n<1|n>6) /*对选择的数字作判断*/w=1;getchar();else w=0;while(w=1); /*选择功能*/switch(n)case 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 name8; /*驾驶员名字*/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")=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,&dani.name,&dani.id,&dani.time);fprintf(fp,"n%3d %5d %8s %5d %11s",dani.num,dani.chepai,dani.name,dani.id,dani.time); /*输入罚单信息*/ printf("输入信息成功!n"); fclose(fp); printf_back();(2)、删除模块删除模块流程图打开文件统计出文件中的处罚单总数m输入要删除的处罚单的处罚单号jj=dani.num把此i的值赋给作为比较的变量n关闭文件后再打开文件依次比较i!=n把不要求删除的罚单信息在文件中输入选择浏览还是返回主菜单删除模块程序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.name,&dani.id,&dani.time);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.name,dani.id,dani.time); /*把不要求删除的罚单信息在文件中输入*/ fclose(fp); printf_back();(3)、浏览模块需求分析 该模块的功能是显示文件中所有的处罚但记录信息。浏览模块流程图 打开文件逐条显示文件中的处罚单信息关闭文件选择浏览还是返回主菜单浏览模块程序 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.name,&dani.id,&dani.time); printf("-n"); printf("处罚单号:%dn",dani.num); printf("车牌号码:%dn",dani.chepai); printf("驾驶员姓名:%sn",dani.name); printf("开单警察ID:%dn",dani.id); printf("处罚时间:%sn",dani.time); printf("-n"); /*逐条输出文件信息*/fclose(fp);printf_back();(4)、查询模块需求分析该模块的功能是可以实现按车辆、驾驶员和开单交警查询。查询模块流程图 打开文件输入用户要查询的信息x让用户选择输入查询的车牌号j输入查询的驾驶员姓名m输入查询的开单警察j输入错误dani.chepai=jdani.id=jstrcmp(dani.name,m)=0显示“找不到此罚单信息关闭文件选择浏览还是返回主菜单显示“找不到此罚单信息显示“找不到此罚单信息显示“找不到此罚单信息 查询模块程序void chaxun() /*查询模块*/int i,j,x,flag=0;FILE *fp;char m8; printf("请输入您想查询的信息: n");printf("1_按车牌号查询n");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,&dani.chepai,&dani.name,&dani.id,&dani.time);if(dani.chepai=j)printf("处罚单号:%dn",dani.num);printf("车牌号码:%dn",dani.chepai);printf("驾驶员姓名:");puts(dani.name);printf("开单警察ID:%dn",dani.id);printf("处罚时间:");puts(dani.time);printf("-n");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.name,&dani.id,&dani.time);if(strcmp(dani.name,m)=0)printf("处罚单号:%dn",dani.num);printf("车牌号码:%dn",dani.chepai);printf("驾驶员姓名:");puts(dani.name);printf("开单警察ID:%dn",dani.id);printf("处罚时间:");puts(dani.time);printf("-n");flag=1;break;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.name,&dani.id,&dani.time);if(dani.id=j)printf("处罚单号:%dn",dani.num);printf("车牌号码:%dn",dani.chepai);printf("驾驶员姓名:");puts(dani.name);printf("开单警察ID:%dn",dani.id);printf("处罚时间:");puts(dani.time);printf("-n");flag=1;break; if(flag=0)printf("找不到此处罚单信息!n"); fclose(fp);printf_back();elseprintf("输入错误!n");printf_back();(5)、统计模块需求分析该模块的功能是可以实现统计某时间段某个驾驶员的交通处罚单数目及交通处罚单号码。统计模块流程图输入需要统计的时间段和驾驶员姓名打开文件依次查找是否有符合统计要求的处罚单信息输出处罚单号输出“找不到统计罚单信息”统计找到的处罚单条数关闭文件选择浏览还是返回主菜单3、公共函数 一个任务结束时是选择浏览还是返回的函数:一个任务结束时是选择浏览还是返回的函数的流程图开始选择What 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();else menu();三、程序代码(源程序清单,要求给出必要的说明与注释,此模块内容请打印)(1)主菜单函数(2)输入处罚信息(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 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("ntttt交通处罚单管理系统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 menun"); getchar(); menu(); printf("n请输入处罚单数量:"); scanf("%d", &i); printf("nn"); 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", &listj.vno, &listj.dname, &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"); getchar(); 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太小,请先修改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车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)n"); printf("n注意:中间用空格隔开!n"); scanf("%s%s%s%s%s%s", &listj.vno, &listj.dname, &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"); 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; !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 < 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("文件打不开!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 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"); 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("n已添加%d条记录nn", num); printf("车牌号 驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n"); for(j = 0; j < num; j+) /输出 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; do system("cls"); printf("n请选择查询类型:nt1-按车牌号 2-按驾驶员姓名3:按开单交警姓名 4-返回主菜单n"); printf("n请输入数字选择:"); scanf("%d", &n); if(n < 1 | n > 4)

    注意事项

    本文(交通处罚单管理系统课程设计.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开