struct goods { char name [SIZE];//货物名 int count;//货物数量 float price;//货物价格 }; typedef struct goods dataType; //定义一个结构体 typedef struct list { dataType data; struct list *pNext; }LIST; LIST lis; /* 函数名:creation 函数功能:创建一个空结点 函数参数:无 函数返回值:创建成功返回结点的地址,失败返回NULL */ LIST * creation ( ) { //定义指针变量 LIST *pList = NULL; //申请空间 pList = ( LIST * ) malloc ( sizeof ( LIST ) ); //判断,初始化 if ( NULL == pList ) { return NULL; } memset ( pList, 0, sizeof ( LIST ) ); return pList; } /** * 增加商品 * @param name 商品名 * @param count 数量 * @param p 节点 * @return 成功则返回true */ bool add_goods(char name[],int count,LIST *p){ if ( NULL == p ) { return false; } //赋值 strcpy(p->data.name,name); p->data.count = count; return true; }
时间: 2023-08-08 14:06:10 浏览: 110
这段代码定义了一个结构体 dataType,其中包含了货物名货物数量和货物价格三个属性。后定义了一个链表结构体 LIST,其中包含了一个 dataType 类型的数据域和一个指向下一个节点的指针。接着定义了一个 LIST 类型的全局变量 lis。
接下来是一个名为 creation 的函数,其作用是创建一个空节点并返回该节点的地址。首先定义了一个 LIST 指针变量 pList,并动态分配了一个 LIST 结构体大小的内存空间并将其地址赋值给 pList。然后判断 pList 是否分配成功,如果不成功则返回 NULL。最后将 pList 清零并返回 pList 的地址。
接下来是一个名为 add_goods 的函数,该函数用于向链表中添加一个货物。其参数为一个商品名 name、一个数量 count 和一个指向链表节点的指针 p。首先判断 p 是否为空,如果为空则返回假。然后将 name 和 count 赋值给 p 的 data 属性,最后返回真表示添加成功。
相关问题
typedef struct { int credit; // 学分 int pscj;//平时成绩 int sycj;//实验成绩 int jmcj;//卷面成绩 float zhcj;//综合成绩 float sdxf;//实得学分 char course_id[3]; // 课程编号 char course_name[10]; // 课程名称 }grade; typedef struct { char student_id[2]; // 学号 char name[10]; // 姓名 char gender; // 性别 int dorm_num; // 宿舍号码 long phone_num; //电话号码 grade data[MAX]; }student; typedef struct { student data[MAX];//数据域 int length;//表长 }Seqlist;引用学号
这段代码定义了三个结构体类型:`grade`、`student`和`Seqlist`。
`grade`结构体类型包含了多个成员变量,包括`int`类型的成员变量`credit`、`pscj`、`sycj`和`jmcj`,分别表示学分、平时成绩、实验成绩和卷面成绩;`float`类型的成员变量`zhcj`和`sdxf`,分别表示综合成绩和实得学分;`char`类型的成员变量`course_id`和`course_name`,分别表示课程编号和课程名称。这个结构体类型可以用来存储某个学生的某门课程的成绩信息。
`student`结构体类型包含了多个成员变量,包括`char`类型的成员变量`student_id`和`name`,分别表示学生编号和学生姓名;`char`类型的成员变量`gender`,表示学生性别;`int`类型的成员变量`dorm_num`,表示学生宿舍号码;`long`类型的成员变量`phone_num`,表示学生电话号码;`grade`类型的数组`data`,用来存储该学生的所有课程的成绩信息。这个结构体类型可以用来存储学生的基本信息和成绩信息。
`Seqlist`结构体类型包含了`student`类型的数组`data`,用来存储多个学生的信息;`int`类型的成员变量`length`,表示该表的长度。这个结构体类型可以用来存储多个学生的信息。
如果要引用学生的学号,可以使用该学生的`student_id`成员变量。例如,如果有一个名为`stu`的`student`类型的变量,它的学号可以用`stu.student_id`来引用。
typedef struct { int credit; // 学分 int usual_score;//平时成绩 int exp_score;//实验成绩 int paper_score;//卷面成绩 float final_score;//综合成绩 float real_credit;//实得学分 char course_id[3]; // 课程编号 char course_name[10]; // 课程名称 }grade; typedef struct { char student_id[2]; // 学号 char name[10]; // 姓名 char gender; // 性别 int dorm_num; // 宿舍号码 long phone_num; //电话号码 grade data[MAX]; }student; typedef struct { student data[MAX];//数据域 int length;//表长 }Seqlist;
这是一段定义了三个结构体的代码。其中,`grade`结构体包含了学生课程的成绩信息,包括学分、平时成绩、实验成绩、卷面成绩、综合成绩、实得学分、课程编号以及课程名称。`student`结构体包含了学生的个人信息,包括学号、姓名、性别、宿舍号码、电话号码以及该学生的所有课程成绩信息。`Seqlist`结构体定义了一个顺序表,其中数据域是一个`student`结构体数组,表长由`length`字段表示。可以通过访问顺序表的下标来获取每个学生的信息。
阅读全文