C语言学生宿舍管理系统.docx

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

C语言学生宿舍管理系统.docx

《C语言学生宿舍管理系统.docx》由会员分享,可在线阅读,更多相关《C语言学生宿舍管理系统.docx(22页珍藏版)》请在冰点文库上搜索。

C语言学生宿舍管理系统.docx

C语言学生宿舍管理系统

#include

#include

#include

//定义学生结构体

structStudent

{

intdorNo;//宿舍号

charstuName[20];//学生姓名

intstuNo;//学生学号

charstuSex[10];//性别

chardept[20];//系别

charmajor[20];//专业

inttel;//电话

}*stu;

//函数指针

void(*p)(structStudent*,int);

//录入学生信息

voidinsert(structStudent*,int);

//按学号查找

voidnoSeek(structStudent*,int);

//函数功能:

打印信息

voidoutput(structStudent*,int);

/*函数功能:

将数据写入文件*/

voidwrite(structStudent*,int);

/*函数功能:

读取文件数据*/

voidread(structStudent*,int);

//按宿舍查找

voiddSeek(structStudent*,int);

//按姓名查找

voidnaSeek(structStudent*,int);

//按系别查找

voiddeSeek(structStudent*,int);

//删除学生信息

voiddel(structStudent*,int);

//修改学生信息

voidmodify(structStudent*,int);

//增加学生信息

voidadd(structStudent*,int);

//全局变量来记录存储学生的人数

intnum=0;

//主函数

intmain()

{

charch[10];

printf("\t--------欢迎进入宿舍管理系统--------\n");

printf("请输入你想存储的学生人数:

");

scanf("%d",&num);

system("cls");

//申请动态存储空间

stu=(structStudent*)malloc((sizeof(structStudent))*num);

while

(1){

system("cls");

printf("\n");

printf("\t--------欢迎进入宿舍管理系统--------\n");

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

printf("\t1.录入学生信息");

printf("\t2.按学号查询\n");

printf("\t3.按宿舍号查询");

printf("\t4.按姓名查询\n");

printf("\t5.按系别或专业查询");

printf("\t6.添加信息\n");

printf("\t7.修改信息");

printf("\t8.保存信息\n");

printf("\t9.读取信息");

printf("\t10.删除信息\n");

printf("\t0.退出系统\n");

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

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

printf("\t请选择你想实现的功能:

");

scanf("%s",&ch);

//用函数指针指向各函数

if(strcmp(ch,"1")==0)

{

p=insert;

(*p)(stu,num);

}

elseif(strcmp(ch,"2")==0)

{

p=noSeek;

(*p)(stu,num);

}

elseif(strcmp(ch,"3")==0)

{

p=dSeek;

(*p)(stu,num);

}

elseif(strcmp(ch,"4")==0)

{

p=naSeek;

(*p)(stu,num);

}

elseif(strcmp(ch,"5")==0)

{

p=deSeek;

(*p)(stu,num);

}

elseif(strcmp(ch,"6")==0)

{

p=add;

(*p)(stu,num);

}

elseif(strcmp(ch,"7")==0)

{

p=modify;

(*p)(stu,num);

}

elseif(strcmp(ch,"8")==0)

{

p=write;

(*p)(stu,num);

}

elseif(strcmp(ch,"9")==0)

{

p=read;

(*p)(stu,num);

}

elseif(strcmp(ch,"10")==0)

{

p=del;

(*p)(stu,num);

}

elseif(strcmp(ch,"0")==0)

{

exit(0);

}

//write(stu,num);

//read(stu,num);

}

return0;

}

//输入学生相关信息

voidinsert(structStudent*stu,intnum)

{

inti=0;

charch;

system("cls");

do{

if(i

{

printf("输入第%d个学生的宿舍号:

",i+1);

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

printf("\n姓名:

");

scanf("%s",&stu[i].stuName);

printf("\n学号:

");

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

printf("\n性别:

");

scanf("%s",&stu[i].stuSex);

printf("\n系别:

");

scanf("%s",&stu[i].dept);

printf("\n专业:

");

scanf("%s",&stu[i].major);

printf("\n电话:

");

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

i++;

}

else

{

printf("\n\t人数已满无法继续输入");

printf("\n是退出该功能输入?

(Y/N):

");

ch=getchar();

ch=getchar();

}

}while(ch!

='y'&&ch!

='Y');

write(stu,num);

system("cls");

}

//按学号查找

voidnoSeek(structStudent*stu,intnum)

{

inti;

intm;

charch;

chara;

system("cls");

printf("\n确认您已录入学生信息?

:

");

a=getchar();

a=getchar();

if(a!

='n'&&a!

='N')

{

printf("\n请输入你想要查找的学生学号:

");

scanf("%d",&m);

for(i=0;i

{

if(m==stu[i].stuNo)

{

printf("\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);

}

}

}

else

{

printf("\n\t没有你要查找的学生信息。

\n");

}

printf("\n请按任意键返回.......");

getchar();

getchar();

}

//按宿舍查找

voiddSeek(structStudent*stu,intnum)

{

inti;

intdor;

charch,a;

system("cls");

printf("\n确认您已录入学生信息?

:

");

a=getchar();

a=getchar();

if(a!

='n'&&a!

='N')

{

printf("\n请输入你想要查找的学生宿舍号:

");

scanf("%d",&dor);

for(i=0;i

{

if(dor==stu[i].dorNo)

{

printf("\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);

}

}

}

else

{

printf("\t没找到你要的学生信息。

\n\n");

}

printf("\n请按任意键返回.......");

getchar();

getchar();

}

//按姓名查询

voidnaSeek(structStudent*stu,intnum)

{

inti;

charname[20];

charch,a;

system("cls");

printf("\n确认您已录入学生信息?

:

");

a=getchar();

a=getchar();

if(a!

='n'&&a!

='N')

{

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

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(name,stu[i].stuName)==0)

{

printf("\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);

}

}

}

else

{

printf("\n\n\t没找到你要的学生信息。

\n\n");

}

printf("\n请按任意键返回.......");

getchar();

getchar();

}

//按系别或专业查询

voiddeSeek(structStudent*stu,intnum)

{

inti;

charde[20];

charch,a;

system("cls");

printf("\n确认您已录入学生信息?

:

");

a=getchar();

a=getchar();

if(a!

='n'&&a!

='N')

{

printf("\n\t请输入你想要查找的系别或专业:

");

scanf("%s",de);

for(i=0;i

{

if(strcmp(de,stu[i].dept)==0)

{

printf("\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);

}

}

}

else

{

printf("\n\n\t没找到你要的学生信息。

\n");

}

printf("\n请按任意键返回.......");

getchar();

getchar();

}

 

/*函数功能:

将数据写入文件*/

voidwrite(structStudent*stu,intnum)

{

inti;//控制循环

FILE*fp;//定义文件指针

if(stu[num-1].stuNo!

=0)

{

if((fp=fopen("E:

\\student.txt","wt"))==NULL)//如果文件没有打开,提示错误并退出

{

printf("\n\t文件没有打开!

程序结束!

");

getchar();//等待用户观察

exit(0);//结束整个程序

}

else

{

for(i=0;i

{

fprintf(fp,"\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);

}

getchar();

printf("\n\t已将学生信息保存在了D盘根目录下的student.txt文件中。

\n");

}

}

else

{

printf("\n\t没有学生信息。

");

}

getchar();

fclose(fp);

}

/*函数功能:

读取文件数据*/

voidread(structStudent*stu,intnum)

{

inti;

FILE*fp;

if(stu[num-1].stuNo!

=0)

{

if((fp=fopen("E:

\\student.txt","rt"))==NULL)

{

printf("数据读取失败!

\n");

exit(0);

}

else

{

for(i=0;i

{

//从文件中读出数据

fscanf(fp,"\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",&stu[i].dorNo,&stu[i].stuName,&stu[i].stuNo,&stu[i].stuSex,&stu[i].dept,&stu[i].major,&stu[i].tel);

printf("\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);

}

}

}

else

{

printf("\n\t没有学生信息。

");

}

getchar();

getchar();

fclose(fp);

}

//修改信息

voidmodify(structStudent*stu,intnum)

{

intm;

inti;

charch;

system("cls");

printf("请输入你想修改学生的学号:

");

scanf("%d",&m);

for(i=0;i

{

if(m==stu[i].stuNo)

{

printf("\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);

printf("\n您确认修改该学生信息吗?

:

");

ch=getchar();

ch=getchar();

if(ch!

='N'&&ch!

='n')

{

printf("\n输入该学生的宿舍号:

");

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

printf("\n姓名:

");

scanf("%s",&stu[i].stuName);

printf("\n学号:

");

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

printf("\n性别:

");

scanf("%s",&stu[i].stuSex);

printf("\n系别:

");

scanf("%s",&stu[i].dept);

printf("\n专业:

");

scanf("%s",&stu[i].major);

printf("\n电话:

");

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

write(stu,num);

system("cls");

printf("\n\t修改成功!

\n\n");

output(stu,num);

}

else

{

printf("\n\t无法修改信息!

\n");

//break;

}

}

else

{

continue;

}

}

printf("\n请按任意键返回.......");

getchar();

getchar();

}

//删除相关学生信息

voiddel(structStudent*stu,intnum)

{

intno;

inti;

charch;

intj;

printf("\n请输入您想删除的学生学号:

");

scanf("%d",&no);

for(i=0;i

{

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

{

printf("\n宿舍号:

%d\n姓名:

%s\n学号:

%d\n性别:

%s\n系别:

%s\n专业:

%s\n电话号码:

%d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);

printf("\n您确认删除该学生信息?

:

");

ch=getchar();

ch=getchar();

if(ch!

='n'&&ch!

='N')//实现删除学生信息

{

for(j=i;j<=num-1;j++)

{

*(stu+j)=*(stu+j+1);

}

num--;

printf("\n\t已成功删除该学生信息!

\n");

write(stu,num);

output(stu,num);

}

else

{

printf("\n\t无法删除!

\n");

}

}

else

{

continue;

}

}

printf("\n请按任意键返回.......");

getchar();

getchar();

 

}

//添加学生信息

voidadd(structStudent*stu,intnum)

{

intno;

inti;

printf("\n\t请输入你想添加的学生人数:

");

scanf("%d",&no);

if((stu[num-1].stuNo)!

=0)

{

stu=(structStudent*)realloc(stu,num+no);

for(i=num;i

{

*(stu+num+no)=*(stu+num);

printf("\n输入第%d个学生的宿舍号:

",i+1);

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

printf("\n姓名:

");

scanf("%s",&stu[i].stuName);

printf("\n学号:

");

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

printf("\n性别:

");

scanf("%s",&stu[i].stuSex);

printf("\n系别:

");

scanf("%s",&stu[i].dept);

printf("\n专业:

");

scanf("%s",&stu[i].major);

printf("\n电话:

");

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

}

num=num+no;

for(i=0;i

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

当前位置:首页 > 解决方案 > 学习计划

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

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