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

    交通处罚单系统课程设计报告69470663.doc

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

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

    交通处罚单系统课程设计报告69470663.doc

    【精品文档】如有侵权,请联系网站删除,仅供学习与交流交通处罚单系统课程设计报告69470663.精品文档.计算机系统基础课程设计报告题目:交通处罚单系统课程设计说明书 课程设计名称 : 计算机系统基础II课程设计 指导教师 : 马德印2014年6 月3 日 2014年6月13日起止日期 2014年6月3日 至 2014年6月13日设计地点 北湖校区9楼机房设计任务及日程安排5月20日 教师布置课程设计任务,确定小组成员。5月21-22日 收集、查阅相关资料,考虑选题。5月23-6月2日 资料分析,学习和巩固( )知识,确定( )作为课程设计题目,确定小组成员分工。6月3日 进行需求分析、总体设计,确定程序的应具备的功能模块。( )6月4-8日 编写程序代码,并进行6月9-11日 进行程序的调试和测试,并不断修改完善程序。6月12日 撰写程序报告,6月13日 答辩。1课程设计题目及实现功能课程设计就题目为交通处罚单系统。交通处罚单信息包括:车牌号,驾驶员姓名,交警姓名,交警号,处罚单号,日期。程序所提供的功能:1处罚单信息输入2处罚单信息删除3处罚单信息浏览4处罚单信息查询5处罚单信息统计6程序设计具有保存(采用文件)功能2.程序设计的主要知识点2.1处罚单信息输入采用结构体类型数组信息输入集合多种数据,采用结构体数组方便这种符合数据的处理。信息数据类型只用了字符型。而且车牌号,驾驶员姓名,交警姓名,交警号,处罚单号,日期,均采用字符型20个字符。2.2程序设计的读取和保存,设计(list.txt)文件,采用fopen()打开文件,fclose()关闭文件,fscanf()格式化读取文件,fprintf()格式化写入文件。3. -总体设计3.1 系统功能模块图3.2 功能模块输入模块 (2) 删除模块(3)浏览模块(4) 查询模块(5) 统计模块4主要问题解决方法及技术关键 设计中主要通过函数来实现,然后在逐步细化,最终调试完成,主要包括以下函数。 4.1主菜单函数void menu() 将各部分模块函数写入主菜单函数,通过switch()结构输入对应数字分别进入各个模块函数,实现功能。 4.2输入信息函数void input() 当输入1时进入信息输入函数,具体功能实现如下,输入处罚单数量,打开文件夹(list.txt)若打开成功将输入的处罚单数量与之前保存数量相加,若超出保存容量范围,回到主菜单,否则写入信息。若打开文件夹(list.txt)失败,则建立该文件夹写入信息,如建立失败,返回主菜单。4.3删除记录函数void delet()函数 当输入2时进入删除函数,具体功能实现如下,输入车牌号,利用字符串比对函数strcmp()与所输入编号一一比对,若所保存数据有与其相同,则通过strcpy()函数进行删除操作,若所保存数据未有相同,则返回主菜单。 4.4浏览函数void browse()当输入3时,进入浏览函数,利用fscanf()函数进行读取文件,利用for循环体输出所存信息,返回主菜单。4.5查询函数void search() 当输入4时进入查询函数,查询分为1.车牌号查询,2.驾驶员姓名查询,3.交警姓名查询。利用fscanf() 函数读取数据,利用strcmp()函数进行字符串比较,若所读取的数据有与其相同的数据,则输出该数据,若没有则回到主菜单。4.6统计函数void count() 当输入5时进入统计函数,利用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; /处罚单编号 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车牌号:n"); scanf("%s",&listj.vno); printf("驾驶员姓名n"); scanf("%s",&listj.dname); printf("交警姓名n"); scanf("%s",&listj.pname); printf("交警号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,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车牌号:n"); scanf("%s",&listj.vno); printf("驾驶员姓名n"); scanf("%s",&listj.dname); printf("交警姓名n"); scanf("%s",&listj.pname); printf("交警号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,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) 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","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"); 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); 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.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请输入数字选择:"); 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")=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请输入车牌号:"); 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); 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 dna_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,&listj.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.dname)=0) f=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.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 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,&listj.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.驾驶员姓名: %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 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"); 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请输入驾驶员的姓名:"); 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("n罚单总数为:%dn",total); printf("npress enter to return menun"); getchar(); getchar(); menu();6.体会及总结6.1在设计及编程过程中遇到的问题及解决方法一些是由于之前执行的程序未关闭而引起的执行错误,关闭之前程序后恢复,在修改代码阶段忘记加分号和括号,引起了编译错误,最终找到问题的根本解决了问题。6. 2收获与心得经过一个学期C语言的实习,我进一步理解和运用结构化程序设计的思想和方法,通过近两周的课程设计,初步掌握开发一个小型实用系统的基本方法,学会调试相对长一点程序,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。在编程中遇到困难是自然的,不过只要我们脚踏实地的编程,这些困难不算什么,我们是能够克服的。 参考文献 1于秀霞,c语言程序设计2谭浩强,c语言程序设计第四版3Knuth,C语言教程4谭浩强,c语言程序设计第三版5Yale N.P att,计算机系统概论。毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它

    注意事项

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

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




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

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

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

    收起
    展开