【学生成绩管理系统】 大二c语言作业

几年前写的了,只能在命令行窗口运行,虽然比较挫,还是有一定参考价值...

#include <cstdio>
#include <conio.h>
#include <iostream>
#include <process.h>
#include <stdlib.h>
#include <algorithm>
#include <cstring>
#include <cmath>
#define N 5
const int maxn = 1002;
using namespace std;
void log_in();          // 登录系统
void menu();            // 菜单
void input();           // 输入数据
void savecore();        // 保存数据
void loadscore();       // 读取文件
void stdavg();          // 求平均数的算法
void delete_();         // 删除一个已知学号的学生的全部信息,并选择是否排序
void passrate();        // 及格率
void variance();        // 均方差
void browse();          // 显示数据
void function();        // 个性设计模拟动态链表实现增加n个学生成绩并排序
void read();            // 以下四个函数为实现function功能的嵌套函数
void add();
void output();
void solve();
typedef struct student
{
    int number;
    char name[20];
    float math;
    float english;
    float computer;
    float average;
    bool operator <(const struct student &a)const  // c++的sort排序
   {
      return average>a.average;
   }
}STU;
STU stu[N];
typedef struct  func_    //个性化设计结构体
{
    char name[102]; //姓名
    int no; //学号
    int score; //分数
}NODE;
NODE node[maxn];
int top;
int cmp(const func_ &a,const func_ &b)  // c++中sort函数排序
{
    return a.score > b.score;
}
int main()
{
    log_in();
    menu();
    return 0;
}

void log_in()
{
    short i;
    char name[20],key[20];
    cout << "欢迎进入教务综合管理系统登陆界面,请输入您的用户名和密码" << endl;
    cout << "初次登录用户名为yang,密码为grade_system " << endl;
    cout << endl;
    while(1)
    {
        cout << "please input the user‘s name:(中间请用_间隔)" << endl;
        cin >> name;
        cout << "please input your key(12 bits):" << endl;
        for(i=0;i<12;i++)
        {
            key[i]=getch();
            printf("*");
        }
        key[i]=‘\0‘;
        getch();
        if(strcmp(name,"yang")==0&&strcmp(key,"grade_system")==0)break;
        cout << "\nerror!" << endl;
        cout << "please input again!" <<endl;
    }
        cout << "great!wait a minute..." << endl ;
        system("cls");
}

void menu()
 {
    char ch;
    while(1)
        {
            cout << "  \t\t欢迎进入教务综合管理系统登陆界面!\n" <<endl;
            cout << "  \t\t* * * * * * * * * * * * * * * * * * * * *" << endl;
            cout << "  \t\t* \t Menu:                  \t*" << endl;
            cout << "  \t\t* \t0. input                \t*" << endl;
            cout << "  \t\t* \t1. savecore             \t*" << endl;
            cout << "  \t\t* \t2. loadcore             \t*" << endl;
            cout << "  \t\t* \t3. delete               \t*" << endl;
            cout << "  \t\t* \t4. passrate             \t*" << endl;
            cout << "  \t\t* \t5. variance             \t*" << endl;
            cout << "  \t\t* \t6. grade chart          \t*" << endl;
            cout << "  \t\t* \t7. personality design   \t*" << endl;
            cout << "  \t\t* \t8. Exit                  \t*" << endl;
            cout << "  \t\t* * * * * * * * * * * * * * * * * * * * *" <<endl;
            cout << "\t\t\t请选择对应序号: ";
            cin >> ch;
            switch(ch)
                {
                    case ‘0‘:{input();break;};
                    case ‘1‘:{savecore();break;};
                    case ‘2‘:{loadscore();break;}
                    case ‘3‘:{delete_();break;};
                    case ‘4‘:{passrate();break;};
                    case ‘5‘:{variance();break;};
                    case ‘6‘:{browse();break;};
                    case ‘7‘:{function();break;};
                    case ‘8‘:{ cout <<"Goodbye~~"<< endl; exit(1);};
                    default:cout << "input wrong,please input again!" <<endl;
                }
            getchar ();
        }
}

void input()
{
    int i,j;
    struct student *p=stu;
    cout << "now please begin to input the student‘s data:" << endl;
    cout << "注意:学号为int型,姓名之间若有间隔一定用连接,分数之间加空格" << endl;
    cout << endl;
    for(i=0;i<N;i++)
    {
        j=i+1;
        cout << "input" << ‘ ‘ << j <<
        "‘s number name and the score of the math english computer:" << endl;
        cin >> (p+i)->number;
        cin >> (p+i)->name;
        cin >> (p+i)->math;
        cin >> (p+i)->english;
        cin >> (p+i)->computer;
    }
        cout << "Now we have already input all the data!" << endl;
}

void savecore()
{
    FILE *fp;
    struct student *q=stu;
    int i;
    char ch;
    getchar();
    cout << "next,do you want to save file?(Y/N)" << endl;
    if((ch=getchar())==‘Y‘)
    {
        if((fp=fopen("d:\\score.txt","w"))==NULL)
        {
            cout << "File open error!" << endl;
            exit(0);
        }
        for(i=0;i<N;i++,q++)
        {
            if(fwrite(q,sizeof(STU),1,fp)==1)
            {
                if(i==N-1)
                {
                    cout << "you have saved successfully!" << endl;
                    cout << "press enter to continue" << endl;
                }
            }
            else cout << "file write wrong!" <<endl;
        }
       getchar();
       fclose(fp);
    }
}

void loadscore()
{
    FILE *fp;
    int i;
    char ch;
    getchar();
    printf("do you want to open the file?(Y/N)\n");
    if((ch=getchar())==‘Y‘)
    {
        if((fp=fopen("d:\\score.txt","r"))==NULL)
        {
            cout << "File open error!" <<endl;
            exit(0);
        }
        for(i=0;!feof(fp);i++)           //测试文件是否结束
        {
            fread(&stu[i],sizeof(STU),1,fp);
        }
//原型为unsigned fwrite(void *buffer,unsigned size,unsigned count,FILE *fp)
        cout << "you have loaded successfully!" << endl;
        cout << "press enter to continue" << endl;
        getchar();
        fclose(fp);
    }
}

void browse()
{
    stdavg();
    sort(stu,stu+N);
    int i;
    char chart[][10]={"    ","Numb","Name","Math","Engl","Comp","Aver"};
    printf("\n\n\nNow the chart of student‘s grade is as below:\n");
    printf("***************************************************************************\n\t");
    for(i=1;i<7;i++)
        {
            printf("%s\t",chart[i]);
        }
    printf("\n");
    for(i=0;i<N;i++)
    {
        printf("    \t%ds  \t%.2f  \t%.2f  \t%.2f  \t%.2f",stu[i].number,stu[i].name,stu[i].math,
               stu[i].english,stu[i].computer,stu[i].average);
        printf("\n");
    }
    printf("\n");
    printf("***************************************************************************\n");
}

void stdavg()
{
    int i;
    float s;
    for(i=0;i<N;i++)
    {
        s=0;
        s+=stu[i].math+stu[i].english+stu[i].computer;
        stu[i].average=s/3;
    }
}

void passrate()
{
    float s,count_=0;
    int i;
    stdavg();
    for(i=0;i<N;i++)
        {
            if(stu[i].average>=60)
            {
                count_++;
            }
        }
    s=count_/N*100;
    cout << "the passrate is " << s << ‘%‘ << endl;
    cout << endl;
}

void read()
{
    int n,i;
    top = 0;
    cout << "请输入当前学生人数" << endl;
    cin >> n;
    cout << "请输入学生的名字,学号(这里默认为int),分数(中间用空格间隔)" << endl;
    for(i=0;i<n;i++)
    {
        scanf("%s %d %d",node[top].name,&node[top].no,&node[top].score);
        if(node[top].score >= 60)
        {
            top++;
        }
    }
}

void add()
{
    cout << "please input:" << endl;
    cin >> node[top].name ;
    cin >> node[top].no;
    cin >> node[top].score;
    if(node[top].score >= 60)
    {
        top++;
    }
}

void output()
{
    sort(node,node+top,cmp);
    for(int i=0;i<top;i++)
    {
        printf("%s %d %d\n",node[i].name,node[i].no,node[i].score);
    }
}

void solve()
{
    int judge;
    cout << "提示:" << endl;
    cout << "输入‘0‘结束" << endl;
    cout << "输入‘1‘增加学生操作" << endl;
    cout << "输入‘2‘输出及格学生当前排榜单" << endl;
    while(scanf("%d",&judge) && judge)
    {
        if(judge == 1)
        {
            add();
            cout<<"\n提示:输入‘0‘结束\n输入‘1‘增加学生操作\n输入‘2‘输出及格学生当前排榜单\n"<<endl;
        }
        else if(judge == 2)
        {
            cout <<"当下所有及格学生的排名情况如下\n" << endl;
            output();
             cout<<"\n提示:输入‘0‘结束\n输入‘1‘增加学生操作\n输入‘2‘输出及格学生当前排榜单\n"<<endl;
        }
    }
}

void function()
{
    cout << "现在我们进入综合的个性类学生成绩管理系统" << endl;
    cout << "本个性设计旨在仿照malloc的动态分配内存" << endl;
    cout << endl;
    read();
    solve();
}

void delete_()
{
    int i,j,m;
    char ch;
    stdavg();
    cout << "input the number you want to delete_:\n" << endl;
    cin >> m;
    getchar();  //
    cout << "numb" << ‘\t‘ << "name" << ‘\t‘ << "math" << ‘\t‘ <<
    "endl" << ‘\t‘ << "comp" <<‘\t‘ << "aver" <<endl;
    for(j=0;j<N;j++)
    {
        if(stu[j].number!=m)
        {
            cout << stu[j].number << ‘\t‘ <<stu[j].name  << ‘\t‘ <<
            stu[j].math << ‘\t‘ << stu[j].english << ‘\t‘ <<
            stu[j].computer << ‘\t‘ << stu[j].average << endl;
        }
    }
    cout << "若之前进行过显示数据操作(即菜单中的第六项操作)则已经排序好,否则为输入顺序" << endl;
    cout << "do you want to sort the grade(Y/N) ?" << endl;
    ch=getchar();
    struct student s;
    if(ch==‘Y‘)
    {
        getchar();
        if(stu[j].number!=m)
        {
            for(i=0;i<N-1;i++)
            {
                for(j=i+1;j<N;j++)
                {
                    if(stu[j].average>stu[i].average)
                    {
                        s=stu[i];
                        stu[i]=stu[j];
                        stu[j]=s;
                    }
                }
            }
        }
        cout << "now the sorted chart is:" <<endl;
        cout << "numb" << ‘\t‘ << "name" << ‘\t‘  << "math" << ‘\t‘ <<
        "endl" << ‘\t‘ << "comp" <<‘\t‘ << "aver" <<endl;
        for(j=0;j<N;j++)
        {
            if(stu[j].number!=m)
            {
                cout << stu[j].number << ‘\t‘ <<stu[j].name  << ‘\t‘ <<
                stu[j].math << ‘\t‘ << stu[j].english << ‘\t‘ <<
                stu[j].computer << ‘\t‘ << stu[j].average << endl;
            }
        }
    }
    cout <<"press enter to continue" << endl;
}

void variance()
{
    float s=0,sum=0,sum_,var;
    int i;
    stdavg();
    for(i=0;i<N;i++)
    {
        s=s+stu[i].average;
    }
    var=s/N;
    for(i=0;i<N;i++)
    {
        sum+=(stu[i].average-var)*(stu[i].average-var);
    }
    sum_= sum/N;
    cout << "the all student‘s average variance is :" << sum_ << endl;
}

帮别人调试的另一个版本

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define N 100
#define M 3
#define LEN 9
void menu();
void browse();
typedef struct student
{
 char num[11];
 char name[20];
 int score[M];
 double ave;
}STU;
STU stu[N];   

int save(int n)
{
 FILE *fp;
 int i;
 if((fp=fopen("tangjie.txt","wb"))==NULL)
 {
  printf("无法打开文件!\n任意键退出程序... ...\n");
  getch();
  return 0;
 }
 for(i=0;i<n;i++)
  if(stu[i].ave!=0)
   if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
    printf("文件写入发生错误\n");
 fclose(fp);
 return 0;
}

int load()
{
 FILE *fp;
 int i;
 if((fp=fopen("tangjie.txt","rb"))==NULL)       //以二进制读的方式打开
 {
  printf("无法打开文件!\n任意键退出程序... ...\n");   //显示不能打开文件的信息
  getch();             //预防闪屏
  return 0;
 }
 for(i=0;!feof(fp);i++)
  fread(&stu[i],sizeof(struct student),1,fp);     //将文件数据读入学生结构体
 fclose(fp);
 return(i-1);             //返回目前总的记录个数*/
}

void printf_back()
{
 int w;
 printf("\n\t操作成功!\n");
 printf("\t请选择!\n\t1).立刻浏览全部数据\t2).返回:[ ]\b\b");
 scanf("%d",&w);
 if(w==1)
  browse();
 else
  menu();
}

void printf_face()
{
 printf("\n\t学号\t姓名\t\t   数学\t    英语    C语言    平均分\n");
}

void average(int i)
{
 int j,sum;
 for(sum=0,j=0;j<M;j++)
  sum+=stu[i].score[j];
 stu[i].ave=sum*1.0/M;
}

void no_deal(int i)
{
 int j,l,a;
 l=strlen(stu[i].num);
 if(l<LEN)
 {
  for(j=LEN-l,a=0;j<LEN;j++)
  {
   stu[i].num[j]=stu[i].num[a++];
  }
  stu[i].num[i]=‘\0‘;
  for(a=0;a<LEN-l;a++)
   stu[i].num[a]=‘0‘;
 }
 if(l>LEN)
  stu[i].num[l]=‘\0‘;
}

int no_input(int i,int n)
{
 int j,k,w1;
 do{
  w1=0;
  printf("学号:\t\t 【%d位,低于%d位前面补0,长的截尾处理!】\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b",LEN,LEN);
  scanf("%s",stu[i].num);
  no_deal(i);
  for(j=0;stu[i].num[j]!=‘\0‘;j++)
   if(stu[i].num[j]<‘0‘ || stu[i].num[j]>‘9‘)
   {
    puts("请输入0~9的数字!\n");
    w1=1;
    break;
   }
   if(w1!=1)
    for(k=0;k<n;k++)
     if(k!=i && strcmp(stu[k].num,stu[i].num)==0)
     {
      puts("已存在!\n");
      w1=1;
      break;
     }
 }
 while(w1==1);
 return 0;
}

int score_input(int i)
{
 int j;
 for(j=0;j<M;j++)
 {
  printf("分数 %d:",j+1);
  scanf("%d",&stu[i].score[j]);
 }
 return 0;
}

void input(int i)
{
 no_input(i,i);
 printf("姓名:");
 scanf("%s",stu[i].name);
 score_input(i);
 average(i);
}

void printf_one(int i)
{
 int j;
 printf("s    %-14s",stu[i].num,stu[i].name);
 for(j=0;j<M;j++)
 printf("?",stu[i].score[j]);
 printf("  %9.2f\n",stu[i].ave);
}
void topput___()
{
 printf("\n       记 录浏览      ");
 printf("\n--------------------------------------------------------------------------------\n");
}
void puts___()
{
 printf("\n\n--------------------------------------------------------------------------------\n");
}

int modify_data(int i,int n)
{
 int c,w1;
 do
 {
  puts("\n请选择修改项: =>\n\n1).学号\t2).姓名\t3).数学\t4).英语\t5).C语言\n6).重输所有分数\t7).重输所有记录\t8).取消并返回");
  printf("请选择:[ ]\b\b");
  scanf("%d",&c);
  if(c>8 || c<1)
  {
   puts("\n选择错误");
   getchar();
  }
 }while(c>8 || c<1);
 do
 {
  switch(c)
  {
  case 1:no_input(i,n);break;
  case 2:printf("姓名:");scanf("%s",stu[i].name);break;
  case 3:printf("数学:");scanf("%d",&stu[i].score[0]);break;
  case 4:printf("英语:");scanf("%d",&stu[i].score[1]);break;
  case 5:printf("C语言:");scanf("%d",&stu[i].score[2]);break;
  case 6:score_input(i);break;
  case 7:input(i);break;
  case 8:menu();
  }
  if(c>2 && c<7)
   average(i);
  puts("\n现在:\n");
  printf_face();
  printf_one(i);   //显示修改后的数据
  printf("\n确定当前的决定?\n\n\t1).是 \t2).否\n\t3).不保存退出[ ]\b\b");
  scanf("%d",&w1);
 }while(w1==2);
 return w1;     //返回控制值
}

void enter()
{
 int i,n;
 system("CLS");     //引用外部清屏
 printf("输入要记录的学生数:(1~%d)?\t[‘0‘返回]:\n",N);
 scanf("%d",&n);     //要输入的计入个数
 if(n==0)
  menu();      //输 0 的时候返回
 else
 {
  printf("\n\t开始输入...\n");
  for(i=0;i<n;i++)
  {
   printf("\n请输入第%d个的记录.\n",i+1);
   input(i);      //调用输入函数
  }
  if(i!=0)
   save(n);      //调用保存函数
  printf_back();
 }
}

int add()
{
 int i,n,m,k;
 FILE *fp;
 system("CLS");
 n=load();        //获得总记录的个数,并加载记录
 printf("需要加入的学生人数:(0 ~ %d)?:",N-n);
 scanf("%d",&m);       //输入要追加记录的个数
 if(m==0)
  menu();
 else
 {
  k=m+n;
  for(i=n;i<k;i++)
  {
   printf("\n请输入第%d个的记录.\n",i-n+1);
   input(i);      //调用输入函数
  }
  if((fp=fopen("tangjie.txt","ab"))==NULL)
  {
   printf("文件无法打开!\n");  //显示不能打开文件的信息
   getch();
   return 0;
  }
  for(i=n;i<k;i++)
   if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
    printf("文件写入错误!\n");
  fclose(fp);
  printf_back();
 }
 return 0;
}

void modify()
{
 struct student s;
 int i,n,k,w0=0,w1,w2=0;
 n=load();        //获得总记录的个数,并加载记录
 do
 {
  system("CLS");
  k=-1;

  topput___();
  printf_face();
  for(i=0;i<n;i++)
   printf_one(i);    //调用显示一个记录的函数
  puts___();

  do
  {
   printf("\n\n输入要修改记录的学号! :\t");
   if(scanf("%s",s.num)!=1)  //输入要修改数据的学号
   menu();
   for(i=0;i<n;i++)    //查找要修改的数据
    if(strcmp(s.num,stu[i].num)==0)
    {
     k=i;     //找到要修改的记录
     s=stu[i];
    }
  if(k==-1)
   printf("\n\n不存在! 请重新输入");
  }while(k==-1);
 printf_face();       //调用显示数据结构项目函数
 printf_one(k);
 w1=modify_data(k,n);
 if(w1==1)        //代表确认修改
 {
  printf("\n操作成功!\n\n决定修改其他信息吗?\n\n\t1).是的\t2).不!保存并返回\t[ ]\b\b");
  scanf("%d",&w0);
  w2=1;
 }
 else
 {
  w0=0;
  if(w2==1)
   stu[k]=s;
 }
 if(w0!=1 && w2==1)
  save(n);
 }while(w0==1);
 menu();       //返回主菜单
}

void del()
{
 struct student s;
 int i,k,n,c,w0=1;
 system("CLS");
 n=load();      //获得总记录的个数,并加载记录
 do
 {
  system("CLS");
  k=-1;

  topput___();
  printf_face();
  for(i=0;i<n;i++)
   if(stu[i].ave!=0)
    printf_one(i);  //显示所有数据
  puts___();

  do
  {
   printf("\n\n输入你要删除记录的学号! NO.:\t");
   if(scanf("%s",s.num)!=1)
    menu();
   for(i=0;i<n;i++)
    if(strcmp(s.num,stu[i].num)==0)
    {
     k=i;
     s=stu[i];
    }
   if(k==-1)
    printf("\n\n不存在! 请重新输入!");
  }while(k==-1);
  puts("\n");
  printf_face();
  printf_one(k);     //显示要删除的记录
  printf("\n确定?\n\t1).是   2).否   3).不保存退出[ ]\b\b");
  scanf("%d",&c);
  if(c==1)
  {
   stu[k].ave=0;
   printf("\n\n操作成功!\n\n要继续删数据吗?\n\t1).继续 2).返回主菜单\t[ ]\b\b");
   scanf("%d",&w0);
  }
  if(c==3)
   w0=0;      //不删除直接返回
  if(w0!=0 && c!=3)
   save(n);
 }while(w0==1);
 menu();
}

void browse()
{
 int i,n;
 n=load();     //获得总记录的个数,并加载记录
 system("CLS");
 topput___();
 printf_face();
 for(i=0;i<n;i++)   //循环输出所有学生的信息
  printf_one(i);
 puts___();
 printf("\n\t 这里一共有 %d 个记录!\n",n);
 printf("\n\t 输入任意键返回主菜单... ...");
 getch();
 menu();
}

void search()
{
 int i,n,k,w1=1,w2,w3,w4;
 struct student s;
 system("CLS");
 n=load();          //获得总记录的个数,并加载记录
 do
 {
  do
  {
   k=-1;
   printf("\n\n输入你要查找记录的姓名:");
   scanf("%s",s.name);
   printf_face();
   for(i=0;i<n;i++)
    if(strcmp(s.name,stu[i].name)==0)
    {
     k=i;
     printf_one(k);     //考虑到同名的情况,可能输出不只一个,把所有的记录都查找一下
    }
   if(k==-1)        //没找到相同的
   {
    printf("\n\n不存在! 请重新输入!");
    printf("\n\n继续?\n\t1).是\t 2).否 \t[ ]\b\b");
    scanf("%d",&w1);
   }
  }while(k==-1 && w1!=2);
  w4=w3=0;
  if(k!=-1)
  {
   printf("\n\n接着干什么?\n\t1).再次查找 2).修改 3).删除 4).返回主菜单 [ ]\b\b");
   scanf("%d",&w2);
   switch(w2)
   {
   case 2:w3=modify_data(k,n);break;
   case 3:
    {
     printf("\n\n确定?\n\t1).是 2).否 \t[ ]\b\b");
     scanf("%d",&w4);
     if(w4==1)    //表示确定删除
      stu[k].ave=0;
     break;
    }
   }
   if(w3==1 || w4==1)
   {
    save(n);
    printf("\n\n操作成功!");
    printf("\n\n继续\n\t1).再次查找 2).返回 [ ]\b\b");
    scanf("%d",&w2);
   }
  }
 }while(w2==1);
 menu();
}

void order()
{

 int i,j,k,n;
 struct student s;
 system("CLS");    //清屏
 n=load();     //获得总记录的个数,并加载记录
 for(i=0;i<n-1;i++)
 {
  k=i;
  for(j=i+1;j<n;j++)
   if(stu[j].ave>stu[k].ave) //选择法排序,按平均分降序
    k=j;
  s=stu[i];
  stu[i]=stu[k];
  stu[k]=s;
 }
 save(n);
 puts("\n\n");
 printf_back();
}

void menu()
{
 int n,w1;
 do
 {
  system("CLS");;
  puts("\n\t\t\t\t学生信息管理系统\n");
  puts("\t     ------- 汤杰  \n");
  puts("\t    ************************ 主菜单 *********************\n\n");
  puts("\t\t\t 1.学生信息及成绩录入");
  puts("\t\t\t 2.添加信息");
  puts("\t\t\t 3.修改信息");
  puts("\t\t\t 4.删除信息");
  puts("\t\t\t 5.输出统计结果");
  puts("\t\t\t 6.查询信息");
  puts("\t\t\t 7.成绩排序");
  puts("\t\t\t 0.退出系统");
  puts("\n\n\t    ****************************************************\n");
  printf("\t输入你的选择(0~7):[ ]\b\b");
  scanf("%d",&n);
  if(n<0 || n>7)
  {
   w1=1;
   printf("\t你的选择不再 0 到 7 之间,按任意键重新输入!");
   getch();
  }
  else
   w1=0;
  }while(w1==1);
 switch(n)
 {
 case 1:enter();break;
 case 2:add();break;
 case 3:modify();break;
 case 4:del();break;
 case 5:browse();break;
 case 6:search();break;
 case 7:order();break;
 case 0:exit(0);break;
 }
}
void main()
{
 menu();
}
时间: 2024-08-02 07:01:26

【学生成绩管理系统】 大二c语言作业的相关文章

《C语言编写 学生成绩管理系统》

/* (程序头部凝视開始)* 程序的版权和版本号声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名: 学生成绩管理系统 * 作 者: 刘江波 * 完毕日期: 2012 年 6 月 23 日* 版 本 号: v.623 * 对任务及求解方法的描写叙述部分 * 程序头部的凝视结束 */ #include "stdio.h" #include"string" /*定义学生结构体*/ struc

C语言练手自己编写学生成绩管理系统

#include<stdio.h> #include<stdlib.h> /*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Avarage; }; /*声明学生数组及学生数量*/ struct Student students[1000]; int num=0; /*计算平均成绩*/ float Avg(struct Studen

C语言实现---学生成绩管理系统

C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示. 完整代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct person //定义结构体 { char num[10]; //学号 char name[20]; //姓名 float cyuyan; //C语言成绩 float en; //物理学成绩 float ji; //原子物理成绩

[项目记录] 用c语言完成的一个学生成绩管理系统

一.要求: 学生成绩管理系统 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).使用链表编程实现如下菜单驱动的学生成绩管理系统. 从文件读入每个学生个人信息和成绩信息,可以由键盘输入文件名.读入成功提示读入学生记录的个数,不成功提示相应出错信息. 增量式手动录入每个学生的学号.姓名和各科考试成绩.不考虑中文姓名,但需要考虑重名情况下的处理,学生的学号是唯一的. 计算每门课程的总分和平均分: 计算每个学生的总分和平均分: 按每个学生的总分由高到低排出名

C语言学生成绩管理系统分享

设计一个学生成绩管理系统,对上学期的本班的学习成绩进行管理,具有查询和检索功能,并且能够对指定文件操作,也可将多个文件组成一个文件 . A . 设计内容 1 .每一条记录包括一个学生的学号.姓名.性别.各门课成绩(上学期的科目).平均成绩. 2 .输入功能:可以一次完成若干条记录的输入. 3 .显示功能:完成全部学生记录的显示. 4 .查找功能:完成按姓名或学号查找学生记录,并显示. 5 .排序功能:按学生平均成绩进行排序. 6 .插入功能:按 学号顺序插入 一条学生记录. 7 .将学生记录存在

C语言学生成绩管理系统(简易版)

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 int readstudents(struct students stu[]); //读取学生信息 6 int readsexcode(struct sexcode sex[]); //读取性别代码 7 int readcollegecode(struct collegecode colle[]); //读取学院代码 8 void tran

《C语言 学生成绩管理系统》

/* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: 学生成绩管理系统 * 作 者: 刘江波 * 完毕日期: 2012 年 6 月 23 日 * 版 本 号: v.623 * 对任务及求解方法的描写叙述部分 * 程序头部的凝视结束 */ #include "stdio.h" #include"string" /*定义学生结构体*/

C语言学生成绩管理系统

设计一个学生成绩管理系统,对上学期的本班的学习成绩进行管理,具有查询和检索功能,并且能够对指定文件操作,也可将多个文件组成一个文件 . A . 设计内容 1 .每一条记录包括一个学生的学号.姓名.性别.各门课成绩(上学期的科目).平均成绩. 2 .输入功能:可以一次完成若干条记录的输入. 3 .显示功能:完成全部学生记录的显示. 4 .查找功能:完成按姓名或学号查找学生记录,并显示. 5 .排序功能:按学生平均成绩进行排序. 6 .插入功能:按 学号顺序插入 一条学生记录. 7 .将学生记录存在

使用C++结合文件操作和链表实现学生成绩管理系统

对于学生成绩管理系统,我是不会陌生,几乎学习C语言的人,做项目的时候都会想到学生成绩管理系统,我也不例外,在学了一段时间C语言后,也用C语言做了一个学生管理系统,后来联系做了几个,算过来,这个系统对前面的系统有所改进,增加了文件操作可以不用手动输入学生信息,可以直接从文件中读取学生信息,从而简化了操作 使用C语言实现学生成绩管理系统 http://blog.csdn.net/u010105970/article/details/17752193 使用链表实现学生成绩管理系统 http://blo