//“班级基本信息管理系统”开发示例 //开发一个针对本班的“班级基本信息管理系统”以实现对本班成员基本信息的自动化管理。 //请选择相应位置的正确内容 #include
#include
#include
#define N 100 //最大人数 struct stu_info //个人信息用结构体组织 { char xh[15]; // char xm[7]; //姓名 char xb[3]; //性别 int nl; //年龄 }; //下面的数组用于在内存中存放所有人员相关信息 //0号元素备用,有效信息存放于1~CurrentCount范围内 [A请选择] int CurrentCount=0; //当前实际人数 void input() //录入功能模块 { char sfjx=1; while(sfjx!=0) { if(CurrentCount==N) { printf("\n人数已达上限,不能添加!!!\n"); sfjx=0; } else { CurrentCount++; printf("\n请输入一个人员的相关信息( 姓名 性别 年龄):"); scanf("%s%s%s%d",stu[CurrentCount].xh,stu[CurrentCount].xm,stu[CurrentCount].xb,&stu[CurrentCount].nl); printf("\n是否继续(0--结束,其它--继续):"); scanf("%d",&sfjx); } } system("pause"); } void save() //永久性存盘功能模块 { FILE *fp; fp=fopen("xjjbxx.txt","w"); if(fp==NULL) printf("\n文件打开不成功,信息无法保存!!!\n"); else { fprintf(fp,"%d",CurrentCount); for(int i=1;i<=CurrentCount;i++) fprintf(fp,"\n%16s%8s%4s%4d",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl); [B请选择] //关闭文件 printf("\n信息已成功保存!!!\n"); } system("pause"); } void read() //读取信息功能模块 { FILE *fp; fp=fopen("xjjbxx.txt","r"); if(fp==NULL) printf("\n文件打开不成功,信息无法读取!!!\n"); else { fscanf(fp,"%d",&CurrentCount); for(int i=1;i<=CurrentCount;i++) { fscanf(fp,"%s%s%s%d",stu[i].xh,stu[i].xm,stu[i].xb,&stu[i].nl); printf(":%s 姓名:%s 性别:%s 年龄:%d\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl); } fclose(fp); printf("\n信息已成功读取!!!\n"); } system("pause"); } void search() //按查找功能模块 { char dcxh[15]; int sfjx=1,i; while(sfjx!=0) { printf("\n请输入一个待查学员的:"); scanf("%s",dcxh); strcpy(stu[0].xh,dcxh); i=CurrentCount; while(strcmp(stu[i].xh,dcxh)!=0) i--; if([C请选择]) printf("查无此人!!!\n"); else { printf("\n此人详细信息如下:\n"); printf(":%s 姓名:%s 性别:%s 年龄:%d\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl); } printf("\n是否继续(0--结束,其它--继续):"); scanf("%d",&sfjx); } system("pause"); } void modify() //按修改人员信息功能模块 { char dcxh[15]; int sfjx=1,i; while(sfjx!=0) { printf("\n请输入一个待修改学员的:"); scanf("%s",dcxh); strcpy(stu[0].xh,dcxh); i=CurrentCount; while([D请选择]) i--; if(i==0) printf("查无此人!!!\n"); else { printf("\n此人详细信息如下:\n"); printf(":%s 姓名:%s 性别:%s 年龄:%d\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl); printf("\n请输入新内容......\n"); printf("\n请输入一个人员的相关信息( 姓名 性别 年龄):"); scanf("%s%s%s%d",stu[i].xh,stu[i].xm,stu[i].xb,&stu[i].nl); printf("\n已成功修改......\n"); system("pause"); } printf("\n是否继续(0--结束,其它--继续):"); scanf("%d",&sfjx); } system("pause"); } void del() //按删除人员信息功能模块 { char dcxh[15]; int sfjx=1,i,j; while(sfjx!=0) { printf("\n请输入一个待删学员的:"); scanf("%s",dcxh); strcpy(stu[0].xh,dcxh); i=CurrentCount; while(strcmp(stu[i].xh,dcxh)!=0) i--; if(i==0) printf("查无此人!!!\n"); else { printf("\n此人详细信息如下:\n"); printf(":%s 姓名:%s 性别:%s 年龄:%d\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl); printf("\n按任意键开始删除......\n"); system("pause"); for(j=i+1;j<=CurrentCount;j++) [E请选择] CurrentCount--; printf("\n已成功删除......\n"); system("pause"); } printf("\n是否继续(0--结束,其它--继续):"); scanf("%d",&sfjx); } system("pause"); } void list() //全部人员信息按顺序列表输出功能模块 { int i,j; for(i=1;i
i;j--) if(strcmp(stu[j].xh,stu[j-1].xh)<0) { stu[0]=stu[j]; [F请选择] stu[j-1]=stu[0]; } printf("\n 班级基本信息表\n"); printf(" 序号 姓名 性别 年龄\n"); for(i=1;i<=CurrentCount;i++) printf("%4d %s%16s%6s%6d\n",i,stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl); system("pause"); } int check() //启动时的用户合法性检测功能模块,合法返回0,否则超过3次返回1 { int count=0,name,pass; while(count<3) { printf("\n请输入用户名及密码:"); scanf("%d%d",&name,&pass); count++; if((name==1)&&(pass==1)) //假定用户名及密码1 count=10; else if(count<2) printf("\n输入用户名或者密码错误,请重输!\n"); } if(count==10) return 0; else return 1; } int main()//主控函数,主控模块 { int xz; printf("\n 欢迎使用班级基本信息管理系统\n\n\n"); if(check()!=0) { printf("\n你无权使用本系统......\n\n"); system("pause"); } else { do { //显示菜单项 printf("\n请选择相应功能:\n"); printf("1-录入\n2-查询\n3-修改\n4-删除\n5-保存\n6-读取\n7-按列表\n0-结束\n请输入选择:"); scanf("%d",&xz);//输入菜单选择 switch(xz) //根据菜单选项调用对应函数 { case 1: input();break; case 2: [G请选择] break; case 3: [H请选择] break; case 4: del();break; case 5: save();break; case 6: read();break; case 7: list();break; case 0: printf("\n\n谢谢使用本系统!\n\n"); system("pause"); break; default: printf("\n无此功能,请重新选择......\n"); system("pause"); } }while(xz!=0); } return 0; }