c语言学生信息管理系统(一)_第1页
c语言学生信息管理系统(一)_第2页
c语言学生信息管理系统(一)_第3页
c语言学生信息管理系统(一)_第4页
c语言学生信息管理系统(一)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#defineN1000()

voidsrh_stu();

voidsort。;

structstudent

(

charnum[10];〃学号

charname"0];〃姓名

charcode[IO];//登录密码

charsex[3]:〃性别

chardepart[10];〃系部

charaddr[10];〃家庭住址

char电话

intage;〃年龄

intcicc;〃选修课

intrequ:〃必修课

intsum;〃总成果

}s(u|Nl,ts;

structadmin〃管理员结构体

(

charnum[10];〃管理员编号

charcode[10];〃密码

}adm[N],ta;

structteacher//老师结构体

(

charnum[10];〃老师编号

charcode[10];〃密码

}thr[N],tt;

intID;〃登录号

intij;

inilen=0;〃学生人数

intlcni=0:〃老师人数

intlena=0;//管理员人数

voidsave()〃保存信息

FILE*fp;

if((a=fopen("student.txt","w"))==NULL)〃打开文件

printf("文件打开失败!)

exi((O);

)

for(i=0;i<len;i++)〃写入文件

fprintf(fp,,'%s\t%s\t%s\t%s\t%s',t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu|i].num,stu[i].nanie,stu[i].code,

stu[i].sex,stu[i].depart,stu[i].addr,stu[i].tel,stu[i].age,stu[i].elec,stu[i].requ,stu[i].sum);

1

fclose(fp);〃关闭文件

if((fp=fopen("teacher.txt"Jw"))==NULL)〃打开老师文件

(

printf("文件打开失败!)

cxi((0);

)

for(i=0;ivlent;i++)〃写入文件

(

fprintf(fp,"%s\t%s\t\n",thr[i].num,thr[i].code);

}

fclosc(fp);"关闭文件

if((fp=fopen("admin.txt","w"))=NULL)〃打开管理员文件

(

prinif("文件打开失败!)

exit(O);

)

fbr(i=O;i<lena;i++)〃写入文件

{

fprintf(fp,w%s\t%s\t\n",adm[i].num,adm[i].code);

fclose(fp);〃关闭文件

voidload()〃读取信息

(

FILE*fp;

if((m=fopen("student.txl","r'))==NULL)〃打开文件

{

fopen("student.txt","w");〃创建文件

gotoloopI;

)

i=0;

while(!feof(fp))〃读取文件

fscanf(fp,"%s%s%s%s%s%s%s%d%d%d%d",&stu[i].num,&stu[i].nanic.&stu[i].codc,&stu[i].sex,

&stu[i).deparl,&slii[i].addr,&stu(i].tel,&stu[i].age,&slu|i].elec,&stui].rec|ii.&stu[i].sum);

if(!feof(fp))

i++;

1

len=i;〃数量

fclose(fp);//关闭文件

loop1:if((fp=fopen("teacher.txt1,"r"))==NULL)//打开文件

(

fopcn("tcachcr.ixi"Jw");〃创建文件

gotoloop2;

}

i=0;

while(!feof(fp))//读取文件

(

fscanf(fp,"%s%sM,&thr[i].num,&thr(i].code);

if(!feof(fp))

i++;

)

lent=i;//老师数量

fclose(fp),关闭文件

loop2:if((fp=fopen("admin.〔xt”;T'))==NULL)〃打开文件

(

fdpen("admin.txr',"w");〃创建文件

s〔rcpy(adm[0].num."123")://初始化初始账号

strcpy(adm[0].code,"123");〃初始化初始密码

lena=1;

save()W保存

return;

i=0;

while(!feof(fp))〃读取文件

(

fscanf(fp,"%s%s",&adm[i].num,&adm|i].code);

if(!fcof(fp))

i++;

)

lcna=i;〃管理员数量

fclose(fp),关闭文件

charmenu」ogin()〃登陆菜单

(

charch;

system("cls");〃清屏

printf("\n\n\n\n");

printfC—★-----------------------中国海洋高校青岛学院---------------★—\n");

printf("\n");

printfC,—★........................欢迎运用................★—\n");

printf("\n");

printfC—★------------------------学生信息管理系统-----------------★—\n");

printf("\n\n");

printf("\t\t\t|------------Login---------|\n");

printf("\t\t\t|\ti.帮助【必看】|\n");

printf("\t\t\t|\t2.学生登陆|\n");

printf("\t\t\t|\t3.老师登录|\n");

printf("\t\t\t|\t4.管理员登录|\n");

printf("\t\t\t|\t5.退出|\n");

printf(',\n\nH);

printf("一★..............................................★一\n");

printf("一★..............................................★—\n");

printf("\t\tch(M)se(l-5):");

printf("请选择:");

ch=getchar();

getchar();〃消退缓存中的换行符

returnch;

voidhelp()

]

system("cls");

systeni("COLOR2f);

printfC—★.................—中国海洋高校青岛学院..............★—

printf("一★-----------欢迎运用---------★一\n");

prinlf★................——学生信息管理系统.....................\n");

printf("\n敬重的用户您好巧;

printf("\n

============================================================\n|

I");

printf("\n|1.欢迎进入帮助系统!Ml

I");

printf("\n|★★★★★★★★|\n|

I");

printf('*\n|2.请根据菜单提示进入数字代号!|\川

I");

printf("\n|3.老师和学生信息由管理员写入!|\n|

I");

printf("\n|4.成果为表示尚未录入成果!|\n|

I");

printfC^|5.初始管理员初始登录账号:123密码:123!|\n|

I");

printf("\n|6.感谢您的运用!卜川

I”);

printf("\n|7.老师和学生首次登陆账号加密码由管理员给定|\n|

I");

printf("\n

==========================================================\n");

printf("一★----------------------------------------------★一\n");

printf("—★.................-......................................★一\n");

prinif("请按随意键进入登录界面:

getch();

voidexitl()

systeni("cls");〃清屏

systemC'COLOR3f');

printf("一★------------------中国海洋高校青岛学院----------------★—\n");

printf("\n");

printf("-……[学生信息管理系统】……\n");

printfCXn");

printf("\n");

printf("制作人:【王汝通】

\n");

piiiHI(----------------------------------

================vn..);

printf("•☆☆Bye-Bye^☆・%");

printfCVn");

printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★

\n");

printfCVn");

prin(f("\nH);

printf("

printfCXii");

printf("★★★★★★★★★★★\n");

printf("海★10级\n");

printf("★软\n");

prin(f("大★件\n");

piintf("★工\n");

printf("青★程\n");

prin(f("★一\n");

piintf("院★班\n");

printfC★\n");

prin(f("♦感谢运用♦、「);

exit(O);

charmenu_stu()〃学生菜单

(

charch;

system("cls");〃清屏

printf("\n\n\n\n\n");

printfC,-—————-----———中国?^7羊1§5^^背,岛—--———---------

printf("—★------------------------欢迎运用----------------★-An");

printf("一★-----------------学生信息管理系统-----------------★一n\");

printf("\t\t|------------STUDENT---------|\n");

printf("\t\t|1.个人信息查询|\n");

printf("\t\t|2.修改密码|\n',);

printf("\t\t|3.退出|\ii");

printf("\t\t|.............................|\n");

prinlf("\n\n");

printf("一★----------------------------------------------★一\n");

printfC'—★................................................................★—\n");

printf("\t\t\tchoose(1-3"

ch=getchar();

gcichar。;〃消退回车符

returnch;

voidsrh_gr()〃个人信息查询

{

syslem("cls");〃清屏

printf("我(%s)的信息如下:\n",stu[i].namc);

printf("___________________________________________________________________________________________________________

printf("学号姓名在龄性别系部住址电话选修专业总分

\n\n");

printf("%-8s%-8s%-6d%-6s%-8s%-8s%-8s%-6d%-6d%d\n",stu[ID].num,stu[IDl.name,stu[ID].ag

e,stu[ID].sex,stu[ID].depart,stu[ID].addr,stu[ID].tel,stu[ID].elec,stu[ID].requ,stu[ID].sum);

printfC___________________________________________________________________________________________________________

Jn");

printf("查询完毕,随意键返回...");

gctch();

voidmod_code_stu()//修改密码

(

charcdO[IOl.cdiriOl.cd2[lO]:

system("cls");〃清屏

printf("请输入原密码:");

gcts(cdO);

if(strcmp(cdO,stu[ID].code)==0)//与原密码相同

while(l)

printf(”请输入新密码:");

gets(cdl);

printf(”请再次输入新密码:”);

gets(cd2);

if(strcmp(cd1,cd2)==0)〃两次密码相同

(

strcpy(stu11D].code.cd1);〃修改密码

save。;〃保存

primf("修改胜利,随意键返回。");

gctch();

retum;

)

else〃两次输入密码不同

(

prinif("两次输入密码不同,请重来。\n");

sysicm("cls");〃清屏

else//与原密码不同

(

printf("对不起!您输入的密码错误,随意键返回。

getch();

voidlogin_siu()〃学生登录

(

charnum[10],code[10];

systemC'cls");〃清屏

printf("\n\n\n请输入学号:");

gets(num);

fbr(i=O:i<len;i++)

if(strcmp(num,stu[i].num)=0)〃比较学号是否相同

break;

if(i==len)

prinlf("对不起!没有这个学号。陵意键返回。");

getch();

ID=-1;//-1表示登录失败

return;

I

else

(

printf("请输入密码:");

gcts(code);

while(strcmp(code,stu〔i].code)!=0)〃密码不同

{

printfC,密码错误,请重新输入:”);

gets(code);

)

ID=i;〃记住登录号

voidsludents。//学生系统

{

charch;

login_stu();〃登录

if(ID==-l)

reiurn;〃登录失败,返回

while(1)

(

ch=menu_siu();//学生菜单

switch(ch)

{

casesrh_gr();break;〃个人信息查询

case'2':m(Ml_code_stu();break;//修改密码

case3:return;〃返叵上…级

voidlogin」hr()〃老师登录

charnum[10],code[10];

sys【cm("cls");〃清屏

printf("\n\n\n请输入老师编号:");

gets(num);

for(i=0;i<lcnt;i++)

if(slrcmp(num,lhr[i].num)==O)〃比较编号是否相同

(

break;

1

if(i==lent)

(

printf("对不起!没有这个管理员编号。随意键返回。

getch();

ID=-1;//-1表示登录失败

return;

I

else

(

printf("请输入密码:”);

gcts(codc);

while(strcmp(code,thr[i].code)!=0)〃密码不同

{

printf("密码错误,请重新输入:");

gets(code);

)

ID=i;〃记住登录号

I

)

charmenu_thr()〃老师菜单

(

charch:

systemC'cls");

printf("\n\n\n\n\n");

printf("一★................中国海洋高校青岛学院................★--An");

printfC-★--------------------欢迎运用--------------★---\n");

printfC—★.......................学生信息管理系统.................★—\n");

printf("\t\t|------------TEACHER---------|\n");

printf("\t\t|\tI.密码修改|\n");

printf("\t\t|\t2.学生成果的录入|\n");

printf("\t\t|\l3.学生信息的查询|\n");

printf("\t\t|\t4.学生成果的显示(排序)|\n");

prinlf("\M\t5.退出|\n");

printf("\t\t|-----------------------------|\n");

printf("\n\n");

printfC'—★...............................................................★—\n");

printfC'——★----------------------------------------------------------------★——\n");

printf("\t\t\tchoose(1-5):*');

ch=getchar();〃获得选择

getchar();〃消退回车符

returnch;

/*voidmodefyO〃成果修改

(

charnum[101;

system("cls");〃清屏

prindT请输入要修改成果的学生学号:”);

gcts(num);

for(i=0;i<len;i++)

if(slrcmp(num,stu[i].num)==0)〃学号是否相同

break;〃相同结束杳找

if(i==len)

(

printf("对不起!没有这个学号记录,随意键返回。

getch();

return;

)

prinif("请输入专业课成果:”);

scanf("%d",&stu[i].requ);

prinlfC请输入选修课成果:”);

scanf("%d",&stu[i].elec);

gcichar。;//消退回车

slu[i].sum=stu[i].requ+stu[i].elec;〃总成果

save()M保存

prinif("成果修改完成,随意键返回°");

getch();

voidmod_code_thr()〃密码修改

{

charcd0[10].cdl[10],cd2[10];

system("cls");〃清屏

printf("请输入原密码:");

gets(cdO);

if(strcmp(cdO,thr[ID).codc)==0)//A/原密码相同

(

while(l)

{

printf(”请输入新密码:");

gets(cdl);

printf("请再次输入新密码:");

gcts(cd2);

if(strcmp(cd1,cd2)==0W两次密码相同

{

sircpy(thr[ID].code,cdl);〃修改密码

save();〃保存

printf("修改胜利,随意键返回。");

ge(ch();

return;

}

else〃两次输入密码不同

(

prinif("两次输入密码不同,请重来。\n");

sysicmC'cls"):〃清屏

else〃与原密码不同

printf("对不起!您输入的密码错误,随意键返回。

gctch();

voidinput()〃成果录入

(

charnurn[12];

system("cls");〃清屏

prindT请输入要录入成果的学生学号:”);

gcts(num);

for(i=0;i<len;i++)

if(strcmp(num,stu[i].num)==O)〃学号是否相同

break;〃相同结束查找

if(i==lcn)

{

prindT对不起!没有这个学号记录,随意键返回。

getch();

return:

)

prinlf("请输入专业课成果:");

scanf(',%d",&stu[i].requ);

printf("请输入选修课成果:”);

scanf("%d'\&stu[i].elec);

gctchar。;〃消退回车

slu[i].sum=stu[i].requ+stu[i].elec;〃总成果

save();〃保存

primfC'成果录入完成,随意键返回。”):

getch();

voidlcachcr()〃老师系统

(

charch;

login」hrO;//登录

if(ID==-l)

relum;〃登录失败,返回

whilc(l)

(

ch=menu_thr();〃老师生菜单

switch(ch)

(

caseT:mod_code_thr();break;〃密码修改

case'2':input();break;〃成果录入

case3':srh_stu();break;〃学生信息的查询

case'4':sort();break;〃学生成果的排序

//case5:modefyOW学生成果的修改

case5:retum;〃返回上一级

)

voidk)gin_adm()〃管理员登录

(

charnum[IO],codc[IO];

system("cls");〃清屏

printf("\n\n\n请输入管理员编号:");

gcts(num);

for(i=0;i<lena;i++)

if(strcmp(num,adm[i].num)==O)〃比较编号是否相同

(

break;

I

if(i==lcna)

prinif("对不起!没有这个管理员编号。随意键返回。

getch();

ID=-1;//-1表示登录失败

return;

)

else

(

printfC请输入密码:”);

gets(code);

while(strcmp(code,adm[i|.code)!=0)〃密码不同

(

printf("密码错误,请重新输入:”);

gcts(codc);

)

ID=i;〃记住登录号

)

charmenu_adm()〃管理员菜单

(

charch;

sys(cm("cls");

printf("\n\n\n\n\n");

printf("一★...............中国海洋高校青岛学院---------------★一\n");

printf("—★............................欢迎运用...............★--An");

printf("T--------------------------学生信息管理系统-----------------

printf("\n");

printf("\t\t\t|................COMMANDER............|\n");

1.登陆密码的修改|\n");

printf("\t\t\t|2.显示学生信息|\n");

printf("\N\l|3.账户注册管理|\n");

printf("\t\t\t|4.账户注销管理|\n");

printf("\t\t\t|5.学生信息杳询|\n");

prinifC\N\U6.学生信息修改|\n");

prinlf("\t\t\t|7.退出|\n");

printf("\t\t\t|---------------------------------|\n");

printf("\n\n");

printfC-★----------------------------------------------------------------------★---\n");

printf("一★..............................................★一\n");

prinlf("\t\tchoose(1-6):");

ch=getchar();〃获得选择

gctcharOW消退回车符

returnch;

voidmod_codc_adm()〃修改管理员密码

(

charcd0[10],cdl|l0],cd2(10];

sysicm("cls");〃清屏

printf("请输入原密码:");

gets(cdO);

if(strcmp(cd0,adm[ID].code)=0)〃与原密码相同

(

whilc(l)

(

printf(”请输入新密码:");

gets(cdI);

priniff请再次输入新密码:");

gets(cd2);

if(strcmp(cd1,cd2)==0W两次密码相同

{

strcpy(adm[ID].code,cdI);//修改密码

save();〃保存

prinlf("修改胜利,随意键返回。)

getch();

return;

}

else//两次输入密码不同

(

prinlf("两次输入密码不同,请重来。\n");

syslemCcls”);〃清屏

1

else〃与原密码不同

printf("对不起!您输入的密码错误,随意键返【可。");

getch();

voiddel()〃注销账户

(

charnum[101,ch;

system("cls");〃清屏

printf("请选择要注销账户的类型(1、学生2、老师3、管理员):\n");

while(l)

(

ch=gctchar();

getcharO”消退上一步产生的回车符

if(ch=T||ch=='2'||ch==3)

break;

else

printf("输入错误请重新输入:");

)

if(ch==T)〃注销学生账号

{

prindT请输入耍注销学生的学号:");

gets(num);

for(i=0;i<len;i++)

if(strcmp(num.siu[i].num)==O)〃学号是否相同

break;

if(i==len)

(

printf("对不起!没有这个学号,随意键返回。)

getch();

return;

)

(s=stu[i];

stu[i]=stu[i+l];

slu[i+l]=ls;〃和最终•个同学交换位置

len--W数量减一

save();〃保存

elseif(ch==2)〃注销管老师账号

printf(”请输入要注销老师的编号:”);

gets(num);

for(i=0;i<lent:i++)

if(strcmp(num.thr[i].num)==O)〃编号是否相同

break;

if(i==Ient)

(

printff对不起!没有这个老师编号,随意健返回.”);

getch();

return;

I

tt=thr[i];

thr[i]=thr[i+l];

th巾和最终一个老师交换位置

Icni”;〃数量减一

save。;〃保存

)

elseif(ch==3)〃注销管理员账号

{

prinif(”请输入要注销管理员的编号:”);

gets(num);

fbr(i=O;i<lena;i++)

if(strcmp(num.adm|i].num)==O)//^号是否相同

break:

if(i==lena)

(

printf("对不起!没有这个管理员编号,随意键返回。

getch();

return;

)

ta=adni[i];

adm[i]=adm[i+l];

adm[i+l]=ta;〃和最终•个管理员交换位置

lena--;//数量减一

save();〃保存

save。,保存

printf("注销胜利!随意键返回°");

getch();

voidsort()〃对学生成果的成果排序

]

system("cls");〃清屏

for(j=0;j<len-l;j++)

fbr(i=O;i<len-1-j;i++)

if(stu〔i].sumvstu[i+1].sum)〃冒泡法按成果排序

(

ts=s(u|i];

stu[i]=stu[i+l];

stu[i+l]=ts;

)

printf("按总成果从高完竞排序结果如下:");

printf("_____________________________________________________________________________

prinlf("学号姓名年龄性别系部住址电话选修专业总分

\n\n");

for(i=0;i<len;i++)

printf("%-8s%-8s%-6d%-6s%-8s%-8s%-8s%-6d%-6d%d\n*',stu[i].num,stu[i].name,stu[i].age,stu[i

].sex,stu[i].depart,stu[i].addr,stuj].tel,stu[i].elec,stu[i].requ,stu[i].sunn);

printf("_____________________________________________________________________________

prinlf("排序完毕,随意键返回。");

getch();

voidregisl。〃注册管理

{

charch;

system("cls");〃清屏

prinlff请选择要注册账户的类型(1、学生2、老师3、管理员):\n");

while(l)

(

ch=getchar();

getcharQ,消退上一步产生的回车符

if(ch=='r||ch=='2'||ch==3')

break;

else

prinif("输入错误请重新输入:");

I

if(ch==T)〃学生注册

(

for(i=len;i<N;i++)

(

printfC请输入姓名:");

gets(stu[i].name);

printf("请输入学号:”);

ge(s(stu[il.num);

printf("请输入登录密码:");

gcts(stu[i].codc);

prinif("请选择性别(1.男2.女)

while(l)

{

ch=getchar();

gelcharQW消退上一步产生的回车符

if(ch='r||ch=='2')

break;

else

printff输入错误请重新输入:");

)

if(ch==T)

strcpy(stu[i].sex,"男");

else

strcpy(slu[i].sex,"女)

prinif("请输入系部:”);

gets(stu[i].depail);

printf("请输入家庭住址:"):

gets(stu[i].addr);

prinif("请输入电话:”);

gets(stu(i].tel);

prinlff请输入年龄:");

scanf("%d",&stu[ij.age);

gctchar。;〃消退回车符

stu[i].sum=-l;//-l标记尚未录入成果

stu[i].rcqu=-l;

stu[i].elec="l;

len++;〃数量加1

primff注册完成,是否接着注册下位同学信息?(y/n)

while(1)

{

ch=gctchar();

getcharQ”消退上一步产生的回车符

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

break;

else

primf("输入错误请重新输入:");

}

if(ch=='n'||ch==N)

break;

)

)

if(ch==2)〃注册老师账户

(

fdr(i=lent;i<N;i++)

{

printf("请愉入老师编号:");

gets(thr[i].num);

printf("请输入登录密码:");

gets(thr[i].code);

lent++;

prinif("注册完成,是否接着注册下位老师信息?(y/n)

while(l)

{

ch=getchar():

getchar();//消退上一步产生的回车符

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

break;

else

prinif("输入错误请重新输入:");

if(ch=='n'||ch=='N')

break;

)

)

elseif(ch==3)〃注册管理员账户

(

fbr(i=lena;i<N;i++)

(

printf("请输入管理员编号:");

gets(adm[i].num);

printf("请输入登录密码:");

gets(adm|i].code);

lena++;〃管理员加I

prinlff注册完成,是否接着注册下位管理员信息?(y/n)

while(l)

(

ch=gctchar();

getcharOW消退上一步产生的回车符

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

break;

else

primf("输入错误请重新输入:");

)

if(ch=-n'||ch=-N,)

break;

save();〃保存

voidsrh_stu()//对学生信息的查询

(

charnum[10];

system("cls");〃清屏

prinlff请输入要查询学生的学号:”);

gets(num);

for(i=0;i<len;i++)

if(strcmp(stu[i].num.num)==O)

break;〃学号相同结束查找

if(i==lcn)

(

printff对不起!没有您输入的学号记录。随意键返回。”);

getch();

return;

)

printf("查询结果如下:\n");

printf("_____________________________________________________________________________

prindT学号姓名年龄性别系部住址电话选修专业总分

\n\n");

printf("%-8s%-8s%-6d%-6s%-8s%-8s%

-8s%-6d%-6d%d\n,\stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].depart,stu[i].addr

温馨提示

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

最新文档

评论

0/150

提交评论