做的是快递管理系统,很简单的那种
查询这一大块的功能都无法实现,各位能帮我看看是哪出了错吗TAT
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct{
int number;
char name[100];
char name2[100];
char phnumber[100];
char phnumber2[100];
char adr[100];
char adr2[100];
}Stu;
typedef struct {
Stu s[20];
int length;
}SqList;
//输入物流信息
void CreatStudent(SqList &L,int n)
{
L.length=0;
for(int i=0;i<n;i++)
{
printf("输入第%d个物流信息\n",i+1);
printf ("单号:");
scanf("%d",&L.s[i].number);
printf ("收件人姓名:");
scanf("%s",&L.s[i].name);
printf ("收件人电话:");
scanf("%s",&L.s[i].phnumber);
printf ("收件人地址:");
scanf("%s",&L.s[i].adr);
printf ("寄件人姓名:");
scanf("%s",&L.s[i].name2);
printf ("寄件人电话:");
scanf("%s",&L.s[i].phnumber2);
printf ("寄件人地址:");
scanf("%s",&L.s[i].adr2);
L.length++;
}
FILE *fp;
fp=fopen("student.txt","w+");//w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
for(int i=0;i<L.length;i++)
{
fprintf(fp,"%d %s %s %s %s %s %s\n",L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
}
printf("添加成功!");
fclose(fp);
}
//修改物流信息
void InsertStudent(SqList &L)
{
int i=0;
int flag=0;
int number;
L.length=0;
FILE *fp1;
fp1=fopen("student.txt","r+");//r+ 以可读写方式打开文件,该文件必须存在
while(!feof(fp1))//feof为判断是否读到文件尾
{
fscanf(fp1,"%d %s %s %s %s %s %s",&L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
L.length++;
i++;
}
L.length--;
fclose(fp1);
printf ("输入要修改的物流单号:");
scanf("%d",&/*L.s[L.length].*/number);
for(i=0;i<L.length;i++)
{
if(L.s[i].number==/*L.s[L.length].*/number)
{
flag=1;
}
}
if(flag==1)
{
printf ("要修改的快递单号:");
scanf("%s",&L.s[L.length].number);
printf ("收件人姓名:");
scanf("%s",&L.s[L.length].name);
printf ("收件人电话:");
scanf("%s",&L.s[L.length].phnumber);
printf ("收件人地址:");
scanf("%s",&L.s[L.length].adr);
printf ("寄件人姓名:");
scanf("%s",&L.s[L.length].name2);
printf ("寄件人电话:");
scanf("%s",&L.s[L.length].phnumber2);
printf ("寄件人地址:");
scanf("%s",&L.s[L.length].adr2);
L.length++;
FILE *fp;
fp=fopen("student.txt","w+");
for(int i=0;i<L.length;i++)
{
fprintf(fp,"%d %s %s %s %s %s %s\n",L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
}
printf("修改成功!");
fclose(fp);
}
else
printf("没有该快递信息,请核对后重新输入!");
}
//删除物流信息
void DeleteStudent(SqList &L)
{
int i=0,k,j;
int num,flag=0;
L.length=0;
printf("输入要删除物流的单号:");
scanf("%d",&num);
FILE *fp1;
fp1=fopen("student.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %s %s %s %s %s",&L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
L.length++;
i++;
}
L.length--;
fclose(fp1);
for(i=0;i<L.length;i++)
{
if(L.s[i].number==num)
{
k=i;
flag=1;
}
}
if(flag==0)
printf("没有找到该快递,删除失败!");
else
{
for(j=k;j<L.length;j++)
L.s[j]=L.s[j+1];
L.length--;
FILE *fp;
fp=fopen("student.txt","w+");
for(int i=0;i<L.length;i++)
{
fprintf(fp,"%d %s %s %s %s %s %s\n",L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
}
printf("删除成功!");
fclose(fp);
}
}
//查询物流信息按单号
void SearchStudent(SqList &L)
{
int i=0,k,j;
int flag=0;
L.length=0;
char number[20];
printf("输入要查询快递单号:");
scanf("%s",number);
FILE *fp1;
fp1=fopen("student.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %s %s %s %s %s ",&L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
L.length++;
i++;
}
L.length--;
fclose(fp1);
for(i=0;i<L.length;i++)
{
if(strcmp(L.s[i].name,number)==0)
{
k=i;
flag=1;
}
}
if(flag==0)
printf("没有找到该快递信息,查询失败!");
else
printf("单号:%d 收件人姓名:%s 收件人电话:%s 收件人地址:%s 寄件人姓名:%s 寄件人电话:%s 寄件人地址:%s \n",L.s[k].number,L.s[k].name,L.s[k].phnumber,L.s[k].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
}
void SearchStudentname(SqList &L)//////////////////////按姓名查询
{
int i=0,k,j;
int flag=0;
L.length=0;
char name[20];
printf("输入要查询快递的收件人姓名:");
scanf("%s",name);
FILE *fp1;
fp1=fopen("student.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %s %s %s %s %s ",&L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
L.length++;
i++;
}
L.length--;
fclose(fp1);
for(i=0;i<L.length;i++)
{
if(strcmp(L.s[i].name,name)==0)
{
k=i;
flag=1;
}
}
if(flag==0)
printf("没有找到该快递信息,查询失败!");
else
printf("单号:%d 收件人姓名:%s 收件人电话:%s 收件人地址:%s 寄件人姓名:%s 寄件人电话:%s 寄件人地址:%s \n",L.s[k].number,L.s[k].name,L.s[k].phnumber,L.s[k].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
}
void SearchStudentphnumber(SqList &L)//////////////////////按寄件人电话查询
{
int i=0,k,j;
int flag=0;
L.length=0;
char phnumber[20];
printf("输入要查询快递的寄件人电话:");
scanf("%s",phnumber);
FILE *fp1;
fp1=fopen("student.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %s %s %s %s %s ",&L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
L.length++;
i++;
}
L.length--;
fclose(fp1);
for(i=0;i<L.length;i++)
{
if(strcmp(L.s[i].name,phnumber)==0)
{
k=i;
flag=1;
}
}
if(flag==0)
printf("没有找到该快递信息,查询失败!");
else
printf("单号:%d 收件人姓名:%s 收件人电话:%s 收件人地址:%s 寄件人姓名:%s 寄件人电话:%s 寄件人地址:%s \n",L.s[k].number,L.s[k].name,L.s[k].phnumber,L.s[k].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
}
//显示物流信息
void ShowAll(SqList &L)
{
int i=0;
L.length=0;
FILE *fp1;
fp1=fopen("student.txt","r+");
while(!feof(fp1))
{
fscanf(fp1,"%d %s %s %s %s %s %s",&L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
L.length++;
i++;
}
L.length--;
fclose(fp1);
printf("\n");
for(i=0;i<L.length;i++)
{
printf("单号:%d 收件人姓名:%s 收件人电话:%s 收件人地址:%s 寄件人姓名:%s 寄件人电话:%s 寄件人地址:%s\n",L.s[i].number,L.s[i].name,L.s[i].phnumber,L.s[i].adr,L.s[i].name2,L.s[i].phnumber2,L.s[i].adr2);
}
}
int main()
{
SqList L;
int n;
int option;
printf("\n**********欢迎使用物流管理系统**********");
while(1)
{
printf("\n*************1.录入快递信息*************");
printf("\n*************2.插入快递信息*************");
printf("\n*************3.浏览快递信息*************");
printf("\n*************4.按快递单号查询快递信息*************");
printf("\n*************5.按收件人姓名查询快递信息*************");
printf("\n***********6.按寄件人手机号查询快递信息***********");
printf("\n***********7.修改快递信息***********");
printf("\n***********8.删除该快递信息***********");
printf("\n***********9.退出班级管理系统***********");
printf("***********请选择需要的服务:************\n");
scanf("%d",&option);
system("cls");
switch(option)
{
case 1:
printf("请输入快递个数:");
scanf("%d",&n);
CreatStudent(L,n);
break;
case 2:
InsertStudent(L);
break;
case 3:
ShowAll(L);
break;
case 4:
SearchStudent(L);
break;
case 5:
SearchStudentname(L);
break;
case 6:
SearchStudentphnumber(L);
break;
case 7:
InsertStudent(L);
case 8:
DeleteStudent(L);
break;
case 9:
exit(0);
break;
}
}
return 0;
}
```c
```