C语言课程设计报告交通处罚单管理.docx
- 文档编号:6545258
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:14
- 大小:192.40KB
C语言课程设计报告交通处罚单管理.docx
《C语言课程设计报告交通处罚单管理.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告交通处罚单管理.docx(14页珍藏版)》请在冰点文库上搜索。
C语言课程设计报告交通处罚单管理
C语言程序设计
姓名:
曹怀予
学号:
20071004524
班序号:
05507135
前言:
C语言是今年来国内得到迅速推广使用的一种计算机语言。
C语言程序设计课程是计算机专业和信息管理专业的核心专业基础课,无论是计算机专业还是非计算器专业的学生,学习好C语言是非常重要的。
一.交通处罚单管理
要求:
交通处罚单涉及到车辆,驾驶员和开单交警的信息,还有交通处罚单的号码,处罚时间等信息。
功能:
(1) 要求可以输入,删除,浏览交通处罚单信息。
(2)可以按车辆,驾驶员和开单交警查询。
(3)统计某时间段某个驾驶员的交通处罚数目及交通处罚单号码。
(一)需求分析
交通处罚单信息用文件存储,提供文件的输入输出操作;要求可以输入,输出,删除,浏览交通处罚单信息,因而要提供输入,删除和显示操作;要实现按车辆,驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。
(二)总体设计
整个管理系统被设计为信息输入模块,信息删除模块,信息浏览模块,信息查询模块和信息统计模块等。
如下图:
(三)详细设计
1.主函数实现的是显示菜单以及函数调用,其中各功能模块用菜单方式选择。
程序:
main()
{
intkey=1;
system("cls");
while(key)
{
printf("\n\t\t\t1.Write\n");
printf("\t\t\t2.Watch\n");
printf("\t\t\t3.Delete\n");
printf("\t\t\t4.Add\n");
printf("\t\t\t5.Search\n");
printf("\t\t\t6.Manage\n");
printf("\t\t\t0.Exit\n");
scanf("%d",&key);
switch(key)
{
case1:
out();break;
case2:
p();break;
case3:
del();break;
case4:
add();break;
case5:
search();break;
case6:
manage();break;
case0:
break;
default:
printf("error\n");
}
}
}
2.一些预处理命令、结构体定义和函数声明。
#include
#include
#defineNUM3
#defineFOR(i)for(i=0;i structtrafic { intcar; chardriver[10]; charpolice[10]; intyear; intnum; intmonth; intdate; }list[NUM]; voidsave(); voidload(); voidout(); voiddel(); voidadd(); voidp(); voidsearch(); voidmanage(); voidser_car(); voidser_dri(); voidser_pol(); 3.信息储存函数。 voidsave() { FILE*fp; inti; if((fp=fopen("list_tra","wb"))==NULL) { printf("cannotopenfile\n"); return; } FOR(i) if(fwrite(&list[i],sizeof(structtrafic),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } 4.信息读取函数。 voidload() { FILE*fp; inti; if((fp=fopen("list_tra","rb"))==NULL) { printf("cannotopeninfile\n"); return; } FOR(i) if(fread(&list[i],sizeof(structtrafic),1,fp)! =1) { if(feof(fp))return; printf("filereaderror\n"); } fclose(fp); } 5.信息从键盘输入函数。 voidout() { inti; printf("Pleaseinput: cardriverpoliceyearmonthdate\n"); FOR(i) { scanf("%d%s%s%d%d%d",&list[i].car,&list[i].driver,&list[i].police,&list[i].year,&list[i].month,&list[i].date); list[i].num=i+1; } save(); } 6.信息显示函数。 voidp() { intb; load(); FOR(b) printf("num: %dcar: %ddriver: %spolice: %s\nyear: %dmonth: %ddate: %d\n\n",list[b].num,list[b].car,list[b].driver,list[b].police,list[b].year,list[b].month,list[b].date); } 7.记录删除函数。 voiddel() { intb; load(); printf("Pleasechoosewhichonetobedelete: "); scanf("%d",&b); b--; list[b].car=list[b].year=list[b].month=list[b].date=0; list[b].driver[0]=list[b].police[0]='\0'; save(); } 8.记录添加函数 voidadd() { inta; load(); printf("Pleasechoosewhichonetobeadded: "); scanf("%d",&a); a--; scanf("%d%s%s%d%d%d",&list[a].car,&list[a].driver,&list[a].police,&list[a].year,&list[a].month,&list[a].date); list[a].num=a+1; save(); } 9.信息查询函数。 voidsearch() { intk=1; printf("Pleasechoosesearchingbywhich: \n"); while(k) { printf("\t\t\t1.Car\n\t\t\t2.Driver\n\t\t\t3.Police\n\t\t\t0.Exit\n"); scanf("%d",&k); switch(k) { case1: ser_car();break; case2: ser_dri();break; case3: ser_pol();break; case0: break; default: printf("error\n"); } } } 此函数包括3个子函数,分别实现按车牌号、司机、交警查询的功能。 voidser_car() { inti,c; load(); scanf("%d",&c); FOR(i) if(c==list[i].car) printf("num: %dcar: %ddriver: %spolice: %s\nyear: %dmonth: %ddate: %d\n\n",list[i].num,list[i].car,list[i].driver,list[i].police,list[i].year,list[i].month,list[i].date); } voidser_dri() { inti; chard[10]; load(); scanf("%s",d); FOR(i) if(strcmp(d,list[i].driver)==0) printf("num: %dcar: %ddriver: %spolice: %s\nyear: %dmonth: %ddate: %d\n\n",list[i].num,list[i].car,list[i].driver,list[i].police,list[i].year,list[i].month,list[i].date); } voidser_pol() { inti; charp[10]; load(); scanf("%s",p); FOR(i) if(strcmp(p,list[i].police)==0) printf("num: %dcar: %ddriver: %spolice: %s\nyear: %dmonth: %ddate: %d\n\n",list[i].num,list[i].car,list[i].driver,list[i].police,list[i].year,list[i].month,list[i].date); } 10.信息管理函数。 此函数实现的功能为查询一段时间内某司机违章次数以及罚单号。 voidmanage() { inty1,y2,m1,m2,d1,d2,i,n=0,l[NUM]={0}; chardr[10]; load(); printf("Pleaseinputthebeginningtime(yearmonthdate)\n"); scanf("%d%d%d",&y1,&m1,&d1); printf("Pleaseinputtheendtime(yearmonthdate)\n"); scanf("%d%d%d",&y2,&m2,&d2); printf("Pleaseinputthedriver'sname: \n"); scanf("%s",dr); FOR(i) { if(compare(list[i].year,list[i].month,list[i].date,y1,y2,m1,m2,d1,d2)) if(strcmp(dr,list[i].driver)==0) { printf("num: %dcar: %ddriver: %spolice: %s\nyear: %dmonth: %ddate: %d\n\n",list[i].num,list[i].car,list[i].driver,list[i].police,list[i].year,list[i].month,list[i].date); n++; l[i]=1; } } printf("Thereare%dlists,andthenumberare: ",n); FOR(i) if(l[i])printf("%d",i+1); } 这个函数包括一个判断时间先后的子函数。 compare(inty,intm,intd,inty1,inty2,intm1,intm2,intd1,intd2) { intz=0; if(y>y1&&y if(y==y1&&y if(y>y1&&y==y2&&m if(y==y1&&y==y2) { if(m>m1&&m if(m==m1&&m if(m>m1&&m==m2&&d<=d2)z=1; if(m==m1&&m==m2&&d>=d1&&d<=d2)z=1; } return(z); } (四)上机操作 主菜单界面: 从键盘输入数据: 显示所有信息: 删除指定的记录: 添加内容到指定记录: 搜索菜单: 按车牌号查询: 按司机查询: 按交警查询: 查询一段时间内某司机违章次数以及罚单号: 总结: 通过C语言程序设计的上机实习,我进一步了解和运用结构化程序设计的思维方法。 C语言二级考试已在眼前了,而这次C语言实习顺利结束真正意义上为C语言二级考试打好了基础。 而且这次实习真正意义上将所学知识运用到了实际中。 在这次实习中,我也学到了动态调试等一些新知识,并且发现任何一处看似不起眼的微小错误很可能导致程序无法运行或是运行结果错误。 我在这次实习中最大的收获就是学会了分析和排除错误,而这恰恰是从书本上学不到的。 想要进一步提高C语言程序设计的水平,还需要不断的努力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 交通处 罚单 管理