finally commit

master
unknown 6 years ago
parent c7673d6899
commit 6544ad5504

@ -0,0 +1,405 @@
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <windows.h>
void welcome();/*用户界面*/
void admini();/*管理员界面*/
void creat();/*创建函数*/
void baocun(int m);/*保存函数*/
void search();/*查询函数*/
void search_name();/*按姓名查找函数*/
void search_account();/*按账号查找函数*/
void change(); /*修改函数*/
int daoru(); /*导入函数*/
void liulan(); /*浏览函数*/
void yonghu();/*用户功能*/
void shanchu();/*删除函数*/
void zengjia();/*增加函数*/
struct user
{
char name[20];
char id[100];
char account[100];
char password[20];
int balance=0;
}user[500];
int main(void)
{
int num;
printf("请选择序号\n");
printf("****1.用户功能****\n****2.管理员功能****\n");
scanf("%d",&num);
switch(num)
{
case 1:yonghu();break;
case 2:admini();break;
}
}
void admini()
{
system("color f5");
int num;
printf("请输入序号\n");
printf("**** 0.首次创建用户 ****\n");
printf("**** 1.查询用户信息 ****\n");
printf("**** 2.修改用户信息 ****\n");
printf("**** 3.删除用户 ****\n");
printf("**** 4.增加用户 ****\n");
printf("**** 5.返回主菜单 ****\n");
scanf("%d",&num);
switch(num)
{
case 0:creat();break;
case 1:search();break;
case 2:change();break;
case 3:shanchu();break;
case 4:zengjia();break;
case 5:main();break;
}
}
void yonghu()
{
system("color f4");
char account1[100],password1[20];
int i,n,balance1,balance2;
int m=daoru();
printf("请登录输入账号\n");
scanf("%s",account1);
for(i=0;i<m;i++);
{
if(strcmp(account1,user[i-1].account)==0)
{
printf("请输入密码\n");
scanf("%s",password1);
if(strcmp(password1,user[i-1].password)==0)
{
printf("登陆成功\n");
printf("存款请按1取款请按2");
scanf("%d",&n);
switch(n)
{
case 1:
printf("请输入存款余额:\n");
scanf("%d",&balance1);
user[i].balance=user[i].balance+balance1;
baocun(m);
printf("存款成功\n");
printf("您的余额为:%d",user[i].balance);
printf("\n");
main();break;
case 2:
printf("请输入取款余额\n");
scanf("%d",&balance2);
user[i].balance=user[i].balance-balance2;
baocun(m);printf("取款成功");printf("您的余额为:%d",user[i].balance);
printf("\n");
main();break;
}
}
else
printf("登录失败");main();
}
else
printf("登录失败");main();
}
}
void creat()
{
int i,m;
printf("请输入需要创建信息的用户人数(1--500):\n");
scanf("%d",&m);
for (i=0;i<m;i++)
{
printf("请输入用户姓名: ");
scanf("%s",&user[i].name);
printf("\n");
printf("请输入身份证号码: ");
scanf("%s",&user[i].id);
printf("请输入用户账号: ");
scanf("%s",&user[i].account);
printf("请输入用户密码: ");
scanf("%s",&user[i].password);
system("cls");
printf("\n一个用户的信息档案创建完毕!请输入下一个用户的信息\n");
}
baocun(m);
main();
}
void search()/*查询函数*/
{
int x,y;
do
{
printf("\n按账号查询请按1\n ; 按姓名查询请按2\n ; 进入主函数按3\n");
scanf("%d",&x);
if(x>=1&&x<=3)
{
y=1;
break;
}
else
{
y=0;
printf("您输入有误,请重新选择!\n");
}
}while(y==0);system("cls");
while(y==1)
{
switch(x)
{
case 1:printf("按账号查询\n");search_account();;break;
case 2:printf("按姓名查询\n");search_name();break;
case 3:system("cls");
main();break;
default:break;
}
system("cls");
}
}
void search_name()/*按姓名查找函数*/
{
char name1[10];
int i,t;
int m=daoru();
printf("请输入要查找的姓名:\n");
scanf("%s",name1);
for(i=0;i<m;i++)
if(strcmp(name1,user[i].name)==0)
{
printf("\n已找到此人,其记录为:\n");
printf("名字:%s\n账号:%s\n",user[i].name,user[i].account);
break;
}
if(i==m)
printf("\n对不起,查无此人\n");
printf("\n");
printf("返回查询函数请按1\n,继续查询账号请按2\n");
scanf("%d",&t);
switch(t)
{
case 1:search();break;
case 2: break;
default:break;
}
}
void search_account()/*按账号查找函数*/
{
char account1[10];
int i,t;
int m=daoru();
printf("请输入要查找的账号:\n");
scanf("%s",account1);
for(i=0;i<m;i++)
if(strcmp(account1,user[i].account)==0)
{
printf("\n已找到此人,其记录为:\n");
printf("名字:%s\n账号:%s\n",user[i].name,user[i].account);
break;
}
if(i==m)
printf("\n对不起,查无此人\n");
printf("\n");
printf("返回查询函数请按1\n,继续查询请按2\n");
scanf("%d",&t);
switch(t)
{
case 1:search();break;
case 2: break;
default:break;
}
}
void change() /*修改函数*/
{
char name[20];
char sex;
char id[100];
char account[100];
char password[20];
int i,f,n,c,x,a;
char num[100];
int m=daoru(); /*导入文件内的信息*/
printf("\n");
printf("请输入要修改的用户的姓名:\n");
scanf("%s",name);
for(f=1,i=0;f&&i<m;i++)
{
if(strcmp(user[i].name,name)==0)
{
printf("\n已找到此人,原始记录为:\n");
printf("名字:%s\n账号:%s\n",user[i].name,user[i].account);
printf("\n确实要修改此人信息请按1\n ; 不修改请按0\n");
scanf("%d",&n);
if(n==1)
{
printf("\n需要进行修改的选项\n 1.账号2.姓名 3.密码\n");
printf("请输入你想修改的那一项序号:\n");
scanf("%d",&c);
if(c>3||c<1)
printf("\n选择错误,请重新选择!\n");
}
f=0;
}
}
if(f==1)
printf("\n对不起,查无此人!\n");
do
{
switch(c)
{
case 1:printf("账号改为: ");
scanf("%s",&num);
strcpy(user[i-1].account,num);
break;
case 2:printf("姓名改为: ");
scanf("%s",name);
strcpy(user[i-1].name,name);
break;
case 3:printf("密码改为");
scanf("%s",password);
strcpy(user[i-1].password,password);
break;
}
printf("\n");
printf("\n是否确定所修改的信息?\n 是 请按1 ; \n不,重新修改 请按2: \n");
scanf("%d",&a);
}
while(a==2);
printf("\n浏览修改后的所有用户信息:\n");
printf("\n");
baocun(m);
liulan();
printf("\n继续修改请按1不再修改请按0\n");
scanf("%d",&x);
switch(x)
{
case 1:change();break;
case 0:break;
default :break;
}system("cls");
}
void baocun(int m) /*保存文件函数*/
{
int i;
FILE *fp;
if ((fp=fopen("D:\\user_list.txt","wb"))==NULL)
{
printf ("此文件不能打开\n");
exit(0);
}
for (i=0;i<m;i++)
if (fwrite(&user[i],sizeof(struct user),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
int daoru() /*导入函数*/
{
FILE*fp;
int i=0;
if((fp=fopen("D:\\user_list.txt","rb"))==NULL)
{
printf ("cannot open file\n");
exit(0);
}
else
{
do
{
fread(&user[i],sizeof(struct user),1,fp);
i++;
}
while(feof(fp)==0);
}
fclose(fp);
return(i-1);
}
void liulan() /*浏览函数*/
{
int i,j;
int m=daoru();
printf("\n账户号\t姓名\n");
for(i=0;i<m;i++)
printf("\n %s\t%s\n",user[i].account,user[i].name);
printf("按任意键继续\n");
getchar();
getchar();system("cls");
}
void shanchu() /*删除函数*/
{
int m=daoru();
int i,j,n,x,y,e;
char account1[100];
printf("\n 原来的用户信息:\n");
liulan();
printf("\n");
printf("请输入要删除的用户的账号:\n");
scanf("%s",account1);
for(y=1,i=0;y&&i<m;i++)
{
if(strcmp(user[i].account,account1)==0)
{
printf("\n已找到此人,原始记录为:\n");
printf("\n账户号\t姓名\n");
printf("\n %s\t%s\n",user[i].account,user[i].name);
printf("\n确实要删除此人信息请按1,不删除请按0\n");
scanf("%d",&n);
if(n==1)
{
for(j=i;j<m-1;j++)
{
user[j]=user[j+1];
}
y=0;
}
}
}
if(y==0)
m=m-1;
else
printf("\n对不起,查无此人!\n");
printf("\n 浏览删除后的所有用户信息:\n");
baocun(m);
liulan();
printf("\n继续删除请按0不再删除请按1\n");
scanf("%d",&x);
switch(x)
{
case 0:shanchu();break;
case 1:break;
default :break;
}system("cls");main();
}
void zengjia()
{
FILE *fp;
int x,num=0,i;
int m=daoru();
printf("\n 原来的用户信息:\n");
liulan();
fp=fopen("D:\\user_list.txt","a");
printf("请输入新加的用户数量");
scanf("%d",&x);
for(i=m;i<(x+m);i++)
{
printf("请输入用户姓名: ");
scanf("%s",&user[i].name);
printf("\n");
printf("请输入身份证号码: ");
scanf("%s",&user[i].id);
printf("请输入用户账号: ");
scanf("%s",&user[i].account);
printf("请输入用户密码: ");
scanf("%s",&user[i].password);
num=num+1;
system("cls");
}
m=m+num;
printf("\n浏览所有用户信息\n");
baocun(m);
liulan();
fclose(fp);main();
}

Binary file not shown.
Loading…
Cancel
Save