c语言显示用户信息的程序,C语言系统用户管理系统

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

1、*/*/*题目十八 系统用户管理系统【说明及要求】设系统用户信息(用户代码,用户名,密码,系统身份)存放在一个名为user.txt的文件中,请编写程序实现用户信息的新增、修改密码、删除功能(实现新增和删除时,用户的系统身份必须是“系统管理员”),并能模拟用户的登陆。如果输入的用户代码和密码在文件中存在,则显示欢迎某某用户登陆的界面和操作菜单(N.新增、M.修改密码、D.删除),以便用户完成相应操作,如果输入错误则提示用户重新输入(最多可以尝试3次)。【提示】(1)定义一个结构体表示用户信息;(2)分别编写函数实现用户信息的新增、修改密码、删除、用户登陆等功能;(3)用户的尝试登陆的次数要通过一。

2、个静态变量实现;(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;/强制管理员标。

3、记,如果系统使用时数据库还没有任何用户信息,则把第一个打开系统的用户设置为管理员权限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申请账。

4、号;);/觉得应该允许普通用户申请账号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秒,windo。

5、ws.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。

6、,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;i=6&i=16)break;pr(密码长度不正确。

7、,请重新输入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中的。

8、函数*/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(输入不正确,请重新输入,(。

9、注意区分大小写);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=。

10、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;/用户名cha。

11、r 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);。

12、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,系统管理。

13、员);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。

14、(输入错误,请重新输入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(s);if(sfp=fopen(sFile,r)=NULL)return 0;if(dfp=fopen(dFile,w)=N。

15、ULL)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.sname,s.mima,s.shengf);fclose(dfp); fclose(sfp); pr(恭喜你修改用户信息成功,%s的新密码是%s;系统身份是%snn按任意键返回,b,c,d);getchar();。

16、return(0); int shanchu()char *dFile=user.txt; char *sFile=fuser.txt; char a18;FILE *sfp,*dfp; if(p=1)pr(请输入你要删除的用户名);scanf(%s,a);else strcpy(a,s.sname);fuzhi(s);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,a)=0)continue;fprintf(dfp,%d %s %s %sn,s.daima,s.sname,s.mima,s.shengf);fclose(sfp); fclose(dfp); pr(恭喜你删除用户%s成功nn任意键返回,a);getchar();return(0); 12 / 12。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值