C语言学生管理系统

转载:http://hi.baidu.com/fire_man/blog/item/18816b1ff58a3dc9a6866975.html

#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;

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值