1、C+宿舍信息管理系统源代码宿舍信息管理系统代码如下:#includestdio.h#includestdlib.h#includestring.h#include conio.hstruct recordchar numb20; /学号char name20; /姓名char room10; /宿舍号student500;int num=0;FILE *fp;int menu(); /*菜单主界面*/int adduser(); /*输入记录*/int list(); /*显示记录*/int searchbyname(); /*按姓名查找*/int searchbyroom(); /*按宿舍号
2、查找*/int searchbynumb(); /*按学号查找*/int add(); /*添加记录*/int change(); /*删除学生信息*/int dele(); /*删除记录*/int save(); /*保存记录*/int exit(); /*结束*/menu() /*主界面*/ int i; printf(*_* press any key enter menu! *_* n); getch(); system(cls); /*清屏*/ printf(tt*MENU*nn); printf(tt 0. 输入记录n); printf(tt 1. 显示记录 n); printf(
3、tt 2. 按姓名查找n); printf(tt 3. 按姓名查找n); printf(tt 4. 按学号查找n); printf(tt 5. 添加记录 n); printf(tt 6. 修改学生信息n); printf(tt 7. 删除记录n); printf(tt 8. 记录保存文件n); printf(tt 9. Quitn); printf(tt* *n); printf(n Enter you choice(09):); scanf(%d,&i); return i; void main() for(;) switch(menu() case 0:adduser();break; /
4、*调用输入函数*/ case 1:list();break; /*调用显示记录函数*/ case 2:searchbyname();break; /*调用按姓名查找函数*/ case 3:searchbyname();break; /*调用按宿舍号查找函数*/ case 4:searchbynumb();break; /*调用按学号查找函数*/ case 5:add();break; /*调用添加函数*/ case 6:change();break; /*调用修改学生信息函数*/ case 7:dele();break; /*调用删除函数*/ case 8:save();break; /*调用
5、保存函数*/ case 9:exit(0); adduser() /*输入记录*/ printf(ntt* 请输入用户信息 *n); printf(ntt输入学号:); scanf(%s,studentnum.numb); printf(ntt输入姓名:); scanf(%s,studentnum.name); printf(ntt输入宿舍号:); scanf(%s,studentnum.room); num+; printf(ntt是否继续添加?(Y/N):);if (getch()=y) adduser();return(0);list() /*显示记录*/ int i; if(num!=
6、0) printf(ntt* 以下为宿舍信息管理系统所有信息*); for (i=0;inum;i+) printf(ntt学号: %s,studenti.numb); printf(ntt姓名: %s,studenti.name); printf(ntt宿舍号: %s,studenti.room); printf(tt); if (i+1num) printf(ntt_); printf(ntt*); else printf(ntt宿舍信息管理系统中无任何纪录); printf(ntt按任意键返回主菜单:); getch(); return(0);searchbyname() /*按姓名查找
7、*/ int mark=0; int i; int a=0; printf(ntt* 按姓名查找 *); char name20; printf(ntt请输入姓名:); scanf(%s,name); for(i=a;inum;i+) if (strcmp(studenti.name,name)=0) printf(ntt* 以下是您查找的用户信息 *); printf(ntt学号: %s,studenti.numb); printf(ntt姓名: %s,studenti.name); printf(ntt宿舍号: %s,studenti.room ); printf(ntt*); mark+
8、; getch(); return(0); if (mark=0) printf(ntt没有该学生的信息); printf(ntt按任意键返回主菜单); getch(); return(0);return(0);searchbyroom() /*按学号查找*/int mark=0;int i;int a=0;printf(ntt* 按宿舍号查找 *);char numb10;printf(ntt请输入宿舍号:);scanf(%s,room);for(i=0;inum;i+) if (strcmp(studenti.room,room)=0) printf(ntt* 以下是您查找的用户信息 *)
9、; printf(ntt学号: %s,studenti.numb); printf(ntt姓名: %s,studenti.name); printf(ntt宿舍号: %s,studenti.room); printf(ntt*); printf(ntt按任意键返回主菜单:); mark+; if (i+1)num) printf(ntt是否继续查找相同宿舍号的用户信息:(y/n); if (getch()=y) a=i; continue; else return(0); else printf(ntt按任意键返回主菜单); getch(); return(0); if(mark!=0) pr
10、intf(ntt没有相同宿舍号的用户纪录); printf(ntt按任意键返回主菜单); getch(); return(0); return(0);searchbynumb() /*按学号查找*/int mark=0;int i;int a=0;printf(ntt* 按学号查找 *);char numb10;printf(ntt请输入学号:);scanf(%s,numb);for(i=0;inum;i+) if (strcmp(studenti.numb,numb)=0) printf(ntt* 以下是您查找的学生信息 *); printf(ntt学号: %s,studenti.numb)
11、; printf(ntt姓名: %s,studenti.name); printf(ntt宿舍号: %s,studenti.room); printf(ntt*); printf(ntt按任意键返回主菜单:); mark+; getch(); return(0); if (mark=0) printf(ntt没有该学生的信息); printf(ntt按任意键返回主菜单); getch(); return(0);return(0);add() /*添加记录*/ int i; if (fp=fopen(student.bin,wb)=NULL) /*判断文件是否打开*/ printf(ntt文件打
12、开失败); for (i=0;inum;i+) if (fwrite(&studenti,sizeof(struct record),1,fp)!=1)/*fwrite()(数据块的输出 )将以数组studenti为首地址的一个sizeof(struct record)的大小的数据块写入fp指向的文件中*/ printf(ntt写入文件错误!n); printf(ntt* 请输入用户信息 *n); printf(ntt输入学号:); scanf(%s,studentnum.numb); printf(ntt输入姓名:); scanf(%s,studentnum.name); printf(nt
13、t输入性别:); scanf(%s,studentnum.sex); num+; printf(ntt是否继续添加?(Y/N):); if (getch()=y) adduser(); return(0); fclose(fp); /*关闭fp所指向的文件*/ printf(ntt宿舍信息管理系统文件已保存); printf(ntt按任意键退出程序ntt); exit(0); return(0);change() /*按学号修改*/int i,j; char numb;scanf(%s,numb);for(i=0;inum;i+)if(strcmp(studenti.numb,numb)=0)
14、printf(ntt* 以下是您查找的用户信息 *); printf(ntt学号: %s,studenti.numb); printf(ntt姓名: %s,studenti.name); printf(ntt宿舍号: %s,studenti.room); printf(ntt*); printf(ntt是否要修改?(Y/N)n);if(getchar()=Y|getchar()=y)printf(ntt*请输入第%d位的学生信息*,i); printf(ntt输入学号:); scanf(%s,studentnum.numb); printf(ntt输入姓名:); scanf(%s,studen
15、tnum.name); printf(ntt输入宿舍号:); scanf(%s,studentnum.room); printf(ntt*);studenti=studenti;printf(ntt修改成功);printf(ntt是否继续修改?(y/n);if (getch()=y | getch()=Y)plus();return;elseprintf(ntt对不起,文件中无任何纪录);printf(ntt按任意键返回主菜单);getchar();return;void deletebynumb() /*按学号删除*/int i,j; int deletemark=0; /*将删除联系人的数
16、目初始化为0*/char numb20; printf(ntt请输入要删除学生学号:); scanf(%s,numb); if(num=0) /*num为0说明宿舍信息管理系统中还没有输入联系人*/ printf(ntt对不起,文件中无任何纪录); printf(ntt按任意键返回主菜单); getch(); return; for (i=0;inum;i+) if (strcmp(studenti.numb,numb)=0) printf(ntt以下是您要删除的学生纪录:); printf(ntt学号: %s,studenti.numb); printf(ntt姓名: %s,studenti
17、.name); printf(ntt性别: %s,studenti.room); printf(tt); printf(ntt是否删除?(y/n); if (getch()=y) for (j=i;jnum-1;j+) studentj=studentj+1; /*将要删除的学生的后一位赋值给要删除的学生*/ num-; /*宿舍信息管理系统中的学生数目减少1*/ deletemark+; /*删除的联系人增加1*/ printf(ntt删除成功); printf(ntt是否继续删除?(y/n); if (getch()=y) /*输入y值,继续调用按学号函数删除*/ deletebynumb
18、(); return; else /*否则,返回值*/ return; continue; /*跳出for循环,立即转向计算表达式3,对循环控制变量增量或减量*/ if (deletemark=0) /*若删除的学生数目为0,则说明没有删除学生信息管理系统里的学生*/ printf(ntt没有该学生的纪录); printf(ntt是否继续删除?(y/n); if (getch()=y) /*输入y值,继续调用按学号函数删除*/ deletebynumb(); return; void deletebyname() /*按姓名删除*/int a=0;int findmark=0;int i,j;
19、int deletemark=0;char name20; printf(ntt请输入要删除学生姓名:); scanf(%s,name);for (i=a;inum;i+) if (strcmp(studenti.name,name)=0) printf(ntt以下是您要删除的学生纪录:); findmark+; printf(ntt_); printf(ntt学号: %s,studenti.numb); printf(ntt姓名: %s,studenti.name); printf(ntt性别: %s,studenti.sex); printf(ntt出生日期: %s,studenti.bi
20、rth); printf(ntt学位:%s,studenti.degr); printf(ntt职务:%s,studenti.duty); printf(ntt电话号码:%s,studenti.tel); printf(ntt_); printf(ntt是否删除?(y/n); if (getchar()=y) for (j=i;jnum-1;j+) studentj=studentj+1; num-; deletemark+; printf(ntt删除成功); printf(ntt是否继续删除?(y/n); if (getch()=y) /*输入y值,继续调用按姓名函数删除*/ deleteb
21、yname(); return; else /*否则,返回值*/ return; continue; /*跳出for循环,立即转向计算表达式3,对循环控制变量增量或减量*/ if (deletemark=0) /*若删除的学生数目为0,则说明没有删除宿舍信息管理系统里的学生*/ printf(ntt没有该学生的纪录); printf(ntt是否继续删除?(y/n); if (getch()=y) /*输入y值,继续调用按姓名函数删除*/ deletebyname(); return; dele()char choic; printf(ntt1-按学号删除 2-按姓名删除); printf(nt
22、t请选择:); choic=getch();switch (choic) case 1:deletebynumb();break; case 2:deletebyname();break; return(0);save() /*保存记录*/ int j; FILE *fp; fp=fopen(student.txt,w); /*以只写的方式打开文件*/ if (fp=NULL) /*判断文件是否存在*/ printf(cant open the file.); /*不能打开文件*/ if(num!=0) for(j=0;jnum;j+) fwrite(student,sizeof(student),1,fp); printf(保存成功!); fclose(fp); /*关闭fp所指向的文件*/ return(0); 如有侵权请联系告知删除,感谢你们的配合!如有侵权请联系告知删除,感谢你们的配合!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1