|
发表于 2018-4-8 14:26:54
|
显示全部楼层
数组就算了吧~ 一个学校怎么也有尼玛一两千人吧~ 数组就需要连续的存储单元~ 用链表吧~
根据题目所示,学号、姓名、性别、专业、班级、总成绩, 研究生和本科生都具有这些属性~这里把他姑且称为共有属性~
什么高数成绩啊~ 导师啊~ 这些可以再分一下~ 私有属性~
根据题意,容器或许可以这样写~
- typedef struct Student{
-
- //本科生和研究生都具有的属性
- int studentID; // 学号
- char name[20]; // 姓名
- char sex[4]; // 性别
- char major[20]; // 专业
- char Class[20]; // 班级
- float Sum_score; // 总成绩
- struct Student *pNext;
- }S, *PS;
- // 研究生链
- typedef struct Student_Graduate {
- struct Student s;
- // 研究生有额外属性
- char Yanjiufangxiang[10]; // 研究方向
- char Teacher[10]; // 导师
- float Zonghe_score; // 综合成绩
- float Lunwen_score; // 论文成绩
- struct Student_Graduate *pNext; // 指针域
- }SG,*PSG;
- // 本科生链
- typedef struct Student_Benke {
- struct Student s;
- // 本科生有额外属性
- float Gaoshu_score; // 高数成绩
- float Yingyu_score; // 英语成绩
- float C_score; // C语言成绩
- struct Student_Benke *pNext; // 指针域
- }SB, *PSB;
复制代码
至于分班, 也很简单啊~ 按照我的理解。 班级这项元素就可以成为你的突破点~ 班级索引号相同的节点,显而易见的就是一个班的~遍历一遍链表就出来了~ 要是觉得不好操作~ 就再写一条链子。。。在输入的时候就把班分了~然后排个序~冒泡简单吧~
至于校级排名~照葫芦画瓢呗~ |
|