大数据结构课程设计

大数据结构课程设计
大数据结构课程设计

数据结构课程设计

题目:城市链表的设计与实现

二叉排序树基本操作的实现年级专业:09计算机科学与技术

姓名:戗

学号:E10914049

城市链表的设计与实现

I.设计要求

1.问题描述

将若干城市信息,存入一个带头结点的单链表。节点中的城市信息包括城市名、城市位置坐标、城市人口、城市面积、城市特色等。要求能够利用城市名和

位置坐标来进行查找、插入、删除、更新等操作。

2.需求分析

1)给定一个城市名,返回其位置坐标。

2)给定一个中心位置坐标p和一个距离d,返回所以与p距离小于等于d

的城市。

II.概要设计

为了实现需求分析中的功能,可以从以下3方面着手设计。

1.主界面设计

为了实现城市链表的基本操作,设计一个包含多个菜单选项的主控制子程序以实现城市链表的各项子功能,方便用户的使用。本系统的主控制菜单运行界面如图1所示。

图1城市链表的主菜单

2.存储结构的设计

本程序主要采链表结构类型来表示城市链表的信息。其中二叉树节点由7分量组成:城市的名称、城市的位的横坐标、城市位置的纵坐标、城市的面积、城市的人口、城市的特色,及指向自己结构体的指针。

3.系统功能设计

本程序设置了6个子功能菜单,其设计如下。

1)建立城市链表。根据系统提示,选择功能项1,并根据提示逐个输入城市的名

称、位置坐标、人口、面积、特色等。该功能由void Create()函数实现。

2)显示全部城市信息。根据系统提示,选择功能项2,即可显示全部的城市信息。

该功能由print()函数实现。

3)插入新的城市界节点信息。根据系统提示选择功能项3,可每次插入一个节点

信息,如果要插入多个城市信息,需多次选择传插入功能。该功能由Insert ()

函数实现。

4)查询城市的信息。选择功能项4,进入查询菜单,有两种查询方式。一是跟根

据城市名称查询,二是根据城市的位置坐标的距离查询。该功能由

Searchmenu ()和void Searchname()及void Searchposition()函数实现。

5)更新城市链表中不正确后过时的信息。可以通过城市名称查询到该节点,再

以此输入城市名称坐标、人口、面积、特色等属性。该功能由void UpdateCity()

实现。

6)删除城市链表的节点信息。根据提示可以对城市链表中不需要的节点进行删

除,删除的方式是输入城市名称,查询到该节点后删除。该功能由void Delete

()函数实现。

III.模块设计

1.模块设计

本程序包含两个模块:主程序模块和二叉排序树操作模块。其调用关系如图2

图2模块调用示意图

2.系统子程序及其功能设计

本系统共设计了9个子程序,个程序的的函数名及其功能说明如下:

1)void Init(Citylist LHead);//创建头指针

2)void Create(Citylist LHead);//创建城市链表

3)int print(Citylist LHead);//显示全部信息

4)void Insert(Citylist LHead);//插入新城市信息

5)int Searchmenu(Citylist LHead);//查询查询菜单

6)void Searchname(Citylist LHead);//按名称查询

7)void Searchposition(Citylist LHead);//按坐标查询

8)void UpdateCity(Citylist LHead);//更新城市信息

9)void Delete(Citylist LHead);//删除城市信息

3.函数主要的调用关系

本系统9个子程序见的主要调用关系图3.

Searchname

IV.详细设计

1.数据类型定义

本系统采用链表结构存储城市节点信息,节点定义如下:

typedef struct Citynode{

char cityName[30];//名称

float x;//横坐标

float y;//纵坐标

int citypopulation;//人口

float cityarea;//面积

char citycharacteristic[50];//特色

struct Citynode *Next;

}Citynode,*Citylist;

2.主要子程序的详细设计

1)城市链表的创建函数,主要用来建立城市链表。

void Create(Citylist LHead)

{

int n;

printf("请输入要创建的链表的城市个数:");

scanf("%d",&n);

for(int i=0;i

2)城市链表的插入函数如下:

void Insert(Citylist LHead)

{

Citylist newNode;

char m;

newNode = (Citylist )malloc(sizeof(Citynode));

if(newNode == NULL)

{

printf("存分配失败\n");

return;

}

printf("请输入城市名: \t");

scanf("%s",newNode->cityName);

printf("请输入城市坐标x,y:\t");

scanf("%f%c%f",&newNode->x,&m,&newNode->y);

printf("请输入城市的人口(万): \t");

scanf("%d",&newNode->citypopulation);

printf("请输入城市的面积(平方公里): \t");

scanf("%f",&newNode->cityarea);

printf("请输入城市的特色: \t");

scanf("%s",newNode->citycharacteristic);

while(LHead->Next != NULL)

LHead = LHead->Next;

newNode->Next = LHead->Next;

LHead->Next = newNode;

}

3)城市信息查询函数如下:

/********************根据名称查询********************/

void Searchname(Citylist LHead)

{

Citylist p=LHead;

char sname[30];

if(p->Next)

{

printf("请输入您要搜索的城市名称\n");

scanf("%s",sname);

while(p->Next != NULL && strcmp(p->Next->cityName,sname)) {

p = p->Next;

}

if(p->Next == NULL)

{

printf("您要搜索的城市不存在\n");

return;

}

printf("城市坐标为:<%.f,%.f>\n",p->Next->x,p->Next->y);

}

else

{

printf("链表未建立,请先建立链表\n");

}

}

/***************根据坐标查询********************/

void Searchposition(Citylist LHead)

{

char m;

float x1;

float y1;

Citylist p=LHead;

int distance;

if(p->Next)

{

printf("请输入中心坐标x,y\n");

scanf("%f%c%f",&x1,&m,&y1);

printf("请输入距离:");

scanf("%d",&distance);

printf("距中心坐标<%.f,%.f>的城市的距离为",x1,y1);

printf("%d的城市有:\n",distance);

p = p->Next;

while(p != NULL)

{

if((x1-p->x)*(x1-p->x) + (y1-p->y)*(y1-p->y) <= distance*distance)

{

printf("%s\t",p->cityName);

printf("<%.f,%.f>\n",p->x,p->y);

}

p = p->Next;

}

}

else

{

printf("链表未建立,请先建立链表\n");

}

}

V.测试分析

1.城市链表的建立

首先进入主菜单,如图1。在主菜单下,用户根据菜单的选项输入1,然后按照提示依次输入城市节点的属性。运行的结果如图4.

图4城市链表的建立

2.打印城市链表的所有节点信息

在主菜单下,用户选择2,可以打印出全部的节点信息。运行的结果如图5.

图5全部节点信息

3.插入节点信息信息

在主菜单下,用户选择3,可以插入一个新的节点信息。运行的结果如图6.

图6插入新的节点

4.删除城市链表的节点信息

在主菜单下,用户选择6,首先通过输入关键字查询相关信息。运行的结果如图7.

图7删除节点信息

5.查找城市链表的节点

在主菜单下,用户选择4,进入查找菜单,有两种查询方式。运行的结果如图

8.和图9。

图8按城市名称查找节点信息

图9按城市位置和距离查找

VI.原程序清单

#include

#include

#include

#include

/*********城市链表**********/

typedef struct Citynode{

char cityName[30];//名称

float x;//横坐标

float y;//纵坐标

int citypopulation;//人口

float cityarea;//面积

char citycharacteristic[50];//特色

struct Citynode *Next;

}Citynode,*Citylist;

void Init(Citylist LHead);//创建头指针

void Create(Citylist LHead);//创建城市链表

int print(Citylist LHead);//显示全部信息

void Insert(Citylist LHead);//插入新城市信息

int Searchmenu(Citylist LHead);//查询查询菜单void Searchname(Citylist LHead);//按名称查询void Searchposition(Citylist LHead);//按坐标查询void UpdateCity(Citylist LHead);//更新城市信息void Delete(Citylist LHead);//删除城市信息

/*************初始化**************/

void Init(Citylist LHead)

{

LHead->Next = NULL;

}

/****************创建城市链表***************/

void Create(Citylist LHead)

{

int n;

printf("请输入要创建的链表的城市个数:");

scanf("%d",&n);

for(int i=0;i

/*************插入城市信息**************/

void Insert(Citylist LHead)

{

Citylist newNode;

char m;

newNode = (Citylist )malloc(sizeof(Citynode));

if(newNode == NULL)

{

printf("存分配失败\n");

return;

}

printf("请输入城市名: \t");

scanf("%s",newNode->cityName);

printf("请输入城市坐标x,y:\t");

scanf("%f%c%f",&newNode->x,&m,&newNode->y);

printf("请输入城市的人口(万): \t");

scanf("%d",&newNode->citypopulation);

printf("请输入城市的面积(平方公里): \t");

scanf("%f",&newNode->cityarea);

printf("请输入城市的特色: \t");

scanf("%s",newNode->citycharacteristic);

while(LHead->Next != NULL)

LHead = LHead->Next;

newNode->Next = LHead->Next;

LHead->Next = newNode;

}

/*************显示全部城市信息***********/

int print(Citylist LHead)

{

Citylist p=LHead;

if(p->Next)

{

p=p->Next;

printf(" 全部城市信息为:\n");

printf("*********************************\n");

printf("名称\t坐标\t人口\t面积\t特色\n");

while(p)

{

printf("%s\t",p->cityName);

printf("(%.f,%.f)\t",p->x,p->y);

printf("%d\t",p->citypopulation);

printf("%.f\t",p->cityarea);

printf("%s\n",p->citycharacteristic);

p = p->Next;

}

}

else

{

printf("链表未建立,请先建立链表\n");

}

return 0;

}

/*******************查询城市信息********************/

int Searchmenu(Citylist LHead)

{

Citylist p=LHead;

int s;

printf("##################################\n");

printf("| 查询菜单|\n");

printf("|————————————————|\n");

printf("| 1.按名称查询|\n");

printf("| 2.按坐标查询|\n");

printf("| 3.返回上级菜单|\n");

printf("#################################\n");

scanf("%d",&s);

switch(s)

{

case 1:Searchname(p);break;

case 2:Searchposition(p);break;

case 3:break;

default:printf("输入错误,请重新输入\n");break;

}

return 0;

}

/********************根据名称查询********************/

void Searchname(Citylist LHead)

{

Citylist p=LHead;

char sname[30];

if(p->Next)

{

printf("请输入您要搜索的城市名称\n");

scanf("%s",sname);

while(p->Next != NULL && strcmp(p->Next->cityName,sname)) {

p = p->Next;

}

if(p->Next == NULL)

{

printf("您要搜索的城市不存在\n");

return;

}

printf("城市坐标为:<%.f,%.f>\n",p->Next->x,p->Next->y);

}

else

{

printf("链表未建立,请先建立链表\n");

}

}

/***************根据坐标查询********************/

void Searchposition(Citylist LHead)

{

char m;

float x1;

float y1;

Citylist p=LHead;

int distance;

if(p->Next)

{

printf("请输入中心坐标x,y\n");

scanf("%f%c%f",&x1,&m,&y1);

printf("请输入距离:");

scanf("%d",&distance);

printf("距中心坐标<%.f,%.f>的城市的距离为",x1,y1);

printf("%d的城市有:\n",distance);

p = p->Next;

while(p != NULL)

{

if((x1-p->x)*(x1-p->x) + (y1-p->y)*(y1-p->y) <= distance*distance)

{

printf("%s\t",p->cityName);

printf("<%.f,%.f>\n",p->x,p->y);

}

p = p->Next;

}

}

else

{

printf("链表未建立,请先建立链表\n");

}

}

/****************更新城市******************/

void UpdateCity(Citylist LHead)

{

char updname[30];

printf("请输入您要更新的城市名:\n");

数据结构课程设计

1.一元稀疏多项式计算器 [问题描述] 设计一个一元稀疏多项式简单计算器。 [基本要求] 输入并建立多项式; 输出多项式,输出形式为整数序列:n, c1, e1, c2, e2,……, cn, en ,其中n是多项式的项数,ci, ei分别是第i项的系数和指数,序列按指数降序排序; 多项式a和b相加,建立多项式a+b; 多项式a和b相减,建立多项式a-b; [测试数据] (2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9-x+12x-3) (1+x+x2+x3+x4+x5)+(-x3-x4)=(x5+x2+x+1) (x+x3)+(-x-x3)=0 (x+x2+x3)+0=(x3+x2+x) [实现提示] 用带头结点的单链表存储多项式,多项式的项数存放在头结点中。 2.背包问题的求解 [问题描述] 假设有一个能装入总体积为T的背包和n件体积分别为w1, w2, …,wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积为{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)、(3,5,2) [实现提示] 可利用回溯法的设计思想来解决背包问题。首先,将物品排成一列,然后顺序选取物品转入背包,假设已选取了前i件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直至求得满足条件的解,或者无解。 由于回溯求解的规则是“后进先出”因此自然要用到栈。 3.完全二叉树判断 用一个二叉链表存储的二叉树,判断其是否是完全二叉树。 4.最小生成树求解(1人) 任意创建一个图,利用克鲁斯卡尔算法,求出该图的最小生成树。 5.最小生成树求解(1人) 任意创建一个图,利用普里姆算法,求出该图的最小生成树。 6.树状显示二叉树 编写函数displaytree(二叉树的根指针,数据值宽度,屏幕的宽度)输出树的直观示意图。输出的二叉树是垂直打印的,同层的节点在同一行上。 [问题描述] 假设数据宽度datawidth=2,而屏幕宽度screenwidth为64=26,假设节点的输出位置用 (层号,须打印的空格数)来界定。 第0层:根在(0,32)处输出;

数据结构课程设计题目

数据结构课程设计 一、教学目的和要求 课程设计是加强学生实践能力的一个强有力手段。综合课设 1主要针对数据结构和 C/C++语言开展 的实践性课程。要求学生掌握数据结构的应用、算法的编写、类 C 语言的算法转换成 C ( C++)程序并 上机调试的基本方法。 课程设计要求学生在完成程序设计的同时能够写出比较规范的课程设计报告。 培 养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。 、课程设计要求 1、 选好题目: 每题一人, 每班每个题目只允许一人选做 ,学习委员将选题情况在课设第一天统计上交。 2、 课设报告 独立思考,独立完成: 课设报告出现雷同超过 60% ,不论什么原因,一律不及格。 班和班之间,相同题目的同学,可以组成小组,相互讨论,共同完成课程设计中各任务的设计和调试 要求。小组成员间, 算法思路可以相同, 程序可以类似, 但不能完全一样。 课设报告不能雷同超过 60% 。 3、 做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置 方法,准备好有关的文件。 4、 设计要点: ⑴需求分析: 在该部分中叙述总共几个模块,每个模块的功能要求。 ⑵系统设计 总体设计:定义某个数据结构的抽象数据类型及其他算法的功能说明。 详细设计:在此定义存储结构,每个部分的算法设计说明(建议描述算法采用流程图) 。 ⑶编码实现 各个算法实现的源程序,对每个题目要有相应的源程序(每个功能模块采用不同的函数实现) 。源程 序要按照程序的规则来编写, 要结构清晰, 重点函数的重点变量, 重点功能部分要加上清晰的程序注释。 程序能够运行,要有基本的容错功能,尽量避免出现操作失误时出现死循环。 ⑷调试分析 给出实现功能的一组或多组测试数据, 程序调试后, 将按照此测试数据进行测试的结果列出来。 时间 复杂度分析,每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?) ,算法的改进设 想。 ⑸课设总结: 课程设计过程的收获、 遇到问题、 遇到问题解决问题过程的思考、 程序调试能力的思考、 对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。 5、 实现的结果必须进行检查和演示; 程序源代码和程序的说明文件必须上交, 作为考核内容的一部分; (上交时文件夹的取名规则为: “课设题目( *** 设计完成) ”,如“资源管理系统的设计与实现(张三设 计完成) ”。该文件夹下包括三个目录: “源代码 ”、 “可执行文件 ”、 “张三 _课程设计报告 ”。由学习委员 按规定时间统一上交) 。 6、报告提交 形式:纸介质(要求B5纸张打印,加封皮)和电子文档。 三、考核方法和内容 根据课程设计过程中学生的学生态度、 题目完成情况、 课程设计报告书的质量和回答问题的情况等 按照 10%、 40%、 30%、 20% 加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。 评分标准: 任务书( 签名,把题目要求贴在相应位置,注意下划线 ) ---------- 目录(注意目录的格式,页码) -------- 1、设 计任务( 题目要求 ) ---- 2 、需求分析( 准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪 些函数?为什么要这样设计?最后列出抽象数据类型定义 ) ----------- 3 、系统设计( 设计实现抽象数据类型, 包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程 图等 ) 4 、编码实 现( 重要函数的实现代码 ) --------------------------- 5 、调试分析( 选择多组测试数据、运行截图、结 果分析 ) ---- 6、课设总结( 心得体会 ) ----- 7 、谢辞 8 、参考文献; 课设报告打印要求: B5纸张打印,报告总页数控制在 10—15页内,报告中不能全是代码, 报告中代码总量控制在150行内。 版式:无页眉,有页码,页码居中 优秀: 答辩所有问题都能答出 良好: 答辩所有问题都能答出 中等: 答辩大部分问题能答出 及格: 答辩大部分问题能答出 不及格:答辩几乎答不出问题 课设报告的装订顺序如下: + 报告良好 +报告一般 + 报告良好 +报告一般 或者 报告几乎都是代码 或者 雷同部分达到 60%

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

数据结构课程设计报告

山东建筑大学 课程设计成果报告 题目: 1.数组实现两个矩阵的相乘运算 2.成绩分析问题 课程:数据结构A课程设计 院(部):管理工程学院 专业:信息管理与信息系统 班级:信管*** 学生姓名:*** 学号:******** 指导教师:******* 完成日期:2016年12月29日

目录 目录 (2) 一、课程设计概述 (3) 二、课程设计题目一 (3) 用数组实现两个矩阵的相乘运算 (3) 2.1[问题描述] (3) 2.2[要求及提示]: (3) 2.3[详细设计] (4) 2.4[调试分析] (5) 2.5[运行结果及分析] (5) 三、课程设计题目二 (6) 成绩分析问题 (6) 3.1[问题描述] (6) 3.2[概要设计] (6) 3.3[存储结构] (7) 3.4[流程图] (7) 3.5[详细设计] (8) 3.6[调试分析] (8) 3.7[运行结果及分析] (22) 四、参考文献: (25)

一、课程设计概述 本次数据结构课程设计共完成两个题:用数组实现两个矩阵相乘运算、成绩分析问题。使用语言:C 编译环境:vc6.0 二、课程设计题目一 用数组实现两个矩阵的相乘运算 2.1[问题描述] #include “stdio.h” int r[6][6]; void mult(int a[6][6] , int b[6][6]){ } main(){ int i,j; int num1[6][6],num2[6][6]; printf(“请输入第一个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num1[i][j]); printf(“请输入第二个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num2[i][j]); mult(num1,num2); printf(“\n两个矩阵相乘后的结果为:”); for(i=1;i<=6;i++) {for(j=1;j<=6;j++) printf(“%4d”,r[i][j]); printf(“\n”); } } 2.2[要求及提示]: 1、要求完善函数mult( ),

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

数据结构课程设计-学生成绩管理系统

淮阴工学院 数据结构课程设计报告 选题名称:学生成绩管理系统 系(院):数理学院 专业:信息与计算科学 班级:计科1102班 姓名:徐连喜学号: 1104101233 指导教师:周海岩 学年学期:2011 ~ 2012 学年第 1 学期 2012 年06 月06 日

【摘要】 21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速发展和广泛应用,对社会的政治,经济,军事,文化等领域产生越来越深刻。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。本论文叙述到的学生成绩管理系统是用IIS+ASP网页编程+ACCESS数据库+DREAMWEAVER MX 2004+SQL查询语言实现的。重点介绍了学生成绩管理系统的实现过程:包括系统分析,系统调查,功能设计,数据库设计,系统实现,系统测试和调试等。本系统主要功能有查询学生成绩、单个添加学生成绩、批量添加学生成绩、删除学生成绩、管理页面和修改管理员密码等内容。 【关键词】 成绩管理;成绩查询;C++

目录 中文摘要。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 1 1绪论。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 4 1.1 选题背景。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 5 1.2 需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 6 2总体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7 2.1程序设计组成框图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 2.2 模块功能说明。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9 2.3 程序流程图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 2.4 主要函数之间相互调用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 3 在设计过程中的感受。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 致谢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。13 参考文献。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14附录:源程序清单。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15

数据结构课程设计题目选择

数据结构课程设计题目 说明: (1)选用语言:C或Java语言; (2)需要注明3人(可少于3人)小组各自承担和完成的任务(据此给予成绩); (3)如下带“*”的题目,“*”越多,难度越大一些,分值权重更高---要得到更高分数,推荐选择。 要求: (1) 用中文给出设计说明书(含重要子函数的流程图); (2) 给出测试通过、能实现相应功能的源代码; (3) 测试报告。 0、小学数学四则混合运算试题出题、评价、题库自动生成与组卷系统(****)---已经有2组选择 任务: (1)将随机给出的四则混合运算表达式显示在计算机显示器上,要求应试者给出答案;并且使用堆栈对该表达式求值,同给出的答案进行比较,判断 正确和错误。给出鼓励信息和嘉奖信息; (2)保存多人在不同时间应试的题目与他(或她)给出的答案,评价所出题目的难易程度(通过多人回答正确与否的情况给出),形成题库; (3)按照用户给出的题目难易程度指标(例如让50人的得分满足怎样的正态分布,如90分以上10%,80分以上30%,70分以上30%,60分以上20%,60分 以下10%),从题库中抽取不同的题目,组成试卷。 要求:随机产生的题目中,参加运算的数据随机、运算符随机。题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。 1、集合的并、交和差运算---已经有1组选择 任务:编制一个能演示执行集合的并、交和差运算的程序。 要求: (1) 集合的元素限定为小写字母字符[…a?..?z?] 。 (2) 演示程序以用户和计算机的对话方式执行。 实现提示:以链表表示集合。 选作内容: (1) 集合的元素判定和子集判定运算。 (2) 求集合的补集。 (3) 集合的混合运算表达式求值。 (4) 集合的元素类型推广到其他类型,甚至任意类型。 2、停车场管理------已经有2组选择 任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 要求:以栈模拟停车场,以队列模拟车场外的便道。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停车不收费)。栈以顺序存储结构实现,队列以链表结构实现。 3、哈夫曼码的编/译码系统(**)---已经有1组选择

数据结构课程设计报告模板

校园导游系统设计 一、设计要求 1.问题描述 设计一个校园导游程序,为来访的客人提供信息查询服务。 2.需求分析 (1)设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向网),以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。 (2)存放景点代号、名称、简介等信息供用户查询。 (3)为来访客人提供图中任意景点相关信息的查询。 (4)为来访客人提供图中任意景点之间的问路查询。 (5)可以为校园平面图增加或删除景点或边,修改边上的权值等。 二、概要设计 为了实现以上功能,可以从3个方面着手设计。 1.主界面设计 为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如图7-10所示。 2.存储结构设计 本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中:各景点间的邻接关系用图的邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的个数由分量vexnum、arcnum表示,它们是整型数据。 此外,本系统还设置了三个全局变量:visited[ ] 数组用于存储顶点是否被访问标志;d[ ]数组用于存放边上的权值或存储查找路径顶点的编号;campus是一个图结构的全局变量。 3.系统功能设计 本系统除了要完成图的初始化功能外还设置了8个子功能菜单。图的初始化由函数initgraph( )实现。依据读入的图的顶点个数和边的个数,分别初始化图结构中图的顶点向量数组和图的邻接矩阵。8个子功能的设计描述如下。 (1)学校景点介绍 学校景点介绍由函数browsecompus( )实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点简介。 (2)查看浏览路线 查看浏览路线由函数shortestpath_dij( )实现。该功能采用迪杰斯特拉(Dijkstra)算法实现。当用户选择该功能,系统能根据用户输入的起始景点编号,求出从该景点到其它景点的最短路径线路及距离。 (3)查看两景点间最短路径

数据结构课程设计题目及要求

实验一~实验四任选一题;实验五~实验九任选一题。 实验一运动会分数统计 一、实验目的: (1)熟练掌握线性表的两种存储方式 (2)掌握链表的操作和应用。 (3)掌握指针、结构体的应用 (4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。 二、实验内容: 【问题描述】 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 【基本要求】 产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 【测试数据】 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 【实现提示】 可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。 【选作内容】 允许用户指定某些项目可采取其他名次取法。

实验二停车场管理 一、实验目的: (1)熟练掌握栈顺存和链存两种存储方式。 (2)掌握栈的基本操作及应用。 (3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。 二、实验内容: 【问题描述】 设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 【基本要求】 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 【测试数据】 设n=2,输入数据为:(A,1,5),(A,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(Arrival);D表示离去(Departure);E表示输入结束(End)。 【实现提示】 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 【选作内容】 (1)两个栈共享空间,思考应开辟数组的空间是多少? (2)汽车可有不同种类,则他们的占地面积不同收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。(3)汽车可以直接从便道开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。 (4)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改结构以满足这种要求。

数据结构课程设计报告范例

Guangxi University of Science and Technology 课程设计报告 课程名称:算法与编程综合实习 课题名称: 姓名: 学号: 院系:计算机学院 专业班级:通信121 指导教师: 完成日期:2012年12月15日

目录 第1部分课程设计报告 (3) 第1章课程设计目的 (3) 第2章课程设计内容和要求 (4) 2.1 问题描述 (4) 2.2 设计要求 (4) 第3章课程设计总体方案及分析 (4) 3.1 问题分析 (4) 3.2 概要设计 (7) 3.3 详细设计 (7) 3.4 调试分析 (10) 3.5 测试结果 (10) 3.6 参考文献 (12) 第2部分课程设计总结 (13) 附录(源代码) (14)

第1部分课程设计报告 第1章课程设计目的 仅仅认识到队列是一种特殊的线性表是远远不够的,本次实习的目的在于使学生深入了解队列的特征,以便在实际问题背景下灵活运用它,同时还将巩固这种数据结构的构造方………………………………………………………………………………………………………………………………………………………………………………………..(省略)

第2章课程设计内容和要求 2.1问题描述: 迷宫问题是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口走到出口,而不走错一步。老鼠经过多次试验最终学会走通迷宫的路线。设计一个计算机程序对任意设定的矩形迷宫如下图A所示,求出一条从入口到出口的通路,或得出没有通路的结论。 图A 2.2设计要求: 要求设计程序输出如下: (1) 建立一个大小为m×n的任意迷宫(迷宫数据可由用户输入或由程序自动生成),并在屏 幕上显示出来; (2)找出一条通路的二元组(i,j)数据序列,(i,j)表示通路上某一点的坐标。 (3)用一种标志(如数字8)在迷宫中标出该条通路; (4)在屏幕上输出迷宫和通路; (5)上述功能可用菜单选择。

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目2教学计划编制 班级:700 学号:09070026 姓名:尹煜 完成日期:2011年11月7日

一.需求分析 本课设的任务是根据课程之间的先后的顺序,利用拓扑排序算法,设计出教学计划,在七个学期中合理安排所需修的所有课程。 (一)输入形式:文件 文件中存储课程信息,包括课程名称、课程属性、课程学分以及课程之间先修关系。 格式:第一行给出课程数量。大于等于0的整形,无上限。 之后每行按如下格式“高等数学公共基础必修6.0”将每门课程的具体信息存入文件。 课程基本信息存储完毕后,接着给出各门课程之间的关系,把每门课程看成顶点,则关系即为边。 先给出边的数量。大于等于0的整形。 默认课程编号从0开始依次增加。之后每行按如下格式“1 3”存储。此例即为编号为1的课程与编号为3的课程之间有一条边,而1为3的前驱,即修完1课程才能修3课程。 例: (二)输出形式:1.以图形方式显示有向无环图

2.以文本文件形式存储课程安排 (三)课设的功能 1.根据文本文件中存储的课程信息(课程名称、课程属性、课程学分、课程之间关系) 以图形方式输出课程的有向无环图。 拓展:其显示的有向无环图可进行拖拽、拉伸、修改课程名称等操作。 2.对课程进行拓扑排序。 3.根据拓扑排序结果以及课程的学分安排七个学期的课程。 4.安排好的教学计划可以按图形方式显示也可存储在文本文件里供用户查看。 5.点击信息菜单项可显示本人的学好及姓名“09070026 尹煜” (四)测试数据(见六测设结果)

二.概要设计 数据类型的定义: 1.Class Graph即图类采用邻接矩阵的存储结构。类中定义两个二维数组int[][] matrix 和Object[][] adjMat。第一个用来标记两个顶点之间是否有边,为画图服务。第二个 是为了实现核心算法拓扑排序。 2.ArrayList list用来存储课程信息。DrawInfo类是一个辅助画图的类,其中 包括成员变量num、name、shuxing、xuefen分别代表课程的编号、名称、属性、 学分。ArrayList是一个DrawInfo类型的数组,主要用来在ReadFile、DrawG、DrawC、SaveFile、Window这些类之间辅助参数传递,传递课程信息。 3.Class DrawInfo, 包括int num;String name;String shuxing;float xuefen;四个成员变量。 4.Class Edge包括int from;int to;double weight;三个成员变量。 5.Class Vertex包括int value一个成员变量。 主要程序的流程图: //ReadFile.java

数据结构课程设计

课程设计说明书 课程名称:数据结构和算法 设计题目:多种排序 院系:计算机科学与信息工程学院 学生姓名: 学号: 专业班级:计科嵌入式(12-1) 指导教师: 年月日

课程设计任务书 设计题目表达式计算程序设计 学生姓名所在院系计科专业、年级、班12计科(嵌入式)设计要求: 1) 采用如下七种方法实现上述问题求解:插入排序、希尔排序、起泡排序、快速排 序、选择排序、堆排序、归并排序。 2) 统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出 其中两种较快的方法。并将数据序列和不同的查找算法的性能结果记录入txt 文件。 学生应完成的工作: 1. 利用随机函数产生N 个随机整数(10000 以上)。 2. 对这些数字进行排序。 3. 采用插入、希尔、起泡、快速、选择、归并、堆排序方法解决问题。 4. 对不同的排序算法进行性能比较并记录。 参考文献阅读: 1. 《数据结构(C 语言版)》严蔚敏清华大学出版社 2. 《C 语言程序设计》丁峻岭中国铁道出版社 3. 《C 程序设计》谭浩强清华大学出版社 工作计划: 任务下达日期:年月日 任务完成日期:年月日 指导教师(签名):学生(签名):

多种排序 摘要: 排序是算法中最基础的问题之一,经典的排序算法是前人不断总结得到的,基于比较的方法是比较直观的方式,主要存在插入法排序、堆排序、希尔排序、归并排序、快速排序,每一种排序算法都有自己的优缺点,比如插入法排序适用于那些长度短的排序,要是长的话,有些爱莫能助啦,堆排序主要是依据了二叉堆的特性,但是创建堆的过程也是一个复杂的问题,希尔排序的过程是一个不断精确的过程,但是目前也只是一个经验方式。归并排序是一个递归的问题,采用分治的思想实现,但是这种算法需要额外的存储空间,快速排序虽然是实践中比较常用的算法,但是对于有序的数组采用快速排序就是灾难。比较型算法的时间复杂度最优也只能到达O(NlogN)。 关键词: 归并排序快排排序选择排序冒泡排序 插入排序堆排序希尔排序内部排序

最新数据结构课程设计题目

数据结构课程设计 一、考核方法和内容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。评分标准: 优秀:答辩所有问题都能答出+报告良好 或报告良好+实现“提高部分”的功能; 良好:答辩所有问题都能答出+报告一般; 或报告一般+实现“提高部分”的功能; 中等:答辩大部分问题能答出+报告良好; 及格:答辩大部分问题能答出+报告一般; 以下四种,都不及格: 1)答辩几乎答不出问题; 2)报告几乎都是代码; 3)雷同部分达到60%; 4)课设报告与数据结构和c/c++关联不大。 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)-----1、设计任务(题目要求)-----2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)-----3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)----4、编码实现(重要函数的实现代码)-----5、调试分析(选择多组测试数据、运行截图、结果分析)-----6、课设总结(心得体会)-----7、谢辞-----8、参考文献; 课设报告打印要求: B5纸张打印,报告总页数控制在10—15页内,报告中不能全是代码,报告中代码总量控制在3页内。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 二、课程设计的题目 1.长整数的加法运算 2.通讯录管理系统的设计与实现——顺序表 3.广义表的应用 4.学生成绩管理系统的设计与实现 5.家谱管理系统的设计与实现 6.集合的并、交和差运算的程序 7.运动会分数统计 8.一元多项式计算器 9.文章编辑 10.哈夫曼树及其编码 11.校园导游咨询 12.通讯录管理系统的设计与实现——单链表 13.地图着色问题 14.内部排序算法比较 15.火车售票系统 16.图书管理系统 17.客户消费积分管理系统 18.产品进销存管理系统

数据结构课程设计

《数据结构》 课程设计报告 学号 姓名 班级 指导教师 安徽工业大学计算机学院 2010年6月

建立二叉树和线索二叉树 1.问题描述: 分别用以下方法建立二叉树并用图形显示出来: 1)用先序遍历的输入序列 2)用层次遍历的输入序列 3)用先序和中序遍历的结果 2.设计思路: 分三个方式去实现这个程序的功能,第一个实现先序遍历的输入数列建立二叉树;第二个是用层次遍历的方法输入序列;第三个是用先序和后序遍历的结果来建立二叉树;三种方法建立二叉树后都进行输出。关键是将这三个实现功能的函数写出来就行了;最后对所建立的二叉树进行中序线索化,并对此线索树进行中序遍历(不使用栈)。 3.数据结构设计: 该程序的主要目的就是建立二叉树和线索二叉树,所以采用树的存储方式更能完成这个程序; 结点的结构如下: typedef struct bnode { DataType data; int ltag,rtag; struct bnode *lchild, *rchild; } Bnode, *BTree; 4.功能函数设计: BTree CreateBinTree() 用先序遍历的方法讲二叉树建立; BTree CREATREE() 用队列实现层次二叉树的创建; void CreatBT(); 用先序和中序遍历的结果建立二叉树; void InThread(BTree t,BTree pre) 中序线索化; 5.编码实现: #include #include #define max 100 typedef struct bnode { char data; int ltag,rtag; struct bnode *lchild,*rchild; }Bnode,*BTree; BTree Q[max]; BTree CREATREE() { char ch; int front=1,rear=0;

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

关于数据结构课程设计心得体会范文

关于数据结构课程设计心得体会范文 心得体会是指一种读书、实践后所写的感受性文字。是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。下面是小编搜集的关于数据结构课程设计心得体会范文,希望对你有所帮助。 关于数据结构课程设计心得体会(1) 这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。 数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了 c 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。 纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。 刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件

数据结构课程设计

一、高校社团管理 在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。为了有效管理这些社团,要求编写程序实现以下功能:1.社团招收新成员; 2.修改社团相应信息 3.老成员离开社团 4.查询社团情况; 5.统计社团成员数; 二、简单文本编辑器 设计一个文本编辑器,允许将文件读到内存中,也就是存储在一个缓冲区中。这个缓冲区将作为一个类的内嵌对象实现。缓冲区中的每行文本是一个字符串,将每行存储在一个双向链表的结点中,要求设计在缓冲区中的行上执行操作和在单个行中的字符上执行字符串操作的编辑命令。 基本要求: 包含如下命令列。可用大写或小写字母输入。 R:读取文本文件到缓冲区中,缓冲区中以前的任何内容将丢失,当前行是文件的第一行; W:将缓冲区的内容写入文本文件,当前行或缓冲区均不改变。 I:插入单个新行,用户必须在恰当的提示符的响应中键入新行并提供其行号。 D:删除当前行并移到下一行; F:可以从第1行开始或从当前行开始,查找包含有用户请求的目标串的第一行; C:将用户请求的字符串修改成用户请求的替换文本,可选择是仅在当前行中有效的还是对全文有效的。 Q:退出编辑器,立即结束; H:显示解释所有命令的帮助消息,程序也接受?作为H的替代者。 N:当前行移到下一行,也就是移到缓冲区的下一行; P:当前行移到上一行,也就是移到缓冲区的上一行;

B:当前行移到开始处,也就是移到缓冲区的第一行; E:当前行移到结束处,也就是移到缓冲区的最后一行; G:当前行移到缓冲区中用户指定的行; V:查看缓冲区的全部内容,打印到终端上。 三、电话客户服务模拟 一个模拟时钟提供接听电话服务的时间(以分钟计),然后这个时钟将循环的 自增1(分钟)直到达到指定时间为止。在时钟的每个"时刻",就会执行一次检查来看看对当前电话服务是否已经完成了,如果是,这个电话从电话队列中删除,模 拟服务将从队列中取出下一个电话(如果有的话)继续开始。同时还需要执行一个检查来判断是否有一个新的电话到达。如果是,其到达时间被记录下来,并为其产生一个随机服务时间,这个服务时间也被记录下来,然后这个电话被放入电话队列中,当客户人员空闲时,按照先来先服务的方式处理这个队列。当时钟到达指定时间时,不会再接听新电话,但是服务将继续,直到队列中所偶电话都得到处理为止。 基本要求: (1)程序需要的初始数据包括:客户服务人员的人数,时间限制,电话的到达速率,平均服务时间 (2)程序产生的结果包括:处理的电话数,每个电话的平均等待时间 四、停车场管理 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的交费(从进入便道开始计时)。在这里假设汽车从便道上开走时不收取任何费用 基本要求: (1)汽车的输入信息格式为(到达/离去的标识,汽车牌照号码,到达/离去的时间)

相关文档
最新文档