收藏 分销(赏)

交通处罚单系统-课程设计论文正文报告--大学毕业论文设计.doc

上传人:胜**** 文档编号:2862578 上传时间:2024-06-07 格式:DOC 页数:26 大小:590.50KB
下载 相关 举报
交通处罚单系统-课程设计论文正文报告--大学毕业论文设计.doc_第1页
第1页 / 共26页
交通处罚单系统-课程设计论文正文报告--大学毕业论文设计.doc_第2页
第2页 / 共26页
交通处罚单系统-课程设计论文正文报告--大学毕业论文设计.doc_第3页
第3页 / 共26页
交通处罚单系统-课程设计论文正文报告--大学毕业论文设计.doc_第4页
第4页 / 共26页
交通处罚单系统-课程设计论文正文报告--大学毕业论文设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、计算机系统基础课程设计报告题目:交通处罚单系统学院: 软件学院专业: 软件工程班级: 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月23-6月2日

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

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

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

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

6、)读取数据,输入一个时间段,利用strcmp()和逻辑与,在for循环体中进行选择,并计数,选择出罚单数,罚单号,输出数据。返回主菜单,若未查询到,返回主菜单。5. 程序清单 #include#include#include#define N 100struct Plist /处罚单 char vno20; /车牌号 char dname20; /驾驶员姓名 char pname20; /交警姓名 char pno20; /交警编号 char no20; /处罚单编号 char date20; /处罚日期 listN; /处罚单数组void input(); /输入模块void dele();

7、 /删除模块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-信息浏览

8、4-信息查询 5-信息统计 6-退出系统n); printf(); printf(请从输入数字选择相应的功能:); scanf(%d,&n); if(n6) 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=fop

9、en(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;ji;j+) printf(输入第%d张处罚单的:n,j+1); printf(n车牌号:n); scanf(%s,&listj.vno); printf(驾驶员姓名n); scanf(%s,&listj.dname); print

10、f(交警姓名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;jN) printf(n结构体数组数的N太小,请先修改N的值n); printf(npress enter to return menun); getchar(); getchar(); menu(); printf(n); for

11、(j=0;ji;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

12、(j=0;ji;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) pr

13、intf(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;jnum;j+) if(str

14、cmp(s1,listj.no)=0) f=j; if(fnum) for(j=f;jnum;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(

15、npress enter to return menun); getchar(); menu(); for(j=0;jnum;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(f0) printf(n没有找到该学号的记录:n); pr

16、intf(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.

17、dname,&listj.pname,&listj.pno,&listj.no,&listj.date); fclose(fp); num=j; printf(n已添加%d条记录nn,num); for(j=0;jnum;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); pri

18、ntf(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(n4) r=1; getchar(); else r=0;while(r=1);switch(n) case 1:vno_

19、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

20、,&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;jnum;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.交

21、警号: %sn,listj.pno); printf(5.处罚单号: %sn,listj.no); printf(6.日期: %sn,listj.date); printf(n); if(f0) 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(文件打

22、不开!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;jnum;j+) if(strcmp(name,listj

23、.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(f0) printf(n没有找到该班号的记录!n); printf(npress enter to return sub menun); getchar(); get

24、char(); 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,&lis

25、tj.date); num=j; fclose(fp); printf(n请输入开单交警的姓名:); scanf(%s,name); printf(n罚单的信息为:nn); for(j=0;jnum;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); pri

26、ntf(6.日期: %sn,listj.date); printf(n); if(f0) 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(文件

27、打不开!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);

28、printf(n请输入一个较早的时间:); scanf(%s,time1); printf(n请输入一个最近的时间:); scanf(%s,time2); for(j=0;j=0)&(strcmp(listj.date,time2)=0) f=j; total+; printf(n罚单号:%sn,listj.no); if(f0) printf(n没有找到记录!n); printf(n罚单总数为:%dn,total); printf(npress enter to return menun); getchar(); getchar(); menu();6.体会及总结6.1在设计及编程过程中遇到

29、的问题及解决方法 一些是由于之前执行的程序未关闭而引起的执行错误,关闭之前程序后恢复,在修改代码阶段忘记加分号和括号,引起了编译错误,最终找到问题的根本解决了问题。6. 2收获与心得经过一个学期C语言的实习,我进一步理解和运用结构化程序设计的思想和方法,通过近两周的课程设计,初步掌握开发一个小型实用系统的基本方法,学会调试相对长一点程序,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。在编程中遇到困难是自然的,不过只要我们脚踏实地的编程,这些困难不算什么,我们是能够克服的。 参考文献 1于秀霞,c语言程序设计2谭浩强,c语言程序设计第四版3Knuth,C语言教程4谭浩强,c语言程序设计第三版5Yale N.P att,计算机系统概论。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服