如何定义一个类的数组

大二学习数据结构曾经使用结构体的方式编写一师生信息管理系统,目前正在学习面向对象,如何在c++中定义一个student类的数组,使得调用时完成简便的调用。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
FILE *fp;                  /*定义文件*/
char a;         /*返回选择变量*/
float kqcs=0;    /*应到考勤次数变量*/
struct student
{ 
  char name[10];
  char number[11];
  char sex;
  int year;
  int month;
  int day;
  int kq;
    }stu[100];                       /*定义储存学生信息的结构体数组*/
 
/*主 函 数 开 始*/

int main()
{
  void input();       /*录入数据函数*/
  void change();        /*修改数据函数*/
  void search();       /*查询数据函数*/
  void evaluate();     /*考勤分数评估函数*/ 

  char item;
  system("color 3e");      /*系统颜色*/ 
  printf("+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n");
  printf("******学生考勤管理系统******\n");
  printf("  *** *** ***共同制作\n");
  printf("-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n");
  printf("-+1.学生信息及考勤情况录入-+\n");
  printf("-+                        -+\n");
  printf("-+2.学生信息及考勤情况查找-+\n");
  printf("-+                        -+\n");
  printf("-+3.学生信息及考勤情况修改-+\n");
  printf("-+                        -+\n");
  printf("-+4.学生考勤的总评分数计算-+\n");
  printf("-+                        -+\n");
  printf("-+5.退出学生考勤管理系统  -+\n");
  printf("——————————————\n");   /*用户界面*/
  printf("\n");
  printf("请选择您希望进行的操作,输入对应的数字\n");

  scanf("%c",&item);
  switch(item)
 {
    case '1': input();break;
    case '2': search();break;
    case '3': change();break;
    case '4': evaluate();break;
    case '5': printf("************退出考勤系统,欢迎下次使用!***************");break; 
    }       
                                 /*实现功能选择*/
  return 0;}
/*主 函 数 结 束*/

/*录入数据函数内容开始*/

void input()
{
  printf("*********学生基本信息录入***********\n");
  int i,j=0,jx=1;
  printf("\n");
  printf("***请将学生基本信息录入***\n");
  if((fp=fopen("data.txt","wb"))==NULL)
 {
    printf("文件打开失败\n");
    exit(0);
   }
  for(i=0;jx==1;i++)              /* 输入信息循环 */
 {
    for(;j==0;)              /* 输入确认循环 */ 
  {
    getchar();
    printf("请输入第%d个学生的姓名 ",i+1);
    gets(stu[i].name);
    printf("请输入第%d个学生的学号 ",i+1);
    gets(stu[i].number);
    printf("请输入第%d个学生的性别(男:m  女:f) ",i+1);
    stu[i].sex=getchar();
    printf("请输入第%d个学生的生日(格式:年 月 日) ",i+1);
    scanf("%d%d%d",&stu[i].year,&stu[i].month,&stu[i].day);
    printf("请输入第%d个学生的当前考勤次数 ",i+1);
    scanf("%d",&stu[i].kq);
    printf("\n");
    printf("#####################################################################################################\n");
    printf("                  您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %4d年%2d月%2d日 考勤次数 %4d          \n",stu[i].name,stu[i].number,stu[i].sex,stu[i].year,stu[i].month,stu[i].day,stu[i].kq);
    printf("#####################################################################################################\n");
    printf("                               0 重新录入             1  确认                               \n"); 
    scanf("%d",&j);                /*输入确认*/
      }
  j=0;
  if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) 
  printf("文件写入错误\n");    /*写入文件*/
  printf("是否继续输入下一个学生信息 0 停止  1 继续\n");
  scanf("%d",&jx);                           /*继续输入选择*/
   }
  fclose(fp);
  printf("0 返回主菜单\n");
  getchar();
  a=getchar();
  getchar();
  if(a=='0')
  system("pause");
  system("cls"); 
   main();    
               
 }
/*返回主菜单*/
/*录入数据函数内容结束*/

/*修改数据函数内容开始*/
void change()
{ 
  printf("************修改学生信息及考勤情况***************\n");
  int i=0,j=0,sway,x;
  int t=1;
  char name[10],number[10];
  printf("学生考勤修改\n");
  if((fp=fopen("data.txt","rb"))==NULL)             /*将文件内容读入内存*/
 {
    printf("文件打开失败\n");
    exit(0);
   }
  for(i=0;feof(fp)==0;i++) 
    fread(&stu[i],sizeof(struct student),1,fp);    /*读取文件内容*/
    fclose(fp);                            /*关闭文件*/
    printf("选择您要查找的方式 1 按照姓名查找  2 按照学号查找");
    scanf("%d",&sway);
/*按照姓名查找开始*/
  if(sway==1)
 {
  printf("请输入您需要修改的学生的姓名 ");

  scanf("%s",name);
  for(j=0;t!=0;j++)
  {
  t=strcmp(stu[j].name,name);
  if(j==i)
  {
   t=0;
   printf("未找到您所查询的数据,请重新输入\n");
    }
      } 
   if(j<i)
/*查询成功*/               
 {
  printf("#####################################################################################################\n");
    printf("                  您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %4d年%2d月%2d日 考勤次数 %4d          \n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq);
    printf("#####################################################################################################\n");
  printf("是否修改该生考勤信息  0 否  1 是");    /*选择是否修改考勤*/
  scanf("%d",&x);       /*输入选择变量值*/
  if(x==1)
  {
    printf("请输入新的考勤数 ");
    scanf("%d",&stu[j-1].kq);               /*输入新的考勤数*/
    if((fp=fopen("data.txt","wb"))==NULL)        /*以只写方式打开文件*/
   {
     printf("文件打开失败\n");
     exit(0);
    }
  for(j=0;j<i;j++) 
  if(fwrite(&stu[j],sizeof(struct student),1,fp)!=1) printf("文件写入错误\n");    /*写入文件*/
  fclose(fp);    /*关闭文件*/
   }
   }
  printf("是否继续修改其他学生考勤 0 否  1 是");
  scanf("%d",&x);
  if(x==1)
   change();
  }
/*按照姓名查找结束*/

/*按照学号查找开始*/
  if(sway==2)
 {
   printf("请输入您需要修改的学生的学号 ");
   scanf("%s",number);
   for(j=0;t!=0;j++)
  {
     t=strcmp(stu[j].number,number);
     if(j==i)
      {
        t=0;
        printf("未找到您所查询的数据,请重新输入\n");
      }
     }
    if(j<i)               /*查询成功*/
   {   printf("#####################################################################################################\n");
    printf("                  您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %4d年%2d月%2d日 考勤次数 %4d          \n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq);
    printf("#####################################################################################################\n");
     printf("是否修改该生考勤信息  0 否  1 是");    /*选择是否修改考勤*/
     scanf("%d",&x);       /*输入选择变量值*/
     if(x==1)
       {
         printf("请输入新的考勤数");
         scanf("%d",&stu[j-1].kq);               /*输入新的考勤数*/
         if((fp=fopen("data.txt","wb"))==NULL)        /*以只写方式打开文件*/
          {
             printf("文件打开失败\n");
             exit(0);
              }
  for(j=0;j<i;j++)
   if(fwrite(&stu[j],sizeof(struct student),1,fp)!=1) printf("文件写入错误\n");    /*写入文件*/
    fclose(fp);    /*关闭文件*/
     }
    }
  printf("是否继续修改其他学生考勤 0 否  1 是");
  scanf("%d",&x);
  if(x==1) change();
  }
/*按照学号查找结束*/

  printf("0 返回主菜单\n");
  getchar();
  a=getchar();
  getchar();
  if(a=='0')
  system("pause");
  system("cls");  
   main();
     }
/*修改数据函数内容结束*/

/*查询数据函数内容开始*/
void search()
{ 
  printf("************查询学生信息及考勤情况************\n");
  int i=0,j=0,sway,x;
  int t=1; 
  char name[10],number[10];
  printf("学生信息查询\n");
  if((fp=fopen("data.txt","r"))==NULL)              /*将文件内容读入内存*/
    {
      printf("文件打开失败\n");
       exit(0);
     }
  for(i=0;feof(fp)==0;i++) 
    fread(&stu[i],sizeof(struct student),1,fp);    /*读取文件内容*/
    fclose(fp);                            /*关闭文件*/
  printf("选择查找方式 1 按照姓名查找  2 按照学号查找");
  scanf("%d",&sway);
/*按照姓名查找开始*/
  if(sway==1)
   {
     printf("请输入您需要查询的学生的姓名 ");

     scanf("%s",name);
     for(j=0;t!=0;j++)
   {
     t=strcmp(stu[j].name,name);
     if(j==i)
   {
     t=0;
     printf("未找到您所查询的数据,请重新输入\n");
    }
   }
    if(j<i)
/*查询成功*/               
     {
       printf("#####################################################################################################\n");
    printf("                  您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %4d年%2d月%2d日 考勤次数 %4d          \n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq);
    printf("#####################################################################################################\n");
     }
  printf("您是否继续查询其他学生信息 0 否  1 是");
  scanf("%d",&x);
  if(x==1)
   search();
   }
/*按照姓名查找结束*/

/*按照学号查找开始*/
  if(sway==2)
   {
     printf("请输入您需要查询的学生的学号 ");

     scanf("%s",number);
      for(j=0;t!=0;j++)
    {
      t=strcmp(stu[j].number,number);
      if(j==i)
    {
       t=0;
        printf("未找到您所查询的数据,请重新输入\n");
       }
     }
    if(j<i)               /*查询成功*/
      {  printf("#####################################################################################################\n");
    printf("                  您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %4d年%2d月%2d日 考勤次数 %4d          \n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq);
    printf("#####################################################################################################\n");
       }
  printf("是否继续查询其他学生信息 0 否  1 是");
  scanf("%d",&x);
  if(x==1) 
   search();
  }
/*按照学号查找结束*/

  printf("0 返回主菜单\n");
  getchar();
  a=getchar();
  getchar();
  if(a=='0')
  system("pause");
  system("cls"); 
   main();
  }
 
/*查询数据函数内容结束*/

/*考勤分数评估*/ 
void evaluate()
{   
  int i=0,j=0,sway,x;
  int t=1; 
  float score;
  char name[10],number[10];
  printf("  ***********************学 生 考 勤 分 数 计 算**************************\n");

  printf("请输入应到考勤总数 ");      /*请输入应到考勤总数*/ 
  scanf("%f",&kqcs);
  if((fp=fopen("data.txt","rb"))==NULL)      /*将文件内容读入内存*/ 
  {
    printf("文件打开失败\n");
      exit(0);
   }
   for(i=0;feof(fp)==0;i++)
    fread(&stu[i],sizeof(struct student),1,fp);    /*读取文件内容*/ 
      fclose(fp);                            /*关闭文件*/ 
    printf("选择查找方式 1 按照姓名查找  2 按照学号查找");
    scanf("%d",&sway);
/*按照姓名查找*/
if(sway==1)
{
printf("请输入需要计算学生的姓名 ");
scanf("%s",name);
for(j=0;t!=0;j++)
{
t=strcmp(stu[j].name,name);
if(j==i)
{
t=0;
printf("未找到您所查询的数据,请重新输入\n");
}
}
if(j<i)               /*查询成功*/ 
{  printf("#####################################################################################################\n");
    printf("                  您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %4d年%2d月%2d日 考勤次数 %4d          \n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq);
    printf("#####################################################################################################\n");
  score=(stu[j-1].kq)/kqcs*100;
  printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
  printf("该生当前考勤分数为 %5.2f\n",score);
  printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
}
printf("是否继续计算其他学生考勤分数 0 否  1 是");
scanf("%d",&x);
if(x==1) evaluate();
}
/*按照姓名查找结束*/ 

/*按照学号查找开始*/ 
if(sway==2)
{
printf("请输入需要计算分数学生的学号 ");
scanf("%s",number);
for(j=0;t!=0;j++)
{
t=strcmp(stu[j].number,number);
if(j==i)
{
t=0;
printf("未找到您所查询的数据,请重新输入\n");
}
}
if(j<i)               /*查询成功*/ 
{   printf("#####################################################################################################\n");
    printf("                  您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %4d年%2d月%2d日 考勤次数 %4d          \n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq);
    printf("#####################################################################################################\n");
  score=(stu[j-1].kq)/kqcs*100;
  printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
  printf("该生当前考勤分数为 %5.2f\n",score);
  printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
}
printf("是否继续计算其他学生考勤分数 0 否  1 是");
scanf("%d",&x);
if(x==1) evaluate();
}
/*按照学号查找结束*/ 

printf("0 返回主菜单\n");
getchar();
a=getchar();
getchar();
if(a=='0') 
system("pause");
system("cls"); 
main();
}

例如:如何在类的定义中实现gets(stu[i].name);
目前更改到这一部分不会改了

#include<iostream>
#include<string.h> 
#include<stdlib.h>
using namespace std;

FILE *fp;                  /*定义文件*/
char a;         /*返回选择变量*/
float kqcs=0;    /*应到考勤次数变量*/

class student
{
    public:
        char name[10];
        char number[11];
        char sex;
        int year;
        int month;
        int day;
        int kq;
    void input();       /*录入数据函数*/
    void change();        /*修改数据函数*/
    void search();       /*查询数据函数*/
    void evaluate();     /*考勤分数评估函数*/ 
    student();
};

student::student()
{
    
}

void student::input()
{
    cout<<"*********学生基本信息录入***********"<<endl;
    int i,j=0,jx=1;
    cout<<endl;
    cout<<"***请将学生基本信息录入***"<<endl;
    if((fp=fopen("data.txt","wb"))==NULL)
    {
        printf("文件打开失败\n");
        exit(0);
    }
    for(i=0;jx==1;i++)
    {
        for(;j==0;)
        {
            cout<<"请输入第i+1个学生的姓名 ";
            cin>>//不会输入了 
        }
    }
}

简单点就是:

class student
{ 
public:
  char name[10];
  char number[11];
  char sex;
  int year;
  int month;
  int day;
  int kq;
};
student stu[100];