C语言系统用户管理系统Word格式.docx
《C语言系统用户管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言系统用户管理系统Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
//信息数
intu=0;
//强制管理员标记,如果系统使用时数据库还没有任何用户信息,则把第一个打开系统的用户设置为管理员权限u=1
intxiugai();
//修改密码
intshanchu();
//删除
voiddenglu();
//用户登陆
intshenqing();
//新增,申请账号
intfuzhi(char*sFile,char*dFile);
//将一个文件复制到另一个文件
intguanliyuan();
/*管理员*/
intputongyh();
/*普通用户*/
/*******************************************************************************************************/
/*******************************************************************************************************/
/*************/
/***主函数****/
/*************/
main()
charn;
charv;
//清空缓冲区暂存变量
pr("
\n\007"
);
for(;
;
)
{
pr("
主菜单:
\nD登录;
”);
pr(”S申请账号;
//觉得应该允许普通用户申请账号
pr(”Q退出\n\007"
);
scanf(”%c”,&n);
/*清空输入流,通过while循环把输入流中的余留数据“吃”掉*/
while((v=getchar())!
='
\n’&
&
v!
=EOF);
//清空缓冲区
if(n==’D’)denglu();
elseif(n==’S’)shenqing();
elseif(n==’Q'
)break;
elsepr(”输入不正确,请重新输入,(注意区分大小写)"
Sleep(1000);
system("
cls"
/*清屏,stdlib.h中函数*/
}
pr(”你按了Q,系统即将关闭\n”);
Sleep(1000);
/*沉睡1秒,windows。
h中的函数*/
return0;
}
/*******************************************************************************************************/
/*******************************************************************************************************/
/***************/
/*****复制******/
/***************/
intfuzhi(char*dFile,char*sFile)//将sFile指向的文件复制到dFile中
{
FILE*sfp,*dfp;
if((sfp=fopen(sFile,"
r"
))==NULL)
return0;
if((dfp=fopen(dFile,"
w”))==NULL)
while(!
feof(sfp))
{
fscanf(sfp,"
%d%s%s%s\n”,&s。
daima,s.sname,s。
mima,s.shengf);
fprintf(dfp,"
%d%s%s%s\n”,s.daima,s.sname,s。
mima,s。
shengf);
fclose(sfp);
fclose(dfp);
return(0);
}
/*******************************************************************************************************/
/*******************************************************************************************************/
/**************/
/***用户登录***/
/**************/
voiddenglu()
{FILE*fp;
charv;
charc[18],d[18];
inte,f,i,j,k=0;
if((fp=fopen(”user。
txt”,"
))==NULL||feof(fp)){pr("
由于你是第一个进入本系统的用户,\n你自动成为管理员\n请设置自己的管理员账号和密码\n"
p=1;
u=1;
shenqing();
guanliyuan();
}//自动成为管理员
else
{for(i=0;
i〈3;
i++)
{
puts("
请输入用户名:
scanf("
%s"
c);
while((v=getchar())!
v!
puts(”请输入密码:
"
%s”,d);
while((v=getchar())!
&v!
=EOF);
rewind(fp);
while(!
feof(fp))
{j++;
fscanf(fp,"
%d%s%s%s"
,&
s。
daima,s。
sname,s.mima,s.shengf);
e=strcmp(s.sname,c);
f=strcmp(s.mima,d);
system(”cls"
/*清屏,stdlib。
h中函数*/
if(e==0,f==0)
{
if(s。
daima==1)
{printf("
欢迎管理员%s:
\n”,s。
sname);
p=1;
guanliyuan();
}/*管理员*/
else
{pr(”欢迎%s使用用户管理系统”,s.sname);
p=0;
putongyh();
}/*普通用户*/
}
else
printf("
用户名或密码错误!
请重新输入!
!
:
\n”);
pr("
您的输入次数超过3次,系统关闭"
Sleep(2000);
/*沉睡2秒,windows。
h中的函数*/
exit(0);
/*关闭系统,process.h*/
}
/*******************************************************************************************************/
/*******************************************************************************************************/
/**************/
/***申请账号***/
/**************/
intshenqing()//申请账号
{
charm[18],a[18],b[18];
inti=0,j=0;
FILE*fp;
if(u==1)
{
s。
daima=1;
strcpy(s.shengf,”系统管理员"
}
else
{
if(p==1)
{
for(;
{
pr(”申请管理员请输入1,申请普通用户请输入0\n"
scanf("
%d”,&
i);
if(i==1)
s。
daima=1;
strcpy(s。
shengf,"
系统管理员”);
break;
}
if(i==0)
{
s.daima=0;
shengf,”普通用户”);
elsepr("
输入错误,请重新输入"
}
if(p==0)/*普通用户权限*/
s.daima=0;
strcpy(s.shengf,"
普通用户”);
}
for(;
;
j=0;
pr("
请输入用户名(16个以下字母或数字,注意区分大小写:
)\n”);
scanf(”%s"
m);
\n'
&&
if((fp=fopen(”user。
txt”,”r”))==NULL){fp=fopen("
user.txt"
,"
w”);
gotolable;
rewind(fp);
while(!
{
fscanf(fp,”%d%s%s%s\n”,&s。
daima,s.sname,s.mima,s。
shengf);
if(strcmp(s。
sname,m)==0)
{j=1;
break;
}
fclose(fp);
if(j==1)pr("
用户名已存在,请重新输入”);
else
lable:
该用户名可以使用!
for(;
for(;
{
pr(”请输入密码(6至16个字母或数字,注意区分大小写:
):
\n"
a);
while((v=getchar())!
{for(i=0;
i<
18;
i++)if(a[i]==’\0’)break;
if(i>
=6&
&i<
=16)break;
密码长度不正确,请重新输入\n"
}
pr(”请再次输入密码\n"
scanf("
%s”,b);
while((v=getchar())!
&&v!
if(strcmp(a,b)==0)break;
elsepr("
您输入的密码与第一次输入不相同,"
fp=fopen(”user.txt”,"
at”);
fprintf(fp,"
%d%s%s%s\n”,s。
daima,m,a,s.shengf);
fclose(fp);
pr(”恭喜你申请账号成功\n你的账号是%s,密码是%s\n请妥善保管你的账号和密码\n\n任意键返回”,m,a);
getchar();
system(”cls”);
/*清屏,stdlib。
return0;
}
/*******************************************************************************************************/
/*******************************************************************************************************/
/*******************************************************************************************************/
/*******************************************************************************************************/
/*******************/
/****管理员权限*****/
/*******************/
intguanliyuan()
{charv;
charn;
pr(”\n\007"
管理员菜单:
\nD修改用户信息;
X新增;
S删除;
Q退出\n\007"
scanf(”%c”,&
n);
&
&v!
if(n=='
D'
)xiugai();
elseif(n=='
X'
)shenqing();
//新增,申请账号
elseif(n==’S’)shanchu();
elsepr(”输入不正确,请重新输入,(注意区分大小写)”);
Sleep(1000);
你按了Q,系统即将关闭\n"
/*沉睡1秒,windows。
/*******************/
/***普通用户权限****/
/*******************/
intputongyh()
{charv;
pr(”\n\007”);
用户菜单:
\nD修改密码;
pr(”S申请账号;
scanf("
%c”,&
while((v=getchar())!
v!
if(n==’D’)xiugai();
S’)shenqing();
elsepr("
输入不正确,请重新输入,(注意区分大小写)"
/*清屏,stdlib.h中函数*/
pr(”你按了Q,系统即将关闭\n”);
Sleep(1000);
/*沉睡1秒,windows.h中的函数*/
intxiugai()
charv;
char*dFile="
user。
txt”;
char*sFile=”fuser.txt”;
inta;
charb[17];
charc[17];
chard[9];
chare[17];
//用户名2
charf[17];
//密码2
intg=0;
FILE*sfp,*dfp;
if((dfp=fopen(dFile,”r”))==NULL)//打开user.txt
return0;
if(p=1)
strcpy(e,s.sname);
请输入你要修改密码的用户名”);
%s”,b);
while((v=getchar())!
=’\n'
while(!
feof(dfp))
{
fscanf(dfp,"
%d%s%s%s\n”,&s.daima,s。
sname,s。
mima,s。
if(strcmp(s.sname,b)==0){g=1;
break;
}//找到所输入的用户名
fclose(dfp);
//关闭user。
txt
if(g==1){pr("
没有%s\n\n任意键返回"
getchar();
return0;
if(s.daima==1&&
strcmp(e,b)!
=0){pr(”对不起:
%s是管理员,你不可以修改对方的资料\n\n任意键返回"
a);
getchar();
return0;
if(s.daima==1)
你现在是管理员,不修改管理权限请输入1,降低管理权限请输入0;
\n\n”);
for(;
{
scanf(”%d”,&
a);
if(a==1){pr("
你仍然是管理员\n\n”);
strcpy(d,”系统管理员"
elseif(a==0){pr("
你将成为普通用户\n\n"
strcpy(d,”普通用户”);
elsepr("
输入错误,请重新输入\n\n"
}
else
pr(”%s是普通用户,提高他的管理权限请输入1,否则输入0;
\n\n”,b);
scanf("
%d”,&
a);
while((v=getchar())!
=’\n’&&
%s成为管理员\n\n”,s.sname);
strcpy(s。
shengf,"
系统管理员"
%s仍然是普通用户\n\n"
s.sname);
输入错误,请重新输入\n\n”);
else
a=0;
strcpy(d,"
现在请输入新密码\n"
%s”,c);
while((v=getchar())!
请再次输入新密码\n”);
scanf(”%s”,f);
if(strcmp(f,c)==0)break;
两次输入不相同,请重新输入\n"
fuzhi(sFile,dFile);
if((sfp=fopen(sFile,”r”))==NULL)return0;
if((dfp=fopen(dFile,”w"
))==NULL)return0;
fscanf(sfp,”%d%s%s%s\n”,&s。
daima,s.sname,s.mima,s。
if(strcmp(s。
sname,b)==0){s。
daima=a;
strcpy(s.mima,c);
strcpy(s.shengf,d);
fprintf(dfp,"
%d%s%s%s\n”,s.daima,s.sname,s.mima,s。
fclose(sfp);
恭喜你修改用户信息成功,%s的新密码是%s;
系统身份是%s\n\n按任意键返回”,b,c,d);
getchar();
return(0);
intshanchu()
char*dFile=”user。
txt"
char*sFile=”fuser.txt”;
chara[18];
FILE*sfp,*dfp;
pr(”请输入你要删除的用户名"
%s”,a);