C语言实现学生宿舍信息管理系统
#include
#include
#include
#include
#include
#define MAX 1000
int k=0;
//结构体类型
typedef struct
{
char name[20]; //姓名
char sex[5]; //性别
char classs[20]; //班级
int number; //学号
int age; //年龄
int dorm; //宿舍号
int year; //年份
int month; //月份
}students;
//创建学生宿舍信息
int establish(students stu[])
{ int i,x;
for(i=0;i<1000;i++)
{
system("cls");
printf("
录入学生信息 (最多%d个)
",MAX);
printf(" ----------------------------
");
printf("
第%d个学生",k+1);
printf("
请输入学生的学号:");
scanf("%d",&stu[k].number);
printf("
请输入学生的姓名:");
scanf("%s",stu[k].name);
printf("
请输入学生的性别:");
scanf("%s",stu[k].sex);
printf("
请输入学生的年龄:");
scanf("%d",&stu[k].age);
printf("
请输入学生的班级:");
scanf("%s",stu[k].classs);
printf("
请输入学生入住时间(如:2017 9):");
while((scanf("%d %d",&stu[k].year,&stu[k].month))!=EOF)
{
if(stu[k].year<1000||stu[k].year>9999||stu[k].month>12||stu[k].month<1)//限定输入范围
{
printf("对不起,输入错误,请重新输入:");
}
else
break;
}
printf("
请输入学生的宿舍号:");
scanf("%d",&stu[k++].dorm);
printf("
请按 1 键返回主菜单或按 0 键继续创建:");
scanf("%d",&x);
if(x!=0) break;
}
return k;
}
//显示学生宿舍信息
void display(students stu[])
{
int i;
for(i=0;i { printf("学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d 入住时间:%d/%d ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); } printf("按任意键返回主菜单!"); getch(); system("cls"); return ; } //查询学生宿舍信息 void query(students stu[]) { int i,m=0; int number; printf(" 请输入您要查找的学生的学号: "); scanf("%d",&number); printf(" 正在查询,请稍后..... "); Sleep(1000); for(i=0;i { if(number==stu[i].number) { printf(" 学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d 入住时间:%d/%d ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); m=1; } } if(m==0) { printf("对不起,此学生信息不存在! "); } printf("按任意键返回主菜单!"); getch(); system("cls"); return ; } //修改学生信息 void modify(students stu[]) { int number,i,choose,m=0; system("cls"); printf(" 请输入您要修改的学生的学号:"); scanf("%d",&number); printf(" 正在查询,请稍后..... "); Sleep(1000); for(i=0;i { if(number==stu[i].number) { printf(" 学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d 入住时间:%d/%d ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); printf(" ********请输入您想要修改的数据******** "); printf(" 1. 学号 "); printf(" 2. 姓名 "); printf(" 3. 性别 "); printf(" 4. 年龄 "); printf(" 5. 班级 "); printf(" 6. 宿舍号 "); printf(" 7. 入住时间 "); printf(" 请选择(1-7):"); while((scanf("%d",&choose))!=EOF) { if(choose<1||choose>7) { printf("对不起,输入错误,请重新输入:"); } else { switch(choose) { case 1: { printf(" 请输入你改的新学号:"); scanf("%d",&stu[i].number); break; } case 2: { printf(" 请输入你改的新姓名:"); scanf("%s",stu[i].name); break; } case 3: { printf(" 请输入你改的新性别:"); scanf("%s",stu[i].sex); break; } case 4: { printf(" 请输入你改的新年龄:"); scanf("%d",&stu[i].age); break; } case 5: { printf(" 请输入你改的新班级:"); scanf("%s",stu[i].classs); break; } case 6: { printf(" 请输入你改的新宿舍:"); scanf("%d",&stu[i].dorm); break; } case 7: { printf(" 请输入你改的新入住时间:"); scanf("%d %d",&stu[i].year,&stu[i].month); break; } } printf("修改成功!"); Sleep(500); printf(" 学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d 入住时间:%d/%d ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); m=1; break; } } } } if(m==0) { printf("对不起,此学生信息不存在! "); } printf("按任意键返回主菜单!"); getch(); return ; } //删除学生信息 void deletee(students stu[]) { char name1[20]; int i,j,m=0; printf("请输入学生姓名:"); scanf("%s",name1); printf(" "); printf("正在查找是否存在此学生信息..... "); Sleep(1000); for(i=0;i { if(strcmp(stu[i].name,name1)==0) { m=1; printf("已找到此学生信息! 删除中.... "); Sleep(2000); for(j=i;j { strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j].sex,stu[j+1].sex); strcpy(stu[j].classs,stu[j+1].classs); stu[j].age=stu[j+1].age; stu[j].dorm=stu[j+1].dorm; stu[j].number=stu[j+1].number; stu[j].year=stu[j+1].year; stu[j].month=stu[j+1].month; } k--; printf("删除成功! "); } } if(m==0) { printf("此学生信息不存在! "); } printf("按任意键返回主菜单!"); getch(); system("cls"); return ; } //保存学生住宿信息 void preservation(students stu[]) { int i; FILE *fp; if((fp=fopen("学生宿舍信息.txt","w"))==NULL) { printf("未发现学生宿舍信息! "); printf("按任意键返回... "); getch(); system("cls"); return ; } else { for(i=0;i { fprintf(fp," 学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d 入住时间:%d/%d ",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); } fclose(fp); printf("正在保存文件.... "); Sleep(1000); printf("文件保存成功! "); printf("按任意键返回... "); getch(); system("cls"); return ; } } //读取学生住宿信息 void read(students stu[]) { FILE *fp; char ch; if((fp=fopen("学生宿舍信息.txt","r"))==NULL) { printf("文件无法打开! "); exit(0); } printf("正在读入文件... "); Sleep(1000); printf("文件读入成功! "); ch=fgetc(fp); while(!feof(fp)) { putchar(ch); ch=fgetc(fp); } printf(" "); fclose(fp); printf("按任意键返回... "); getch(); system("cls"); return ; } void title() { printf(" ********************************** "); printf(" * * "); printf(" * * "); printf(" * * "); printf(" * 欢迎进入学生宿舍信息管理系统 * "); printf(" * * "); printf(" * * "); printf(" * * "); printf(" ********************************** "); printf(" 按任意键进入系统! "); getch(); } void start() { students stu[20]; int choose,k; while(choose!=0) { system("cls"); printf(" ********学生宿舍信息管理系统******** "); printf(" 1. 创建学生宿舍信息 "); printf(" 2. 显示学生宿舍信息 "); printf(" 3. 查询学生宿舍信息 "); printf(" 4. 修改学生宿舍信息 "); printf(" 5. 删除学生宿舍信息 "); printf(" 6. 保存学生宿舍信息 "); printf(" 7. 读取学生宿舍信息 "); printf(" 0. 退出系统 "); printf(" 请选择(0-7):"); while((scanf("%d",&choose))!=EOF) { if(choose<0||choose>7) { printf("对不起,输入错误,请重新输入:"); } else { switch(choose) { case 1: k=establish(stu); break;//创建学生宿舍信息 case 2: display( stu) ; break;//显示学生宿舍信息 case 3: query(stu); break;//查询学生宿舍信息 case 4: modify(stu); break;//修改学生宿舍信息 case 5: deletee(stu); break;//删除学生宿舍信息 case 6: preservation(stu); break;//保存学生宿舍信息 case 7: read(stu);break;//读取学生宿舍信息 case 0: break; } break; } } } } int main() { title(); start(); return 0; }