C语言下的学生管理系统含密码加密和验证码Word文档下载推荐.docx
- 文档编号:1037044
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:42
- 大小:19.76KB
C语言下的学生管理系统含密码加密和验证码Word文档下载推荐.docx
《C语言下的学生管理系统含密码加密和验证码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言下的学生管理系统含密码加密和验证码Word文档下载推荐.docx(42页珍藏版)》请在冰点文库上搜索。
intscore3;
intsum;
}score;
structstudent//定义学生结构体
intno;
charname[20];
charspwd[20];
intclassnum;
structscore_stuscore;
intage;
intranking;
}stu[N],*p;
voidinputPasswd(charpasswd[])//隐藏密码
chars[20];
chartemp[2];
intn;
//strcpy(s,"
"
);
s[0]='
\0'
;
while
(1)
{
n=getch();
if(n==13)//13为回车'
\r'
break;
}
printf("
*"
memset(temp,0,sizeof(temp));
//将temp里面的数据用0替换
sprintf(temp,"
%c"
n);
//将n打印成一个字符保存到temp里面
strcat(s,temp);
//把temp所指字符串添加到s结尾处(覆盖s结尾处的'
)
\n"
strcpy(passwd,s);
}
voidcaptcha(charstr[],intn)//验证码
chara[]="
1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJLMNPQRSTUVWXYZ"
inti,j,k;
k=strlen(a);
//k表示字符串的长度
srand(time(0));
//随机数初始化
for(i=0;
i<
n;
i++)
j=rand()%k;
//取0-58的随机数
str[i]=a[j];
str[i]='
voidadmin()//管理员操作
intchoose1;
\t\t1:
增加学生信息\t2:
删除学生信息\t3:
修改学生信息\t4:
查询学生信息\t5:
排序学生信息\t6:
退出程序\n"
\t\t"
scanf("
%d"
&
choose1);
\t\t=========================================================================================\n"
fflush(stdin);
switch(choose1)
case1:
input();
break;
case2:
del();
case3:
change();
case4:
find();
case5:
sorting();
case6:
\t\t退出成功!
exit(0);
default:
\t\t你所选择的操作不是上述操作,请重新选择\n"
admin();
voidadmin_login()//管理员登录
staticinti=0;
intj=3;
charusername[10];
charpwd[10];
charcode[N],str[N];
\t\t**********************************欢迎进入管理员登录界面**********************************\n"
\t\t请输入帐号:
gets(username);
\t\t请输入密码:
inputPasswd(pwd);
if((strcmp(username,"
admin"
)==0)&
&
(strcmp(pwd,"
)==0))
captcha(code,4);
\t\t请输入验证码:
%s\n"
code);
%s"
str);
if(strcmp(code,str)==0)
\n\t\t您已成功登录\n"
\t\t请选择你要执行的操作:
else
j--;
if(j==0)
\t\t错误次数过多,系统自动退出\n"
while(i<
2)
\n用户名和/或密码无效请重新输入\n"
i++;
admin_login();
登录次数超限,自动退出!
voidstudent(intuserNO)//学生操作
intx;
查询个人信息\t2:
修改密码\t3:
退出\n"
x);
switch(x)
stu_search(userNO);
modify(userNO);
printf("
default:
\t\t你所选择的项目错误!
重新选择!
"
student(userNO);
intstudent_login()//学生登录
staticintj=0;
inti;
intk=3;
intuserNO;
charpwd[20];
charcode[N+1],str[N+1];
\t\t**********************************欢迎进入学生登录界面**********************************\n"
\t\t请输入学号:
userNO);
read();
N;
if((userNO==stu[i].no)&
(strcmp(pwd,stu[i].spwd)==0))
\t\t登录成功!
\t\t请选择操作!
k--;
if(k==0)
while(j<
\t\t登录失败,请重新登录!
j++;
student_login();
\t\t登陆次数超限!
系统自动退出!
returnuserNO;
voidstu_ranking()//计算排名
inti,j;
intcount=1;
stu[i].no!
=0;
for(j=0;
stu[j].no!
j++)
{
if(stu[i].score.sum<
stu[j].score.sum)
{
count++;
}
}
stu[i].ranking=count;
count=1;
save();
voidstu_search(intuserNO)//学生查询个人信息
inti,x;
if(userNO==stu[i].no)
\t\t学号\t姓名\t密码\t班级\t成绩一\t成绩二\t成绩三\t总分\t年龄\t排名\n"
\t\t%d\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n\n"
stu[i].no,stu[i].name,stu[i].spwd,stu[i].classnum,
stu[i].score.score1,stu[i].score.score2,stu[i].score.score3,stu[i].score.sum,
stu[i].age,stu[i].ranking);
\t\t请选择退出系统或返回主菜单\n"
返回主菜单\t2:
student(userNO);
\t\t退出成功!
\t\t输入错误,系统自动返回主菜单!
voidmodify(intuserNO)//学生修改个人密码
staticintk=0;
charpwd_old[20];
charpwd_new[20];
charpwd_new1[20];
\t\t请输入旧密码:
gets(pwd_old);
if(strcmp(pwd_old,stu[i].spwd)==0)
\t\t请输入新密码:
gets(pwd_new);
\t\t请再次输入新密码:
gets(pwd_new1);
if(strcmp(pwd_new,pwd_new1)==0)
\t\t修改完成!
strcpy(stu[i].spwd,pwd_new);
k++;
if(k==3)
\t\t错误次数过多,自动返回主菜单!
\t\t输入两次密码不一致请重新进入!
modify(userNO);
\t\t密码输入不正确!
自动返回主菜单\n"
voidinput()//增加学生信息
charch;
inti,n,count=0;
\t\t请输入添加学生信息的条数:
n);
if(n<
1||n>
N)
\t\t输入不合法,请重新输入:
\t\t请添加学生信息:
\t\t学号\t姓名\t密码\t班级\t成绩一\t成绩二\t成绩三\t年龄\n"
if(count==n)
if(stu[i].no==0)
%d%s%s%d%d%d%d%d"
stu[i].no,stu[i].name,stu[i].spwd,&
stu[i].classnum,
&
stu[i].score.score1,&
stu[i].score.score2,&
stu[i].score.score3,&
stu[i].age);
stu[i].score.sum=stu[i].score.score1+stu[i].score.score2+stu[i].score.score3;
count++;
stu_ranking();
\t\t添加学生信息成功!
\t\t是否继续?
(Y/N)\n"
ch);
if(ch=='
Y'
||ch=='
y'
voiddel()//删除学生信息
intdel_no;
\t\t请输入想要删除记录的ID:
del_no);
if(del_no==stu[i].no)
for(j=i;
j<
N-1;
stu[j]=stu[j+1];
\t\t删除信息成功!
voidchange()//修改学生信息
intchange_no;
\t\t请输入想要修改记录的ID:
change_no);
if(change_no==stu[i].no)
\t\t%d\t%s\t%s\t%d\t%d\t%d\t%d\t%d\n"
stu[i].no,stu[i].name,stu[i].spwd,
stu[i].classnum,stu[i].score.score1,stu[i].score.score2,stu[i].score.score3,stu[i].age);
\t\t请输入你要修改后的信息!
stu[i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 管理 系统 密码 加密 验证
![提示](https://static.bingdoc.com/images/bang_tan.gif)