交通处罚单管理程序课程设计报告.docx

上传人:b****5 文档编号:7366053 上传时间:2023-01-23 格式:DOCX 页数:16 大小:53.60KB
下载 相关 举报
交通处罚单管理程序课程设计报告.docx_第1页
第1页 / 共16页
交通处罚单管理程序课程设计报告.docx_第2页
第2页 / 共16页
交通处罚单管理程序课程设计报告.docx_第3页
第3页 / 共16页
交通处罚单管理程序课程设计报告.docx_第4页
第4页 / 共16页
交通处罚单管理程序课程设计报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

交通处罚单管理程序课程设计报告.docx

《交通处罚单管理程序课程设计报告.docx》由会员分享,可在线阅读,更多相关《交通处罚单管理程序课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。

交通处罚单管理程序课程设计报告.docx

交通处罚单管理程序课程设计报告

 

C语言课程设计报告

题目:

交通处罚单管理程序

学号:

224

姓名:

专业:

指导老师:

 

二零一三五月

 

一、程序功能:

一、用结构体数组结构实现简单的交通处罚单管理功能。

具体功能:

(1)、可以输入、删除、显示、修改某个驾驶员的交通处罚单信息;

(2)、可以按驾驶员查询交通处罚单。

二、题目分析:

先建立主菜单,程序执行时,循环显示。

让用户在Giveyourchoice:

处输入选项,按回车后,即按列表执行相应功能。

然后,分别写出具有相应功能的函数。

三、设计心得:

通过课程设计,发现因细节掌握不好,出现了很多莫名其妙的问题。

可谓是,一着不慎,满盘皆输。

比如,做“将记录写入到文件”这个函数时,我忘了在程序结束时释放文件指针fp,竟导致写入失败。

待写入的records.txt被创建了,但里面却总是一片空白。

我来回检查多遍,耗时颇多,无意间加上了fclose(fp),问题才迎刃而解。

简言之,在做C语言时要仔细,注重细节,因为电脑实在太笨了,只是一堆机器。

再次是加深对各种算法的熟悉程度。

另外,在做课程设计的时候让我认识到要多与他人交流,要多问,要多想多探讨,只有这样才能让自己不断前进。

四、函数调用关系图:

输入“1”

调用

intInput(TraffictrafList[],intn)

输入“2”

调用

voidDisplay(TraffictrafList[],intn)

输入“3”

调用

intDelete_a_record(TraffictrafList[],intn)

intDelete(TraffictrafList[],intn,char*name)

调用

输入“4”

调用

voidSort_by_Name(TraffictrafList[],intn)

输入“5”

调用

intInsert_a_record(TraffictrafList[],intn)

调用

intInsert(TraffictrafList[],intn,Traffics)

输入“6”

调用

voidQuery_a_record(TraffictrafList[],intn)

intQuery(TraffictrafList[],intn,char*name)

调用

输入“7”

调用

intAddfromText(TraffictrafList[],intn,char*filename)

输入“8”

调用

voidWritetoText(TraffictrafList[],intn,char*filename)

(各函数的功能见程序中注释。

五、待测试数据:

ZhuangQi88DongGua0000032013224

DaPangzi37XiaoHua0000042013214

AiQiyi98XiaoMin0000052013413

六、程序要使用的data.txt:

2

WangXiao95DingFei0000012013123

LiuLin87CaiMing0000022013123

七、部分较复杂函数流程图

删除信息

 

插入信息

 

 

源码

#include

#include

#include

#include

#defineNUM10

typedefstruct{

chardriver[10];/*司机姓名*/

intcar;/*驾驶的车牌号*/

charpolice[10];/*开罚单的交警姓名*/

intnum;/*罚单编号*/

intyear;/*开罚单的年*/

intmonth;/*开罚单的月*/

intdate;/*开罚单的日*/

}Traffic;

intmenu_select();

intInput(TraffictrafList[],intn);

voidDisplay(TraffictrafList[],intn);

intDelete_a_record(TraffictrafList[],intn);

voidSort_by_Name(TraffictrafList[],intn);

intInsert_a_record(TraffictrafList[],intn);

voidQuery_a_record(TraffictrafList[],intn);

intAddfromText(TraffictrafList[],intn,char*filename);

voidWritetoText(TraffictrafList[],intn,char*filename);

voidmain()

{

TraffictrafList[NUM];

intn=0;

FILE*fp;inti;

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

if(fp==NULL)

{

printf("打开文件失败!

请重试!

\n");

exit

(1);

}

fprintf(fp,"%d",n);

printf("%d",n);

for(i=0;i<1;i++)

{

fprintf(fp,"%s\t\t",trafList[i].driver);

fprintf(fp,"%d\t",trafList[i].car);

fprintf(fp,"%s",trafList[i].police);

fprintf(fp,"%d\t",trafList[i].num);

fprintf(fp,"%d\t",trafList[i].year);

fprintf(fp,"%d\t",trafList[i].month);

fprintf(fp,"%d\n",trafList[i].date);

}

for(;;)

{

switch(menu_select())

{

case1:

n=Input(trafList,n);

system("pause");

break;

case2:

Display(trafList,n);

system("pause");

break;

case3:

n=Delete_a_record(trafList,n);

system("pause");

break;

case4:

Sort_by_Name(trafList,n);

system("pause");

break;

case5:

n=Insert_a_record(trafList,n);

system("pause");

break;

case6:

Query_a_record(trafList,n);

system("pause");

break;

case7:

n=AddfromText(trafList,n,"data.txt");

system("pause");

break;

case8:

WritetoText(trafList,n,"records.txt");

system("pause");

break;

case0:

printf("Goodbye\n");

system("pause");

exit(0);

}

}

}

intmenu_select()

{

charc;

do

{

system("cls");

printf("1.Inputrecords\n");

printf("2.Displayallrecords\n");

printf("3.Deletearecord\n");

printf("4.Sort\n");

printf("5.Insertarecord\n");

printf("6.Query\n");

printf("7.AddrecordsfromaTextFile\n");

printf("8.WritetoaTextFile\n");

printf("0.Quit\n");

printf("Giveyourchoice(0-8):

");

c=getchar();

}while(c<'0'||c>'8');

returnc-'0';

}

intInput(TraffictrafList[],intn)

{

charch;

printf("继续吗?

y:

yes,n:

no\n");

getchar();

ch=getchar();

while(ch=='y'||ch=='Y')

{

printf("请输入司机姓名:

");

scanf("%s",trafList[n].driver);

printf("请输入车牌号:

");

scanf("%d",&trafList[n].car);

printf("请输入警察:

");

scanf("%s",trafList[n].police);

printf("请输入罚单编号:

");

scanf("%d",&trafList[n].num);

printf("请输入开罚单年份:

");

scanf("%d",&trafList[n].year);

printf("请输入开罚单月份:

");

scanf("%d",&trafList[n].month);

printf("请输入开罚单的日:

");

scanf("%d",&trafList[n].date);

printf("goon?

y:

yes,n:

no\n");

getchar();

ch=getchar();

n++;

}

returnn;

}

voidDisplay(TraffictrafList[],intn)

{

inti;

for(i=0;i

{

printf("司机姓名:

%s\t车牌号:

%d\t警察:

%s\t罚单编号:

%d\t开罚单年份:

%d\t开罚单月份:

%d\t开罚单的日:

%d\n",trafList[i].driver,trafList[i].car,trafList[i].police,trafList[i].num,trafList[i].year,trafList[i].month,trafList[i].date);

//if(i%10==0)system("pause");

}

}

intDelete(TraffictrafList[],intn,char*name)

{

inti,j;

for(i=0;i

{

if(strcmp(trafList[i].driver,name)==0)

{

for(j=i;j

trafList[j]=trafList[j+1];

}

}

n--;

returnn;

}

intDelete_a_record(TraffictrafList[],intn)

{

chars[10];

charzq;

printf("请输入待删者姓名:

\n");

scanf("%s",s);

printf("您真要删除姓名为%s的记录吗?

Y/N\n",s);

scanf("%s",&zq);

//zq=getchar();

if(zq=='Y'||zq=='y')

{

n=Delete(trafList,n,s);

printf("您已成功删除姓名为%s的记录\n",s);

}

returnn;

}

//(4)

voidSort_by_Name(TraffictrafList[],intn)

{

inti,j,p;

Trafficzq;

//printf("N=%d\n",n);

for(i=0;i

{

p=i;

for(j=i+1;j

if(strcmp(trafList[j].driver,trafList[p].driver)<0)p=j;

if(p!

=i)

{

zq=trafList[p];trafList[p]=trafList[i];trafList[i]=zq;

}

}

}

//5

intInsert(TraffictrafList[],intn,Traffics)

{

inti,j;

for(i=0;i

{//printf("%d",n);

 

if(strcmp(s.driver,trafList[i].driver)<0)

{

for(j=n;j>0;j--)

trafList[j]=trafList[j-1];

trafList[i]=s;

break;

}

}

if(i==n)trafList[n]=s;

n++;

returnn;

}

//5

intInsert_a_record(TraffictrafList[],intn)

{

Trafficzq;

printf("请输入待插入司机姓名:

\n");

scanf("%s",zq.driver);

printf("请输入车牌号:

\n");

scanf("%d",&zq.car);

printf("请输入警察姓名:

\n");

scanf("%s",zq.police);

printf("请输入罚单编号:

\n");

scanf("%d",&zq.num);

printf("请输入开罚单年份:

\n");

scanf("%d",&zq.year);

printf("请输入开罚单月份:

\n");

scanf("%d",&zq.month);

printf("请输入开罚单日:

\n");

scanf("%d",&zq.date);

n=Insert(trafList,n,zq);

printf("该记录已经插入成功!

:

\n");

returnn;

}

//6

intQuery(TraffictrafList[],intn,char*name)

{

inti;

for(i=0;i

{

if(strcmp(trafList[i].driver,name)==0)

returni;

}

if(i==n)return-1;

}

voidQuery_a_record(TraffictrafList[],intn)

{

inta;

charzq[10];

printf("请输入待查找者的姓名:

\n");

scanf("%s",zq);

a=Query(trafList,n,zq);

if(a!

=-1)

{

printf("查找成功!

该司机罚单信息如下:

\n");

printf("司机姓名:

%s\t\t车牌号:

%d\t警察:

%s\t罚单编号:

%d\t年份:

%d\t月份:

%d\t日:

%d\n",trafList[a].driver,trafList[a].car,trafList[a].police,trafList[a].num,trafList[a].year,trafList[a].month,trafList[a].date);

}

elseprintf("查找失败!

可能无此人记录!

\n");

}

intAddfromText(TraffictrafList[],intn,char*filename)

{

FILE*fp;Trafficzq[NUM];intz,i;

if((fp=fopen(filename,"r"))==NULL)

{

printf("打开文件失败!

请重试!

\n");

exit

(1);

}

fscanf(fp,"%d",&z);

//printf("z=%d\n",z);

for(i=0;i

{

fscanf(fp,"%s",zq[i].driver);

fscanf(fp,"%d",&zq[i].car);

fscanf(fp,"%s",zq[i].police);

fscanf(fp,"%d",&zq[i].num);

fscanf(fp,"%d",&zq[i].year);

fscanf(fp,"%d",&zq[i].month);

fscanf(fp,"%d",&zq[i].date);

}

/*for(i=0;i

{

printf("司机姓名:

%s\t车牌号:

%d\t警察:

%s\t罚单编号:

%d\t开罚单年份:

%d\t开罚单月份:

%d\t开罚单的日:

%d\n",zq[i].driver,zq[i].car,zq[i].police,zq[i].num,zq[i].year,zq[i].month,zq[i].date);

}*/

for(i=0;i

//trafList[n]=zq[i];

Insert(trafList,n,zq[i]);

returnn;

}

voidWritetoText(TraffictrafList[],intn,char*filename)

{

FILE*fp;inti;

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

if(fp==NULL)

{

printf("打开文件失败!

请重试!

\n");

exit

(1);

}

fprintf(fp,"%d\n",n);

for(i=0;i

{

fprintf(fp,"%s",trafList[i].driver);

fprintf(fp,"%d\t",trafList[i].car);

fprintf(fp,"%s",trafList[i].police);

fprintf(fp,"%d\t",trafList[i].num);

fprintf(fp,"%d\t",trafList[i].year);

fprintf(fp,"%d\t",trafList[i].month);

fprintf(fp,"%d\n",trafList[i].date);

}

 

fclose(fp);

 

}

 

 

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

当前位置:首页 > 高等教育 > 其它

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

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