顺序表实现管理系统源程序.docx
《顺序表实现管理系统源程序.docx》由会员分享,可在线阅读,更多相关《顺序表实现管理系统源程序.docx(15页珍藏版)》请在冰豆网上搜索。
顺序表实现管理系统源程序
#defineMAX1024
#include
#include
#include
#include
voidInputdata();
intfindlist();
intInsert();
voidDelete();
voidModify();
typedefstruct{
charanum[20];/*车牌号*/
charbnum[20];/*发动机号*/
charmodels[20];/*车型*/
charname[20];/*姓名*/
charcnum[20];/*联系电话*/
intvrec;/*违章记录*/
}DataType;
typedefstruct
{
DataTypetra[MAX];
intlength;
}sequenlist;
sequenlist*L;
DataType*traffic;
voidmain()
{
inti,a,b,c,j,m;
L=(sequenlist*)malloc(sizeof(sequenlist));
L->length=0;
Inputdata(L);
printf("\n**********************************************************************\n\n");
printf("欢迎使用交通信息管理系统!
\n");
printf("尊敬的用户,确定进入系统请输入1,退出系统请输入其他\n");
a=11;
for(i=0;i==0;)
{
scanf("%d",&a);
if(a==1){
i=2;
}
}
if(a==1){/*修改、添加和删除功能*/
printf("欢迎进入系统!
请选择您的操作:
\n");
printf("0、交通管理信息的查询\n");
printf("1、交通管理信息的修改\n");
printf("2、交通管理信息的添加\n");
printf("3、交通管理信息的删除\n");
printf("4、不做操作,退出系统\n");
printf("请选择:
\n");
for(;;)
{
scanf("%d",&m);
if(m<0||m>4)
printf("\n\t输入错误,重选0-4\n");
else
break;
}
if(m==0){/*查询功能*/
for(j=0;j==0;){
i=0;
i=findlist(L);
if(i!
=-1)
{
printf("您要查询的信息为:
\n车牌号发动机号车型姓名联系电话违章记录\n");
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[i].anum,L->tra[i].bnum,L->tra[i].models,L->tra[i].name,L->tra[i].cnum,L->tra[i].vrec);
}
else
printf("没有您要查询的交通信息!
");
printf("请问您还要继续查询么?
继续请输入1,退出请输入其他\n");
scanf("%d",&b);
if(b==1){
j=0;
}
elsej=1;
}
}
if(m==1){
printf("交通信息的修改\n");
for(b=0;b==0;){
Modify(L);
printf("请问还要继续修改么?
继续请输入1,退出输入其他\n");
scanf("%d",&c);
if(c==1){b=0;}
elseb=1;
}
}
if(m==2){
printf("交通信息的添加\n");
for(b=0;b==0;){
printf("请输入要添加的信息:
\n");
printf("\n车牌号发动机号车型姓名联系电话违章记录\n");
traffic=(DataType*)malloc(sizeof(DataType));
fflush(stdin);
scanf("%s%s%s%s%s%d",traffic->anum,traffic->bnum,traffic->models,traffic->name,traffic->cnum,&traffic->vrec);
printf("请输入要插入的位置:
i>=0\n");
fflush(stdin);
scanf("%d",&i);
Insert(L,traffic,i);
printf("请问还要继续添加么?
继续请输入1,退出输入其他\n");
scanf("%d",&c);
if(c==1){b=0;}
elseb=1;
}
}
if(m==3){
printf("交通信息的删除\n");
for(b=0;b==0;){
Delete(L);
printf("请问是否继续删除?
继续请输入1,退出输入其他\n");
scanf("%d",&c);
if(c==1){b=0;}
elseb=1;
}
}
}
printf("感谢您的使用!
\n");
}
voidInputdata(sequenlist*L)
{
FILE*fp;
intk=0;
if((fp=fopen("f.txt","rw"))==NULL){
printf("读取文件出错!
\n");
exit(0);
}
printf("读入的文件信息显示如下:
\n");
fp=fopen("f.txt","rw");
while(fscanf(fp,"%s",L->tra[k].anum)!
=EOF)
{
fscanf(fp,"%s",L->tra[k].bnum);
fscanf(fp,"%s",L->tra[k].models);
fscanf(fp,"%s",L->tra[k].name);
fscanf(fp,"%s",L->tra[k].cnum);
fscanf(fp,"%d",&L->tra[k].vrec);
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[k].anum,L->tra[k].bnum,L->tra[k].models,L->tra[k].name,L->tra[k].cnum,L->tra[k].vrec);
k++;
L->length++;
}
if(fclose(fp)){
printf("文件无法关闭!
\n");
exit(0);
}
}
intfindlist(sequenlist*L)
{
intk=0,j;
charanum[30];
charname[30];
charcnum[30];
printf("请选择查询方式:
\n");
printf("1、按车牌号查询\n");
printf("2、按姓名查询\n");
printf("3、按联系电话查询\n");
fflush(stdin);
for(;;)
{
scanf("%d",&j);
if(j<1||j>3)
printf("\n\t输入错误,请重选1-3\n");
else
break;
}
if(j==1)
{
printf("请输入要查询车辆的车牌号:
\n");
scanf("%s",anum);
for(k=0;klength;k++)
{
if(strcmp(L->tra[k].anum,anum)==0)
{returnk;}
}
}
elseif(j==2)
{
printf("请输入要查找车主的姓名:
\n");
scanf("%s",name);
printf("%d",L->length);
for(k=0;klength;k++)
{
if(strcmp(L->tra[k].name,name)==0)
{returnk;}
}
}
elseif(j==3)
{
printf("请输入要查找车主的联系电话:
\n");
scanf("%s",cnum);
for(k=0;klength;k++)
{
if(strcmp(L->tra[k].cnum,cnum)==0)
{returnk;}
}
}
else
return-1;/*没找到的话返回-1*/
}
intInsert(sequenlist*L,DataType*traffic,inti)
{
intj,k;
if(L->length==MAX)
{
printf("数据溢出!
\n");
return0;
}
elseif((i<0)||(i>L->length))
{
printf("数据出错,请输入正确的i\n");
return0;
}
else
{
for(j=L->length-1;j>=i;j--)
{
strcpy(L->tra[j+1].anum,L->tra[j].anum);
strcpy(L->tra[j+1].bnum,L->tra[j].bnum);
strcpy(L->tra[j+1].models,L->tra[j].models);
strcpy(L->tra[j+1].name,L->tra[j].name);
strcpy(L->tra[j+1].cnum,L->tra[j].cnum);
L->tra[j+1].vrec=L->tra[j].vrec;
}
strcpy(L->tra[i].anum,traffic->anum);
strcpy(L->tra[i].bnum,traffic->bnum);
strcpy(L->tra[i].models,traffic->models);
strcpy(L->tra[i].name,traffic->name);
strcpy(L->tra[i].cnum,traffic->cnum);
L->tra[i].vrec=traffic->vrec;
L->length=L->length+1;
}
printf("添加后总的交通信息显示如下:
\n");
for(k=0;klength;k++){
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[i].anum,L->tra[i].bnum,L->tra[i].models,L->tra[i].name,L->tra[i].cnum,L->tra[i].vrec);
}
return1;
}
voidDelete(sequenlist*L)
{
inti,j,k;
printf("请先查找您要删除的交通信息:
\n");
i=findlist(L);
if(i==-1)
{
printf("没有找到要删除的交通信息\n");
return;
}
for(j=i;jlength;j++)
{
strcpy(L->tra[j].anum,L->tra[j+1].anum);
strcpy(L->tra[j].bnum,L->tra[j+1].bnum);
strcpy(L->tra[j].models,L->tra[j+1].models);
strcpy(L->tra[j].name,L->tra[j+1].name);
strcpy(L->tra[j].cnum,L->tra[j+1].cnum);
L->tra[j].vrec=L->tra[j+1].vrec;
}
L->length--;
printf("该交通信息已被删除或不存在!
\n");
printf("添加后总的交通信息显示如下:
\n");
for(k=0;klength;k++){
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[k].anum,L->tra[k].bnum,L->tra[k].models,L->tra[k].name,L->tra[k].cnum,L->tra[k].vrec);
}
}
voidModify()
{
inti,j;
charanum[10];
charbnum[10];
charmodels[10];
charname[10];
charcnum[10];
intvrec;
printf("请先查找您要修改的交通信息\n");
i=findlist(L);
if(i==-1)
{
printf("没有找到要修改的交通信息\n");
return;
}
printf("请输入要修改的内容:
\n");
printf("1、修改车牌号\n");
printf("2、修改发动机号\n");
printf("3、修改车型\n");
printf("4、修改姓名\n");
printf("5、修改联系电话\n");
printf("6、修改违章记录\n");
printf("请选择1-6\n");
fflush(stdin);
for(;;)
{
scanf("%d",&j);
if(j<1||j>6)
printf("\n\t输入错误,重选1-6\n");
else
break;
}
switch(j)
{
case1:
printf("请输入要修改为的数据:
\n");
scanf("%s",anum);
strcpy(L->tra[i].anum,anum);
printf("交通信息的修改结果为:
\n");
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[i].anum,L->tra[i].bnum,L->tra[i].models,L->tra[i].name,L->tra[i].cnum,L->tra[i].vrec);
break;
case2:
printf("请输入要修改为的数据:
\n");
scanf("%s",bnum);
strcpy(L->tra[i].bnum,bnum);
printf("交通信息的修改结果为:
\n");
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[i].anum,L->tra[i].bnum,L->tra[i].models,L->tra[i].name,L->tra[i].cnum,L->tra[i].vrec);
break;
case3:
printf("请输入要修改为的数据:
\n");
scanf("%s",models);
strcpy(L->tra[i].models,models);
printf("交通信息的修改结果为:
\n");
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[i].anum,L->tra[i].bnum,L->tra[i].models,L->tra[i].name,L->tra[i].cnum,L->tra[i].vrec);
break;
case4:
printf("请输入要修改为的数据:
\n");
scanf("%s",name);
strcpy(L->tra[i].name,name);
printf("交通信息的修改结果为:
\n");
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[i].anum,L->tra[i].bnum,L->tra[i].models,L->tra[i].name,L->tra[i].cnum,L->tra[i].vrec);
break;
case5:
printf("请输入要修改为的数据:
\n");
scanf("%s",cnum);
strcpy(L->tra[i].cnum,cnum);
printf("交通信息的修改结果为:
\n");
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[i].anum,L->tra[i].bnum,L->tra[i].models,L->tra[i].name,L->tra[i].cnum,L->tra[i].vrec);
break;
case6:
printf("请输入要修改为的数据:
\n");
scanf("%d",&vrec);
L->tra[i].vrec=vrec;
printf("交通信息的修改结果为:
\n");
printf("%-10s%-10s%-10s%-10s%-15s%10d\n",L->tra[i].anum,L->tra[i].bnum,L->tra[i].models,L->tra[i].name,L->tra[i].cnum,L->tra[i].vrec);
break;
}
}
友情提示:
范文可能无法思考和涵盖全面,供参考!
最好找专业人士起草或审核后使用,感谢您的下载!