做一个登录注册查询人员的C语言字符界面
1.能查看所有人员信息,人员信息包括账号,密码,姓名,性别,并将人员信息存入文件
2.能增加人员信息
3.能查找人员,要有模糊查找功能
4.能修改人员信息
5.能删除人员信息
6.能保存人员信息
7.能退出
总体设计
1.确定界面,使用户可选择操作项目((1)查看人员信息、
(2)增加人员信息、(3)查找人员、(4)修改人员信息、(5)删除记录、
(6)保存数据、(7)退出系统)
2.查看功能:输出已经保存的数据
3.增加人员信息功能:使用结构体,要求用户输入账号、密码、姓名、性别、并写入文件
4. 查找人员功能:使用户输入姓名、账号其中一项可以进行查找
5. 修改人员信息功能:使用户输入姓名、账号其中一项可以进行查找,并进行修改
6.删除记录功能: 使用户输入姓名、账号其中一项可以进行查找,并进行删除
7.关于作者功能:输出作者信息
9.退出系统:将文件关闭,退出程序
数据结构设计:
struct people
{
char Name[60];
char Sex[2];
int User[20];
char Code[20]
};
输入模块设计:
void add()//增加人员信息
{
int numberTemp=0;
int i=0;
struct student temp;
printf("请输入要增加的人员信息数量:");
scanf("%d",&numberTemp);
for(i=0;i<numberTemp;i++)
{
printf("输入第%d个人员信息\n",i+1);
printf("姓名:");
scanf("%s",temp.name);
printf("性别:");
scanf("%s",temp.sex);
printf("账号:");
scanf("%s",temp.User);
printf("密码:");
scanf("%s",temp.Code);
st[Number++]=temp; //将刚添加的写入到数组
bc(&temp); //将刚添加的写入到文件
}
printf("添加成功\n");
}
输出模块设计
void select()
{
int i=0;
printf("以下是全部人员信息\n");
printf("\t姓名\t性别\t年龄\t账号\t密码\n");
for(i=0;i<Number;i++)
{
printf("\t%s\t%s\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].age,st[i].User,st[i].Code);
}
}
查找模块设计
void Find()//查找人员
{
int n=0;
printf("1 按姓名查找\n");
printf("2 按账号查找\n");
scanf("%d",&n); switch(n)
{
case 1: Find_Name();
break;
case 2: void Find_User();
break;
default: printf("输入有误,结束!\n");
break;
}
}
void Find_Name()//按姓名查找
{
char name[7];
int i=0;
printf("请输入要查找的人员姓名:");
scanf("%s",name);
system("cls");
printf("\t姓名\t性别\t年龄\t账号\t密码\n");
for (i=0;i<Number;i++)
{
if (strcmp(name,st[i].name)==0)
{
printf("\t%s\t%s\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].age,st[i].User,st[i].Code);
}
}
}
void Find_User()//按账号查找
{
char IDnumber[18];
int i=0;
printf("请输入要查找人员的账号:");
scanf("%s",IDnumber);
system("cls");
printf("\t姓名\t性别\t年龄\t账号\t密码\n");
for (i=0;i<Number;i++)
{
if (strcmp(User,st[i].User)==0)
{
printf("\t%s\t%s\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].age,st[i].User,st[i].Code);
}
}
}
修改模块设计
void change()
{
int way=0;
printf("请选择修改查找方式\n");
printf("1 通过姓名查找修改\n");
printf("2 通过账号查找修改\n");
scanf("%d",&way);
switch(way)
{
case 1: changebyName();
break;
case 2: changebyUser();
break;
default: printf("输入有误,结束!\n");
break;
}
}
void changebyName()
{
FILE *fp=NULL;
char name[60];
int i=0;
int changeIndex=0;
int index=0;
printf("请输入要修改的人员姓名:\n");
scanf("%s",name);
for (i=0;i<Number;i++)
{
if (strcmp(name,st[i].name)==0)
{
changeIndex=i+1;
break;
}
}
if(!changeIndex)
return;
changeIndex--;
printf("\t姓名\t性别\t年龄\t账号\t密码\n");
printf("\t%s\t%s\t%d\t%s\t%s\n",st[changeIndex].name,st[changeIndex].sex,st[changeIndex].User,st[changeIndex].Code);
printf("请重新输入该人员信息");
printf("姓名:");
scanf("%s",st[changeIndex].name);
printf("性别:");
scanf("%d",&st[changeIndex].age);
printf("账号:");
scanf("%s",st[changeIndex].User);
printf("密码:");
scanf("%s",st[changeIndex].Code);
fp=fopen("C://people.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct people),1,fp);
}
fclose(fp);
}
void changebyUser()
{
FILE *fp=NULL;
char User[18];
int i=0;
int changeIndex=0;
int index=0;
printf("请输入要修改的人员账号:\n");
scanf("%s",User);
for (i=0;i<Number;i++)
{
if (strcmp(User,st[i].User)==0)
{
changeIndex=i+1;
break;
}
}
if(!changeIndex)
return;
changeIndex--;
printf("\t姓名\t性别\t年龄\t账号\t密码\n");
printf("\t%s\t%s\t%d\t%s\t%s\n",st[changeIndex].name,st[changeIndex].sex,st[changeIndex].User,st[changeIndex].Code);
printf("请重新输入该人员信息");
printf("姓名:");
scanf("%s",st[changeIndex].name);
printf("性别:");
scanf("%d",&st[changeIndex].age);
printf("账号:");
scanf("%s",st[changeIndex].User);
printf("密码:");
scanf("%s",st[changeIndex].Code);
fp=fopen("C://people.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct people),1,fp);
}
fclose(fp);
printf("\t=======>修改成功\n");
}
以上是人员管理的部分设计,之后慢慢完善
printf("\t姓名\t性别\t年龄\t账号\t密码\n");
printf("\t%s\t%s\t%d\t%s\t%s\n",st[changeIndex].name,st[changeIndex].sex,st[changeIndex].User,st[changeIndex].Code);
printf("请重新输入该人员信息");
printf("姓名:");
scanf("%s",st[changeIndex].name);
printf("性别:");
scanf("%d",&st[changeIndex].age);
printf("账号:");
scanf("%s",st[changeIndex].User);
printf("密码:");