数据结构课程设计报告_学生成绩管理系统
西北工业大学
数据结构课程设计报告
: 学生成绩管理系统
系(院): 理学 院
专 业: 信息与计算科学
班 级:
姓 名: 。。。。。 学 号: 2010302676
指导教师: 佘红伟
学年学期: 2011 ~ 2012 学年 第 2 学期
2012 年 07 月 11 日
目录
一、需求分析3
1,系统需求3
2,开发环境4
二、概要设计4
三、详细设计5
?元素类型,结点类型和指针类型6
?主函数和其他函数的伪码算法7
?系统流程图8
四、调试分析9
五、用户手册10
六、测试结果11
七、参考文献:12
需求分析
1,系统需求
(1)以单链表的结点p表示学生,其中p->num表示学号,p->name表示姓名,p->score表示分数,p->total表示总分。学生人数没有限制,由用户随意设定。该系统实现对若干个大学生的学习成绩进行管理。包括以下信息:学号、姓名、科目、成绩,总排名。
(2)程序命令执行
1.登记成绩
2.查询成绩
3.插入成绩
4.删除成绩
5.成绩排序
6.输出所有学生成绩
7.退出程序
(3)输入输出的形式
本系统是一个学生成绩管理系统,采用编译器作为开发环境,这个环境是我们在学习C++的平台i =1, 2, … …, n, n≥0 }
数据关系:R1 = { < ai-1 , ai > | ai-1 , ai ∈ D, i =2, … …, n }
基本操作:
InitList (&L )
操作结果:构造一个空的线性表L 。
DestoryList (&L)
初始条件:线性表L已存在。
操作结果:销毁线性表L。
ClearList (&L)
初始条件:线性表L已存在。
操作结果:将L重置为空表。
ListEmpty (L)
初始条件:线性表L已存在。
操作结果:若L 为空表,则返回TRUE,否则返回 FALSE。
ListLength (L)
初始条件:线性表L已存在。
操作结果:返回L中数据元素个数。
GetElem ( L, i, &e )
初始条件:线性表L已存在,1≤i≤ListLength(L)+1。
操作结果:用e返回L中第i个数据元素的值。
LocateElem ( L,e, compare() )
初始条件:线性表L已存在,compare()是判定函数。
操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。若这样的数据元素不存在,则返回值0。
PriorElem ( L, cur_e, &pre_e )
初始条件:线性表L已存在。
操作结果:若cur_e是L的数据元素且不是第1个,则用pre_e返回它的前驱,否则操作失败。
NextElem ( L, cur_e, &next_e )
初始条件:线性表L已存在。
操作结果:若cur_e是L的数据元素且不是最后一个,则用next_e返回它的后继,否则操作失败。
ListInsert ( &L, i, e )
初始条件:线性表L已存在,1≤i≤ListLength(L)+1。
操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。
ListDelete( &L, i, &e )
初始条件:线性表L已存在且非空,1≤i≤ListLength(L)。
操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1。
ListTraverse ( L,visit())
初始条件:线性表L已存在。
操作结果:依次对L的每个数据元素调用函数 visit()。一旦visit()失败,则操作失败。
} ADT List
本程序主要包含三个模块
1)主程序模块:
void main()
{
初始化;
while(1)
{
switch(命令)
{
case 接受命令;
处理命令;break;
}
}
}
2)单链表模块—实现单链表抽象类型
3)学生成绩管理模块—实现学生成绩管理系统
各模块之间的调用关系如下:
主程序模块
学生成绩管理模块
单链表模块
详细设计
元素类型,结点类型和指