c语言交通处罚单管理程序实验报告和源代码Word文档下载推荐.docx
- 文档编号:22275435
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:19
- 大小:89.04KB
c语言交通处罚单管理程序实验报告和源代码Word文档下载推荐.docx
《c语言交通处罚单管理程序实验报告和源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言交通处罚单管理程序实验报告和源代码Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
交通处罚单基本信息输出:
罚单的所有信息。
voiddisplay。
,
全部输出已被录入交通处
(3)
交通处罚单基本信息删除:
删除该姓名的记录。
intdelete()
,经确认后调用delete函数
(4)
交通处罚单基本信息排序:
进行排序。
voidsort()
,对文件中所有的交通处罚单
(5)交通处罚单基本信息查找:
构造函数intquery(),通过输入书名,判断此交通
处罚单是否存在,若存在,则删除该交通处罚单所有信息,然后再把剩下的交通处
罚单信息保存到文件。
系统功能模块图
交通处罚单管理系统
四、详细设计
结构体定义如下:
#defineN500
structchufadan
{
intnum;
intchepai;
charname[10];
intid;
intyear;
intmonth;
intday;
}chufadan[N];
图一
/*处罚单号码*/
/*车牌号码*/
/*驾驶员名字*/
/*开单警察的信息ID*/
/*处罚时间为年月日排列*/
/*dan[500]中每个数组元素对应一个处罚单信息*/
(一)信息输入函数:
图2信息录入功能流程图
(三)信息删除函数:
关闭文件后再打开文件
图3信息删除功能流程图
(三)信息查询函数:
图4信息查询功能流程图
(四)统计功能函数:
图5信息统计功能流程图
(五)浏览功能函数:
开始
打开文件
图6信息浏览功能流程图
五、运行结果
主菜单界面
巩迎来到交適处罚单管理系统!
息息
单单单fe罚处处处单的通通1讪新交交交处
1
4
5
输入建立模块
L——_南入建立模块
你要输入多少条处罚单信息狄
请依缺输入罚单信息5
请输人车牌号码*
请输人驾驶員姓名:
222
请输交警IE:
谙输人开单日期]年•月-日
2010.10-16
请输入处罚单号;
输人信息成功?
WhatdoyiDUuanttodo?
f■«
\揃I瞌、辅131士霆商ri
图8
查询模块
欧迎进入査询模块
■■
名
姓
一息®
0一IB.洵询気,1一的杳查的418一询询名“询44辭Q.亘育®
察査:
z-81也音峑_=要■:
•容TD:
26?
姓率间一九车驾开入单号盘畐
曹專单罚一备处车
What和9<
>
uVMntto<
So?
m浏览焙》■返回主界面[]
浏览模块
汕蜩人惣的探作灯-小⑶r¥
[[rj|IaJMB..MBMB
例l见保庆
Whatdovouwantto*do?
席儿观I览o■垂回王典血[J
图10
统计模块
if
!
f
JE
ip
一高
一姓的聶
一員计
-AAAA
mm
-统咤
-Z2Z
间段假年•月•日的形武表示日期”
2E)0Q.1O,19
?
fh2tain
Uhatdayouwanttodo?
图11
删除模块
请输入妾删除和外罚单寻:
驾鷹盘备:
ID:
处罚单号;
.10
成功删除的罚单号能是;
叫
WliatdowWAnttodlo?
<
"
•渕览£
•返回主界面[】
图12
六、程序调试
自从把整体的c语言处罚单管理系统编成以后,就开始进行调试。
调试的过程中不知道修改了多少次源代码,为了能让交通处罚单管理系统在输入任何代码的情况下都能正常使用,不会出错,反复的修改,看书,查资料,询问同学调试之后,终于运行成功。
主要克服了以下问题:
(1)怎么样把交通处罚单数据输入文件中。
(2)通过主函数把其他的函数连接起来,形成一个完整的有序的程序。
(3)难度最大的是统计模块,算法十分复杂。
七、编程体会
老师布置完程序设计任务的第二天,我就开始寻找题目准备入手,见到交通处罚单管
理系统这个课题以后,我对此很感兴趣。
于是,当天下午开始做准备工作,重新把c语言复
习一遍,开始编程。
起初是挺困难的,偌大的一个程序,我之前从未编过,无从下手,然后,我通过查资料,了解其大概模型,首先是把管理系统所含有的功能各自分成几个模块,建立
一个主函数,把主函数和其他数个函数连接起来。
我想好了做输入、查询、浏览、删除、统计这五个功能,先把主函数完成,另外设计一个主界面。
一开始真的困难重重,虽然c语言
复习过了,但是看书看懂了和真正的运用学到的知识写程序是完全不同的,不断的对照例题,
不断的尝试与修改。
当我把所有的功能完成以后,已经花了将近五天的时间,结果,编程程
序检查我的源代码时候,有超过一百个错误。
我顿时绝望了。
我自己做的程序,我很想把它做好,我一个一个的检查,发现原来是我的结构体没有设置好,导致系统无法识别后面的源
代码。
对照书本上结构体例题把结构体给完成,剩下的便是一些小毛病。
陆陆续续的修改了
几天,最后一刻,发现程序能够运行了,我心情顿时兴奋澎湃了!
源代码
#include<
stdio.h>
stdlib.h>
#include<
ctype.h>
#includevstring.h>
#defineNUM150typedefstruct{
chardriver[10];
intcar;
charpolice[10];
intnum;
intdate;
}Traffic;
intmenu_select();
intInput(Traffictraflist[],intn);
voidDisplay(Traffictraflist[],intn);
intDelete(Traffictraflist[],intn,char*name);
intDelete_a_record(Traffictraflist[],intn);
voidSort_by_Name(Traffictraflist[],intn);
intInsert(Traffictraflist[],intn,Traffic*p);
intInsert_a_record(Traffictraflist[],intn);
*name);
void
intQuery(Traffictraflist[],intn,char
Query_a_record(Traffictraflist[],intn);
intAddfromText(Traffictraflist[],intn,char*filename);
voidWritetoText(Traffictraflist[],intn,char*filename);
voidmain()
intn=O;
charc,k;
Traffictraflist[NUM];
for(;
;
)
switch(menu_select())
case1:
n=lnput(traflist,n);
system("
pause"
);
break;
case2:
Display(traflist,n);
system("
case3:
n二Delete_a_record(traflist,n);
case4:
Sort_by_Name(traflist,n);
case5:
n=Insert_a_record(traflist,n);
case6:
Query_a_record(traflist,n);
case7:
cls"
n=AddfromText(traflist,n,&
c);
case8:
WritetoText(traflist,n,&
k);
case0:
exit(O);
}
}intmenu_select()
charc;
do
printf("
1:
lnputrecords'
n"
2:
Displayallrecords'
n"
3:
Deletearecord'
4:
Sort\n"
5:
lnsertarecord'
6:
Query\n"
7:
AddrecordsfromaTextFile'
O:
Quit!
\n"
Input1-8,0:
c=getchar();
while(cv'
0'
||c>
8);
returnc-'
O:
intInput(Traffictraflist[],intn)
inti,j;
for(i=0;
i++)
printf("
Youaregoingtoinputarecord,wehave%d
recordsnow!
n);
Inputdriver'
sname:
scanf("
%s"
&
traflist[i].driver);
printf("
Inputcarnumber:
%d"
&
traflist[i].car);
seanf("
traflist[i].police);
Inputserielsnumber:
traflist[i].num);
Inputyear:
traflist[i].year);
Inputmonth:
traflist[i].month);
Inputdate:
traflist[i].date);
Goon?
\nTogoonpleasepress1,pressanyotherkeyto
exit.'
j);
if(j!
=1)break;
n+=1;
return(n+1);
voidDisplay(Traffietraflist[],intn)
inti,num=O;
getchar();
司机姓名车牌号交警姓名罚单编号罚单的年罚单的月罚单的日\n"
i<
n;
{num++;
%8s%8d%8s%8d%8d%8d%8d\n"
traflist[i].driver,traflis
t[i].car,traflist[i].police,traflist[i].num,traflist[i].yea
r,traflist[i].month,traflist[i].date);
if(num%10==0)
intDelete(Traffictraflist[],intn,char*name)
if(strcmp(traflist[i].driver,name)==O)
printf(”确定要删除吗?
1-删除,否则放弃."
if(j==1)
strcpy(traflist[i].driver,traflist[i+1].driver);
strcpy(traflist[i].police,traflist[i+1].police);
traflist[i].car=traflist[i+1].car;
traflist[i].car=traflist[i+1].num;
traflist[i].year=traflist[i+1].year;
traflist[i].month=traflist[i+1].month;
traflist[i].date=traflist[i+1].date;
n-=1;
printf(”删除成功!
放弃操作!
returnn;
intDelete_a_record(Traffictraflist[],intn)
charname[20];
请输入要删除的名字:
name);
n=Delete(traflist,n,name);
voidSort_by_Name(Traffictraflist[],intn)
inti,j,t;
Trafficsp;
t=i;
for(j=i+1;
j<
j++)
if(strcmp(traflist[i].driver,traflist[j].driver)>
O)t=j;
if(t!
=i)
strcpy(sp.driver,traflist[t].driver);
strcpy(sp.police,traflist[t].police);
sp.car=traflist[t].car;
sp.num=traflist[t].num;
sp.year二traflist[t].year;
sp.month=traflist[t].month;
sp.date=traflist[t].date;
strcpy(traflist[t].driver,traflist[i].driver);
strcpy(traflist[t].police,traflist[i].police);
traflist[t].car=traflist[i].car;
traflist[t].num=traflist[i].num;
traflist[t].year=traflist[i].year;
traflist[t].month=traflist[i].month;
traflist[t].date=traflist[i].date;
strcpy(traflist[i].driver,sp.driver);
strcpy(traflist[i].police,sp.police);
traflist[i].car=sp.car;
traflist[i].num=sp.num;
traflist[i].year二sp.year;
traflist[i].month=sp.month;
traflist[i].date=sp.date;
intInsert(TraffictrafList[],intn,Traffic*s2)
trafList[n]=*s2;
Sort_by_Name(trafList,n);
intInsert_a_record(TraffictrafList[],intn){
Traffics2二{{0,0,0,0,0,0,0}};
printf(”请输入你想要插入的司机姓名:
s2.driver);
请输入车号:
s2.car);
printf(”请输入开罚单的交警姓名:
);
s2.police);
请输入罚单编号:
”);
s2.num);
请输入开罚单的年:
s2.year);
printf(”请输入开罚单的月:
s2.month);
printf(”请输入开罚单的日:
s2.date);
n=Insert(trafList,n,&
s2);
success!
}intQuery(Traffictraflist[],intn,char*name)
inti;
if(strcmp(traflist[i].driver,name)==0)returni;
return(-1);
}voidQuery_a_record(Traffictraflist[],intn)
请输入带查找人得姓名:
i=Query(traflist,n,name);
if(i==-1)
printf(”没有找到!
else
printf(”查找成功!
该司机的罚单信息如下:
罚单的年罚
%d\t
司机姓名车牌号交警姓名罚单编号单的月罚单的日\n"
%s\t
”,traflist[i].driver,traflist[i].car);
”,traflist[i].police,traflist[i].num);
%d\t%d\t%d\n"
traflist[i].year,traflist[
i].month,traflist[i].date);
intAddfromText(Traffictraflist[],intn,char*filename)
FILE*fp;
Trafficsp[NUM];
请输入文件名!
filename);
if((fp二fopen(filename,"
r"
))==NULL){
文件打开失败!
exit
(1);
fseanf(fp,"
ivj;
fscanf(fp,"
%s\t"
sp[i].driver);
%d\t"
sp[i].car);
sp[i].police);
sp[i].num);
sp[i].year);
sp[i].month);
fscanf(fp,"
%d\n"
sp[i].date);
i<
j;
n=Insert(traflist,n,&
sp[i]);
fclose(fp);
voidWritetoText(Traffictraflist[],intn,char*filename)
if((fp=fopen(filename,"
w"
))==NULL)
不能打开文件!
打开成功!
fprintf(fp,"
traflist[i].driver);
traflist[i].car);
traflist[i].police);
traflist[i].num);
traflist[i].year);
fprintf(f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 交通处 罚单 管理程序 实验 报告 源代码
![提示](https://static.bdocx.com/images/bang_tan.gif)