标题:c语言版 班级管理系统
只看楼主
醉酒舞剑9
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-6-24
 问题点数:0 回复次数:0 
c语言版 班级管理系统
#include<stdio.h>
#include<string.h>
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int i;
struct student
{ char name[20];
 char sex[10];
 int age,num;
 struct sco
 { int phy;
  int maths;
  int english;
  int computer;
  int vc;
 }score;
}stu[1000];
void scan()
{ int u,xe;
 i=0;
 for(u=0;u<1000;u++)
 { strcpy(stu[u].name,"/0");
  strcpy(stu[u].sex,"/0");
  stu[u].num=0;
  stu[u].age=0;
  stu[u].score.phy=0;
  stu[u].score.maths=0;
  stu[u].score.english=0;
  stu[u].
  stu[u].score.vc=0;
 }
 printf("依次输入你要输入的信息,先是名字,然后学号,性别,年龄,成绩(5科),此系统最多科存1000名学生信息,剩余1000\n");
 do
 { printf("输入学生名字\n");
  scanf("%s",&stu[i].name);
  printf("输入学生学号\n");
  scanf("%d",&stu[i].num);
  printf("输入学生性别\n");
  while(scanf("%s",&stu[i].sex)&&strcmp(stu[i].sex,"boy")!=0&&strcmp(stu[i].sex,"girl")!=0)
   printf("输入错误,请再输入");
  printf("输入学生年龄\n");
  scanf("%d",&stu[i].age);
  printf("输入学生成绩(5科)\n");
  printf("物理:");
  scanf("%d",&stu[i].score.phy);
  printf("数学:");
  scanf("%d",&stu[i].score.maths);
  printf("电脑:");
  scanf("%d",&stu[i].);
  printf("英语:");
  scanf("%d",&stu[i].score.english);
  printf("VC:");
  scanf("%d",&stu[i].score.vc);
   printf("剩余%d\n",999-i);
  printf("0继续输入下一个学生信息\n1回到菜单\n");
  i++;
  
  if(i>=1000){printf("系统存储空间已满,无法继续增加,抱歉!");break;}
  
  while(scanf("%d",&xe)&&xe!=0&&xe!=1)
   printf("输入错误,请再输入");
  if(xe==0)printf("请继续输入\n");
 }while(xe!=1);
}
void watch1()
{ if(i==0)printf("请先输入学生信息\n");
 while(i!=0)
 { int i2,j2,all[100],averge[100],g,a,za;
  char change3[10];
  for(i2=0;i2<i;i2++)
  { all[i2]=stu[i2].score.phy+stu[i2].[i2].score.english+stu[i2].score.maths+stu[i2].score.vc;
   averge[i2]=all[i2]/5;
  }
  for(i2=1;i2<i;i2++)
  { for(j2=1;j2<i;j2++)
   { if(all[j2-1]<all[j2])
    { a=stu[j2-1].age;stu[j2-1].age=stu[j2].age;stu[j2].age=a;
     a=stu[j2-1].[j2-1].[j2].[j2].
     a=stu[j2-1].score.english;stu[j2-1].score.english=stu[j2].score.english;stu[j2].score.english=a;
     a=stu[j2-1].score.maths;stu[j2-1].score.maths=stu[j2].score.maths;stu[j2].score.maths=a;
     a=stu[j2-1].score.phy;stu[j2-1].score.phy=stu[j2].score.phy;stu[j2].score.phy=a;
     a=stu[j2-1].score.vc;stu[j2-1].score.vc=stu[j2].score.vc;stu[j2].score.vc=a;
     
   
     a=all[j2-1];all[j2-1]=all[j2];all[j2]=a;
     a=stu[j2-1].num;stu[j2-1].num=stu[j2].num;stu[j2].num=a;
     a=averge[j2-1];averge[j2-1]=averge[j2];averge[j2]=a;
     strcpy(change3,stu[j2-1].name);
     strcpy(stu[j2-1].name,stu[j2].name);
     strcpy(stu[j2].name,change3);
     strcpy(change3,stu[j2-1].sex);
     strcpy(stu[j2-1].sex,stu[j2].sex);
     strcpy(stu[j2].sex,change3);
    }
   }
  }
  printf("学号 姓名      性别 年龄 物理 数学 英语 电脑  VC  总分 平均分 名次\n");
  for(g=0;g<i;g++)
   printf("%-6d%-10s%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d\n",stu[g].num,stu[g].name,stu[g].sex,stu[g].age,stu[g].score.phy,stu[g].score.maths,stu[g].score.english,stu[g].,stu[g].score.vc,all[g],averge[g],g+1);
  printf("输入0返回菜单");
  while(scanf("%d",&za)&&za!=0)
   printf("输入错误,请再输入");
  if(za==0)break;
 }
}
void watch2()
{ if(i==0)printf("请先输入学生信息\n");
 while(i!=0)
 { int max[5],min[5],j,g,i2,all[100],averge[100],za,j2,a,yy[5][2];char change3[20];
  for(i2=0;i2<i;i2++)
  { all[i2]=stu[i2].score.phy+stu[i2].[i2].score.english+stu[i2].score.maths+stu[i2].score.vc;
   averge[i2]=all[i2]/5;
  }
  for(i2=0;i2<i;i2++)
  { for(j2=1;j2<i;j2++)
   { if(all[j2-1]<all[j2])
    { a=stu[j2-1].age;stu[j2-1].age=stu[j2].age;stu[j2].age=a;
     a=stu[j2-1].[j2-1].[j2].[j2].
     a=stu[j2-1].score.english;stu[j2-1].score.english=stu[j2].score.english;stu[j2].score.english=a;
     a=stu[j2-1].score.maths;stu[j2-1].score.maths=stu[j2].score.maths;stu[j2].score.maths=a;
     a=stu[j2-1].score.phy;stu[j2-1].score.phy=stu[j2].score.phy;stu[j2].score.phy=a;
     a=stu[j2-1].score.vc;stu[j2-1].score.vc=stu[j2].score.vc;stu[j2].score.vc=a;
     
   
     a=all[j2-1];all[j2-1]=all[j2];all[j2]=a;
     a=stu[j2-1].num;stu[j2-1].num=stu[j2].num;stu[j2].num=a;
     a=averge[j2-1];averge[j2-1]=averge[j2];averge[j2]=a;
     strcpy(change3,stu[j2-1].name);
     strcpy(stu[j2-1].name,stu[j2].name);
     strcpy(stu[j2].name,change3);
     strcpy(change3,stu[j2-1].sex);
     strcpy(stu[j2-1].sex,stu[j2].sex);
     strcpy(stu[j2].sex,change3);
    }
   }
  }
  printf("学号 姓名      性别 年龄 物理 数学 英语 电脑  VC  总分 平均分 名次\n");
  for(i2=0;i2<i;i2++)
  { all[i2]=stu[i2].score.phy+stu[i2].[i2].score.english+stu[i2].score.maths+stu[i2].score.vc;
   averge[i2]=all[i2]/5;
  }
  for(g=0;g<i;g++)
   printf("%-6d%-10s%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d%-5d\n",stu[g].num,stu[g].name,stu[g].sex,stu[g].age,stu[g].score.phy,stu[g].score.maths,stu[g].score.english,stu[g].,stu[g].score.vc,all[g],averge[g],g+1);

   max[0]=0;min[0]=100;
   for(j=0;j<i;j++)
   {
    if(stu[j].score.phy>=max[0])
    { max[0]=stu[j].score.phy;yy[0][0]=j;}
    if(stu[j].score.phy<=min[0])
    { min[0]=stu[j].score.phy;yy[0][1]=j;}
   }
   max[3]=0;min[3]=100;
   for(j=0;j<i;j++)
   {
    if(stu[j].[3])
    { max[3]=stu[j].[3][0]=j;}
    if(stu[j].[3])
    { min[3]=stu[j].[3][1]=j;}
   }
   max[2]=0;min[2]=100;
   for(j=0;j<i;j++)
   {
    if(stu[j].score.english>=max[2])
    { max[2]=stu[j].score.english;yy[2][0]=j;}
    if(stu[j].score.english<=min[2])
    { min[2]=stu[j].score.english;yy[2][1]=j;}
   }
   max[1]=0;min[1]=100;
   for(j=0;j<i;j++)
   {
    if(stu[j].score.maths>=max[1])
    { max[1]=stu[j].score.maths;yy[1][0]=j;}
    if(stu[j].score.maths<=min[1])
    { min[1]=stu[j].score.maths;yy[1][1]=j;}  
   }
   max[4]=0;min[4]=100;
   for(j=0;j<i;j++)
   {
    if(stu[j].score.vc>=max[4])
    { max[4]=stu[j].score.vc;yy[4][0]=j;}
    if(stu[j].score.vc<=min[4])
    { min[4]=stu[j].score.vc;yy[4][1]=j;}
   }
  printf("物理最高分:%d   %s最低分:%d    %s\n数学最高分:%d   %s最低分%d   %s\n英语最高分:%d   %s最低分:%d   %s\n电脑最高分:%d   %s最低分:%d   %s\nV C最高分:%d   %s最低分:%d   %s\n",max[0],stu[yy[0][0]].name,min[0],stu[yy[0][1]].name,max[1],stu[yy[1][0]].name,min[1],stu[yy[1][1]].name,max[2],stu[yy[2][0]].name,min[2],stu[yy[2][1]].name,max[3],stu[yy[3][0]].name,min[3],stu[yy[3][1]].name,max[4],stu[yy[4][0]].name,min[4],stu[yy[4][1]].name);
  printf("输入0返回菜单");
  while(scanf("%d",&za)&&za!=0)
   printf("输入错误,请再输入");
  if(za==0)break;
 }

}
void fine()
{ if(i==0)printf("请先输入学生信息\n");
 while(i!=0)
 { printf("用学号查找请输入0,用姓名查找请输入1\n");
  int i1,j1,num1,te=0,tc=0;char name1[20];
  scanf("%d",&i1);
  if(i1!=0&&i1!=1)
   printf("输入错误\n");
  else if(i1==0)
   { printf("请输入学生学号");
    scanf("%d",&num1);
    for(j1=0;j1<i;j1++)
     if(num1==stu[j1].num)
     { printf("学号:%d姓名:%s性别:%s年龄:%d物理:%d数学:%d英语:%d电脑:%dVC:%d总分%d\n",stu[j1].num,stu[j1].name,stu[j1].sex,stu[j1].age,stu[j1].score.phy,stu[j1].score.maths,stu[j1].score.english,stu[j1].,stu[j1].score.vc,stu[j1].score.vc+stu[j1].[j1].score.english+stu[j1].score.maths+stu[j1].score.phy);
      te=1;
     }
    if(te!=1) printf("无此学生信息\n");
     

     
   }
   else if(i1==1)
   { printf("请输入学生姓名");
    scanf("%s",&name1);
     for(j1=0;j1<i;j1++)
     if(strcmp(name1,stu[j1].name)==0)
     { printf("学号:%d姓名:%s性别:%s年龄:%d物理:%d数学:%d英语:%d电脑:%dVC:%d总分%d\n",stu[j1].num,stu[j1].name,stu[j1].sex,stu[j1].age,stu[j1].score.phy,stu[j1].score.maths,stu[j1].score.english,stu[j1].,stu[j1].score.vc,stu[j1].score.vc+stu[j1].[j1].score.english+stu[j1].score.maths+stu[j1].score.phy);
      tc=1;
     }
     if(tc!=1) printf("无此学生信息\n");
   }
   
   printf("继续查找请输入1,回菜单请输入0");
   int qq;
   while(scanf("%d",&qq)&&qq!=0&&qq!=1)
   printf("输入错误,请再输入");
   if(qq==1)continue;
   if(qq==0)break;
 }
}
void became()
{ if(i==0)printf("请先输入学生信息\n");
 while(i!=0)
 { printf("请输入要修改的学生学号\n");
  int num2,j3;
  scanf("%d",&num2);
   for(j3=0;j3<=i;j3++)
    if(num2==stu[j3].num)
    { strcpy(stu[j3].name,"/0");
     printf("重新输入该学生所有数据,依次为学号、姓名、性别、年龄、物理、数学、英语、电脑、VC。\n");
     printf("输入学生名字\n");
     scanf("%s",&stu[j3].name);
     printf("输入学生学号\n");
     scanf("%d",&stu[j3].num);
     printf("输入学生性别\n");
        while(scanf("%s",&stu[j3].sex)&&strcmp(stu[j3].sex,"boy")!=0&&strcmp(stu[j3].sex,"girl")!=0)
      printf("输入错误,请再输入");
     printf("输入学生年龄\n");
     scanf("%d",&stu[j3].age);
     printf("输入学生成绩(5科)\n");
     printf("物理:");
     scanf("%d",&stu[j3].score.phy);
     printf("数学:");
     scanf("%d",&stu[j3].score.maths);
     printf("电脑:");
     scanf("%d",&stu[j3].);
     printf("英语:");
     scanf("%d",&stu[j3].score.english);
     printf("VC:");
     scanf("%d",&stu[j3].score.vc);
     printf("修改成功");
    }
    else("未找到该学号学生请确定输入无误\n");
  int za;
  printf("输入0返回菜单,输入1继续查找");
  while(scanf("%d",&za)&&za!=0&&za!=1)
   printf("输入错误,请再输入");
  if(za==0)break;
  if(za==1)continue;
 }
}
void out()
{ if(i==0)printf("请先输入学生信息\n");
 while(i!=0)
 { printf("请输入要删除的学生的学号\n");
  int num3,j4,i3,za;
  scanf("%d",&num3);
   for(j4=0;j4<=i;j4++)
    if(num3==stu[j4].num)
    { for(i3=j4;i3<i;i3++)
      { stu[i3].num=stu[i3+1].num;
       stu[i3].age=stu[i3+1].age;
       strcpy(stu[i3].name,stu[i3+1].name);
       strcpy(stu[i3].sex,stu[i3+1].sex);
       stu[i3].[i3+1].
       stu[i3].score.english=stu[i3+1].score.english;
       stu[i3].score.maths=stu[i3+1].score.maths;
       stu[i3].score.phy=stu[i3+1].score.phy;
       stu[i3].score.vc=stu[i3+1].score.vc;
      }
     i--;
     printf("修改成功\n");
    }
    else printf("未找到该学号学生请确定输入无误\n");
  printf("输入0返回菜单,输入1继续修改");
  while(scanf("%d",&za)&&za!=0&&za!=1)
   printf("输入错误,请再输入");
  if(za==0)break;
  if(za==1)continue;
 }
}
void into()
{ for(;;)
 { if(i>1000){printf("系统存储空间已满,无法继续增加,抱歉!\n");break;}
  printf("输入要增加学生信息,依次为学号、姓名、性别、年龄、物理、数学、英语、电脑、VC。\n");
  i++;
  printf("输入学生名字\n");
  scanf("%s",&stu[i-1].name);
  printf("输入学生学号\n");
  scanf("%d",&stu[i-1].num);
  printf("输入学生性别\n");
   while(scanf("%s",&stu[i-1].sex)&&strcmp(stu[i-1].sex,"boy")!=0&&strcmp(stu[i-1].sex,"girl")!=0)
   printf("输入错误,请再输入");
  printf("输入学生年龄\n");
  scanf("%d",&stu[i-1].age);
  printf("输入学生成绩(5科)\n");
  printf("物理:");
  scanf("%d",&stu[i-1].score.phy);
  printf("数学:");
  scanf("%d",&stu[i-1].score.maths);
  printf("电脑:");
  scanf("%d",&stu[i-1].);
  printf("英语:");
  scanf("%d",&stu[i-1].score.english);
  printf("VC:");
  scanf("%d",&stu[i-1].score.vc);
  printf("输入成功,剩余%d",1000-i);
  if(i>=1000){printf("系统存储空间已满,无法继续增加,抱歉!\n");break;}
  int za;
  printf("输入0返回菜单,输入1继续增加");
   while(scanf("%d",&za)&&za!=0&&za!=1)
    printf("输入错误,请再输入");
   if(za==0)break;
   if(za==1)continue;
 }
}
void main()
{ int a,wu=0;
  FILE *fp;
  fp=fopen("out.txt","rb+");
  if(feof(fp)!=0)i=0;
  while(feof(fp)==0)
  { fread(&i,sizeof(int),1,fp);
   for(int m=0;m<i;m++)
    fread(&stu[m],sizeof(struct student),1,fp);
  }
  fclose(fp);
 do
 {printf("********************主菜单********************\n");
  printf("          1.输入和储存学生信息(会删除之前记录)\n");
  printf("          2.查看学生信息(已排名)\n");
  printf("          3.学生成绩统计\n");
  printf("          4.查找学生信息\n");
  printf("          5.修改学生信息\n");
  printf("          6.删除学生信息\n");
  printf("          7.增加学生信息\n");
  printf("          8.退出\n");
  printf("**********************************************\n");
  printf("请输入选择项目序号:");
 while(scanf("%d",&a)&&a!=0&&a!=1&&a!=2&&a!=3&&a!=4&&a!=5&&a!=6&&a!=7&&a!=8)
   printf("输入错误,请再输入");

 
 
  if(a==1)
   {scan();}

  if(a==2)
   {watch1();}
  if(a==3)
   {watch2();}
  if(a==4)
   {fine();}
  if(a==5)
   {became();}
  if(a==6)
   {out();}
  if(a==7)
   {into();}
  if(a==8)
  {  FILE *fp;
   fp=fopen("out.txt","rb+");

 
   fwrite(&i,sizeof(int),1,fp);
   for(int m=0;m<i;m++)
    fwrite(&stu[m],sizeof(struct student),1,fp);
 
   fclose(fp);
  
    break;
  }
   
 }while(8);
}

大家支持一下
搜索更多相关主题的帖子: c语言 系统 管理 
2010-06-24 18:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-311163-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.124480 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved