交通处罚单系统课程设计正文报告 大学论文.docx

上传人:b****1 文档编号:2836617 上传时间:2023-05-04 格式:DOCX 页数:29 大小:248.76KB
下载 相关 举报
交通处罚单系统课程设计正文报告 大学论文.docx_第1页
第1页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第2页
第2页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第3页
第3页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第4页
第4页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第5页
第5页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第6页
第6页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第7页
第7页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第8页
第8页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第9页
第9页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第10页
第10页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第11页
第11页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第12页
第12页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第13页
第13页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第14页
第14页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第15页
第15页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第16页
第16页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第17页
第17页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第18页
第18页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第19页
第19页 / 共29页
交通处罚单系统课程设计正文报告 大学论文.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

交通处罚单系统课程设计正文报告 大学论文.docx

《交通处罚单系统课程设计正文报告 大学论文.docx》由会员分享,可在线阅读,更多相关《交通处罚单系统课程设计正文报告 大学论文.docx(29页珍藏版)》请在冰点文库上搜索。

交通处罚单系统课程设计正文报告 大学论文.docx

交通处罚单系统课程设计正文报告大学论文

计算机系统基础Ⅱ

课程设计报告

题目:

交通处罚单系统

学院:

软件学院

专业:

软件工程

班级:

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日资料分析,学习和巩固()知识,确定()作为课程设计题目,确定小组成员分工。

6月3日进行需求分析、总体设计,确定程序的应具备的功能模块。

()

6月4-8日编写程序代码,并进行

6月9-11日进行程序的调试和测试,并不断修改完善程序。

6月12日撰写程序报告,

6月13日答辩。

1.课程设计题目及实现功能

课程设计就题目为交通处罚单系统。

交通处罚单信息包括:

车牌号,驾驶员姓名,交警姓名,交警号,处罚单号,日期。

程序所提供的功能:

1.处罚单信息输入

2.处罚单信息删除

3.处罚单信息浏览

4.处罚单信息查询

5.处罚单信息统计

6.程序设计具有保存(采用文件)功能

2.程序设计的主要知识点

2.1处罚单信息输入采用结构体类型数组

信息输入集合多种数据,采用结构体数组方便这种符合数据的处理。

信息数据类型只用了字符型。

而且车牌号,驾驶员姓名,交警姓名,交警号,处罚单号,日期,均采用字符型20个字符。

2.2程序设计的读取和保存,设计(list.txt)文件,采用fopen()打开文件,fclose()关闭文件,fscanf()格式化读取文件,fprintf()格式化写入文件。

3.-总体设计

3.1系统功能模块图

3.2功能模块

输入模块

(2)删除模块

(3)浏览模块

(4)查询模块

(5)统计模块

4.主要问题解决方法及技术关键

设计中主要通过函数来实现,然后在逐步细化,最终调试完成,主要包括以下函数。

4.1主菜单函数voidmenu()

将各部分模块函数写入主菜单函数,通过switch()结构输入对应数字分别进入各个模块函数,实现功能。

4.2输入信息函数voidinput()

当输入1时进入信息输入函数,具体功能实现如下,输入处罚单数量,打开文件夹(list.txt)若打开成功将输入的处罚单数量与之前保存数量相加,若超出保存容量范围,回到主菜单,否则写入信息。

若打开文件夹(list.txt)失败,则建立该文件夹写入信息,如建立失败,返回主菜单。

4.3删除记录函数voiddelet()函数

当输入2时进入删除函数,具体功能实现如下,输入车牌号,利用字符串比对函数strcmp()与所输入编号一一比对,若所保存数据有与其相同,则通过strcpy()函数进行删除操作,若所保存数据未有相同,则返回主菜单。

4.4浏览函数voidbrowse()

当输入3时,进入浏览函数,利用fscanf()函数进行读取文件,利用for循环体输出所存信息,返回主菜单。

4.5查询函数voidsearch()

当输入4时进入查询函数,查询分为1.车牌号查询,2.驾驶员姓名查询,3.交警姓名查询。

利用fscanf()函数读取数据,利用strcmp()函数进行字符串比较,若所读取的数据有与其相同的数据,则输出该数据,若没有则回到主菜单。

4.6统计函数voidcount()

当输入5时进入统计函数,利用fscanf()读取数据,输入一个时间段,利用strcmp()和逻辑与,在for循环体中进行选择,并计数,选择出罚单数,罚单号,输出数据。

返回主菜单,若未查询到,返回主菜单。

5.程序清单

#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");

getchar();

menu();

}

printf("\n请输入处罚单数量:

");

scanf("%d",&i);

printf("\n\n");

for(j=0;j

{

printf("输入第%d张处罚单的:

\n",j+1);

printf("\n车牌号:

\n");

scanf("%s",&list[j].vno);

printf("驾驶员姓名\n");

scanf("%s",&list[j].dname);

printf("交警姓名\n");

scanf("%s",&list[j].pname);

printf("交警号\n");

scanf("%s",&list[j].pno);

printf("处罚单号\n");

scanf("%s",&list[j].no);

printf("日期(如20101112)\n");

scanf("%s",&list[j].date);

printf("\n注意:

中间用空格隔开!

\n");

}

for(j=0;j

{

fprintf(fp,"\n%s\n%s\n%s\n%s\n%s\n%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

fclose(fp);

printf("\n保存成功!

");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

printf("\n请输入处罚单数量:

");

scanf("%d",&i);

for(j=0;!

feof(fp);j++)//读取文件

{

fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

num=j+i;

if(num>N)

{

printf("\n结构体数组数的N太小,请先修改N的值\n");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

printf("\n");

for(j=0;j

{

printf("输入第%d张处罚单的:

\n",j+1);

printf("\n车牌号:

\n");

scanf("%s",&list[j].vno);

printf("驾驶员姓名\n");

scanf("%s",&list[j].dname);

printf("交警姓名\n");

scanf("%s",&list[j].pname);

printf("交警号\n");

scanf("%s",&list[j].pno);

printf("处罚单号\n");

scanf("%s",&list[j].no);

printf("日期(如20101112)\n");

scanf("%s",&list[j].date);

printf("\n注意:

中间用空格隔开!

\n");

}

for(j=0;j

{

fprintf(fp,"\n%s\n%s\n%s\n%s\n%s\n%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

fclose(fp);

printf("\n保存成功!

");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

voiddele()

{

intj;

intnum;

intf=-1;

FILE*fp1,*fp2;

chars1[20];

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

{

printf("cannotopenfile\n");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

for(j=0;!

feof(fp1);j++)//读取文件

{

fscanf(fp1,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

num=j;

fclose(fp1);

printf("请输入要删除的处罚单的编号\n");

scanf("%s",s1);

for(j=0;j

{

if(strcmp(s1,list[j].no)==0)

{

f=j;

if(f

{

for(j=f;j

{

strcpy(list[j].vno,list[j+1].vno);

strcpy(list[j].dname,list[j+1].dname);

strcpy(list[j].pname,list[j+1].pname);

strcpy(list[j].pno,list[j+1].pno);

strcpy(list[j].no,list[j+1].no);

strcpy(list[j].date,list[j+1].date);

}

}

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

{

printf("文件打不开!

\n");

printf("\npressentertoreturnmenu\n");

getchar();

menu();

}

for(j=0;j

{

fprintf(fp2,"\n%s\n%s\n%s\n%s\n%s\n%s",list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

fclose(fp2);

printf("\n删除成功!

\n");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

}

if(f<0)

{

printf("\n没有找到该学号的记录:

\n");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

}

voidbrowse()

{

intj;

intnum;

FILE*fp;

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

{

printf("cannotopenfile\n");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

for(j=0;!

feof(fp);j++)//读取文件

{

fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

fclose(fp);

num=j;

printf("\n已添加%d条记录\n\n",num);

for(j=0;j

{

printf("第%d条记录为:

\n",j);

printf("1.车牌号:

%s\n",list[j].vno);

printf("2.驾驶员姓名:

%s\n",list[j].dname);

printf("3.交警姓名:

%s\n",list[j].pname);

printf("4.交警号:

%s\n",list[j].pno);

printf("5.处罚单号:

%s\n",list[j].no);

printf("6.日期:

%s\n",list[j].date);

printf("\n");

}

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

voidsearch()

{

intn;

intr;

do

{

system("cls");

printf("\n请选择查询类型:

\n\t1-按车牌号2-按驾驶员姓名3:

按开单交警姓名4-返回主菜单\n");

printf("\n请输入数字选择:

");

scanf("%d",&n);

if(n<1||n>4)

{

r=1;

getchar();

}

elser=0;

}while(r==1);

switch(n)

{

case1:

vno_search();break;

case2:

dna_search();break;

case3:

pna_search();break;

case4:

menu();

}

}

voidvno_search()

{

intf=-1;

intnum;

intj;

charno[20];

FILE*fp;

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

{

printf("文件打不开!

\n");

printf("\npressentertoreturnmenu\n");

getchar();

menu();

}

for(j=0;!

feof(fp);j++)//读取文件

{

fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

num=j;

fclose(fp);

printf("\n请输入车牌号:

");

scanf("%s",no);

printf("\n罚单的信息为:

\n\n");

for(j=0;j

{

if(strcmp(no,list[j].vno)==0)

{

f=j;

printf("1.车牌号:

%s\n",list[j].vno);

printf("2.驾驶员姓名:

%s\n",list[j].dname);

printf("3.交警姓名:

%s\n",list[j].pname);

printf("4.交警号:

%s\n",list[j].pno);

printf("5.处罚单号:

%s\n",list[j].no);

printf("6.日期:

%s\n",list[j].date);

printf("\n");

}

}

if(f<0)

printf("\n没有找到该班号的记录!

\n");

printf("\npressentertoreturnsubmenu\n");

getchar();

getchar();

search();

}

voiddna_search()

{

intf=-1;

intnum;

intj;

charname[20];

FILE*fp;

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

{

printf("文件打不开!

\n");

printf("\npressentertoreturnmenu\n");

getchar();

menu();

}

for(j=0;!

feof(fp);j++)//读取文件

{

fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

num=j;

fclose(fp);

printf("\n请输入驾驶员的姓名:

");

scanf("%s",name);

printf("\n罚单的信息为:

\n\n");

for(j=0;j

{

if(strcmp(name,list[j].dname)==0)

{

f=j;

printf("1.车牌号:

%s\n",list[j].vno);

printf("2.驾驶员姓名:

%s\n",list[j].dname);

printf("3.交警姓名:

%s\n",list[j].pname);

printf("4.交警号:

%s\n",list[j].pno);

printf("5.处罚单号:

%s\n",list[j].no);

printf("6.日期:

%s\n",list[j].date);

printf("\n");

}

}

if(f<0)

printf("\n没有找到该班号的记录!

\n");

printf("\npressentertoreturnsubmenu\n");

getchar();

getchar();

search();

}

voidpna_search()

{

intf=-1;

intnum;

intj;

charname[20];

FILE*fp;

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

{

printf("文件打不开!

\n");

printf("\npressentertoreturnmenu\n");

getchar();

menu();

}

for(j=0;!

feof(fp);j++)//读取文件

{

fscanf(fp,"%s%s%s%s%s%s",&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

num=j;

fclose(fp);

printf("\n请输入开单交警的姓名:

");

scanf("%s",name);

printf("\n罚单的信息为:

\n\n");

for(j=0;j

{

if(strcmp(name,list[j].pname)==0)

{

f=j;

printf("1.车牌号:

%s\n",list[j].vno);

printf("2.驾驶员姓名:

%s\n",list[j].dname);

printf("3.交警姓名:

%s\n",list[j].pname);

printf("4.交警号:

%s\n",list[j].pno);

printf("5.处罚单号:

%s\n",list[j].no);

printf("6.日期:

%s\n",list[j].date);

printf("\n"

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2