#include
#include
#include
#define max 1000
typedef struct{
char no[6];//学号
char name[6];//姓名
char dor[6];//宿舍号
char bed[6];//床位号
char tel[6];//电话号码
}student;
typedef struct{
student *elem0;
int value;
}dor;
typedef struct{
dor *elem;
int length;
}sqlist;
sqlist L;
dor D;
void initsqlist(sqlist &L)
{//初始化
L.elem = new dor[max];
L.length = 0;
}
void initdor(dor &D)
{//初始化
D.elem0 = new student[max];
D.value = 0;
}
void Menu();
void Ador();
void Save();
void Menu()
{//菜单函数
printf("\t\t欢迎使用学生宿舍管理系统\n\n");
printf("\t[1]录用学生信息\t");
}
void Ador()
{//录用宿舍信息
printf("\t\t欢迎使用学生宿舍管理系统\n");
int i=L.length;
int j=0;
printf("\t请录用号宿舍学生信息(一个宿舍只能有6人)\n");
for(j;j<6;j++){
printf("请输入第%d位学生信息\n",j+1);
printf("\t请输入学号:");
scanf("%s",L.elem[i].elem0[j].no);
printf("\t请输入姓名:");
scanf("%s",L.elem[i].elem0[j].name);
printf("\t请输入宿舍号:");
scanf("%s",L.elem[i].elem0[j].dor);
printf("\t请输入床位号:");
scanf("%s",L.elem[i].elem0[j].bed);
printf("\t请输入电话号码:");
scanf("%s",L.elem[i].elem0[j].tel);
printf("\t录用成功!");
}
L.length++;
Save();
system("cls");
}
void Save()
{
FILE *fp;
int i;
int j=L.length;
if((fp=fopen("Student.txt","w"))==NULL)
{
printf("\t不能打开此文件\n");
exit(0);
}
fprintf(fp,"%d号宿舍学生信息\n",L.length);
fprintf(fp,"学号\t姓名\t\t宿舍号\t床位号\t电话号码\n");
for(i=0;i<6;i++)
{
}
fclose(fp);
}
void main()
{
int s;
initsqlist(L);
initdor(D);
while(1){
Menu();
scanf("%d",&s);
switch(s){
case 0:Save();return;
case 1:Ador();break;
}
}
}
输入学号后就结束了
贴出来的代码是残缺的,这样贴代码就不会出错
fprintf(fp,"%s\t%s\t%s\t\t%s\t\t%s\n",L.elem[j].elem0[i].no,
L.elem[j].elem0[i].name,L.elem[j].elem0[i].dor,
L.elem[j].elem0[i].bed,L.elem[j].elem0[i].tel);
这个是for循环里少的东西
修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 1000
typedef struct{
char no[6];//学号
char name[6];//姓名
char dor[6];//宿舍号
char bed[6];//床位号
char tel[6];//电话号码
}student;
typedef struct{
student *elem0;
int value;
}dor;
typedef struct{
dor *elem;
int length;
}sqlist;
sqlist L;
//dor D; 修改
void initsqlist(sqlist &L)
{//初始化
L.elem = new dor[max];
L.length = 0;
}
void initdor(dor &D)
{//初始化
D.elem0 = new student[6]; //D.elem0 = new student[max]; 修改
D.value = 0;
}
void Menu();
void Adddor();
void Save();
void Menu()
{//菜单函数
printf("\t\t======欢迎使用学生宿舍管理系统======\n\n");
printf("\t[1]录用学生信息\t");
printf("\t[2]修改学生信息\n\n");
printf("\t[3]删除学生信息\t");
printf("\t[4]输入学号查询学生信息\n\n");
printf("\t[5]输入姓名查询学生信息\t");
printf("[6]查询学生总人数\n\n");
printf("\t[7]进入报修系统\t");
printf("\t[8]查看需要报修项目\n\n");
printf("\t[9]添加未返校学生\t");
printf("[10]查询未返校学生\n\n");
printf("\t[11]查看所有学生信息\t");
printf("[0]保存并退出系统\n\n");
printf("\t\t请输入您的选择:");
}
void Adddor()
{//录用宿舍信息
printf("\t\t======欢迎使用学生宿舍管理系统======\n");
int i=L.length;
int j=0;
initdor(L.elem[i]); //修改
printf("\t=====请录用%d号宿舍学生信息(一个宿舍只能有6人)=====\n",i+1);
for(j;j<6;j++){
printf("请输入第%d位学生信息\n",j+1);
printf("\t请输入学号:");
scanf("%s",L.elem[i].elem0[j].no);
printf("\t请输入姓名:");
scanf("%s",L.elem[i].elem0[j].name);
printf("\t请输入宿舍号:");
scanf("%s",L.elem[i].elem0[j].dor);
printf("\t请输入床位号:");
scanf("%s",L.elem[i].elem0[j].bed);
printf("\t请输入电话号码:");
scanf("%s",L.elem[i].elem0[j].tel);
printf("\t录用成功!");
}
L.length++;
Save();
system("cls");
}
void Save()
{
FILE *fp;
int i;
int j; //=L.length; 修改
if((fp=fopen("Student.txt","w"))==NULL)
{
printf("\t不能打开此文件\n");
exit(0);
}
for(j=0;j<L.length;j++) //修改
{
fprintf(fp,"==========%d号宿舍学生信息==========\n",j+1); //修改
fprintf(fp,"学号\t姓名\t\t宿舍号\t床位号\t电话号码\n"); //修改
for(i=0;i<6;i++)
{
fprintf(fp,"%s\t%s\t%s\t\t%s\t\t%s\n",L.elem[j].elem0[i].no,\
L.elem[j].elem0[i].name,L.elem[j].elem0[i].dor,\
L.elem[j].elem0[i].bed,L.elem[j].elem0[i].tel);
}
}
fclose(fp);
}
void main()
{
int s;
initsqlist(L);
//initdor(D); 修改
while(1){
Menu();
scanf("%d",&s);
switch(s){
case 0:Save();return;
case 1:Adddor();break;
}
}
}