查询系统代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#define Size 2000
#define DESTFILE "arr.dat"
typedef struct
{
int Num;
char Name[10];
char shouji[12];
}Student;
void MainMenu();
void ziMenu();
void ziMen();
void Addstudent(Student *st,int *Ncount);
int PositionInStudents(Student *st,int Ncount,int szNo,char *name,char *Shouji);
void displayArr(Student *st,int *Ncount);
void ModifyStudent(Student *st,int *Ncount);
void chaxunyonghuxinxi(Student *st,int *Ncount);
void writeArr(Student *st, int Ncount);
void readArr(Student *st,int *Ncount);
int main()
{
Student st[Size];
int Ncount=0;
int position=0;
int op;
readArr(st,&Ncount);
while(1)
{
system("cls");
MainMenu();
printf("请输入您的选项:\n\n");
scanf("%d",&op);
switch(op)
{
case 1:
system("color 1A");
printf("增加用户信息 \n\n");
Addstudent(st,&Ncount);
break;
case 3:
printf("修改用户信息\n\n");
ModifyStudent(st,&Ncount);
break;
case 2:
printf("查找用户\n\n");
chaxunyonghuxinxi(st,&Ncount);
break;
case 4:
printf("用户信息显示\n\n");
displayArr(st,&Ncount);
break;
case 5:
printf("请按回车键,保存退出!\n\n");
getch();
writeArr(st,Ncount);
return 0;
default:
printf("输入错误,请输入1,2,3,4,5中的任意数字,现在按回车键返回!\n");
getch();
break;
}
}
return 0;
}
void MainMenu()//主菜单//
{ system("color F4");
system("cls");
printf("\n\n欢迎使用乌市翰皇擦鞋系统! \n\n");
printf("**************************\n");
printf("**** 1.增加用户信息 ****\n");
printf("**** 2.查找用户 ****\n");
printf("**** 3.修改用户信息 ****\n");
printf("**** 4.用户信息显示 ****\n");
printf("**** 5.保存退出 ****\n");
printf("**************************\n");
}
void Addstudent(Student *st,int *Ncount)/*添加用户信息*/
{
int szNo;
char name[20];
char Shouji[20];
printf("请输入会员号:");
scanf("%d",&szNo);
PositionInStudents(st,*Ncount,szNo,name,Shouji);
if(PositionInStudents(st,*Ncount,szNo,name,Shouji)== -1)
{
st[*Ncount].Num=szNo;
printf("请输入用户姓名:");
fflush(stdin);
gets(st[*Ncount].Name);
printf("请输入用户手机号:");
fflush(stdin);
gets(st[*Ncount].shouji);
printf("\n");
fflush(stdin);
(*Ncount)++;
}
else
{
printf("该用户已存在!\n");
printf("请按回车键返回主菜单!\n");
getch();
return ;
}
printf("输入完毕,请按回车键返回!\n");
getch();
return ;
}
int PositionInStudents(Student *st,int Ncount,int szNo,char *name,char *Shouji)//学号比较//
{
int k;
for(k=0;k
return k;
return(-1);
}
void displayArr(Student *st,int *Ncount)//
显示用户信息//
{
int i,j,k;
Student s[2];
if(*Ncount==0)
{
printf("不存在数据,请按回车键返回!\n");
getch();
return ;
}
system("color FC");
for(i=0;i<*Ncount-1;i++)
{
for(k=0;k<*Ncount-1-i;k++)
if(st[k].Num>st[k+1].Num)
{
s[1]=st[k];
st[k]=st[k+1];
st[k+1]=s[1];
}
}
printf("会员号\t姓名\t\t\t手机号\n");
for(j=0;j<*Ncount;j++)
printf("%-5d\t%-20s\t%-16s\t\n",st[j].Num,st[j].Name,st[j].shouji);
printf("\n用户数据显示成功,请按回车键返回!\n");
getch();
}
void ModifyStudent(Student *st,int *Ncount)//修改用户信息//
{
int szNo;
char name[20];
char Shouji[20];
int position,a;
printf("请输入该用户的会员号: \n");
scanf("%d",&szNo);
position=PositionInStudents(st,*Ncount,szNo,name,Shouji);
if(position==-1)
{
printf("对不起,不存在该信息!\n");
printf("请按回车键返回主菜单!\n");
getch();
return ;
}
ziMenu();
printf("请输入您的选项:\n\n");
scanf("%d",&a);
switch(a)
{
case 1:
printf("请输入该会员的手机号:");
scanf("%s",&st[position].shouji);
fflush(stdin);
printf("数据修改成功,请按回车键返回!\n");
getch();
break;
case 2:
printf("请输入该会员的姓名:");
scanf("%s",&st[position].Name);
fflush(stdin);
printf("数据修改成功,请按回车键返回!\n");
getch();
break;
case 3:
printf("请输入该会员的手机号:");
scanf("%s",&st[position].shouji);
printf("请输入该会员的姓名:");
scanf("%s",&st[position].Name);
printf("\n");
fflush(stdin);
printf("数据修改成功,请按回车键返回!\n");
getch();
break;
case 4:
printf("请按回车键退出!\n\n");
getchar();
return ;
default:
printf("输入错误,请输入1,2,3,4中的任意数字,现在按回车键返回!!\n");
getch();
break;
}
}
void ziMenu()
{
printf("******************************\n");
printf("**** 1.修改用户手机号码 ****\n");
printf("**** 2.修改用户姓名 ****\n");
printf("**** 3.修改用户全部信息 ****\n");
printf("**** 4.返回主菜单 ****\n");
printf("******************************\n");
}
void ziMen()
{
printf("******************************\n");
printf("**** 1.输入用户会员号 ****\n");
printf("**** 2.输入用户姓名 ****\n");
printf("**** 3.输入用户手机号 ****\n");
printf("**** 4.返回主菜单 ****\n");
printf("******************************\n");
}
void chaxunyonghuxinxi(Student *st,int *Ncount)//用户信息//
{
int b;
int szNo;
char name[20];
char Shouji[20];
int position;
ziMen();
printf("请输入您的选项:\n\n");
scanf("%d",&b);
switch(b)
{
case 1:
printf("请输入该用户的会员号:");
scanf("%d",&szNo);
position=PositionInStudents(st,*Ncount,szNo,name,Shouji);
if(position=
=-1)
{
printf("对不起,不存在该信息!\n");
printf("请按回车键返回主菜单!\n");
getch();
return ;
}
else
{
printf("该用户信息:\n");
printf("会员号 \t姓名 \t\t\t手机号\n");
printf("%-5d \t%-20s \t%-16s \t\n",st[position].Num,st[position].Name,st[position].shouji);
printf("\n数据显示成功,请按回车键返回!\n");
getch();
return ;
}
break;
case 2:
printf("请输入该用户的姓名:\n");
fflush(stdin);
gets(name);
position=PositionInStudents(st,*Ncount,szNo,name,Shouji);
if(position!=-1)
{
printf("该用户信息:\n");
printf("会员号 \t姓名 \t手机号\n");
printf("%-5d \t%-6s \t%-11s \t\n",st[position].Num,st[position].Name,st[position].shouji);
printf("\n数据显示成功,请按回车键返回!\n");
getch();
return ;
}
else
{
printf("对不起,不存在该信息!\n");
printf("请按回车键返回主菜单!\n");
getch();
return ;
}
break;
case 3:
printf("请输入该用户的手机号:");
fflush(stdin);
gets(Shouji);
position=PositionInStudents(st,*Ncount,szNo,name,Shouji);
if(position==-1)
{
printf("对不起,不存在该信息!\n");
printf("请按回车键返回主菜单!\n");
getch();
return ;
}
else
{
printf("该用户信息:\n");
printf("会员号 \t姓名 \t手机号\n");
printf("%-5d \t%-20s \t%-16s \t\n",st[position].Num,st[position].Name,st[position].shouji);
printf("\n数据显示成功,请按回车键返回!\n");
getch();
return ;
}
break;
case 4:
printf("请按回车键退出\n\n");
getch();
return ;
default:
printf("输入错误,请输入1,2,3,4中的任意数字,现在按回车键返回!\n");
getch();
return ;
}
}
void writeArr(Student *st, int Ncount)//此函数将数组arr 中的内容写入到指定文件arr.dat 中去
{
FILE *fOut;
fOut = fopen(DESTFILE, "wb");
fwrite(&Ncount,sizeof(int),1,fOut);
fwrite(st,sizeof(Student),Ncount,fOut);
fclose(fOut);
}
void readArr(Student *st,int *Ncount)//此函数指定文件arr.dat 中的内容读出//
{
FILE *fIn;
fIn = fopen(DESTFILE, "rb");
fread(Ncount,sizeof(int),1,fIn);
fread(st,sizeof(Student),*Ncount,fIn);
fclose(fIn);
}