淮海工学院计算机工程学院课程设计报告数据结构课程设计

合集下载

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

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

课程设计报告课程名称:专业:班级:姓名:学号:成绩:完成日期:年月日任务书摘要本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。

所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。

关键词:黑白棋编程设计目录1.引言 (3)2.课题分析 (6)3.具体设计过程 (7)3.1设计思路 (7)3.2程序设计流程图 (8)3.3.函数实现说明 (12)4.程序运行结果 (14)5.软件使用说明 (18)6.结论 (21)参考文献 (23)1.引言数据结构在计算机科学界至今没有标准的定义。

个人根据各自的理解的不同而有不同的表述方法:Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。

这些联系可以通过定义相关的函数来给出。

”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。

Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是 ADT(抽象数据类型Abstract Data Type)的物理实现。

”Lobert L.Kruse在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。

其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。

淮海工学院大数据结构第一次实验资料报告材料

淮海工学院大数据结构第一次实验资料报告材料

淮海工学院计算机科学系实验报告书课程名:《数据结构》题目:线性数据结构试验班级:软嵌151学号: 2015123352姓名:吉线性表实验报告要求1目的与要求:1)掌握线性表数据结构的基本概念和抽象数据类型描述;2)熟练掌握线性表数据结构的顺序和链式存储存表示;3)熟练掌握线性表顺序存储结构的基本操作算法实现;4)熟练掌握线性表的链式存储结构的基本操作算法实现;5)掌握线性表在实际问题中的应用和基本编程技巧;6)按照实验题目要求独立正确地完成实验容(提交程序清单及相关实验数据与运行结果);7)按照报告格式和容要求,认真书写实验报告,并于下周周二前统一提交实验报告电子版文档(每次实验全体同学必须提交实验报告电子版,实验报告文档文件命名方式:+学号+数据结构第X次实验报告)提交给学委,而后由学委以班为单位统一打包(包文件名为:软件14X 班-数据结构第X次实验报告)用发给老师;提交纸质报告(每班每次收5份,学委安排,保证每学期每个同学至少提交一次)一起提交给老师。

每次提交电子文档时,学委务必统计和上报未交报告人数和具体;凡逾期不交报告者,不再推迟提交,一律按照旷交处理。

8)积极开展实验组组交流和辅导,严禁直接复制和剽窃他人实验成果,一旦发现严肃处理;9)上实验课前,要求每个同学基本写好程序,并存储在自己的U盘上,用于实验课堂操作时调试和运行。

2实验容或题目(在一个主程序中实现全部题目容)一、顺序表的基本操作实现实验要求:数据元素类型ElemType取整型int。

按照顺序存储结构实现如下算法:1)创建任意整数线性表(即线性表的元素值随机在键盘上输入)的顺序存储结构(即顺序表),长度限定在25之;2)打印/显示(遍历)该线性表(依次打印/显示出表中元素值);3)在顺序表中查找第i个元素,并返回其值;4)在顺序表第i个元素之前插入一已知元素;5)在顺序表中删除第i个元素;6)求顺序表中所有元素值(整数)之和;二、链表(带头结点)基本操作实验要求:数据元素类型ElemType取字符型char。

表达式求值实验报告

表达式求值实验报告

淮海工学院计算机工程学院课程设计报告设计名称:数据结构课程设计选题名称:表达式求值姓名:学号:专业班级:系(院):计算机工程学院设计时间:设计地点:软件工程实验室、教室指导教师评语:成绩:签名:年月日1.课程设计目的1、训练学生灵活使用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。

2.课程设计任务和要求:任务根据教材《数据结构-C语言描述》(耿国华主编)和参考书《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择使用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。

设计题目从任务书所列选题表中选取,每班每题不得超过2人。

学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度和难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。

学生自选课题需在18周前报课程设计指导教师批准方可生效。

要求:1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。

前期准备工作完备和否直接影响到后序上机调试工作的效率。

在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。

2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。

3、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。

数据结构课程设计报告

数据结构课程设计报告

《数据结构》课程设计报告姓名:潘庆专业:计算机科学与技术班级: J1401学号: 4141110020指导老师:王新宇2016年1月15日目录一、需求分析 (2)二、设计说明 (3)1. 算法设计的思想 (3)2. 主要的数据结构设计说明 (4)3. 程序的主要流程图 (5)4. 程序的主要模块 (6)5. 程序的主要函数及其伪代码说明 (6)三、上机结果及体会 (13)1.实际完成情况说明 (13)2.程序运行结果及图示 (13)3.问题及解决方案 (16)4.收获及体会 (16)附录(源程序) (17)一、需求分析1. 程序所实现的功能:七种排序算法的演示:(1)直接插入排序;(2)冒泡排序;(3)选择排序;(4)快速排序;(5)归并排序;(6)堆排序;(7)基数排序。

要求:(1)设计一个人机交互界面;(2)给出从初始开始时每一趟排序的结果。

2. 程序的输入:用户开始时自行输入排序个数和具体数字(须为整数)void input_int(SqList &L){int i;printf("请输入排序个数:");scanf("%d",&L.length);printf("请输入%d个整数:",L.length);for(i=1;i<=L.length;i++)scanf("%d",&L.r[i].key);}3. 程序的输出:用户选择具体排序方法后,程序将每一趟排序的输出结果一次性输出,最后一趟即为最终排序结果void output_int(SqList L){int i;for(i=1;i<=L.length;i++)printf("%d ",L.r[i].key);}4. 测试数据:12 2 16 30 8 28 4 10 20 6 18二、设计说明1. 算法设计的思想(1). 插入排序基本思路:向有序表中插入新的元素(或记录),使之仍有序,此时表的长度也相应地发生变化。

车牌号管理系统

车牌号管理系统

车牌号管理系统淮海工学院计算机工程学院课程设计报告设计名称: 数据结构课程设计选题名称: 车牌号管理系统姓名: 学号:专业班级: 软件工程系 (院): 计算机工程学院设计时间: 2011.12.19~2011.12.30 设计地点: 软件工程实验室、教室指导教师评语:成绩:签名:年月日数据结构课程设计报告第 1 页,共页1(课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。

2(课程设计任务与要求:任务根据教材《数据结构-C语言描述》(耿国华主编)和参考书《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。

设计题目从任务书所列选题表中选取,每班每题不得超过2人。

学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。

学生自选课题需在18周前报课程设计指导教师批准方可生效。

要求:1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。

前期准备工作完备与否直接影响到后序上机调试工作的效率。

在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。

2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。

3、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。

6数据结构课程设计报告

6数据结构课程设计报告
淮阴工学院 数据结构课程设计报告
选题名称:
五子棋人机对战
系(院):
计算机工程学院
专 业:
计算机科学与技术
班 级:
姓 名:
学 号:
指导教师: 周海岩 单劲松
学年学期: 2012 ~ 2013 学年 第 1 学期
2012 年 12 月 20 日
1
设计任务书
课题 名称
1.掌握关键数据结构,如线性表、树、图建立过程及操作算法;
7
一个获胜组合。这样一直到最后一种为(1,15),(1,16),(1,17),(1,18), (1,19)这五个格子组成一个获胜组合。即第一行有 15 种获胜的组合。总的有 19 行。可得,对于行中,我们有 19X15=285 种获胜组合。
3.2.2 计算垂直方向的获胜组合数
同理对于垂直的获胜组合中第一种为第一列的 1,2,3,4,5 可组成一个获 胜组合。总的获胜组合也是 19X15=285 种。
3.1 系统流程图
程序流程图如图 3-1 所示。首先看到的界面是我们熟悉的棋盘。可看到下面 有一行文字。当用户按 F1 时,则游戏开始,这时用户先下子。电脑此时先根据 算法计算下,是否和棋,是否电脑获胜,是否玩家获胜,若有一种情况发生,则 进入暂停阶段,此时下子则无效,电脑显示相应的结果,否则电脑就根据自己的 得分算法,计算出最佳位置。电脑下子了后,则电脑继续判断是否和棋,是否电 脑获胜,是否玩家获胜,若有一种情况发生,同样进入到暂停阶段,显示相应的 结果。若用户按了 F12,则整个系统退出结束。若在开始后,又按了 F11,则显 示提示功能。这对于新手来说是很好的功能。
3.2.4 计算反斜方向的获胜组合数
依据上一种正斜,同理可推知反斜也有 15X15=225 种。

淮海工学院数据结构第二次实验

淮海工学院数据结构第二次实验

淮海工学院计算机科学系实验报告书课程名:《数据结构》题目:线性数据结构实验(栈与队列及其应用)班级:软嵌151学号:2015123352姓名:韩吉线性表算法实现与应用报告要求1目的与要求:1)掌握栈与队列的数据类型描述及特点;2)掌握栈的顺序和链式存储存表示与基本算法的实现;3)掌握队列的链式和循环存储表示与基本操作算法实现;4) 掌握栈与队列在实际问题中的应用和基本编程技巧;5)按照实验题目要求,独立完成实际程序的编写编写、调试和运行,并通过用例的运行过程抓获相关屏面验证程序设计的正确性;7)希望大家过一个丰富多彩的国庆节,抽出一定时间圆满完成实验,并于第6周周二以前按时提交实验报告,逾期按照旷交处理。

2 实验内容或题目(一)必做题:1、实现顺序栈的创建(初始化)、压入(插入)操作(数据、弹出(删除)元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并给出栈的每次操作变化状态;2、实现链栈的创建(初始化)、压入(插入)、弹出(删除)操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),要求给出栈的操作变化过程;3、实现循环队列的创建、进队、出队等基本操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并实时给出队列的操作变化状态;4、实现链式队列的创建、进队、出队等基本操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并实时给出队列的操作变化状态;(注意:必做题需用一个主程序实现所有功能)(二)选做题(视自己能力而定,数量不限):任选下列一个或多个栈或队列应用源程序(已经发给学委),并阅读、调试和运行程序,而后给出程序功能分析和实例运行演示;1、实现表达式求值算法程序;2、用递归算法实现汉诺塔问题算法程序;3、使用循环队列实现打印杨辉三角形算法程序。

3 实验步骤与源程序#include<stdio.h>#include<stdlib.h>#include <windows.h>#define TRUE 1#define FALSE 0#define Stack_Size 50#define MAXSIZE 5void mainmenu();/*********************************************//*顺序栈*/typedef struct{int elem[Stack_Size];int top;}SeqStack;/*链栈*/typedef struct node{int data;struct node *next;}LinkStackNode;/*循环队列*/typedef struct{int element[MAXSIZE];int front;int rear;}SeqQueue;/*链式队列*/typedef struct Node{int data;struct Node *next;}LinkQueueNode;typedef struct{LinkQueueNode *front;LinkQueueNode *rear;}LinkQueue;/*********************************************//********************顺序栈************************/ /*构造一个空栈S*/void InitStack(SeqStack *S){S->top = -1;}/*进栈*/int Push(SeqStack *S,int x){if(S->top==(Stack_Size-1))return(FALSE); /*栈已满*/S->top++;S->elem[S->top]=x;return(TRUE);}/*出栈*/int Pop(SeqStack *S,int *x){/* 将栈S的栈顶元素弹出,放到x所指的存储空间中 */if(S->top==-1) /*栈为空*/return(FALSE);else{*x=S->elem[S->top];S->top--; /* 修改栈顶指针 */return(TRUE);}}/*取栈顶元素*/int GetTop(SeqStack *S, int *x){/* 将栈S的栈顶元素弹出,放到x所指的存储空间中,但栈顶指针保持不变 */ if(S->top==-1) /*栈为空*/return(FALSE);else{*x = S->elem[S->top];return(TRUE);}}/**************************************************//********************链栈**************************//*初始化*/void InitStack1(LinkStackNode *top){ //构造一个空栈top = (LinkStackNode *)malloc(sizeof(LinkStackNode));if(!top)printf("OVERFLOW\n");top = NULL;}/*进栈操作。

淮海工学院-数据库课程设计

淮海工学院-数据库课程设计

淮海工学院计算机工程学院实验报告书课程名:《数据库课程设计》题目:员工管理系统班级:软件142学号:***********名:***目录1 引言 (3)1.1 背景 (3)1.2 系统简介 (3)2 需求分析 (3)2.1 功能需求 (3)2.2 可行性分析 (4)3 系统总体设计 (5)3.1 数据库设计 (5)3.2 界面设计 (10)3.3 时序设计 (10)3.4 接口设计 (16)3.5 代码设计 (16)3.6 测试用例 (20)4 总结 (21)1 引言1.1 背景随着知识经济的来临,计算机技术,网络技术和信息技术已经广泛的应用于社会的各个方面,给现代人的生活、工作带来了巨大的变化。

企业的员工管理正朝着追求高效,低成本,稳定可靠的发展方向。

为此目的,企业需要一个功能完善,性能稳定的员工管理系统。

其主要目的是通过计算机对员工的各种信息进行管理和维护。

员工管理系统共完成了员工资料情况进行添加、查询、修改和删除操作。

员工名册信息的报表查询可添加新的用户以及修改用户原有的用户名、删除原有用户,查询员工基本信息等功能。

达内科技的老师带领我们做了这样一个基于C/S架构数据库设计的员工管理系统。

1.2系统简介开发环境:Windows操作系统、Eclipse、Mysql和Navicat for Mysql软件架构:C/S架构适用对象:小型企业或学校2需求分析2.1 功能需求员工管理系统能够实现登录、添加/删除用户、修改密码、切换用户、退出登录、员工信息管理和员工信息查询等功能。

运行系统,在登录页面可以进行身份验证,登录成功后可以修改密码和用户信息,用户不想使用时可以点击退出系统结束操作。

功能图如图2.1所示。

员工管理系统是将企业的人事管理、工资管理、考勤管理有机相合,综合运用的一个企业管理软件,它使企业的人事管理由以往的手工作业,向自动化、网络化、现代化迈进了一大步。

从而使企业的人事管理人员从繁重的人事管理中解放出来,大大提高了工作效率,减轻了管理人员的工作量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

淮海工学院计算机工程学院
课程设计报告
设计名称:数据结构课程设计
选题名称:简单行编辑
姓名:侯耀生学号: 2012122694 专业班级:软件工程软件121
系(院):计算机工程学院
设计时间:2013.12.23~2013.1.5
设计地点:软件工程实验室、教室
数据结构课程设计报告第 4 页,共页
数据结构课程设计报告第 5 页,共页{printf("%s\n",p->data);}
while((p=p->next)!=NULL);//遍历链表
}
四设计与调试分析
(1)系统起始界面,要求输入字符串文章
(2)系统主界面
(3)统计字母数
(4)统计数字数
(5)统计空格数
(6)统计文章总字数
(7)统计某个字符串出现的次数
(8)删除指定字符串
(9)退出该系统
(10)未按指定要求输入编号
五用户手册
1.进入用户界面,输入一篇文章,可以包括字母数字以及空格符,完成后按Ctrl+E键。

2.输入完成后,进入用户主界面,在选项1~7内进行选择。

(1)若按1键,统计该篇文章的全部字母数。

(2)若按2键,统计该篇文章的全部数字数。

(3)若按3键,统计该篇文章的全部空格数。

(4)若按4键,统计该篇文章的总字数。

(5)若按5键,统计某个字符串在文章中出现的次数。

(6)若按6键,删除该文章中的指定字符串。

(7)若按7键,退出该系统。

(8)若按8键,则返回异常,提示输入键为1~7键。

六测试成果
七附录(源程序清单)
#include <iostream.h>
#include <string.h>
#include <stdio.h>
//文本每行以字符串形式存储,行与行之间以链表存储。

相关文档
最新文档