c语言学生管理系统blog,C语言学生管理系统

#include "stdio.h"

#define SIZE 100000

#include"string.h"

#include"stdlib.h"

#include"conio.h"

#define SIZE 5

struct student     /* 结构体数据*/

{int n;

int num;

char name[10];

int C;

int Maths;

int En;

float ave;

}stu[SIZE];

/*录入数据(向文件fp中录入信息)*/

void finput()

{

FILE *fp;

int i,p;

fp=fopen("fstu","wb");

for(i=0;i{

printf("i=%d 输入序号i(当输入i=-1时,返回),i=",i++);

scanf("%d",&i);

if(i==-1)

{

fclose(fp);

return;

}

else

{

printf("请输入学号,姓名,C成绩,数学成绩,英语成绩:");

scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En);

stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0;

stu[i].n=i+1;

fwrite(&stu[i],sizeof(struct student),1,fp);

}

}

fclose(fp);

}

/*输出文件fp中的数据*/

void flist()

{

FILE *fp;

int i;

fp=fopen("fstu","rb");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("                       成绩列表\n");

printf("-----------------------------------------------------------\n");

printf("序号   学号   姓名    C成绩    数学    英语          平均\n");

printf("-----------------------------------------------------------\n");

for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++)

{

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);

}

printf("-----------------------------------------------------------\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

fclose(fp);

}

/*查找数据*/

void fsearch()

{

FILE *fp;

int i,num;

fp=fopen("fstu","rb");

rewind(fp);

printf("请输入要查找的学号:");

scanf("%d",&num);

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("                      查询结果\n");

printf("-----------------------------------------------------------\n");

printf("序号   学号   姓名    C成绩    数学    英语          平均\n");

printf("-----------------------------------------------------------\n");

for(i=0;i<=SIZE;i++)

if(stu[i].num==num)

{

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);

}

printf("-----------------------------------------------------------\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n");

fclose(fp);

}

/*增加文件fp中的数据*/

void fadden()

{

int i,s;

FILE *fp;

fp=fopen("fstu","ab+");

rewind(fp);

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("                       成绩列表\n");

printf("-----------------------------------------------------------\n");

printf("序号   学号   姓名    C成绩    数学    英语          平均\n");

printf("-----------------------------------------------------------\n");

for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++)

{

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);

}

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

s=i;

for(i=s;i{

printf("i=%d 输入序号i(当输入i=-1时,返回),i=",i+1);

scanf("%d",&i);

if(i==-1)

{

fclose(fp);

return;

}

else

{

printf("请输入学号,姓名,C成绩,数学成绩,英语成绩:");

stu[i].n=i+1;

scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En);

stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0;

fwrite(&stu[i],sizeof(struct student),1,fp);

}

}

fclose(fp);

}

/*修改文件fp中的数据*/

void fchange()

{

FILE *fp;

int i,num,n;

int flag=0;

printf("请输入要修改学生的学号:");

scanf("%d",&num);

for(i=0;i<=SIZE;i++)

if(stu[i].num==num)

{

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("                       成绩列表\n");

printf("-----------------------------------------------------------\n");

printf("序号   学号   姓名    C成绩    数学    英语          平均\n");

printf("-----------------------------------------------------------\n");

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);

printf("-----------------------------------------------------------\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

n=i;

flag=1;

break;

}

if(flag==0)

{

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("                        输入错误!\n");

printf("                         请返回!\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

return;

}

printf("\n\n\n");

fp=fopen("fstu","rb+");

fseek(fp,n*sizeof(struct student),0);

printf("请输入新的学号,姓名,C成绩,数学成绩,英语成绩:");

scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En);

stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0;

fwrite(&stu[i],sizeof(struct student),1,fp);

fclose(fp);

fp=fopen("fstu","rb");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("                       成绩列表\n");

printf("-----------------------------------------------------------\n");

printf("序号   学号   姓名    C成绩    数学    英语          平均\n");

printf("-----------------------------------------------------------\n");

for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++)

{

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);

}

printf("-----------------------------------------------------------\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

fclose(fp);

}

/*成绩排序*/

void ftaxis()

{

int i,j,n;

FILE *fp;

struct student t;

fp=fopen("fstu","rb");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("                       成绩列表\n");

printf("-----------------------------------------------------------\n");

printf("序号   学号   姓名    C成绩    数学    英语          平均\n");

printf("-----------------------------------------------------------\n");

for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++)

{

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);

}

printf("-----------------------------------------------------------\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

fclose(fp);

n=i;

for(i=0;ifor(j=i+1;jif(stu[i].ave{

t=stu[i];

stu[i]=stu[j];

stu[j]=t;

}

fp=fopen("fstus","wb");

printf("\n\n\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("                       成绩列表 \n");

printf("-----------------------------------------------------------\n");

printf("序号   学号   姓名    C成绩    数学    英语          平均\n");

printf("-----------------------------------------------------------\n");

for(i=0;i{

fwrite(&stu[i],sizeof(struct student),1,fp);

printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);

}

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

fclose(fp);

}

/*主函数*/

main()

{

int n;

for(;;)

{

printf("\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※                                                           ※\n");

printf("※                 欢迎来到学生信息管理系统                  ※\n");

printf("※                                                           ※\n");

printf("※            系部:       专业:     ※\n");

printf("※            姓名:                学号:                    ※\n");

printf("※            班内序号:           指导老师:             ※\n");

printf("※                                                           ※\n");

printf("※                          主菜单                           ※\n");

printf("※                                                           ※\n");

printf("※                      ▲1.录入数据▲                       ※\n");

printf("※                      ▲2.输出数据▲                       ※\n");

printf("※                      ▲3.查找数据▲                       ※\n");

printf("※                      ▲4.增加数据▲                       ※\n");

printf("※                      ▲5.修改数据▲                       ※\n");

printf("※                      ▲6.成绩排序▲                       ※\n");

printf("※                      ▲7.退出系统▲                       ※\n");

printf("※                                                           ※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");

printf("请输入选择项(1-7):");

scanf("%d",&n);

printf("\n\n\n\n");

if(n>0&&n<8)

{

switch(n)

{

case 1:finput();break;

case 2:flist();break;

case 3:fsearch();break;

case 4:fadden();break;

case 5:fchange();break;

case 6:ftaxis();break;

case 7:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※                                            ※\n");

printf("※                  谢谢使用!                 ※\n");

printf("※                    再见!                   ※\n");

printf("※                                            ※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");

exit(0);

}

}

else

{

printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※                                            ※\n");

printf("※                  输入错误!                 ※\n");

printf("※                   请退出!                  ※\n");

printf("※                                            ※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");

break;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值