李鸳交通处罚单管理系统设计.docx

上传人:b****7 文档编号:8956036 上传时间:2023-02-02 格式:DOCX 页数:45 大小:557.93KB
下载 相关 举报
李鸳交通处罚单管理系统设计.docx_第1页
第1页 / 共45页
李鸳交通处罚单管理系统设计.docx_第2页
第2页 / 共45页
李鸳交通处罚单管理系统设计.docx_第3页
第3页 / 共45页
李鸳交通处罚单管理系统设计.docx_第4页
第4页 / 共45页
李鸳交通处罚单管理系统设计.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

李鸳交通处罚单管理系统设计.docx

《李鸳交通处罚单管理系统设计.docx》由会员分享,可在线阅读,更多相关《李鸳交通处罚单管理系统设计.docx(45页珍藏版)》请在冰豆网上搜索。

李鸳交通处罚单管理系统设计.docx

李鸳交通处罚单管理系统设计

郑州科技学院

课程设计说明书

课程名称:

C语言课程设计

设计题目:

交通处罚单管理系统

系(院):

车辆与交通程系

专业班级:

13交通运输

姓名:

李鸳

学号:

201334025

指导教师:

成绩:

时间:

8月31日至9月13日共_2周

说明

1.课程设计进行期间,学生应按教学计划,将每天的学习情况(包括学习内容、遇到的问题及解决方法、心得体会等)如实进行记录。

2.结束时,根据课程设计内容和学习记录编写课程设计说明书。

3.指导教师应综合考虑学生的学习态度、设计质量、答辩情况等,给出评语和成绩。

课程设计成绩评定表

评定项目

内容

满分

评分

总分

学习态度

学习认真,态度端正,遵守纪律。

10

设计情况

认真查阅资料,勤学好问,独立思考,分析解决问题的能力较强。

40

说明书质量

设计方案正确、表达清楚;设计思路、实验(论证)方法科学合理;工作量等达到课程设计任务书规定的要求;图、表、文字表达准确规范,内容完善。

40

答辩情况

回答问题准确,基本概念清楚,有理有据,有一定深度。

10

总成绩

采用五级分制;优、良、中、及格、不及格。

90分以上为优秀;80-89为良好;70-79为中等;60-69为及格;60分以下为不及格。

指导教师评语:

 

签名:

年月日

 

郑州科技学院

C语言课程设计

 

设计(论文)题目:

交通处罚单管理系统

所在院:

车辆与交通程系

专业班级:

13交通运输

学生姓名:

李鸳

学号:

201334025

指导教师:

2015年9月13日

郑州科技学院

课程设计(论文)任务书

设计题目:

交通处罚单管理系统

专业班级:

13交通运输

学号201334025姓名李鸳

按照内容要求,设计完整的交通处罚单管理系统。

要求调试通过,不存在漏洞,方便用户操作。

功能的实现上力求容错能力要强且提示信息完备。

 

完成期限:

2015年9月13日

指导教师签名:

评审小组负责人签名:

目录

第一部分引言…………………………………………………………7

1.1开发背景………………………………………………………………7

1.2可行性分析…………………………………………………………7

第二部分需求分析……………………………………………………7

2.1设计要求………………………………………………………………7

2.2设计目的………………………………………………………………7

2.3功能实现………………………………………………………………8

第三部分总体设计…………………………………………………9

3.1设计思想……………………………………………………………9

3.2设计基本概念………………………………………………………9

3.3处理流程……………………………………………………………10

3.4总体结构……………………………………………………………10

3.5功能分配……………………………………………………………10

3.6主要模块……………………………………………………………10

3.6.1输入模块…………………………………………………10

第四部分核心代码实现…………………………………………14

4.1插入模块代码设计……………………………………………14

4.2查询模块代码设计……………………………………………14

第五部分测试分析…………………………………………………24

5.1插入模块测试……………………………………………………24

5.2查询模块测试……………………………………………………26

第六部分课程设计总结…………………………………………29

参考文献……………………………………………………………………30

 

一.引言

1.1开发前景

随着我国科技发展,交通系统日益重要,对于交通违规的管理力度也大大加强。

如何能方便快捷的统计信息显得越发重要。

1.2可行性分析

该系统只需能将信息录入,存储,修改,删除即可,和其他小程序并无太大冲突,能够顺利的设计出蛇鹤的程序。

 

二.需求分析

2.1设计要求

交通处罚单信息用文件存储,因而要提供文件的输入输出操作;要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;要实现按车辆、驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键CharpoliceNo[10];//开单交警号码

CharbillNo[20];//处罚单号码

Chartime[12];//处罚时间(yyyymmddhhmm,年月日时分)

}TPB;

2.2设计目的

(1)主函数提示用户选择功能:

输入删除浏览查询统计

(2)信息输入模块

把处罚单信息写入处罚单信息文件。

(3)信息删除模块

输入处罚单号码,然后在处罚单信息文件中查找该条处罚单,删除之。

具体删除操作:

打开该文件,从文件中读一条记录,判断是否要删除,如果是,则舍弃;否则重新写入文件,读下一条记录。

(4)信息浏览模块

读处罚单信息文件,输出记录。

(5)信息查询模块

通过菜单选择查询字段:

车辆驾驶员开单交警,分别按照车牌号、驾照号、开单交警号采用基本的查找算法查找交通处罚单信息文件,如果找到相应得记录则输出处罚单信息,否则输出“您所查找的信息不存在!

”。

(6)信息统计模块

提示输入驾驶员的驾照号和时间段。

设置一个计数器,初始化为0。

采用基本算法查找交通处罚单信息文件,比较驾照号,如果驾照号匹配,再看处罚单时间是否出于查询时间段内,如果是,则计数器加1,并输出该处罚单号。

文件查找结束后,输出计数器的值。

盘式选择菜单以实现功能选择。

2.3功能实现`

1、总体设计

整个管理系统被设计为信息输入模块、信息删除模块、信息浏览模块、信息查询模块和信息统计模块。

2、详细设计

数据结构采用结构体,设计交通处罚单结构体:

StructTranficPunishBill

{

CharcarNo[10];//车牌号

ChardriverNo[20];//驾照号

 

三.总体设计

3.1设计思想

交通处罚单信息用文件存储,提供文件的输输出操作;要求可以输入,输出,删除,浏览交通处罚单信息,因而要提供输入,删除和显示操作;要实现按车辆,驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。

3.2设计基本概念

整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块,信息统计模块。

3.3处理流程

程图]

 

3.4总体结构

 

3.6主要模块

3.6.1输入模块

 

3·[删除模块流程图]

4·[查询模块流程图]

5·[统计模块流程图]

[一个任务结束时是选择浏览还是返回的函数的流程图]

1、主函数

[主函数流程图]

[主函数程序]

menu()/*主界面*/

{

intn,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/

do

{

printf("\t\t\t欢迎来到交通处罚单管理系统!

\n\n");

printf("\t\t*******************MENU*******************\n\n");

printf("\t\t\t\t1.信息输入\n");

printf("\t\t\t\t2.信息删除\n");

printf("\t\t\t\t3.信息浏览\n");

printf("\t\t\t\t4.信息查询\n");

printf("\t\t\t\t5.信息统计\n");

printf("\t\t\t\t6.退出\n");

puts("\n\n\t\t********************************************\n");

printf("\t\t请输入您的操作(1-6):

[]\b\b");

scanf("%d",&n);

if(n<1||n>6)/*对选择的数字作判断*/

{

w=1;

getchar();

}

else

w=0;

}

while(w==1);/*选择功能*/

switch(n)

{

case1:

shuru();break;

case2:

shanchu();break;

case3:

liulan();break;

case4:

chaxun();break;

case5:

tongji();break;

case6:

exit(0);

}

return(n);

}

voidmain()/*主函数*/

{

menu();

}

2、各功能模块设计

(1)、输入模块

[数据结构]

采用结构体的形式,把处罚单的处罚单号、车牌号码、驾驶员姓名、开单警察ID、处罚时间作为结构体成员,用结构体数组的形式存放若干条处罚单信息。

structfandan

{

intnum;/*处罚单号码*/

intchepai;/*车牌号码*/

charname[8];/*驾驶员名字*/

intid;/*开单警察的信息ID*/

chartime[11];/*处罚时间为年月日排列*/

}dan[N];/*dan[500]中每个数组元素对应一个处罚单信息*/

[注意]

dan[N]中的N为处罚单条数,本程序采用宏定义#defineN500。

[输入模块流程图]

 

[输入模块程序]

voidshuru()/*输入模块*/

{

inti,j;

FILE*fp;

if((fp=fopen("data.txt","w"))==NULL)

{

printf("无法打开文件!

\n");

exit(0);

}

printf("\n你要输入多少条处罚单信息:

");

scanf("%d",&j);

for(i=0;i

{

printf("\n请依次输入罚单信息:

\n");

printf("\n罚单号车牌号驾驶员姓名警察ID处罚时间\n");

scanf("%3d%5d%8s%5d%11s",&dan[i].num,&dan[i].chepai,&dan[i].name,&dan[i].id,&dan[i].time);

fprintf(fp,"\n%3d%5d%8s%5d%11s",dan[i].num,dan[i].chepai,dan[i].name,dan[i].id,dan[i].time);

/*输入罚单信息*/

printf("输入信息成功!

\n");

}

fclose(fp);

printf_back();

}

(2)、删除模块

[删除模块流程图]

 

[删除模块程序]

voidshanchu()/*删除模块*/

{

inti,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",&dan[i].num,&dan[i].chepai,&dan[i].name,&dan[i].id,&dan[i].time);

}

m=i;/*统计出文件中罚单总数*/

for(i=0;i

{

if(j==dan[i].num)

n=i;

}

fclose(fp);

fp=fopen("data.txt","w");

for(i=0;i

{

if(i!

=n)

{

fprintf(fp,"\n%3d%5d%8s%5d%11s",dan[i].num,dan[i].chepai,dan[i].name,dan[i].id,dan[i].time);

/*把不要求删除的罚单信息在文件中输入*/

}

}

fclose(fp);

printf_back();

}

(3)、浏览模块

[需求分析]

该模块的功能是显示文件中所有的处罚但记录信息。

[浏览模块流程图]

[浏览模块程序]

voidliulan()/*浏览模块*/

{

inti;

FILE*fp;

fp=fopen("data.txt","r");

for(i=0;!

feof(fp);i++)

{

fscanf(fp,"%3d%5d%8s%5d%11s",&dan[i].num,&dan[i].chepai,&dan[i].name,&dan[i].id,&dan[i].time);

printf("------------------------------\n");

printf("处罚单号:

%d\n",dan[i].num);

printf("车牌号码:

%d\n",dan[i].chepai);

printf("驾驶员姓名:

%s\n",dan[i].name);

printf("开单警察ID:

%d\n",dan[i].id);

printf("处罚时间:

%s\n",dan[i].time);

printf("------------------------------\n");/*逐条输出文件信息*/

}

fclose(fp);

printf_back();

}

(4)、查询模块

[需求分析]

该模块的功能是可以实现按车辆、驾驶员和开单交警查询。

[查询模块流程图]

[查询模块程序]

voidchaxun()/*查询模块*/

{

inti,j,x,flag=0;

FILE*fp;

charm[8];

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",&dan[i].num,&dan[i].chepai,&dan[i].name,&dan[i].id,&dan[i].time);

if(dan[i].chepai==j)

{

printf("处罚单号:

%d\n",dan[i].num);

printf("车牌号码:

%d\n",dan[i].chepai);

printf("驾驶员姓名:

");puts(dan[i].name);

printf("开单警察ID:

%d\n",dan[i].id);

printf("处罚时间:

");puts(dan[i].time);

printf("--------------------------\n");

flag=1;

break;

}

}

if(flag==0)

printf("找不到此罚单信息!

\n");

fclose(fp);

printf_back();

}

elseif(x==2)

{

printf("请输入您要查询的驾驶员姓名:

");

scanf("%s",m);

fp=fopen("data.txt","r");

for(i=0;!

feof(fp);i++)

{

fscanf(fp,"%3d%5d%8s%5d%11s",&dan[i].num,&dan[i].chepai,&dan[i].name,&dan[i].id,&dan[i].time);

if(strcmp(dan[i].name,m)==0)

{

printf("处罚单号:

%d\n",dan[i].num);

printf("车牌号码:

%d\n",dan[i].chepai);

printf("驾驶员姓名:

");puts(dan[i].name);

printf("开单警察ID:

%d\n",dan[i].id);

printf("处罚时间:

");puts(dan[i].time);

printf("-------------------------\n");

flag=1;

break;

}

}

if(flag==0)

printf("找不到此罚单信息!

\n");

fclose(fp);

printf_back();

}

elseif(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",&dan[i].num,&dan[i].chepai,&dan[i].name,&dan[i].id,&dan[i].time);

if(dan[i].id==j)

{

printf("处罚单号:

%d\n",dan[i].num);

printf("车牌号码:

%d\n",dan[i].chepai);

printf("驾驶员姓名:

");puts(dan[i].name);

printf("开单警察ID:

%d\n",dan[i].id);

printf("处罚时间:

");puts(dan[i].time);

printf("-------------------------\n");

flag=1;

break;

}

}

if(flag==0)

printf("找不到此处罚单信息!

\n");

fclose(fp);

printf_back();

}

else

{printf("输入错误!

\n");

printf_back();

}

}

(5)、统计模块

[需求分析]

该模块的功能是可以实现统计某时间段某个驾驶员的交通处罚单数目及交通处罚单号码。

[统计模块流程图]

3、公共函数

一个任务结束时是选择浏览还是返回的函数:

[一个任务结束时是选择浏览还是返回的函数的流程图]

[一个任务结束时是选择浏览还是返回的函数的程序]

voidprintf_back()/*一个任务结束时是选择浏览还是返回主界面*/

{

voidliulan();

intw;

printf("\nWhatdoyouwanttodo?

\n\n\t

(1).浏览\t

(2).返回主界面[]\b\b");

scanf("%d",&w);

if(w==1)

liulan();

else

menu();

}

四.核心代码实现

#include

#include

#include

#defineN100

structPlist//处罚单

{

charvno[20];//车牌号

chardname[20];//驾驶员姓名

charpname[20];//交警姓名

charpno[20];//交警编号

charno[20];//处罚单编号

chardate[20];//处罚日期

}list[N];//处罚单数组

voidinput();//输入模块

voiddele();//删除模块

voidbrowse();//浏览模块

voidsearch();//查询模块

voidcount();//统计模块

voidmenu();//主菜单

voidvno_search();//按车牌号查询

voiddna_search();//按驾驶员姓名查询

voidpna_search();//按开单交警姓名查询

main()

{

menu();

getchar();

}

voidmenu()

{

intn;

intr;

do

{

system("cls");

printf("\n\t\t\t\t交通处罚单管理系统\n");

printf("?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

");

printf("菜单:

1-信息录入2-信息删除3-信息浏览4-信息查询5-信息统计6-退出系统\n");

printf("?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

");

printf("请从输入数字选择相应的功能:

");

scanf("%d",&n);

if(n<1||n>6)

{

r=1;

getchar();

}

elser=0;

}

while(r==1);

switch(n)

{

case1:

input();

break;

case2:

dele();

break;

case3:

browse();

break;

case4:

search();

break;

case5:

count();

break;

case6:

exit(0);

}

}

voidinput()

{

FILE*fp;

intnum;

inti,j;

if((fp=fopen("list.txt","r+"))==NULL)

{

if((fp=fopen("list.txt","w"))==NULL)

{

printf("文件打开或创建失败!

\n");

printf("\npressentertoreturnmenu\n");

get

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1