1、综合题目(抽中的题目)n 学生成绩管理(用顺序表)n 问题描述:本例对学生的成绩管理做一个简单的模拟,主要完成下列功能:登记学生成绩;查询学生成绩;插入学生成绩;删除学生成绩。n 算法输入:操作要求,学生信息n 算法输出:操作结果n 算法要点:把问题看成是对线性表的操作。将学生成绩组织成顺序表,则登记学生成绩即是建立顺序表操作;查询学生成绩、插入学生成绩、删除学生成绩即是在顺序表中进行查找、插入和删除操作。采用存储结构及定义n 顺序存储结构#define LIST_INIT_SIZE 100#define LISTINCREMENT 10Typedef struct ElemType *ele
2、m;int length;int listsize;SqList;ADTADT List数据对象: D=ai ai ElemSet, i=1,2,n,n=0数据关系: R1= ai-1,ai D,i=2,n 基本操作:InitList(&L)操作结果:构造一个空的线性表 LListInsert(&L,I,e)初始条件:线性表已存在, 1=i=ListLength(L)+1。操作结果:在 L中第 i个位置之前插入新的数据元素 e, L的长度加 1。ListDelete(&L,i,&e)初始条件:线性表已存在且非空, 1=i=ListLength(L)。操作结果:删除 L的第 i个数据元素,并用
3、e返回其值, L的长度减 1。ADTListEmpty(L)初始条件:线性表已存在。操作结果:若 L为空表,则返回 TRUE,否则返回 FALSE。GetElem(L,i,&e)初始条件:线性表已存在, 1=i=ListLength(L)。操作结果:用 e返回 L中第 i个数据元素的值。ListTraverse(L,visit()初始条件:线性表已存在。操作结果:依次对 L的每个数据元素调用函数 visit()。一旦 visit()失败,则操作失败。ADTLocateElem(L,e,compare()初始条件:线性表已存在, compare()是数据元素判定函数操作结果:返回 L中第 1个与 e满足关系 compare()的数据元素的位序。若这样的数据元素不存在,则返回值为 0。主要算法流程程序演示n 以下是程序演示n 学生成绩管理程序