C语言实习报告 交通处罚单管理系统_交通处罚单管理系统

2020-02-28 实习报告 下载本文

C语言实习报告 交通处罚单管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“交通处罚单管理系统”。

中国地质大学

C语言课程设计

综合实习报告

目:交通处罚单管理系统

姓 名: 高冀芸 学 号: 20091004500 院

系: 资源学院 专 业: 资源勘查工程 班 号: 021091-08 指导教师: 童恒建

2011 年 1 月

目录

交通处罚单管理系统

------------------------3 设计思路-------------------------3 运行结果-------------------------18 源程序-------------------------22 学习所思所得

----------------------25

交通处罚单管理系统

1.题目要求

用C语言编写一个简单的模拟交通处罚单管理系统 [要求] 交通处罚单涉及到车辆、驾驶员和开单交警的信息,还有交通处罚单号码、处罚时间等信息; [功能] 1 2 3 要求可以输入、删除、浏览交通处罚单信息; 可以按车辆、驾驶员和开单交警查询;

统计某段时间某个驾驶员的交通处罚单数目及交通处罚单号;

2.需求分析

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

3.总体设计

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

4.详细设计

1主函数

主函数显示“交通处罚单管理系统”的主页面,其中各功能模块用菜单方式选择。其流程图如图所示。

[程序] main(){ menu();

getchar();}

void menu(){

int n;

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

do

{

system(“cls”);

printf(“ntttt交通处罚单管理系统n”);

printf(“········································”);

printf(“ 菜单: 1-信息录入 2-信息删除 3-信息浏览 4-信息查询 5-信息统计 6-退出系统n”);

printf(“········································”);

printf(“请从输入数字选择相应的功能:”);

scanf(“%d”,&n);

if(n6)

/*对选择的数字进行判断*/

{

r=1;

getchar();

}

else r=0;}while(r==1);

/*选择功能*/ switch(n){

case 1:input();break;

/*输入模块*/

case 2:dele();break;

/*删除模块*/

case 3:browse();break;

/*浏览模块*/

case 4:search();break;

/*查询模块*/

case 5:count();break;

/*统计模块*/

case 6:exit(0);

/*退出*/ } }

2.各功能模块设计

(1)输入模块

【数据结构】

在这里,可以把处罚单涉及到的车辆、驾驶员和开单交警,处罚单号码、处罚时间作为结构体成员,要存放的处罚单信息就用结构体数组,整体的数据结构就比较完整、清晰,后续的信息处理及浏览

将更加方便。单独看各种信息可采用字符窜数组进行记录。

结构体数组;struct Plist

//处罚单 {

char vno[20];

//车牌号

char dname[20];

//驾驶员姓名 char pname[20];

//交警姓名 char pno[20];

//交警编号 char no[20];

//处罚单编号 char date[20];

//处罚日期 }

list[N];

//处罚单数组

说明:其中list[N]中的N为处罚单数量,程序中采用宏定义的方式,可随时在源程序宏定义中修改,本程序宏定义#define N 50。

输入模块程序流程图如下所示。

程序:

程序中涉及到文件的处理,要新建一个文件夹,将输入的信息保存进文件夹void input(){

FILE*fp;

int num;

int i,j;

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

{

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

{

printf(“文件打开或创建失败!n”);

printf(“npre enter to return menun”);

getchar();

menu();

}

printf(“n请输入处罚单数量:”);

scanf(“%d”,&i);

printf(“nn”);

for(j=0;j

{

printf(“输入第%d张处罚单的:n”,j+1);

printf(“n 车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)n”);

printf(“n注意:中间用空格隔开!n”);

scanf(“%s%s%s%s%s%s”,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

for(j=0;j

{

fprintf(fp,“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);/*开辟存储空间,将信息输入到指针指向的位置*/

}

fclose(fp);

/*关闭文件*/

printf(“n保存成功!”);

printf(“npre enter to return menun”);

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(“npre enter to return menun”);

getchar();

getchar();

menu();

}

printf(“n”);

for(j=0;j

{

printf(“输入第%d张处罚单的:n”,j+1);

printf(“n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)n”);

printf(“n注意:中间用空格隔开!n”);

scanf(“%s%s%s%s%s%s”,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

for(j=0;j

{ fprintf(fp,“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

fclose(fp);

printf(“n保存成功!”);

printf(“npre enter to return menun”);

getchar();

getchar();

menu();}

(2)删除模块

该模块删除多余信息,需要先以只读的形式打开,可以以其中一个信息输入内容确定需删除的信息,本程序输入处罚单的编号,根据编号删除记录。删除记录时,将数据从文件中删除,删除位置后面的记录往前移。该模块的流程图如下。

程序: void dele(){

int j;

int num;

int f=-1;

FILE*fp1,*fp2;

char s1[20];

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

{

printf(“can not open filen”);

printf(“npre enter to return menun”);

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].date);

}

}

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

getchar();

menu();

}

for(j=0;j

//保存文件

{

fprintf(fp2,“n%st%st%st%st%st%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(“npre enter to return menun”);

getchar();

getchar();

menu();

}

}

if(f

{

printf(“n没有找到该学号的记录:n”);

printf(“npre enter to return menun”);

getchar();

getchar();

menu();

} }(3).浏览模块

该功能时显示删除某些信息后处罚单上的所有记录。这部分显示处罚单的数量,再打开文件,按结构体数组的形式输出所有信息即可。其程序如下所示。程序: void browse(){

int j;

int num;

FILE*fp;

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

{

printf(“can not open filen”);

printf(“npre enter to return menun”);

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条记录nn”,num);

printf(“车牌号

驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n”);

for(j=0;j

//输出

{

printf(“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

printf(“npre enter to return menun”);

getchar();

getchar();

menu();(4).查询模块

该模块有三个查询类型可供选择,可选择以车牌号、驾驶员姓名、开单交警姓名三种方式来查询,这些都将以菜单的形式选择,所以有一个主菜单和各个分模块。同样查询模块也必须先打开文件夹。

菜单流程图如下。

分模块的流程图基本相同,现以按车牌号查询为例,编写其流程图。

菜单程序: void search(){

int n;

int r;

do {

system(“cls”);

printf(“n请选择查询类型:nt1-按车牌号 2-按驾驶员姓名3:按开单交警姓名 4-返回主菜单n”);

printf(“n请输入数字选择:”);

scanf(“%d”,&n);

if(n4)

{

r=1;

getchar();

}

else r=0;}while(r==1);switch(n){

case 1:vno_search();break;

case 2:dna_search();break;

case 3:pna_search();break;

case 4:menu();

}

}

各分模块程序: 按车牌号查询

void vno_search()

/*按车牌号查询*/

{

int f=-1;

int num;

int j;

char no[20];

FILE*fp;

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

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罚单的信息为:nn”);

printf(“车牌号

驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n”);

for(j=0;j

{

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

{

f=j;

printf(“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

}

if(f

printf(“n没有找到该车牌号的记录!n”);

printf(“npre enter to return sub menun”);

getchar();

getchar();

search();}

按驾驶员姓名查询

void dna_search()

/*按驾驶员姓名查询*/ {

int f=-1;

int num;

int j;

char name[20];

FILE*fp;

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

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罚单的信息为:nn”);

printf(“车牌号

驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n”);

for(j=0;j

{

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

{

f=j;

printf(“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

}

if(f

printf(“n没有找到该驾驶员的记录!n”);

printf(“npre enter to return sub menun”);

getchar();

getchar();

search();}

按开单交警姓名查询

void pna_search()

/*按开单交警姓名查询*/ {

int f=-1;

int num;

int j;

char name[20];

FILE*fp;

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

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罚单的信息为:nn”);

printf(“车牌号

驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n”);

for(j=0;j

{

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

{

f=j;

printf(“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

}

if(f

printf(“n没有找到该开单交警的记录!n”);

printf(“npre enter to return sub menun”);

getchar();

getchar();

search();}

5.统计模块

该模块先输入驾驶员的姓名和一个时间段,就可以统计某个驾驶员在某段时间内的处罚单数目和处罚单号。

程序为: void count(){

int f=-1;

int num;

//所有罚单单数

int j;

int total=0;//某驾驶员的罚单数

char name[20];

char time1[20];

char time2[20];

FILE*fp;

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

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请根据提示输入驾驶员的姓名和一个时间段,统计某个驾驶员在某段时间内的处罚单数目和罚单号n”);

printf(“nn请输入驾驶员的姓名:”);

scanf(“%s”,name);

printf(“n请输入一个较早的时间:”);

scanf(“%s”,time1);

printf(“n请输入一个最近的时间:”);

scanf(“%s”,time2);

for(j=0;j

{

if((strcmp(list[j].date,time1)>=0)&&(strcmp(list[j].date,time2)

{

f=j;

total++;

printf(“n罚单号:%sn”,list[j].no);

}

}

if(f

printf(“n没有找到记录!n”);

printf(“n罚单总数为:%dn”,total);

printf(“npre enter to return menun”);

getchar();

getchar();

menu();}

5.运行结果

将程序运行出来后,会的到各模块的界面图。1 主菜单函数:

效果如图所示

输入相应的数字即可运行相应的模块。

输入模块,下图为输入和保存的信息。

删除模块 信息浏览模块 信息查询模块主菜单

信息查询模块:按车牌号查询 统计模块

6.整体程序

源代码:

#include #include #include #define N 100

struct Plist

//处罚单 {

char vno[20];

//车牌号

char dname[20];

//驾驶员姓名

char pname[20];

//交警姓名

char pno[20];

//交警编号

char no[20];

//处罚单编号

char date[20];

//处罚日期 } list[N];

//处罚单数组

void input();//输入模块 void dele();//删除模块 void browse();//浏览模块 void search();//查询模块 void count();

//统计模块 void menu();

//主菜单

void vno_search();

//按车牌号查询

void dna_search();

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

//按开单交警姓名查询 main(){ menu();getchar();}

void menu(){

int n;

int r;

do

{

system(“cls”);

printf(“ntttt交通处罚单管理系统n”);

printf(“········································”);

printf(“ 菜单: 1-信息录入 2-信息删除 3-信息浏览 4-信息查询 5-信息统计 6-退出系统n”);

printf(“········································”);

printf(“请从输入数字选择相应的功能:”);

scanf(“%d”,&n);

if(n6)

{

r=1;

getchar();

}

else r=0;}while(r==1);switch(n){

case 1:input();break;

case 2:dele();break;

case 3:browse();break;

case 4:search();break;

case 5:count();break;

case 6:exit(0);} }

void input(){

FILE*fp;

int num;

int i,j;

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

{

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

{

printf(“文件打开或创建失败!n”);

printf(“npre enter to return menun”);

getchar();

menu();

}

printf(“n请输入处罚单数量:”);

scanf(“%d”,&i);

printf(“nn”);

for(j=0;j

{

printf(“输入第%d张处罚单的:n”,j+1);

printf(“n 车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)n”);

printf(“n注意:中间用空格隔开!n”);

scanf(“%s%s%s%s%s%s”,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

for(j=0;j

{

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

}

fclose(fp);

printf(“n保存成功!”);

printf(“npre enter to return menun”);

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(“npre enter to return menun”);

getchar();

getchar();

menu();

}

printf(“n”);

for(j=0;j

{

printf(“输入第%d张处罚单的:n”,j+1);

printf(“n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)n”);

printf(“n注意:中间用空格隔开!n”);

scanf(“%s%s%s%s%s%s”,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);

}

for(j=0;j

{ fprintf(fp,“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

fclose(fp);

printf(“n保存成功!”);

printf(“npre enter to return menun”);

getchar();

getchar();

menu();}

void dele(){

int j;

int num;

int f=-1;

FILE*fp1,*fp2;

char s1[20];

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

{

printf(“can not open filen”);

printf(“npre enter to return menun”);

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].date);

}

}

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

getchar();

menu();

}

for(j=0;j

//保存文件

{

fprintf(fp2,“n%st%st%st%st%st%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(“npre enter to return menun”);

getchar();

getchar();

menu();

}

}

if(f

{

printf(“n没有找到该处罚单的记录:n”);

printf(“npre enter to return menun”);

getchar();

getchar();

menu();

} }

void browse(){

int j;

int num;

FILE*fp;

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

{

printf(“can not open filen”);

printf(“npre enter to return menun”);

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条记录nn”,num);

printf(“车牌号

驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n”);

for(j=0;j

//输出

{

printf(“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

printf(“npre enter to return menun”);

getchar();

getchar();

menu();}

void search(){

int n;

int r;

do {

system(“cls”);

printf(“n请选择查询类型:nt1-按车牌号 2-按驾驶员姓名3:按开单交警姓名 4-返回主菜单n”);

printf(“n请输入数字选择:”);

scanf(“%d”,&n);

if(n4)

{

r=1;

getchar();

}

else r=0;}while(r==1);switch(n){

case 1:vno_search();break;

case 2:dna_search();break;

case 3:pna_search();break;

case 4:menu();

}

}

void vno_search(){

int f=-1;

int num;

int j;

char no[20];

FILE*fp;

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

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罚单的信息为:nn”);

printf(“车牌号

驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n”);

for(j=0;j

{

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

{

f=j;

printf(“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

}

if(f

printf(“n没有找到该车牌号的记录!n”);

printf(“npre enter to return sub menun”);

getchar();

getchar();

search();}

void dna_search(){

int f=-1;

int num;

int j;

char name[20];

FILE*fp;

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

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罚单的信息为:nn”);

printf(“车牌号

驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n”);

for(j=0;j

{

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

{

f=j;

printf(“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

}

if(f

printf(“n没有找到该驾驶员的记录!n”);

printf(“npre enter to return sub menun”);

getchar();

getchar();

search();}

void pna_search(){

int f=-1;

int num;

int j;

char name[20];

FILE*fp;

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

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罚单的信息为:nn”);

printf(“车牌号

驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期n”);

for(j=0;j

{

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

{

f=j;

printf(“n%st%st%st%st%st%s”,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);

}

}

if(f

printf(“n没有找到该开单交警的记录!n”);

printf(“npre enter to return sub menun”);

getchar();

getchar();

search();}

void count(){

int f=-1;

int num;

//所有罚单单数

int j;

int total=0;//某驾驶员的罚单数

char name[20];

char time1[20];

char time2[20];

FILE*fp;

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

{

printf(“文件打不开!n”);

printf(“npre enter to return menun”);

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请根据提示输入驾驶员的姓名和一个时间段,统计某个驾驶员在某段时间内的处罚单数目和罚单号n”);

printf(“nn请输入驾驶员的姓名:”);

scanf(“%s”,name);

printf(“n请输入一个较早的时间:”);

scanf(“%s”,time1);

printf(“n请输入一个最近的时间:”);

scanf(“%s”,time2);

for(j=0;j

{

if((strcmp(list[j].date,time1)>=0)&&(strcmp(list[j].date,time2)

{

f=j;

total++;

printf(“n罚单号:%sn”,list[j].no);

}

}

if(f

printf(“n没有找到记录!n”);

printf(“n罚单总数为:%dn”,total);

printf(“npre enter to return menun”);

getchar();

getchar();

menu();}

《C语言实习报告 交通处罚单管理系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C语言实习报告 交通处罚单管理系统
点击下载文档
相关专题 交通处罚单管理系统 实习报告 管理系统 交通处 交通处罚单管理系统 实习报告 管理系统 交通处
[实习报告]相关推荐
    [实习报告]热门文章
      下载全文