我们使用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