学生信息管理c语言程序Word格式文档下载.docx

上传人:b****6 文档编号:16776728 上传时间:2022-11-26 格式:DOCX 页数:18 大小:18.39KB
下载 相关 举报
学生信息管理c语言程序Word格式文档下载.docx_第1页
第1页 / 共18页
学生信息管理c语言程序Word格式文档下载.docx_第2页
第2页 / 共18页
学生信息管理c语言程序Word格式文档下载.docx_第3页
第3页 / 共18页
学生信息管理c语言程序Word格式文档下载.docx_第4页
第4页 / 共18页
学生信息管理c语言程序Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

学生信息管理c语言程序Word格式文档下载.docx

《学生信息管理c语言程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学生信息管理c语言程序Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

学生信息管理c语言程序Word格式文档下载.docx

\n\t\t**************学籍管理系统**************\n"

);

\t\t*1.查询*\n"

\t\t*2.维护*\n"

\t\t*0.退出*\n"

\n\t\t****************************************\n"

请选择(1/2/0):

"

ch=getche();

switch(ch)

case'

1'

:

findFlag=Find();

//调用查询模块

break;

2'

maintainFlag=Maintain();

//调用维护模块

0'

quitFlag=0;

default:

printf("

\n输入错误,请重新选择\n\n\n"

}

}

else

\n初始化学生信息失败!

return1;

\n再见!

请按任意键退出."

getch();

return0;

}

//追加新的学生信息

intAdd(void)

structstudent*p3,*p2;

intaddFlag;

p2=head;

while(p2->

next!

=NULL)

p2=p2->

next;

ch='

y'

;

while(tolower(ch)=='

{

p3=(structstudent*)malloc(LEN);

\n请按如下格式输入:

\n"

学号:

gets(p3->

No);

姓名:

name);

年龄:

age);

性别:

sex);

班级:

className);

家庭地址:

address);

电话:

tel);

p3->

next=NULL;

\n请确认上述输入[y/Y],否则按其他任意键继续"

if(tolower(ch)=='

p2->

next=p3;

p2=p3;

p3=NULL;

\n追加学生信息成功!

......按任意键继续......"

putch('

\n'

addFlag=1;

\n未能追加学生信息!

addFlag=2;

\n是否增加下一个学生信息,如果增加,键入[y/Y];

否则键入[n/N]:

ch=getch();

p2=NULL;

returnaddFlag;

}//Add

//删除学生信息

intDeleteStu(void)

charch,stuNo[10];

intdeleteFlag;

structstudent*p,*q;

\n请输入待删除学生的学号(按回车键确认):

gets(stuNo);

p=head;

q=NULL;

while(p!

if(strcmp(p->

No,stuNo))

q=p;

p=p->

\n您要删除的学生姓名是:

%是\n"

p->

请您再次确认[y/Y]:

q->

next=p->

deleteFlag=3;

deleteFlag=4;

if(p==NULL)

\n不存在您要删除的学生信息,按任意键继续......\n"

deleteFlag=5;

getche();

\n是否继续删除下一个学生信息[y/Y],不删除按其他任意键......\n"

returndeleteFlag;

}//DeleteStu

//修改学生信息

intRepair(void)

intrepairFlag;

do

printf("

\n请输入待修改学生的学号(按回车确认):

gets(stuNo);

p=head;

q=NULL;

while(p!

{

if(strcmp(p->

No,stuNo))

p=p->

elsebreak;

}

while

(1)

printf("

\n您将要修改的学生信息是:

%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n"

No,p->

name,p->

age,p->

sex,p->

className,p->

address,p->

\n请输入您所要修改的信息名称:

1学号2姓名3年龄4性别5班级6家庭住址7电话\n"

请您选择:

ch=getche();

switch(ch)

{

case'

\n请输入新的信息(按回车结束):

gets(p->

repairFlag=6;

break;

3'

4'

5'

6'

7'

\n输入错误,请重新输入:

repairFlag=5;

}

\n是否还要继续修改学生信息[y/n]:

if(tolower(ch)=='

continue;

ch=getche();

}while(tolower(ch)=='

returnrepairFlag;

}

//维护人员权限验证

intVerificationIdentity(void)

charuserID[20],passWord[20];

//存放由键盘输入的用户名和口令

charsuperUID[20],passWD[20];

//存放文件中读取的用户名和口令

inti,legalUser=0;

FILE*fp;

fp=fopen("

superUser.txt"

"

r"

if(fp==NULL)

\n文件不存在!

按任意键继续\n"

getch();

}//superUserFlag=0

do

\n请输入用户名(小于15个字符):

i=0;

while(isalpha(ch=getch())&

&

(i<

15))

putchar(ch);

userID[i]=ch;

i++;

userID[i]='

\0'

\n请输入密码(小于10个字符):

while(isdigit(ch=getch())&

10))

putchar('

*'

passWord[i]=ch;

passWord[i]='

rewind(fp);

while(!

feof(fp))

fscanf(fp,"

%s\t%s\t\n"

superUID,passWD);

//从权限文件中读取用户名和密码

if((strcmp(userID,superUID)==0)&

(strcmp(passWord,passWD)==0))//判断用户名和密码是否与权限规定的相符

{

legalUser=1;

}

if(legalUser)

break;

else

printf("

\n是否重新输入用户名和密码?

[y/n]"

ch=getche();

}while(ch=='

returnlegalUser;

//将修改的学生信息写入文件

intSave(void)

structstudent*p;

if((fp=fopen("

FILE.DAT"

w"

))==NULL)

\n保存文件不正常,请核对文件名\n"

fclose(fp);

return1;

rewind(fp);

=NULL)//将链表中的内容写入文件

fprintf(fp,"

p=p->

return0;

//维护模块

intMaintain(void)

intsuccess,saveFlag,maintainR=4;

success=VerificationIdentity();

if(success==0)

\n你是无权用户!

maintainR=5;

\n\t\t*****************查询*****************\n"

\t\t*1.增加*\n"

\t\t*2.删除*\n"

\t\t*3.修改*\n"

\n请输入选择(1/2/3/0):

maintainR=Add();

break;

maintainR=DeleteStu();

maintainR=Repair();

maintainR=0;

default:

\n输入错误,请重新输入你的选择:

}while(maintainR!

=0);

\n你已经完成了对学生信息的维护,\n"

请你确认是否永久保存你所做的修改(y/n):

if(tolower(ch)=='

saveFlag=Save();

if(saveFlag)maintainR=4;

returnmaintainR;

}//Maintain

//按住址查询

intFindAddrApart(void)

charsaddress[20];

\

structstudent*p;

intflag;

flag=5;

\n请输入你想要查找学生的住址:

gets(saddress);

if(strcmp(saddress,p->

address)==0)

%s\n"

flag=1;

p=p->

returnflag;

}//FindAddrApart

//按姓名查询

intFindName(void)

charsname[20];

\n请输入你想要查找学生的姓名:

gets(sname);

if(strcmp(sname,p->

name)==0)

地址:

}//FindName

//按学号查询

intFindNumber(void)

charsno[10];

structstudent*p;

\n请输入你想要查找学生的学号[000001~000040]:

gets(sno);

if(strcmp(sno,p->

No)==0)

住址:

}//FindNumber

//查询模块

intFind(void)

flag=4;

while(flag)

\t\t*1.学号*\n"

\t\t*2.姓名*\n"

\t\t*3.住址/系别*\n"

请输入选择(1/2/3/0):

switch(ch)

case'

flag=FindNumber();

flag=FindName();

flag=FindAddrApart();

flag=0;

default:

flag=4;

if(flag==5)

你所查找的学生不存在!

elseflag=0;

}//Find

//初始化学生信息。

从文件中读取学生信息,用链接存放

intInitStuInfo(void)

structstudent*p1,*p2;

未能初始化学生信息"

else

p1=(structstudent*)malloc(LEN);

head=p1;

while(!

fscanf(fp,"

p1->

No,p1->

name,p1->

age,p1->

sex,p1->

className,p1->

address,p1->

p2=p1;

p1=(structstudent*)malloc(LEN);

p2->

next=p1;

free(p1);

p1=NULL;

p1=head;

while(p1!

p1=p1->

fclose(fp);

}//InitStuInfo

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

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1