C语言实训题目 10

№1:学生信息管理系统学生基本信息包括:学号、姓名、性别、出生日期、家庭地址、入学成绩、电话、Email等。1系统功能①学生信息录入②学生信息浏览③学生信息查询按姓名查询... №1:学生信息管理系统

学生基本信息包括:学号、姓名、性别、出生日期、家庭地址、入学成绩、电话、Email等。

1 系统功能

① 学生信息录入

② 学生信息浏览

③ 学生信息查询 按姓名查询、按学号查询、按年龄查询——至少有两种查询方法。

④ 学生信息排序

⑤ 学生信息删除

⑥ 学生信息修改

⑦ 通过菜单选择退出系统,并有退出系统的提示或确认。

2 系统要求

① 使用菜单操作。

② 学生信息用文件保存。

③ 进入系统的时候,要验证用户身份(用户名和密码)。
展开
 我来答
tbcheng
2009-09-12 · 超过14用户采纳过TA的回答
知道答主
回答量:48
采纳率:100%
帮助的人:26.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;

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式