c语言系统用户管理系统_第1页
c语言系统用户管理系统_第2页
c语言系统用户管理系统_第3页
c语言系统用户管理系统_第4页
c语言系统用户管理系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z./*******************************************************************************************************//*******************************************************************************************************//*题目十八系统用户管理系统【说明及要求】设系统用户信息〔用户代码,用户名,密码,系统身份〕存放在一个名为user.t*t的文件中,请编写程序实现用户信息的新增、修改密码、删除功能〔实现新增和删除时,用户的系统身份必须是"系统管理员〞〕,并能模拟用户的登陆。如果输入的用户代码和密码在文件中存在,则显示欢送**用户登陆的界面和操作菜单〔N.新增、M.修改密码、D.删除〕,以便用户完成相应操作,如果输入错误则提示用户重新输入〔最多可以尝试3次〕。【提示】〔1〕定义一个构造体表示用户信息;〔2〕分别编写函数实现用户信息的新增、修改密码、删除、用户登陆等功能;〔3〕用户的尝试登陆的次数要通过一个静态变量实现;〔4〕编写main函数进展演示。*//*******************************************************************************************************//*******************************************************************************************************/#include<stdio.h>#include<windows.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<process.h>#defineH100/*最大允许保存学生信息数*/#defineprprintf#defineSscanfstructyonghu**/*用户信息*/{intdaima;//用户代码charsname[17];//用户名charmima[17];//密码charshengf[9];//系统省份};structyonghu**s;intp=0;//普通用户p=0;管理员用户p=1inth;//信息数intu=0;//强制管理员标记,如果系统使用时数据库还没有任何用户信息,则把第一个翻开系统的用户设置为管理员权限u=1int*iugai();//修改密码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.t*t","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中的函数*/e*it(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.t*t","r"))==NULL){fp=fopen("user.t*t","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.t*t","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修改用户信息;*新增;S删除;Q退出\n\007"); scanf("%c",&n);while((v=getchar())!='\n'&&v!=EOF);//清空缓冲区 if(n=='D')*iugai();//修改密码 elseif(n=='*')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')*iugai();//修改密码 elseif(n=='S')shenqing();//新增,申请账号 elseif(n=='Q')break; elsepr("输入不正确,请重新输入,(注意区分大小写)"); Sleep(1000); system("cls");/*清屏,stdlib.h中函数*/ } pr("你按了Q,系统即将关闭\n"); Sleep(1000);/*沉睡1秒,windows.h中的函数*/ return0;}int*iugai(){ charv;//清空缓冲区暂存变量 char*dFile="user.t*t"; char*sFile="fuser.t*t"; inta;//用户代码 charb[17];//用户名 charc[17];//密码 chard[9];//系统省份 chare[17];//用户名2 charf[17];//密码2 intg=0; FILE*sfp,*dfp; 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;}//找到所输入的用户名 } 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"))

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论