C语言实训题目 10
№1:学生信息管理系统学生基本信息包括:学号、姓名、性别、出生日期、家庭地址、入学成绩、电话、Email等。1系统功能①学生信息录入②学生信息浏览③学生信息查询按姓名查询...
№1:学生信息管理系统
学生基本信息包括:学号、姓名、性别、出生日期、家庭地址、入学成绩、电话、Email等。
1 系统功能
① 学生信息录入
② 学生信息浏览
③ 学生信息查询 按姓名查询、按学号查询、按年龄查询——至少有两种查询方法。
④ 学生信息排序
⑤ 学生信息删除
⑥ 学生信息修改
⑦ 通过菜单选择退出系统,并有退出系统的提示或确认。
2 系统要求
① 使用菜单操作。
② 学生信息用文件保存。
③ 进入系统的时候,要验证用户身份(用户名和密码)。 展开
学生基本信息包括:学号、姓名、性别、出生日期、家庭地址、入学成绩、电话、Email等。
1 系统功能
① 学生信息录入
② 学生信息浏览
③ 学生信息查询 按姓名查询、按学号查询、按年龄查询——至少有两种查询方法。
④ 学生信息排序
⑤ 学生信息删除
⑥ 学生信息修改
⑦ 通过菜单选择退出系统,并有退出系统的提示或确认。
2 系统要求
① 使用菜单操作。
② 学生信息用文件保存。
③ 进入系统的时候,要验证用户身份(用户名和密码)。 展开
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void guanli();//管理员文件
void zhu();//查询主函数
void nianca();
void mingca();
void banca();
void xingca();
void xueca();
void zhucaidan();
void tianjia();
void shezhixinxi();
void cunxinxi();
void tian();
void quanbushanchu();
void xingbieshanchu();
void banjishanchu();
void mougeshanchu();
void fugai();
void wenjian();
void shanchu();
int quanbuxianshi();
struct xuesheng
{
char name[8]; //姓名
char xingbie[3]; //性别
int age; //年龄
char banji[20]; //班级
char fenshu[3]; //分数
char hao[9]; //学号
};
typedef struct xuesheng XUE;
XUE str;
FILE *fp=NULL;
int no=1;
void main()
{
int a;
printf("\t\t简易学生档案库\n确认您的身份:\n");
while(1)
{
printf("\t1 管理员\n\t2 用户\n\t3 退出\n请选择:");
scanf("%d",&a);
switch(a)
{
case 1:guanli();
zhucaidan();
break;
case 2:zhu();
break;
case 3:
exit(0);
default:
printf("请重新选择!\n");
}
}
}
void guanli()
{
char mima[6];
char mi[6];
strcpy(mima,"000000");
for(int i=0;i<3;i++)
{
printf("请输入你的管理员密码(6位):");
scanf("%s",mi);
if(strcmp(mima,mi)==0)
{
printf("密码正确!\n");
return;
}
else
{
printf("密码不正确,请重新输入:\n");
}
}
printf("三次密码错误,系统即将退出。\n");
exit(0);
}
void zhucaidan()
{
int a;
while(1)
{
printf("\n\n\t 主菜单\n\t1 输出所有学生信息\n\t2 查找学生信息\n\t3 输入一个学生信息\n\t4 删除学生信息\n\t5 退出\n请选择:");
scanf("%d",&a);
switch(a)
{
case 1:quanbuxianshi();
break;
case 2:zhu();
break;
case 3:tian();
break;
case 4:shanchu();
break;
case 5:
exit(0);
default:
printf("请重新选择!\n");
}
}
}
void zhu()
{
int a,b;
b=quanbuxianshi();
while(b)
{
printf("\n\t请问你想按什么来查询:\n");
printf("\t1 年龄\n\t2 姓名\n\t3 班级\n\t4 性别\n\t5 学号\n\t 6 返回上一层\n\t 7 退出系统\n");
fflush(stdin);
scanf("%d",&a);
switch(a)
{
case 1:nianca();
break;
case 2:mingca();
break;
case 3:banca();
break;
case 4:xingca();
break;
case 5:xueca();
break;
case 6:return;
case 7:exit(0);
default:
printf("请重新选择!\n");
break;
}
}
}
void nianca()
{
int nianling,a=0;
printf("请输入你要查询的年龄:\n");
fflush(stdin);
scanf("%d",&nianling);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(str.age==nianling)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void mingca()
{
char xm[20];
int a=0;
printf("请输入你要查询的姓名:\n");
fflush(stdin);
scanf("%s",xm);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.name,xm)==0)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void banca()
{
char bj[20],a=0;
printf("请输入你要查询的班级:\n");
fflush(stdin);
scanf("%s",bj);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.banji,bj)==0)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void xingca()
{
char xb[3];
int a=0;
printf("请输入你要查询的性别\n");
fflush(stdin);
scanf("%s",xb);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.xingbie,xb)==0)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void xueca()
{
char xh[9];
int a=0;
printf("请输入你要查询的学号\n");
fflush(stdin);
scanf("%s",xh);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.hao,xh)==0)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void tian()
{
while(1)
{
char xuanze;
printf("\ta 添加\n\tb 返回\n\t请选择服务\n");
fflush(stdin);
scanf("%c",&xuanze);
switch(xuanze)
{
case'a':
case'A':
{
printf("\t你选择添加服务\n");
shezhixinxi();
cunxinxi();
break;
}
case'b':
case'B':
{
return;
}
}
}
}
void shezhixinxi()
{
printf("\t请输入姓名\n");
fflush(stdin);
scanf("%s",str.name);
printf("\t请输入年龄\n");
fflush(stdin);
scanf("%d",&str.age);
printf("\t请输入性别(男/女)\n");
fflush(stdin);
scanf("%s",str.xingbie);
printf("\t请输入班级\n");
fflush(stdin);
scanf("%s",str.banji);
printf("\t请输入分数\n");
fflush(stdin);
scanf("%s",str.fenshu);
printf("\t请输入学号\n");
fflush(stdin);
scanf("%s",str.hao);
printf("\t添加成功!\n");
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
}
void cunxinxi()
{
fp=fopen("wenjian.txt","ab+");
if(fp==NULL)
{
printf("\t文件失败\n");
exit(0);
}
fwrite(&str,sizeof(XUE),1,fp);
fclose(fp);
}
void shanchu()
{
char xuanze;
for (;;)
{
printf("\n\ta 全部删除\n");
printf("\tb 按性别删除\n");
printf("\tc 按班级删除\n");
printf("\td 删除某一个\n");
printf("\te 返回上级菜单\n");
printf("\t请输入您的选择:\n");
fflush(stdin);
scanf("%c",&xuanze);
switch(xuanze)
{
case 'a':
case 'A':
{
quanbushanchu();
printf("\n删除成功!");
break;
}
case 'b':
case 'B':
{
xingbieshanchu();
printf("\n删除成功!");
break;
}
case 'c':
case 'C':
{
banjishanchu();
printf("\n删除成功!");
break;
}
case 'd':
case 'D':
{
mougeshanchu();
printf("\n删除成功!");
break;
}
case 'e':
{
return;
}
default:
{
printf("\t您的输入有误,请重新输入\n\n");
}
}
}
}
void quanbushanchu()
{
printf("\t全部删除\n");
fugai();
return;
}
void xingbieshanchu()
{
for(int i=0;i<3;i++)
{
char xingbie;
wenjian();
char name[20]={0};
char xingbie1[3]={0};
int age=0;
char banji[20];
char fenshu[3]={0};
fread(&str,sizeof(XUE),1,fp);
printf("\t请输入要删除人的性别(m:男/f:女)");
fflush(stdin);
scanf("%c",&xingbie);
while(!feof(fp))
{
if(xingbie=='m'||xingbie=='M')
{
if(strcmp(str.xingbie,"男")==0)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
strcpy(str.banji,banji);
strcpy(str.fenshu,fenshu);
}
return;
}
else if(xingbie=='f'||xingbie=='F')
{
if(strcmp(str.xingbie,"女")==0)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
strcpy(str.banji,banji);
strcpy(str.fenshu,fenshu); ;
}
return;
}
else
{
printf("\t您的输入有误,请重新输入\n");
}
}
}
}
void banjishanchu()
{
char banji[20];
wenjian();
char name[20]={0};
char xingbie1[3]={0};
int age=0;
char banji1[20]={0};
char fenshu[3]={0};
fread(&str,sizeof(XUE),1,fp);
printf("\t请输入您要删除的班级:\n");
fflush(stdin);
scanf("%s",banji);
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(banji,str.banji)==0)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
strcpy(str.banji,banji1);
strcpy(str.fenshu,fenshu); ;
}
return;
}
}
void mougeshanchu()
{
char name1[20]={0};
char xingbie1[3]={0};
int age=0;
char banji[20]={0};
char fenshu[3]={0};
char name[20];
wenjian();
printf("\t请输入该学生的姓名");
fflush(stdin);
scanf("%s",name);
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.name,name))
{
strcpy(str.name,name1);
strcpy(str.xingbie,xingbie1);
str.age=age;
strcpy(str.banji,banji);
strcpy(str.fenshu,fenshu); ;
}
return;
}
}
void fugai()
{
fp=fopen("wenjian.txt","wb+");
if(fp==NULL)
{
printf("\tSorry!!!文件打开失败,系统即将退出。\n");
exit(0);
}
fclose(fp);
}
void wenjian()
{
fp=fopen("wenjian.txt","rb+");
if(fp==NULL)
{
printf("\tSorry!!!文件打开失败,系统即将退出。\n");
exit(0);
}
fclose(fp);
}
int quanbuxianshi()
{int a=0;
if(!(fp=fopen("wenjian.txt","rb+")))
fp=fopen("wenjian.txt","wb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.name,""))
{printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%d\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("\n目前没有学生信息。\n");
}
return a;
}
#include <stdlib.h>
#include <string.h>
void guanli();//管理员文件
void zhu();//查询主函数
void nianca();
void mingca();
void banca();
void xingca();
void xueca();
void zhucaidan();
void tianjia();
void shezhixinxi();
void cunxinxi();
void tian();
void quanbushanchu();
void xingbieshanchu();
void banjishanchu();
void mougeshanchu();
void fugai();
void wenjian();
void shanchu();
int quanbuxianshi();
struct xuesheng
{
char name[8]; //姓名
char xingbie[3]; //性别
int age; //年龄
char banji[20]; //班级
char fenshu[3]; //分数
char hao[9]; //学号
};
typedef struct xuesheng XUE;
XUE str;
FILE *fp=NULL;
int no=1;
void main()
{
int a;
printf("\t\t简易学生档案库\n确认您的身份:\n");
while(1)
{
printf("\t1 管理员\n\t2 用户\n\t3 退出\n请选择:");
scanf("%d",&a);
switch(a)
{
case 1:guanli();
zhucaidan();
break;
case 2:zhu();
break;
case 3:
exit(0);
default:
printf("请重新选择!\n");
}
}
}
void guanli()
{
char mima[6];
char mi[6];
strcpy(mima,"000000");
for(int i=0;i<3;i++)
{
printf("请输入你的管理员密码(6位):");
scanf("%s",mi);
if(strcmp(mima,mi)==0)
{
printf("密码正确!\n");
return;
}
else
{
printf("密码不正确,请重新输入:\n");
}
}
printf("三次密码错误,系统即将退出。\n");
exit(0);
}
void zhucaidan()
{
int a;
while(1)
{
printf("\n\n\t 主菜单\n\t1 输出所有学生信息\n\t2 查找学生信息\n\t3 输入一个学生信息\n\t4 删除学生信息\n\t5 退出\n请选择:");
scanf("%d",&a);
switch(a)
{
case 1:quanbuxianshi();
break;
case 2:zhu();
break;
case 3:tian();
break;
case 4:shanchu();
break;
case 5:
exit(0);
default:
printf("请重新选择!\n");
}
}
}
void zhu()
{
int a,b;
b=quanbuxianshi();
while(b)
{
printf("\n\t请问你想按什么来查询:\n");
printf("\t1 年龄\n\t2 姓名\n\t3 班级\n\t4 性别\n\t5 学号\n\t 6 返回上一层\n\t 7 退出系统\n");
fflush(stdin);
scanf("%d",&a);
switch(a)
{
case 1:nianca();
break;
case 2:mingca();
break;
case 3:banca();
break;
case 4:xingca();
break;
case 5:xueca();
break;
case 6:return;
case 7:exit(0);
default:
printf("请重新选择!\n");
break;
}
}
}
void nianca()
{
int nianling,a=0;
printf("请输入你要查询的年龄:\n");
fflush(stdin);
scanf("%d",&nianling);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(str.age==nianling)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void mingca()
{
char xm[20];
int a=0;
printf("请输入你要查询的姓名:\n");
fflush(stdin);
scanf("%s",xm);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.name,xm)==0)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void banca()
{
char bj[20],a=0;
printf("请输入你要查询的班级:\n");
fflush(stdin);
scanf("%s",bj);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.banji,bj)==0)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void xingca()
{
char xb[3];
int a=0;
printf("请输入你要查询的性别\n");
fflush(stdin);
scanf("%s",xb);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.xingbie,xb)==0)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void xueca()
{
char xh[9];
int a=0;
printf("请输入你要查询的学号\n");
fflush(stdin);
scanf("%s",xh);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.hao,xh)==0)
{
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void tian()
{
while(1)
{
char xuanze;
printf("\ta 添加\n\tb 返回\n\t请选择服务\n");
fflush(stdin);
scanf("%c",&xuanze);
switch(xuanze)
{
case'a':
case'A':
{
printf("\t你选择添加服务\n");
shezhixinxi();
cunxinxi();
break;
}
case'b':
case'B':
{
return;
}
}
}
}
void shezhixinxi()
{
printf("\t请输入姓名\n");
fflush(stdin);
scanf("%s",str.name);
printf("\t请输入年龄\n");
fflush(stdin);
scanf("%d",&str.age);
printf("\t请输入性别(男/女)\n");
fflush(stdin);
scanf("%s",str.xingbie);
printf("\t请输入班级\n");
fflush(stdin);
scanf("%s",str.banji);
printf("\t请输入分数\n");
fflush(stdin);
scanf("%s",str.fenshu);
printf("\t请输入学号\n");
fflush(stdin);
scanf("%s",str.hao);
printf("\t添加成功!\n");
printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%s\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
}
void cunxinxi()
{
fp=fopen("wenjian.txt","ab+");
if(fp==NULL)
{
printf("\t文件失败\n");
exit(0);
}
fwrite(&str,sizeof(XUE),1,fp);
fclose(fp);
}
void shanchu()
{
char xuanze;
for (;;)
{
printf("\n\ta 全部删除\n");
printf("\tb 按性别删除\n");
printf("\tc 按班级删除\n");
printf("\td 删除某一个\n");
printf("\te 返回上级菜单\n");
printf("\t请输入您的选择:\n");
fflush(stdin);
scanf("%c",&xuanze);
switch(xuanze)
{
case 'a':
case 'A':
{
quanbushanchu();
printf("\n删除成功!");
break;
}
case 'b':
case 'B':
{
xingbieshanchu();
printf("\n删除成功!");
break;
}
case 'c':
case 'C':
{
banjishanchu();
printf("\n删除成功!");
break;
}
case 'd':
case 'D':
{
mougeshanchu();
printf("\n删除成功!");
break;
}
case 'e':
{
return;
}
default:
{
printf("\t您的输入有误,请重新输入\n\n");
}
}
}
}
void quanbushanchu()
{
printf("\t全部删除\n");
fugai();
return;
}
void xingbieshanchu()
{
for(int i=0;i<3;i++)
{
char xingbie;
wenjian();
char name[20]={0};
char xingbie1[3]={0};
int age=0;
char banji[20];
char fenshu[3]={0};
fread(&str,sizeof(XUE),1,fp);
printf("\t请输入要删除人的性别(m:男/f:女)");
fflush(stdin);
scanf("%c",&xingbie);
while(!feof(fp))
{
if(xingbie=='m'||xingbie=='M')
{
if(strcmp(str.xingbie,"男")==0)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
strcpy(str.banji,banji);
strcpy(str.fenshu,fenshu);
}
return;
}
else if(xingbie=='f'||xingbie=='F')
{
if(strcmp(str.xingbie,"女")==0)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
strcpy(str.banji,banji);
strcpy(str.fenshu,fenshu); ;
}
return;
}
else
{
printf("\t您的输入有误,请重新输入\n");
}
}
}
}
void banjishanchu()
{
char banji[20];
wenjian();
char name[20]={0};
char xingbie1[3]={0};
int age=0;
char banji1[20]={0};
char fenshu[3]={0};
fread(&str,sizeof(XUE),1,fp);
printf("\t请输入您要删除的班级:\n");
fflush(stdin);
scanf("%s",banji);
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(banji,str.banji)==0)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
strcpy(str.banji,banji1);
strcpy(str.fenshu,fenshu); ;
}
return;
}
}
void mougeshanchu()
{
char name1[20]={0};
char xingbie1[3]={0};
int age=0;
char banji[20]={0};
char fenshu[3]={0};
char name[20];
wenjian();
printf("\t请输入该学生的姓名");
fflush(stdin);
scanf("%s",name);
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.name,name))
{
strcpy(str.name,name1);
strcpy(str.xingbie,xingbie1);
str.age=age;
strcpy(str.banji,banji);
strcpy(str.fenshu,fenshu); ;
}
return;
}
}
void fugai()
{
fp=fopen("wenjian.txt","wb+");
if(fp==NULL)
{
printf("\tSorry!!!文件打开失败,系统即将退出。\n");
exit(0);
}
fclose(fp);
}
void wenjian()
{
fp=fopen("wenjian.txt","rb+");
if(fp==NULL)
{
printf("\tSorry!!!文件打开失败,系统即将退出。\n");
exit(0);
}
fclose(fp);
}
int quanbuxianshi()
{int a=0;
if(!(fp=fopen("wenjian.txt","rb+")))
fp=fopen("wenjian.txt","wb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.name,""))
{printf("%s\t\t%s\t学号:%s\t年龄:%d \t班级:%s\n\t分数:%d\n",str.name,str.xingbie,str.hao,str.age,str.banji,str.fenshu);
a=1;
}
}
if(a==0)
{
printf("\n目前没有学生信息。\n");
}
return a;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询