我们使用c++做一些系统的时候,总会有一些数据要进行存储,这个时候我们就需要用到c++的数据结构,也就是c语言中的结构体。为了定义结构,我们必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:
struct name {
member_type1 member_name1;
member_type2 member_name2;
member_type3 member_name3;
.
.
} object_names;
name是这个结构体的名字,member_type1 是声明单个数据类型,member_name1是单个数据的名称,例如学生管理系统,我们可以使用以下的结构体
struct Student
{
char name[50];
int number[20];
int age[10];
char sex[10];
double grade[20];
};
这样简单定义一个结构体,里面包含了姓名、学号、年龄、性别以及成绩的信息,当然可以根据实际情况来定义,那么数据结构定义出来以后我们应该如何去使用这个数据结构呢,我们在使用的时候应该定义结构体类型的变量,然后对变量进行赋值,如下
Student student1; Student student2; student1.name = "张三"; student1.number = 0001; student1.age = 18; student1.sex = "男"; student1.grade = 78; student2.name = "李玲"; student2.number = 0002; student2.age = 19; student2.sex = "女"; student2.grade = 91;
将这些放到学生信息管理系统之后
#include <iostream>
#include <string>
#include<math.h>
using namespace std;
// main() 是程序开始执行的地方
struct Student
{
string name;
int number;
int age;
string sex;
double grade;
};
void meun()
{
cout << "******************学生管理系统************************\n";
cout << "******************************************************\n";
cout << "** 1.学员统计 **\n";
cout << "** 2.学员增加 **\n";
cout << "** 3.学员修改 **\n";
cout << "** 4.学员删除 **\n";
cout << "******************************************************\n";
}
void printstu(struct Student student)
{
cout << "姓名:\t" << student.name << endl;
cout << "学号:\t" << student.number << endl;
cout << "年龄:\t" << student.age << endl;
cout << "性别:\t" << student.sex << endl;
cout << "成绩:\t" << student.grade << endl;
}
void Statistics()
{
Student student1;
Student student2;
student1.name = "张三";
student1.number = 0001;
student1.age = 18;
student1.sex = "男";
student1.grade = 78;
student2.name = "李玲";
student2.number = 0002;
student2.age = 19;
student2.sex = "女";
student2.grade = 91;
printstu(student1);
printstu(student2);
int x;
cin >> x;
}
void Insert()
{
cout << "增加函数";
}
void Update()
{
cout << "修改函数";
}
void Delete()
{
cout << "删除函数";
}
int main()
{
meun();
int x;
cout << "请选择要功能(1~4)";
cin >> x;
switch (x)
{
case 1:
Statistics();
case 2:
Insert();
case 3:
Update();
case 4:
Delete();
default:
cout << "输入错误,请输入1~4的数字";
break;
}
}
执行结果为

我们也可以使用指针,将printstu(struct Student student)函数改为printstu(struct Student *student), 同时在调用的时候里面的参数变为printstu(&student1),这样子是不是更好理解一些呢,另外定义结构体的时候我们可以在结构体前面使用typedef关键字
typedef struct Student
{
string name;
int number;
int age;
string sex;
double grade;
}Student;
这样我们在声明变量的时候就可以直接使用Student,而不用加struct关键字。
原文:https://www.cnblogs.com/dxp1255123789/p/11178639.html