C语言下的学生管理系统含密码加密和验证码.docx

上传人:b****2 文档编号:773665 上传时间:2023-04-30 格式:DOCX 页数:42 大小:19.76KB
下载 相关 举报
C语言下的学生管理系统含密码加密和验证码.docx_第1页
第1页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第2页
第2页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第3页
第3页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第4页
第4页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第5页
第5页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第6页
第6页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第7页
第7页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第8页
第8页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第9页
第9页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第10页
第10页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第11页
第11页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第12页
第12页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第13页
第13页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第14页
第14页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第15页
第15页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第16页
第16页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第17页
第17页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第18页
第18页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第19页
第19页 / 共42页
C语言下的学生管理系统含密码加密和验证码.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言下的学生管理系统含密码加密和验证码.docx

《C语言下的学生管理系统含密码加密和验证码.docx》由会员分享,可在线阅读,更多相关《C语言下的学生管理系统含密码加密和验证码.docx(42页珍藏版)》请在冰点文库上搜索。

C语言下的学生管理系统含密码加密和验证码.docx

C语言下的学生管理系统含密码加密和验证码

#include

#include

#include

#include

#include

#defineN20

voidinput();//增加学生信息

voiddel();//删除学生信息

voidchange();//修改学生信息

voidfind();//查询学生信息

voidsorting();//排序

voidsave();//保存到文件

voidread();//读取文件

voidstu_search();//学生查询信息

voidmodify();//学生修改自己密码

structscore_stu//定义分数结构体

{

intscore1;

intscore2;

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)

{

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结尾处的'\0')

}

break;

}

printf("\n");

strcpy(passwd,s);

}

voidcaptcha(charstr[],intn)//验证码

{

chara[]="1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJLMNPQRSTUVWXYZ";

inti,j,k;

k=strlen(a);//k表示字符串的长度

srand(time(0));//随机数初始化

for(i=0;i

{

j=rand()%k;//取0-58的随机数

str[i]=a[j];

}

str[i]='\0';

}

voidadmin()//管理员操作

{

intchoose1;

printf("\t\t1:

增加学生信息\t2:

删除学生信息\t3:

修改学生信息\t4:

查询学生信息\t5:

排序学生信息\t6:

退出程序\n");

printf("\t\t");

scanf("%d",&choose1);

printf("\t\t=========================================================================================\n");

fflush(stdin);

switch(choose1)

{

case1:

input();break;

case2:

del();break;

case3:

change();break;

case4:

find();break;

case5:

sorting();break;

case6:

printf("\t\t退出成功!

\n");

exit(0);

break;

default:

printf("\t\t你所选择的操作不是上述操作,请重新选择\n");

admin();

break;

}

}

voidadmin_login()//管理员登录

{

staticinti=0;

intj=3;

charusername[10];

charpwd[10];

charcode[N],str[N];

printf("\t\t**********************************欢迎进入管理员登录界面**********************************\n");

printf("\t\t请输入帐号:

\n");

printf("\t\t");

gets(username);

printf("\t\t=========================================================================================\n");

printf("\t\t请输入密码:

\n");

printf("\t\t");

inputPasswd(pwd);

printf("\t\t=========================================================================================\n");

fflush(stdin);

if((strcmp(username,"admin")==0)&&(strcmp(pwd,"admin")==0))

{

while

(1)

{

captcha(code,4);

printf("\t\t请输入验证码:

%s\n",code);

printf("\t\t");

scanf("%s",str);

printf("\t\t=========================================================================================\n");

if(strcmp(code,str)==0)

{

printf("\n\t\t您已成功登录\n");

printf("\t\t请选择你要执行的操作:

\n");

admin();

}

else

{

j--;

if(j==0)

{

printf("\t\t错误次数过多,系统自动退出\n");

exit(0);

}

}

}

}

else

{

while(i<2)

{

printf("\n用户名和/或密码无效请重新输入\n");

i++;

admin_login();

}

printf("登录次数超限,自动退出!

\n");

exit(0);

}

}

voidstudent(intuserNO)//学生操作

{

intx;

printf("\t\t1:

查询个人信息\t2:

修改密码\t3:

退出\n");

printf("\t\t");

scanf("%d",&x);

printf("\t\t=========================================================================================\n");

switch(x)

{

case1:

stu_search(userNO);break;

case2:

modify(userNO);break;

case3:

printf("\t\t退出成功!

\n");

exit(0);break;

default:

printf("\t\t你所选择的项目错误!

重新选择!

");

student(userNO);break;

}

 

}

intstudent_login()//学生登录

{

staticintj=0;

inti;

intk=3;

intuserNO;

charpwd[20];

charcode[N+1],str[N+1];

printf("\t\t**********************************欢迎进入学生登录界面**********************************\n");

printf("\t\t请输入学号:

\n");

printf("\t\t");

fflush(stdin);

scanf("%d",&userNO);

printf("\t\t=========================================================================================\n");

printf("\t\t请输入密码:

\n");

printf("\t\t");

fflush(stdin);

inputPasswd(pwd);

printf("\t\t=========================================================================================\n");

read();

for(i=0;i

{

if((userNO==stu[i].no)&&(strcmp(pwd,stu[i].spwd)==0))

{

while

(1)

{

captcha(code,4);

printf("\t\t请输入验证码:

%s\n",code);

printf("\t\t");

scanf("%s",str);

printf("\t\t=========================================================================================\n");

if(strcmp(code,str)==0)

{

printf("\t\t登录成功!

\n");

printf("\t\t请选择操作!

\n");

student(userNO);

}

else

{

k--;

if(k==0)

{

printf("\t\t错误次数过多,系统自动退出\n");

exit(0);

}

}

}

}

else

{

while(j<2)

{

printf("\t\t登录失败,请重新登录!

\n");

j++;

student_login();

}

printf("\t\t登陆次数超限!

系统自动退出!

");

exit(0);

}

}

returnuserNO;

}

voidstu_ranking()//计算排名

{

inti,j;

intcount=1;

read();

for(i=0;stu[i].no!

=0;i++)

{

for(j=0;stu[j].no!

=0;j++)

{

if(stu[i].score.sum

{

count++;

}

}

stu[i].ranking=count;

count=1;

}

save();

}

voidstu_search(intuserNO)//学生查询个人信息

{

inti,x;

read();

for(i=0;i

{

if(userNO==stu[i].no)

{

printf("\t\t学号\t姓名\t密码\t班级\t成绩一\t成绩二\t成绩三\t总分\t年龄\t排名\n");

printf("\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);

printf("\t\t=========================================================================================\n");

printf("\t\t请选择退出系统或返回主菜单\n");

printf("\t\t1:

返回主菜单\t2:

退出\n");

printf("\t\t");

scanf("%d",&x);

printf("\t\t=========================================================================================\n");

switch(x)

{

case1:

student(userNO);break;

case2:

printf("\t\t退出成功!

\n");

exit(0);

}

}

else

{

printf("\t\t输入错误,系统自动返回主菜单!

\n");

student(userNO);

}

}

}

voidmodify(intuserNO)//学生修改个人密码

{

fflush(stdin);

staticintk=0;

inti;

charpwd_old[20];

charpwd_new[20];

charpwd_new1[20];

read();

for(i=0;i

{

if(userNO==stu[i].no)

{

printf("\t\t请输入旧密码:

\n");

printf("\t\t");

gets(pwd_old);

printf("\t\t=========================================================================================\n");

if(strcmp(pwd_old,stu[i].spwd)==0)

{

printf("\t\t请输入新密码:

\n");

printf("\t\t");

gets(pwd_new);

printf("\t\t=========================================================================================\n");

printf("\t\t请再次输入新密码:

\n");

printf("\t\t");

gets(pwd_new1);

printf("\t\t=========================================================================================\n");

if(strcmp(pwd_new,pwd_new1)==0)

{

printf("\t\t修改完成!

\n");

strcpy(stu[i].spwd,pwd_new);

printf("\t\t=========================================================================================\n");

break;

}

else

{

while

(1)

{

k++;

if(k==3)

{

printf("\t\t错误次数过多,自动返回主菜单!

\n");

printf("\t\t=========================================================================================\n");

student(userNO);

}

else

{

printf("\t\t输入两次密码不一致请重新进入!

\n");

printf("\t\t=========================================================================================\n");

modify(userNO);

}

}

}

}

else

{

printf("\t\t密码输入不正确!

自动返回主菜单\n");

printf("\t\t=========================================================================================\n");

student(userNO);

}

}

}

save();

student(userNO);

}

voidinput()//增加学生信息

{

charch;

inti,n,count=0;

printf("\t\t请输入添加学生信息的条数:

\n");

printf("\t\t");

scanf("%d",&n);

printf("\t\t=========================================================================================\n");

if(n<1||n>N)

{

printf("\t\t输入不合法,请重新输入:

\n");

input();

}

printf("\t\t请添加学生信息:

\n");

printf("\t\t学号\t姓名\t密码\t班级\t成绩一\t成绩二\t成绩三\t年龄\n");

read();

for(i=0;i

{

if(count==n)

{

break;

}

if(stu[i].no==0)

{

fflush(stdin);

printf("\t\t");

scanf("%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++;

}

}

save();

stu_ranking();

printf("\t\t=========================================================================================\n");

printf("\t\t添加学生信息成功!

\n");

printf("\t\t是否继续?

(Y/N)\n");

fflush(stdin);

printf("\t\t");

scanf("%c",&ch);

if(ch=='Y'||ch=='y')

{

input();

}

admin();

}

voiddel()//删除学生信息

{

fflush(stdin);

inti,j;

charch;

intdel_no;

printf("\t\t请输入想要删除记录的ID:

\n");

printf("\t\t");

scanf("%d",&del_no);

printf("\t\t=========================================================================================\n");

read();

for(i=0;stu[i].no!

=0;i++)

{

if(del_no==stu[i].no)

{

for(j=i;j

{

stu[j]=stu[j+1];

}

}

}

save();

stu_ranking();

printf("\t\t=========================================================================================\n");

printf("\t\t删除信息成功!

\n");

printf("\t\t是否继续?

(Y/N)\n");

fflush(stdin);

printf("\t\t");

scanf("%c",&ch);

if(ch=='Y'||ch=='y')

{

del();

}

admin();

}

voidchange()//修改学生信息

{

fflush(stdin);

inti;

charch;

intchange_no;

printf("\t\t请输入想要修改记录的ID:

\n");

printf("\t\t");

scanf("%d",&change_no);

printf("\t\t=========================================================================================\n");

read();

printf("\t\t学号\t姓名\t密码\t班级\t成绩一\t成绩二\t成绩三\t年龄\n");

for(i=0;stu[i].no!

=0;i++)

{

if(change_no==stu[i].no)

{

printf("\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);

printf("\t\t请输入你要修改后的信息!

\n");

printf("\t\t=========================================================================================\n");

printf("\t\t");

scanf("%d%s%s%d%d%d%d%d",&stu[i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2