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

下载本文档

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

文档简介

/*/*/*题目十八 系统用户管理系统【说明及要求】设系统用户信息(用户代码,用户名,密码,系统身份)存放在一个名为user.txt的文件中,请编写程序实现用户信息的新增、修改密码、删除功能(实现新增和删除时,用户的系统身份必须是“系统管理员”),并能模拟用户的登陆。如果输入的用户代码和密码在文件中存在,则显示欢迎某某用户登陆的界面和操作菜单(N.新增、M.修改密码、D.删除),以便用户完成相应操作,如果输入错误则提示用户重新输入(最多可以尝试3次)。【提示】(1)定义一个结构体表示用户信息;(2)分别编写函数实现用户信息的新增、修改密码、删除、用户登陆等功能;(3)用户的尝试登陆的次数要通过一个静态变量实现;(4)编写main函数进行演示。*/*/*/#include#include#include #include#include#include #define H 100 /*最大允许保存学生信息数*/#define pr printf#define S scanfstruct yonghuxx/*用户信息*/int daima;/用户代码char sname 17;/用户名char mima17;/密码char shengf9; /系统省份;struct yonghuxx s;int p=0;/普通用户p=0;管理员用户p=1int h;/信息数int u=0;/强制管理员标记,如果系统使用时数据库还没有任何用户信息,则把第一个打开系统的用户设置为管理员权限u=1int xiugai();/修改密码int shanchu();/删除void denglu();/用户登陆int shenqing();/新增,申请账号int fuzhi(char *sFile, char *dFile) ;/将一个文件复制到另一个文件int guanliyuan();/*管理员*/int putongyh();/*普通用户*/*/*/*/*主函数*/*/main()char n;char v;/清空缓冲区暂存变量pr(n007);for(;)pr(主菜单:nD登录;);pr(S申请账号;);/觉得应该允许普通用户申请账号pr(Q退出n007);scanf(%c,&n);/* 清空输入流,通过 while 循环把输入流中的余留数据“吃”掉 */while ( (v= getchar() != n & v != EOF ) ;/清空缓冲区if(n=D)denglu();else if(n=S)shenqing();else if(n=Q)break;else pr(输入不正确,请重新输入,(注意区分大小写);Sleep(1000);system(cls); /*清屏, stdlib.h中函数*/pr(你按了Q,系统即将关闭n);Sleep(1000);/*沉睡1秒,windows.h中的函数*/return 0;/*/*/*/*复制*/*/int fuzhi(char *dFile, char *sFile) /将sFile指向的文件复制到dFile中 FILE *sfp,*dfp; if (sfp=fopen(sFile,r)=NULL) return 0; if (dfp=fopen(dFile,w)=NULL) return 0; while(!feof(sfp) fscanf(sfp,%d %s %s %sn,&s.daima,s.sname,s.mima,s.shengf); fprintf(dfp,%d %s %s %sn,s.daima,s.sname,s.mima,s.shengf); fclose(sfp); fclose(dfp); return(0); /*/*/*/*用户登录*/*/void denglu()FILE *fp;char v;/清空缓冲区暂存变量 char c18,d18; int e,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();/*普通用户*/ else printf(用户名或密码错误!请重新输入!:n); pr(您的输入次数超过3次,系统关闭);Sleep(2000);/*沉睡2秒,windows.h中的函数*/exit(0);/*关闭系统,process.h*/ /*/*/*/*申请账号*/*/int shenqing()/申请账号char v;/清空缓冲区暂存变量char m18,a18,b18;int i=0,j=0;FILE *fp;if(u=1)s.daima=1;strcpy(s.shengf,系统管理员);elseif(p=1)for(;)pr(申请管理员请输入1,申请普通用户请输入0n);scanf(%d,&i);if(i=1)s.daima=1;strcpy(s.shengf,系统管理员);break;if(i=0)s.daima=0;strcpy(s.shengf,普通用户);break;else pr(输入错误,请重新输入);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);goto lable;rewind(fp);while(!feof(fp)fscanf(fp,%d %s %s %sn,&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=6&i=16)break;pr(密码长度不正确,请重新输入n);pr(请再次输入密码n);scanf(%s,b); while ( (v= getchar() != n & v != EOF ) ;/清空缓冲区if(strcmp(a,b)=0)break;else pr(您输入的密码与第一次输入不相同,);fp=fopen(user.txt,at);fprintf(fp,%d %s %s %sn,s.daima,m,a,s.shengf);fclose(fp);pr(恭喜你申请账号成功n你的账号是%s,密码是%sn请妥善保管你的账号和密码nn任意键返回,m,a);getchar(); system(cls); /*清屏,stdlib.h中的函数*/return 0;/*/*/*/*/*/*管理员权限*/*/int guanliyuan()char v;/清空缓冲区暂存变量char n;pr(n007);for(;)pr(管理员菜单:nD修改用户信息;X新增;S删除;Q退出n007);scanf(%c,&n); while ( (v= getchar() != n & v != EOF ) ;/清空缓冲区if(n=D)xiugai();/修改密码else if(n=X)shenqing();/新增,申请账号else if(n=S)shanchu();/删除else if(n=Q)break;else pr(输入不正确,请重新输入,(注意区分大小写);Sleep(1000);system(cls); /*清屏, stdlib.h中函数*/pr(你按了Q,系统即将关闭n);Sleep(1000);/*沉睡1秒,windows.h中的函数*/return 0;/*/*普通用户权限*/*/int putongyh()char v;/清空缓冲区暂存变量char n;pr(n007);for(;)pr(用户菜单:nD修改密码;);pr(S申请账号;);/觉得应该允许普通用户申请账号pr(Q退出n007);scanf(%c,&n); while ( (v= getchar() != n & v != EOF ) ;/清空缓冲区if(n=D)xiugai();/修改密码else if(n=S)shenqing();/新增,申请账号else if(n=Q)break;else pr(输入不正确,请重新输入,(注意区分大小写);Sleep(1000);system(cls); /*清屏, stdlib.h中函数*/pr(你按了Q,系统即将关闭n);Sleep(1000);/*沉睡1秒,windows.h中的函数*/return 0;int xiugai()char v;/清空缓冲区暂存变量char *dFile=user.txt; char *sFile=fuser.txt; int a;/用户代码char b17;/用户名char c17;/密码char d9; /系统省份char e17;/用户名2char f17;/密码2int g=0;FILE *sfp,*dfp; if(dfp=fopen(dFile,r)=NULL) /打开user.txtreturn 0; 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 %sn,&s.daima,s.sname,s.mima,s.shengf);if(strcmp(s.sname,b)=0)g=1;break; /找到所输入的用户名fclose(dfp); /关闭user.txtif(g=1)pr(没有%snn任意键返回);getchar();return 0;if(s.daima=1 & strcmp(e,b)!=0)pr(对不起:%s是管理员,你不可以修改对方的资料nn任意键返回,a);getchar();return 0;if(s.daima=1)pr(你现在是管理员,不修改管理权限请输入1,降低管理权限请输入0;nn);for(;)scanf(%d,&a);if(a =1)pr(你仍然是管理员nn);strcpy(d,系统管理员);break;else if(a =0)pr(你将成为普通用户nn);strcpy(d,普通用户);break;else pr(输入错误,请重新输入nn);else pr(%s是普通用户,提高他的管理权限请输入1,否则输入0;nn,b);for(;)scanf(%d,&a );while ( (v= getchar() != n & v != EOF ) ;/清空缓冲区if(a =1)pr(%s成为管理员nn,s.sname );strcpy(s.shengf ,系统管理员);break;else if(a =0)pr(%s仍然是普通用户nn,s.sname );break;else pr(输入错误,请重新输入nn);elsea=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)return 0;if(dfp=fopen(dFile,w)=NULL)return 0;while(!feof(sfp) fscanf(sfp,%d %s %s %sn,&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 %sn,s.daima,s.

温馨提示

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

评论

0/150

提交评论