C语言学生宿舍管理系统.docx
- 文档编号:9757768
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:21
- 大小:22.23KB
C语言学生宿舍管理系统.docx
《C语言学生宿舍管理系统.docx》由会员分享,可在线阅读,更多相关《C语言学生宿舍管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
C语言学生宿舍管理系统
#include
#include
#include
structStudent
{
intdorNo;//宿舍号
charstuName[20];//学生姓名intstuNo;//学生学号charstuSex[10];//性别
chardept[20];//系别charmajor[20];//专业inttel;//xx
}*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欢迎进入宿舍管理系统
printf("
\n");
\t
*********************************************************
printf("\t1.printf("\t2.
printf("\t3.
printf("\t4.
printf("\t5.
printf("\t6.
printf("\t7.
printf("\t8.
printf("\t9.
printf("\t10.
printf("\t0.
printf("
**\n");
录入学生信息")按学号查询\n");
按宿舍号查询");按姓名查询\n");
按系别或专业查询")添加信息\n");修改信息");保存信息\n");读取信息");删除信息\n");退出系统\n");
**\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("输入第%(个学生的宿舍号: ",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("\nxx: "); 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\nxx号码: %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\nxx号码: %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\nxx号码: %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\nxx号码: %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\nxx号码: %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\nxx号码: %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\nxx号码: %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\nxx号码: %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("\nxx: "); 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\nxx号码: %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 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("\nxx: "); scanf("%d",&stu[i].tel); } num=num+no; for(i=0;i { printf("\n宿舍号: %d\n姓名: %s\n学号: %d\n性别: %s\n系别: %s\n 专业: %s\nxx号 码: %d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel); } //write(stu,num); } else { printf("\n\t无法添加学生信息。 。 。 \n"); } printf("\n请按任意键返回"); getchar(); getchar(); } //打印学生信息 voidoutput(structStudent*stu,intnum) { inti; system("cls"); if(stu[num-1].stuNo! =0) 更新学生信息如下: "); { printf("\t\n\n for(i=0;i { printf("\t\n宿舍号: %d\n姓名: %s\n学号: %d\n性别: %s\n系别: %s\n专业: %s\nxx号码: %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没有学生信息."); } } //程序结束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生宿舍 管理 系统