- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构我的课程设计说明书
目 录
摘 要 1
前 言 2
正 文 3
1. 问题描述 3
2. 采用类c语言定义相关的数据类型 3
3. 各模块的伪码算法 3
4. 函数的调用关系图 3
5. 调试分析和测试结果 3
6. 软件使用说明书 3
设 计 总 结 4
参考文献 5
致 谢 6
附件Ⅰ 基本算法实现 7
摘 要
学生成绩管理涉及到的算法都是以链表或顺序表的基本运算作为基础的,此程序包括:添加学生成绩,查询学生成绩,修改学生成绩,,删除学生成绩,求各科平均分,根据学生各科成绩平均分排序,
查询学生所有成绩输出显示的功能。通过链表存储结构实现数据的输入,实现各子程序过程的演示,对异常输入信息报错。
关键词:学生成绩管理的演示:学生成绩管理库的建立,学生成绩的删除,查找,添加,修改和排序,学生添加删除,修改查询,以及添加课程。
前 言
很多涉及学生成绩管理操作的算法都是以链表操作为基础,通过链表的建立,结点添加、查询与删除的演示,方便在学习中更好的理解链表结点的添加、查询、删除的过程。
通过对链表的建立,结点添加、查询与删除的演示,我们在对一些问题进行求解时,会发现有些问题很难找到规律,或者根本无规律可寻。对于这样的问题,可以利用计算机运算速度快的特点,先有哪些信誉好的足球投注网站查找所有可能出现的情况,再根据题目条件从所有可能的情况中,删除那些不符合条件的结点。
在链表的建立算法中,在链表的第一个结点之前附设一个结点,称之为头结点。头结点的数据域可以不存储任何信息,也可存储如线性表的长度等类的附加信息,头结点的指针域存储指向第一个结点的指针。在插入结点的过程中,首先要生成一个数据域为X的结点,然后插入在链表中。根据插入操作的逻辑定义,还需要修改结点的指针域。在删除结点的过程中,首先查找到要删除的结点,然后删除,再修改结点的指针域。
总之,在一单链表中插入或删除一个结点算法实现时,仅需修改指针而不需要移动元素,因此它没有顺序存储结构所具有的弱点,所以在计算机实现多种算法中得到了广泛的应用。
正 文
问题描述
该设计要求学生以算法与数据结构课程成绩管理为背景,设计出一个简单的能够实现成绩管理功能的系统。通过该题目的设计过程,可以加深理解线性表、查找表的逻辑结构、存储结构,掌握查找、排序等基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。
采用类c语言定义相关的数据类型
学生成绩管理系统的功能实现如下:
使用链表存储结构实现数据的输入
使用顺序查找实现各数据的查找
根据文字提示进行功能调用
D.对有异常的输入报错并重新输入
(1)定义学生课程结构体的链表:
struct kecheng{
char kechengname[10];
float data;
struct kecheng *next;
};
(2)定义学生结构体的链表:
struct student1 {
char classname[9];
char name[9];
char number[9];
kecheng *ke;
};
(2)定义操作对象结构体的链表:
typedef struct student2{ //建立操作对象结构体
student1 stu;
struct student2 *next;
}student2,stud;
各模块的伪码算法
添加学生
void student::input() //增加学生至连表尾
{
stud *p;
system(cls);
int j=0;
stud *s;
if(head!=NULL) //判断头指针是否为空
{
p=head;
while(1)
{
if(p-next==NULL)
break;
p=p-next;
}
}
char flag=y;
while(flag==y) //创建连链表
{
s=(stud*)malloc(sizeof(stud));s-next=NULL;s-stu.ke=initkecheng();
cout班 级 姓 名 学 号 ; //输入提示信息
kecheng *p1;p1=s-stu.ke;
while(1)
{
coutp1-kechengname ;
p1=p1-next;
if(p1-next==NULL)
break;
}
coutendl;
cins-stu.cla
文档评论(0)