c语言 .用结构体输出学生姓名、学号和成绩 我有c++的程序 但是看不懂 只会c语言

1.用结构体输出学生姓名、学号和成绩
#include <memory.h>
#include <string.h>
#include <stdio.h>
typedef struct Student{
char Name[20]; //Name
char ID[15]; //学号
int Grade; //成绩
Student(char *name, char *id, int grade)
{
memcpy(Name,name,(1+strlen(name))*sizeof(char));
memcpy(ID,id,(1+strlen(id))*sizeof(char));
Grade=grade;
}
void Show()
{
printf("姓名为%s,学号为%s,分数为%d。\n",Name,ID,Grade);
}
}Student;
void main()
{
Student s_1("a","2012302590014",54);
Student s_2("b","2012302590081",95);
Student s_3("c","2012302590144",96);
Student s_4("d","2012302590169",97);
s_1.Show();
s_2.Show();
s_3.Show();
s_4.Show();
}

C++ 中的struct与class的区别是:struct的默认访问级别是public,class 的访问级别是private。C++中的struct和class一样可以有成员函数(上面代码中的 void show是成员函数;Student(char *name, char *id, int grade)是一个特殊的成员函数,叫构造函数,该函数用于实例化一个类的对象)。下面给出上面代码的简单注释:
#include <memory.h>
#include <string.h>
#include <stdio.h>
//从这里到“类student定义结束”这一行定义student类
typedef struct Student{
//类属性
char Name[20]; //Name
char ID[15]; //学号
int Grade; //成绩
//下面是构造函数,构造函数的特点是和类名(此处是Student)相同,没有返回值,且可以重载(即函数名字相同,但是参数类型或者参数个数不一样),它用于初始化一个student对象,初始化的时候传入三个参数,name,id字符串,int型的grade
Student(char *name, char *id, int grade)
{
memcpy(Name,name,(1+strlen(name))*sizeof(char));
memcpy(ID,id,(1+strlen(id))*sizeof(char));
Grade=grade;
}
void Show()//成员函数,无参数,返回类型为void
{
printf("姓名为%s,学号为%s,分数为%d。\n",Name,ID,Grade);
}
}Student;//类student定义结束
void main()
{
Student s_1("a","2012302590014",54);//实例化一个student对象,名为s_1,其名字为a,id为2012302590014,分数为54。下面类似
Student s_2("b","2012302590081",95);
Student s_3("c","2012302590144",96);
Student s_4("d","2012302590169",97);
s_1.Show();//调用对象s_1的成员函数Show(),显示姓名,学号,成绩.以下类同
s_2.Show();
s_3.Show();
s_4.Show();
}

参考资料:C++ primer 4th

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答