C语言系统用户管理系统.docx

上传人:b****6 文档编号:4809027 上传时间:2022-12-09 格式:DOCX 页数:16 大小:22.04KB
下载 相关 举报
C语言系统用户管理系统.docx_第1页
第1页 / 共16页
C语言系统用户管理系统.docx_第2页
第2页 / 共16页
C语言系统用户管理系统.docx_第3页
第3页 / 共16页
C语言系统用户管理系统.docx_第4页
第4页 / 共16页
C语言系统用户管理系统.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言系统用户管理系统.docx

《C语言系统用户管理系统.docx》由会员分享,可在线阅读,更多相关《C语言系统用户管理系统.docx(16页珍藏版)》请在冰豆网上搜索。

C语言系统用户管理系统.docx

C语言系统用户管理系统

/*******************************************************************************************************/

/*******************************************************************************************************/

/*题目十八系统用户管理系统

【说明及要求】

设系统用户信息(用户代码,用户名,密码,系统身份)存放在一个名为user。

txt的文件中,

请编写程序实现用户信息的新增、修改密码、删除功能(实现新增和删除时,用户的系统身份必须是“系统管理员"),

并能模拟用户的登陆。

如果输入的用户代码和密码在文件中存在,

则显示欢迎某某用户登陆的界面和操作菜单(N。

新增、M.修改密码、D。

删除),

以便用户完成相应操作,如果输入错误则提示用户重新输入(最多可以尝试3次).

【提示】

(1)定义一个结构体表示用户信息;

(2)分别编写函数实现用户信息的新增、修改密码、删除、用户登陆等功能;

(3)用户的尝试登陆的次数要通过一个静态变量实现;

(4)编写main函数进行演示。

*/

/*******************************************************************************************************/

/*******************************************************************************************************/

#include〈stdio.h〉

#include

h〉

#include〈stdlib.h〉

#include〈string.h〉

#include

h〉

#include〈process。

h>

#defineH100/*最大允许保存学生信息数*/

#defineprprintf

#defineSscanf

structyonghuxx/*用户信息*/

intdaima;//用户代码

charsname[17];//用户名

charmima[17];//密码

charshengf[9];//系统省份

};

structyonghuxxs;

intp=0;//普通用户p=0;管理员用户p=1

inth;//信息数

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)

return0;

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”,"r"))==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())!

='\n’&&v!

=EOF);//清空缓冲区

puts(”请输入密码:

");

scanf("%s”,d);

while((v=getchar())!

='\n’&&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()//申请账号

{

charv;//清空缓冲区暂存变量

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;

strcpy(s。

shengf,”普通用户”);

break;

}

elsepr("输入错误,请重新输入");

}

}

if(p==0)/*普通用户权限*/

{

s.daima=0;

strcpy(s.shengf,"普通用户”);

}

for(;;)

{

j=0;

pr("请输入用户名(16个以下字母或数字,注意区分大小写:

)\n”);

scanf(”%s",m);

while((v=getchar())!

='\n'&&v!

=EOF);//清空缓冲区

if((fp=fopen(”user。

txt”,”r”))==NULL){fp=fopen("user.txt","w”);gotolable;}

rewind(fp);

while(!

feof(fp))

{

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:

pr("该用户名可以使用!

\n”);

for(;;)

{

for(;;)

{

pr(”请输入密码(6至16个字母或数字,注意区分大小写:

):

\n");

scanf("%s",a);

while((v=getchar())!

='\n’&&v!

=EOF);//清空缓冲区

{for(i=0;i<18;i++)if(a[i]==’\0’)break;if(i>=6&&i<=16)break;pr("密码长度不正确,请重新输入\n");}

pr(”请再次输入密码\n");

scanf("%s”,b);

while((v=getchar())!

='\n'&&v!

=EOF);//清空缓冲区

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。

h中的函数*/

return0;

}

}

/*******************************************************************************************************/

/*******************************************************************************************************/

/*******************************************************************************************************/

/*******************************************************************************************************/

/*******************/

/****管理员权限*****/

/*******************/

intguanliyuan()

{charv;//清空缓冲区暂存变量

charn;

pr(”\n\007");

for(;;)

{

pr("管理员菜单:

\nD修改用户信息;X新增;S删除;Q退出\n\007");

scanf(”%c”,&n);

while((v=getchar())!

='\n'&&v!

=EOF);//清空缓冲区

if(n=='D')xiugai();//修改密码

elseif(n=='X')shenqing();//新增,申请账号

elseif(n==’S’)shanchu();//删除

elseif(n==’Q')break;

elsepr(”输入不正确,请重新输入,(注意区分大小写)”);

Sleep(1000);

system("cls");/*清屏,stdlib.h中函数*/

pr("你按了Q,系统即将关闭\n");

Sleep(1000);/*沉睡1秒,windows。

h中的函数*/

return0;

/*******************/

/***普通用户权限****/

/*******************/

intputongyh()

{charv;//清空缓冲区暂存变量

charn;

pr(”\n\007”);

for(;;)

{

pr("用户菜单:

\nD修改密码;");

pr(”S申请账号;");

//觉得应该允许普通用户申请账号

pr("Q退出\n\007");

scanf("%c”,&n);

while((v=getchar())!

='\n’&&v!

=EOF);//清空缓冲区

if(n==’D’)xiugai();//修改密码

elseif(n=='S’)shenqing();//新增,申请账号

elseif(n==’Q')break;

elsepr("输入不正确,请重新输入,(注意区分大小写)");

Sleep(1000);

system("cls");/*清屏,stdlib.h中函数*/

pr(”你按了Q,系统即将关闭\n”);

Sleep(1000);/*沉睡1秒,windows.h中的函数*/

return0;

}

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);

pr("请输入你要修改密码的用户名”);

scanf("%s”,b);

while((v=getchar())!

=’\n'&&v!

=EOF);//清空缓冲区

while(!

feof(dfp))

{

fscanf(dfp,"%d%s%s%s\n”,&s.daima,s。

sname,s。

mima,s。

shengf);

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)

pr("你现在是管理员,不修改管理权限请输入1,降低管理权限请输入0;\n\n”);

for(;;)

scanf(”%d”,&a);

if(a==1){pr("你仍然是管理员\n\n”);strcpy(d,”系统管理员");break;}

elseif(a==0){pr("你将成为普通用户\n\n");strcpy(d,”普通用户”);break;}

elsepr("输入错误,请重新输入\n\n");

}

}

else

{

pr(”%s是普通用户,提高他的管理权限请输入1,否则输入0;\n\n”,b);

for(;;)

scanf("%d”,&a);

while((v=getchar())!

=’\n’&&v!

=EOF);//清空缓冲区

if(a==1){pr("%s成为管理员\n\n”,s.sname);strcpy(s。

shengf,"系统管理员");break;}

elseif(a==0){pr("%s仍然是普通用户\n\n",s.sname);break;}

elsepr("输入错误,请重新输入\n\n”);

}

}

else

{

a=0;

strcpy(d,"普通用户”);

for(;;)

pr("现在请输入新密码\n");

scanf("%s”,c);

while((v=getchar())!

='\n'&&v!

=EOF);//清空缓冲区

pr("请再次输入新密码\n”);

scanf(”%s”,f);

while((v=getchar())!

=’\n’&&v!

=EOF);//清空缓冲区

if(strcmp(f,c)==0)break;

pr("两次输入不相同,请重新输入\n");

fuzhi(sFile,dFile);

if((sfp=fopen(sFile,”r”))==NULL)return0;

if((dfp=fopen(dFile,”w"))==NULL)return0;

while(!

feof(sfp))

fscanf(sfp,”%d%s%s%s\n”,&s。

daima,s.sname,s.mima,s。

shengf);

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。

shengf);

fclose(dfp);

fclose(sfp);

pr("恭喜你修改用户信息成功,%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;

if(p=1)

{

pr(”请输入你要删除的用户名");

scanf("%s”,a);

}

else

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1