您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > C语言系统用户管理系统
/*******************************************************************************************************//*******************************************************************************************************//*题目十八系统用户管理系统【说明及要求】设系统用户信息(用户代码,用户名,密码,系统身份)存放在一个名为user.txt的文件中,请编写程序实现用户信息的新增、修改密码、删除功能(实现新增和删除时,用户的系统身份必须是“系统管理员”),并能模拟用户的登陆。如果输入的用户代码和密码在文件中存在,则显示欢迎某某用户登陆的界面和操作菜单(N.新增、M.修改密码、D.删除),以便用户完成相应操作,如果输入错误则提示用户重新输入(最多可以尝试3次)。【提示】(1)定义一个结构体表示用户信息;(2)分别编写函数实现用户信息的新增、修改密码、删除、用户登陆等功能;(3)用户的尝试登陆的次数要通过一个静态变量实现;(4)编写main函数进行演示。*//*******************************************************************************************************//*******************************************************************************************************/#includestdio.h#includewindows.h#includestdlib.h#includestring.h#includeconio.h#includeprocess.h#defineH100/*最大允许保存学生信息数*/#defineprprintf#defineSscanfstructyonghuxx/*用户信息*/{intdaima;//用户代码charsname[17];//用户名charmima[17];//密码charshengf[9];//系统省份};structyonghuxxs;intp=0;//普通用户p=0;管理员用户p=1inth;//信息数intu=0;//强制管理员标记,如果系统使用时数据库还没有任何用户信息,则把第一个打开系统的用户设置为管理员权限u=1intxiugai();//修改密码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;i3;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();}/*普通用户*/}elseprintf(用户名或密码错误!请重新输入!!!:\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(用户名已存在,请重新输入);elselable:{pr(该用户名可以使用!\n);for(;;){for(;;){pr(请输入密码(6至16个字母或数字,注意区分大小写:):\n);scanf(%s,a);while((v=getchar())!='\n'&&v!=EOF);//清空缓冲区{for(i=0;i18;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;}}}/******************************************
本文标题:C语言系统用户管理系统
链接地址:https://www.777doc.com/doc-7028743 .html