您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > C语言——学生宿舍管理系统
#includestdio.h#includestdlib.h#includestring.h//定义学生结构体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(inum){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确认您已录入学生信息?y/n:);a=getchar();a=getchar();if(a!='n'&&a!='N'){printf(\n请输入你想要查找的学生学号:);scanf(%d,&m);for(i=0;inum;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确认您已录入学生信息?y/n:);a=getchar();a=getchar();if(a!='n'&&a!='N'){printf(\n请输入你想要查找的学生宿舍号:);scanf(%d,&dor);for(i=0;inum;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确认您已录入学生信息?y/n:);a=getchar();a=getchar();if(a!='n'&&a!='N'){printf(\n请输入你想要查找的学生姓名:);scanf(%s,name);for(i=0;inum;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确认您已录入学生信息?y/n:);a=getchar();a=getchar();if(a!='n'&&a!='N'){printf(\n\t请输入你想要查找的系别或专业:);scanf(%s,de);for(i=0;inum;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;inum;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:\\st
本文标题:C语言——学生宿舍管理系统
链接地址:https://www.777doc.com/doc-7028718 .html