急啊!!!请c++高手来帮个忙,编下这道题:

来源:百度知道 编辑:UC知道 时间:2024/06/21 11:41:47
线性表的建立、插入、删除、查找、排序的综合练习
一个班级的十个学生如下表:
学号 姓名 性别 专业 数学 计算机 语文 英语
0103001 赵庆 男 外贸 80 91 75 77
0103002 李芳 女 外贸 82 100 77 74
0101019 张峰 男 中文 92 88 89 73
9901009 王刚 男 中文 75 75 79 76
0108015 黄欣 女 数学 88 91 90 77
0008035 周鹏 男 数学 80 85 93 80
9909010 孙欣 女 计算机 70 95 65 83
0109039 李苑 女 计算机 60 88 75 90
9909018 钟铭 女 计算机 75 75 85 78
9902010 朱峰 男 英语 91 70 90 61
要求:
1.建立一个顺序表,从键盘输入10个学生的数据,并将其打印出来。
2.查找计算机成绩为88分的学生,打印出该学生的全部资料。
3.按学生姓名排序,打印出排序后的学生姓名顺序。
4.用冒泡法对计算机成绩按升序排序。打印结果
是用顺序表做,不用单链表

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define MAX 2

//-----------线性表的单链表存储结构-------------
typedef struct Node{
char num[10];
char name[20];
char sex[3];
char part[20];
int score[4];
struct Node *next;
} *LNode, *LinkList;
//----------线性表的单链表基本操作------------
LinkList Create(void); //建立一个顺序表,从键盘输入10个学生的数据
LinkList InitList(void); //构造一个空的线性表
void Print(LinkList L);//打印链表
LNode NewLNode();//构造一个新结点
LNode FindPrefious(int X, LinkList L);
//初始条件:线性表L已存在。 操作结果:在线性表L中寻找值为X的结点,若找到则返回该结点的前驱,否则返回NULL。
void ListInsert(LNode Pre, LNode S);
//初始条件:线性表L中结点P已找到,新结点S已构造。 操作结果:在该结点之前插入新结点S。
LinkList SortByScore(LinkList L);//选择排序对计算机成绩按升序排序
LinkList SortByName(LinkList L);//选择排序按姓名字典序排序

int main(void)
{
int i;
LNode p, Head = Create(); //建立一个顺序表,从键盘输入10个学生的数据
Print(Head);//打印链表