69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int n,i;
struct xuesheng
{
char xuehao[20];
char xingming[20];
int sushehao;
int chuanghao;
char xingbie[5];
int nianling;
char zhuanye[20];
}st[39]; /*学生信息结构体定义*/
void open()
{
FILE *fp;
if((fp=fopen("F:\\wen.txt","rb"))==NULL)
//if((fp=fopen("F://wen.txt","rb"))==NULL)
{
exit(1);
}
fscanf(fp,"%d",&n);
for(i=0;i<n;i++)
fread(&st[i],sizeof(struct xuesheng),1,fp);
fclose(fp);
}
void save(int n)
{
FILE*fp;
if((fp=fopen("F://wen.txt","wb"))==NULL)
{
exit(1);
}
fprintf(fp,"%d",n);
for(i=0;i<n;i++)
fwrite(&st[i],sizeof(struct xuesheng),1,fp);
fclose(fp);
}
void tianjia() /*录入学生信息模块*/
{
int ssh,ch;
int j,n=0;
char xz; /*选择系数定义*/
open();
do
{
printf("请输入学生信息:\n");
printf("请输入学生学号:");
scanf("%s",st[i].xuehao);
printf("\n请输入学生姓名:");
scanf("%s",st[i].xingming);
printf("\n请输入学生宿舍号:");
scanf("%d",&ssh);
st[i].sushehao=ssh;
printf("\n请输入新学生床号:");
scanf("%d",&ch);
st[i].chuanghao=ch;
printf("\n请输入学生性别:");
scanf("%s",st[i].xingbie);
printf("\n请输入学生年龄:");
scanf("%d",&st[i].nianling);
printf("\n请输入学生专业:");
scanf("%s",st[i].zhuanye); /*学生信息的输入*/
n++;
printf("\n是否继续1/0?"); /*判断是否继续输入*/
scanf("%d",&xz);
}while(xz);
save(n); /*返回主菜单*/
}
void shanchu() /*删除学生信息模块*/
{
int xz1,xz2,xz,xz3; /*定义选择系数*/
char xh[20];
char xm[20]; /*定义学号、姓名变量*/
int j=0;
open();
printf("\n请选择按照姓名或学号查找需删除学生;1、姓名;2、学号:");
if(xz)
{
printf("\n请输入要删除学生姓名:\n");
scanf("%s",xm); /*输入所查询学生姓名*/
for(i=0;i<n;i++)
{
if(strcmp(st[i].xingming,xm)==0)
j=1; /*逐个查询姓名*/
}
if(j)
{
printf("该学生信息如下:");
printf("学号------姓名----宿舍号--床号--性别--年龄--专业---\n");
printf("-----------------------------------------------------\n");
printf("%-8s %-6s %-4d %-6d %-4s %-4d %-20s\n",st[i].xuehao,st[i].xingming,
st[i].sushehao,st[i].chuanghao,st[i].xingbie,st[i].nianling,st[i].zhuanye);
} /*要删除学生信息显示*/
printf("\n是否删除该学生信息?1/0");
scanf("%d",&xz1); /*判断是否确定删除学生信息*/
if(xz1)
{
for(;i<n;i++)
{
strcpy(st[i].xuehao,st[i+1].xuehao);
strcpy(st[i].xingming,st[i+1].xingming);
st[i].sushehao=st[i+1].sushehao;
st[i].chuanghao=st[i+1].chuanghao;
strcpy(st[i].xingbie,st[i+1].xingbie);
st[i].nianling=st[i+1].nianling;
strcpy(st[i].zhuanye,st[i+1].zhuanye);
}
n--;
} /*删除学生信息*/
else
{
printf("\n该学生信息不存在");
shanchu();
} /*要删除学生信息不存在,重新输入*/
}
else
{
printf("\n请输入要删除学生学号:"); /*按照学号查找删除学生*/
scanf("%s",&xh);
for(i=0;i<n;i++)
{
if(strcmp(xh,st[i].xuehao)==0)j=1;
} /*判断学号是否存在*/
if(j)
{
{
printf("该学生信息如下:");
printf("学号------姓名----宿舍号--床号--性别--年龄--专业---\n");
printf("-----------------------------------------------------\n");
printf("%-8s %-6s %-4d %-6d %-4s %-4d %-20s\n",st[i].xuehao,st[i].xingming,
st[i].sushehao,st[i].chuanghao,st[i].xingbie,st[i].nianling,st[i].zhuanye);
}
printf("\n是否删除该学生信息?1/0");
scanf("%d",&xz2);
if(xz2)
{
for(;i<n;i++)
{
strcpy(st[i].xuehao,st[i+1].xuehao);
strcpy(st[i].xingming,st[i+1].xingming);
st[i].sushehao=st[i+1].sushehao;
st[i].chuanghao=st[i+1].chuanghao;
strcpy(st[i].xingbie,st[i+1].xingbie);
st[i].nianling=st[i+1].nianling;
strcpy(st[i].zhuanye,st[i+1].zhuanye);
}
n--; /*删除学生信息*/
}
else
{
printf("\n该学生信息不存在");
shanchu();
}
}
}
printf("\n是否继续?1/0");
scanf("%d",&xz3);
if(xz3)shanchu();
save(n); /*判断是否继续删除,返回主菜单*/
}
void chaxun() /*查询学生信息模块*/
{
int xz1;
int xz;
char xh[20];
char xm[20];
int j=0;
open();
printf("\n请选择按姓名或学号查询?1:姓名;2:学号\n");
scanf("%d",&xz1);
if(xz1)
{
printf("\n请输入要查询学生姓名:\n"); /*选择姓名查找*/
scanf("%s",xm);
for(i=0;i<n;i++)
{
if(strcmp(st[i].xingming,xm)==0)j=1;
}
if(j)
{
printf("该学生信息如下:");
printf("学号------姓名----宿舍号--床号--性别--年龄--专业---\n");
printf("-----------------------------------------------------\n");
printf("%-8s %-6s %-4d %-6d %-4s %-4d %-20s\n",st[i].xuehao,st[i].xingming,
st[i].sushehao,st[i].chuanghao,st[i].xingbie,st[i].nianling,st[i].zhuanye);
} /*学生信息显示*/
else
{
printf("\n该生信息不存在\n");
chaxun(); /*返回查询函数,重新输入查找*/
}
}
else
{
printf("请输入要查询学生学号:");
scanf("%s",xh);
for(i=0;i<n;i++)
{
if(strcmp(xh,st[i].xuehao))j=1;
} /*学号查询*/
if(j)
{
printf("该学生信息如下:");
printf("学号------姓名----宿舍号--床号--性别--年龄--专业---\n");
printf("-----------------------------------------------------\n");
printf("%-8s %-6s %-4d %-6d %-4s %-4d %-20s\n",st[i].xuehao,st[i].xingming,
st[i].sushehao,st[i].chuanghao,st[i].xingbie,st[i].nianling,st[i].zhuanye);
}
else
{
printf("\n该生信息不存在\n");
chaxun();
}
}
printf("\n是否继续?1/0");
scanf("%d",&xz);
if(xz)chaxun(); /*判断是否继续,返回主菜单*/
}
void caidan()
{
printf("====================欢迎使用学生宿舍管理系统===================");
printf("\n 1:添加学生信息\n");
printf(" 2:删除学生信息\n");
printf(" 3:查询学生信息\n");
printf(" 4:修改学生信息\n");
printf(" 5:退出系统\n");
}
void xiugai(void)
{
// 增加修改的实现
}
void main()
{
int xuanze;
next:
caidan();
printf("请输入需要进行的操作:\n");
scanf("%d",&xuanze);
switch(xuanze)
{
case 1:tianjia();break;
case 2:shanchu();break;
case 3:chaxun();break;
case 4:xiugai();break;
case 5:exit(0);
}
goto next;
}
lz要自己添家xiugai()函数的实现.
另外函数open(),save()两个函数指定路径时有问题.
if((fp=fopen("F://wen.txt","rb"))==NULL)
-->
if((fp=fopen("F:\\wen.txt","rb"))==NULL)
另外,lz应该使用更良好的命名风格.
个人意见,仅供参考.[code=c]#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int n,i;
struct xuesheng
{
char xuehao[20];
char xingming[20];
int sushehao;
int chuanghao;
char xingbie[5];
int nianling;
char zhuanye[20];
}st[39]; /*学生信息结构体定义*/
void open()
{
FILE *fp;
if((fp=fopen("F://wen.txt","rb"))==NULL)
{
exit(1);
}
fscanf(fp,"%d",&n);
for(i=0;i<n;i++)
fread(&st[i],sizeof(struct xuesheng),1,fp);
fclose(fp);
}
void save(int n)
{
FILE*fp;
if((fp=fopen("F://wen.txt","wb"))==NULL)
{
exit(1);
}
fprintf(fp,"%d",n);
for(i=0;i<n;i++)
fwrite(&st[i],sizeof(struct xuesheng),1,fp);
fclose(fp);
}
void tianjia() /*录入学生信息模块*/
{
int ssh,ch;
int j,n=0;
char xz; /*选择系数定义*/
open();
do
{
printf("请输入学生信息:\n");
printf("请输入学生学号:");
scanf("%s",st[i].xuehao);
printf("\n请输入学生姓名:");
scanf("%s",st[i].xingming);
printf("\n请输入学生宿舍号:");
scanf("%d",&ssh);
st[i].sushehao=ssh;
printf("\n请输入新学生床号:");
scanf("%d",&ch);
st[i].chuanghao=ch;
printf("\n请输入学生性别:");
scanf("%s",st[i].xingbie);
printf("\n请输入学生年龄:");
scanf("%d",&st[i].nianling);
printf("\n请输入学生专业:");
scanf("%s",st[i].zhuanye); /*学生信息的输入*/
n++;
printf("\n是否继续1/0?"); /*判断是否继续输入*/
scanf("%d",&xz);
}while(xz);
save(n); /*返回主菜单*/
}
void shanchu() /*删除学生信息模块*/
{
int xz1,xz2,xz,xz3; /*定义选择系数*/
char xh[20];
char xm[20]; /*定义学号、姓名变量*/
int j=0;
open();
printf("\n请选择按照姓名或学号查找需删除学生;1、姓名;2、学号:");
if(xz)
{
printf("\n请输入要删除学生姓名:\n");
scanf("%s",xm); /*输入所查询学生姓名*/
for(i=0;i<n;i++)
{
if(strcmp(st[i].xingming,xm)==0)
j=1; /*逐个查询姓名*/
}
if(j)
{
printf("该学生信息如下:");
printf("学号------姓名----宿舍号--床号--性别--年龄--专业---\n");
printf("-----------------------------------------------------\n");
printf("%-8s %-6s %-4d %-6d %-4s %-4d %-20s\n",st[i].xuehao,st[i].xingming,
st[i].sushehao,st[i].chuanghao,st[i].xingbie,st[i].nianling,st[i].zhuanye);
} /*要删除学生信息显示*/
printf("\n是否删除该学生信息?1/0");
scanf("%d",&xz1); /*判断是否确定删除学生信息*/
if(xz1)
{
for(;i<n;i++)
{
strcpy(st[i].xuehao,st[i+1].xuehao);
strcpy(st[i].xingming,st[i+1].xingming);
st[i].sushehao=st[i+1].sushehao;
st[i].chuanghao=st[i+1].chuanghao;
strcpy(st[i].xingbie,st[i+1].xingbie);
st[i].nianling=st[i+1].nianling;
strcpy(st[i].zhuanye,st[i+1].zhuanye);
}
n--;
} /*删除学生信息*/
else
{
printf("\n该学生信息不存在");
shanchu();
} /*要删除学生信息不存在,重新输入*/
}
else
{
printf("\n请输入要删除学生学号:"); /*按照学号查找删除学生*/
scanf("%s",&xh);
for(i=0;i<n;i++)
{
if(strcmp(xh,st[i].xuehao)==0)j=1;
} /*判断学号是否存在*/
if(j)
{
{
printf("该学生信息如下:");
printf("学号------姓名----宿舍号--床号--性别--年龄--专业---\n");
printf("-----------------------------------------------------\n");
printf("%-8s %-6s %-4d %-6d %-4s %-4d %-20s\n",st[i].xuehao,st[i].xingming,
st[i].sushehao,st[i].chuanghao,st[i].xingbie,st[i].nianling,st[i].zhuanye);
}
printf("\n是否删除该学生信息?1/0");
scanf("%d",&xz2);
if(xz2)
{
for(;i<n;i++)
{
strcpy(st[i].xuehao,st[i+1].xuehao);
strcpy(st[i].xingming,st[i+1].xingming);
st[i].sushehao=st[i+1].sushehao;
st[i].chuanghao=st[i+1].chuanghao;
strcpy(st[i].xingbie,st[i+1].xingbie);
st[i].nianling=st[i+1].nianling;
strcpy(st[i].zhuanye,st[i+1].zhuanye);
}
n--; /*删除学生信息*/
}
else
{
printf("\n该学生信息不存在");
shanchu();
}
}
}
printf("\n是否继续?1/0");
scanf("%d",&xz3);
if(xz3)shanchu();
save(n); /*判断是否继续删除,返回主菜单*/
}
void chaxun() /*查询学生信息模块*/
{
int xz1;
int xz;
char xh[20];
char xm[20];
int j=0;
open();
printf("\n请选择按姓名或学号查询?1:姓名;2:学号\n");
scanf("%d",&xz1);
if(xz1)
{
printf("\n请输入要查询学生姓名:\n"); /*选择姓名查找*/
scanf("%s",xm);
for(i=0;i<n;i++)
{
if(strcmp(st[i].xingming,xm)==0)j=1;
}
if(j)
{
printf("该学生信息如下:");
printf("学号------姓名----宿舍号--床号--性别--年龄--专业---\n");
printf("-----------------------------------------------------\n");
printf("%-8s %-6s %-4d %-6d %-4s %-4d %-20s\n",st[i].xuehao,st[i].xingming,
st[i].sushehao,st[i].chuanghao,st[i].xingbie,st[i].nianling,st[i].zhuanye);
} /*学生信息显示*/
else
{
printf("\n该生信息不存在\n");
chaxun(); /*返回查询函数,重新输入查找*/
}
}
else
{
printf("请输入要查询学生学号:");
scanf("%s",xh);
for(i=0;i<n;i++)
{
if(strcmp(xh,st[i].xuehao))j=1;
} /*学号查询*/
if(j)
{
printf("该学生信息如下:");
printf("学号------姓名----宿舍号--床号--性别--年龄--专业---\n");
printf("-----------------------------------------------------\n");
printf("%-8s %-6s %-4d %-6d %-4s %-4d %-20s\n",st[i].xuehao,st[i].xingming,
st[i].sushehao,st[i].chuanghao,st[i].xingbie,st[i].nianling,st[i].zhuanye);
}
else
{
printf("\n该生信息不存在\n");
chaxun();
}
}
printf("\n是否继续?1/0");
scanf("%d",&xz);
if(xz)
chaxun(); /*判断是否继续,返回主菜单*/
}
void caidan()
{
printf("====================欢迎使用学生宿舍管理系统===================");
printf("\n 1:添加学生信息\n");
printf(" 2:删除学生信息\n");
printf(" 3:查询学生信息\n");
// printf(" 4:修改学生信息\n");
printf(" 5:退出系统\n");
}
void main()
{
int xuanze;
next:caidan();
printf("请输入需要进行的操作:\n");
scanf("%d",&xuanze);
switch(xuanze)
{
case 1:tianjia();break;
case 2:shanchu();break;
case 3:chaxun();break;
// case 4:xiugai();break; //没有这个函数
case 5:exit(0);
}
goto next;
}
[/code]