文档库 最新最全的文档下载
当前位置:文档库 › 数据结构课程综合实训报告

数据结构课程综合实训报告

数据结构课程综合实训报告
数据结构课程综合实训报告

线性表的逆置

(数据结构课程综合实训报告)

综合实训报告:

(一).问题的描述:

不同存储结构实现线性表的就地逆置,线性表的就地逆置就是在原表的存储空间内将线性表(a1,a2,…,an-1,an ))逆置为(an,an-1,…,a2,a1)。

(二).数据结构的设计:

由于线性表在内存中是线性存储的,故设计其数据结构类型如下:

以顺序存储方式建立顺序表:

typedef struct

{

int data[maxsize];

int last;

}SeqList;

以链式存储方式建立的单链表:

typedef struct Node

{

int data;

struct Node *next;

}Node;

说明:由于本实验重在算法的实现,故将线性表设计的很简单,以便于操作.

(三). 函数功能、参数说明及概要设计:

1.函数ReverseOrder(SeqList *L)

功能说明:实现顺序表在内存中的逆置.

算法设计:

void ReverseOrder(SeqList *L)

{

PrintOrde(L);

int i;

int j;

for(i=0,j=L->last;i

{

L->data[i]^=L->data[j]^=L->data[i]^=L->data[j];//值互换

}

PrintOrder(L);

printf("顺序表逆置成功!\n");

}

2.函数PrintOrde(SeqList *L)

功能说明:从屏幕依次输出顺序表的成员。

算法设计:

PrintOrder(L);

printf("顺序表逆置成功!\n");

}

//尾插法建单链表

void CreateChain(Node *H)

{

Node *s;

Node *p;//动态指向表尾

p=H;

3.函数ReverseChain(Node *H)

功能说明:实现单链表在内存中的逆置.

算法设计:.

void ReverseOrder(SeqList *L)

{

PrintOrde(L);

int i;

int j;

for(i=0,j=L->last;i

{

L->data[i]^=L->data[j]^=L->data[i]^=L->data[j];//值互换}

PrintOrder(L);

printf("顺序表逆置成功!\n");

}

4.函数PrintChain(Node *H)

功能说明:从屏幕依次输出单链表的成员.

算法设计:

void PrintChai(Node *H)

{

printf("逆置前单链表为:\n");

Node *p;

p=H->next;

while(p!=NULL)

{

printf("%d ",p->data);

p=p->next;

}

printf("\n");

}//利用顺序遍历同时用头插法重建单链表

5、程序代码设计如下:

#include

#include

#include

#define maxsize 1000

typedef struct

{

int data[maxsize];

int last;

}SeqList;

typedef struct Node

{

int data;

struct Node *next;

}Node;

void Print(SeqList *L,Node *H);

void Choose(int choice,SeqList *L,Node *H); void CreateOrder(SeqList *L);

void PrintOrder(SeqList *L);

void ReverseOrder(SeqList *L);

void CreateChain(Node *H);

void PrintChain(Node *H);

void ReverseChain(Node *H);

int main(void)

{

SeqList L;

SeqList *p;

p=&L;

https://www.wendangku.net/doc/236813850.html,st=-1;//初始化

Node *H;

H=(Node *)malloc(sizeof(Node));

H->next=NULL;//初始化

Print(p,H);

while(true)

{

printf("按enter键继续...");

getchar();

getchar();

system("cls");

Print(p,H);

}

return 0;

}

void Print(SeqList *L,Node *H)

{

int choice;

printf("这是第六组的大作业\n");

printf("组员:\n");

printf(" 常玲玲马慧钦杨弘扬\n");

printf(" 瞿霞军梅春艳付月\n");

printf("---------------------\n");

printf("题目:线性表的逆置\n");

printf("问题描述:\n");

printf("利用线性表原有的存储空间将线性表\n"); printf("( a1,a2,…,an-1,an )\n");

printf("逆置为\n ");

printf("(an,an-1,…,a2,a1 )\n");

printf("---------------------\n");

printf("1.建立新单链表。\n");

printf("2.打印当前单链表。\n");

printf("3.将单链表逆置。\n\n");

printf("4.建立新顺序表。\n");

printf("5.打印当前顺序表。\n");

printf("6.将顺序表逆置\n\n");

printf("7.按其它任意键退出。\n");

printf("---------------------\n");

printf("请选择你要的操作:");

scanf("%d",&choice);

Choose(choice,L,H);

}

void Choose(int choice,SeqList *L,Node *H) {

switch(choice)

{

case 4:

CreateOrder(L);

break;

case 5:

PrintOrder(L);

break;

case 6:

ReverseOrder(L);

break;

case 1:

CreateChain(H);

break;

case 2:

PrintChain(H);

break;

case 3:

ReverseChain(H);

break;

default:

exit(0);

}

}

void CreateOrder(SeqList *L)

{

int n;

int i;

while(1)

{

printf("请输入顺序表长度:");

scanf("%d",&n);

if(n>0)

{

break;

}

else

{

printf("Error:顺序表的长度必须大于零!\n"); }

}

printf("请输入顺序表元素:\n");

L->last=n-1;

for(i=0;i

{

scanf("%d",&L->data[i]);

}

void PrintOrder(SeqList *L)

{

int i;

if(L->last==-1)

{

printf("当前顺序表为空。\n");

}

else

{

printf("当前顺序表为:\n");

for(i=0;i<=L->last;i++)

{

printf("%d ",L->data[i]);

}

printf("\n");

}

}

void PrintOrde(SeqList *L)

{

int i;

if(L->last==-1)

{

printf("当前顺序表为空。\n");

}

else

{

printf("逆置前顺序表为:\n");

for(i=0;i<=L->last;i++)

{

printf("%d ",L->data[i]);

}

printf("\n");

}

}

void ReverseOrder(SeqList *L)

{

PrintOrde(L);

int i;

int j;

for(i=0,j=L->last;i

{

L->data[i]^=L->data[j]^=L->data[i]^=L->data[j];//值互换}

PrintOrder(L);

printf("顺序表逆置成功!\n");

}

//尾插法建单链表

void CreateChain(Node *H)

{

Node *s;

Node *p;//动态指向表尾

p=H;

int n;

int i;

H->next=NULL;//初始化,以确保重复建表的无误!!!!!//输入N,并判断N是否合法

while(true)

{

printf("请输入单链表长度:");

scanf("%d",&n);

if(n>0)

{

break;

}

else

{

printf("Error:单链表的长度必须大于零!\n");

}

}

printf("请输入单链表:\n");

for(i=0;i

{

s=(Node *)malloc(sizeof(Node));

scanf("%d",&s->data);

s->next=p->next;

p->next=s;

p=p->next;

}

printf("成功创建新单链表!\n");

PrintChain(H);

}

void PrintChain(Node *H)

{

printf("此时单链表为:\n");

Node *p;

p=H->next;

while(p!=NULL)

{

printf("%d ",p->data);

p=p->next;

}

printf("\n");

}

void PrintChai(Node *H)

{

printf("逆置前单链表为:\n");

Node *p;

p=H->next;

while(p!=NULL)

{

printf("%d ",p->data);

p=p->next;

}

printf("\n");

}//利用顺序遍历同时用头插法重建单链表

void ReverseChain(Node *H)

{

PrintChai(H);

Node *h;

Node *p;

Node *temp;

h=(Node *)malloc(sizeof(Node));

h->next=NULL;//初始化

p=H->next;

while(p!=NULL)

{

temp=p->next;

p->next=h->next;

h->next=p;

p=temp;//p=p->next

}

H->next=h->next;//将新表的头指针赋给原头指针(实现逆序)PrintChain(H);

printf("单链表逆置成功!\n");

}

(四).数据结构课程综合实训报告感想:

程序的具体实现,有利于我们更好的理解数据结构的知识,是对知识的具体化,要更加深入的学习,需要学会将知识具体化。

我们老师讲的很好,但是我自己觉得自己并没有下大功夫去好好研究学习,虽然自己觉得这门课很重要,要想达到自己理想的水平还很远,不过既然认识到了自己的不足,就应该好好去学习,多看资料,多思考。

现在要让我说学习后有什么感想,有什么经验可以拿来说说,我还真不敢说,因为自己学的很粗略,没有自己独特的见解。

我自己觉得最主要的还是应该养成较好的编程思想,虽然自己说不出来什么大的道理,但是我找到了以后努力的方向,数据结构研究的是非数值运算在计算机内的表示及实现,第一还是得明白怎么表示,第二就是实现了。一开始觉得表示很简单,实现很难,但是经过深入的学习以后发现表示其实也是挺难的,如果不知道数据之间的关系根本无法实现。虽然开始学的比较简单的链表,但对于实现还是不是那么熟练,致使后面越学越难,根本无法自己单独的实现,学习就是从易到难,只要把简单的弄懂弄通了,难的自然也就不难了。其实我个人觉得这门课并不是想象中的那么难,只要自己重视了,没有什么能过难倒自己的!

09计应(2)班

杨弘扬

数据结构与算法实习报告

《数据结构与算法》课程设计报告 学号:2010100**** 班级序号:114103 姓名:刘洋 指导教师:陈启浩 成绩: 中国地质大学信息工程学院空间信息工程系 2012年2 月

课程设计报告 一、软件压缩/解压缩软件Szip(Huffman算法及应用) 1.需求规格说明 利用哈夫曼编码对一个现有文件进行重新编码行成新的文件,可以减小文件大小,减少存储空间,这也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。 即求解的问题是,根据哈夫曼编码的知识写一个压缩/解压缩软件。 2.总体分析与设计 (1)设计思想: 主要的算法思想及其存储结构:采用课程实习已经写过的huffman编码程序对要压缩文件中字符进行读取,统计字符出现频率,并进行字符编码。将编码后的字符以链表形式存储其所编的huffman码,并以该字符建立链表的字典索引。重新读取待压缩文件并根据链表搜索其huffman编码按顺序写入一暂存文件liuyang1.txt中保存。根据liuyang1.txt中的编码进行8个数字一压缩写入压缩文件中。(压缩文件头部首先要写入字典编码等重要信息,以方便解码需求)。解码时首先以二进制形式读取压缩文件中存入的字典编码信息,根据其字符频率信息重新构造huffman树,与此同时将剩余压缩文件中每个字符解压缩成8个字符(与liuyang1.txt对应)写入暂存的文件liuyang3.txt中。再依次据暂存文件liuyang3.txt读取huffman 编码数字,根据建立的huffman搜索树进行解码还原成带压缩文件。 (2)设计表示: 具体的压缩实例部分代码: //主程序中void main() //省略其统计字符出现频率的代码 cout<<"开始构建huffman树并压缩……"<<" "; BinaryTree d; //Hz *c=new Hz[i+1]; Hz是专门用来存储字典的类其中只包含私有变量char letter;字符 int count;字符统计频率这俩个信息。及huffman每个节点均为Hz类型 d=HuffmanTree(c,e-1);//构建huffman树的函数,d为返回的huffman树 SortedChain,char> cc;C=&cc;//定义链表用来存储字典编码信息 co=-1;//变量初始化,用来初始p数组(p用来记录当前01编码) d.hfbm(hfleaf,co,true);//huffman树类的递归编码程序,压缩、解压缩重复利用此函数编码 //该函数最后一个参数true表示是压缩时用,false表示是在解压时用 ofstream ofile("liuyang1.txt",ios_base::out|ios_base::binary);//建立暂存文件 //……省略部分代码 BinaryTreeNode ee; for(int o=0;o

数据库实训报告

数据库 实训报告 专业:计算机科学与技术班级:计091 姓名:xxx 任课教师:xxx 2012年11月5日

目录 第一章概述 (3) 1.1引言 (3) 1.2摘要 (3) 第二章需求分析 (3) 2.1功能分析 (3) 2.2性能分析 (4) 2.3可靠性和可用性需求 (4) 2.4出错处理要求 (4) 2.5约束 (4) 2.6逆向需求 (4) 2.7将来可能提出的要求 (4) 第三章数据库设计 (4) 3.1数据字典 (4) 3.2E-R图 (5) 3.3数据库设计 (6) 第四章详细设计 (7) 4.1登录主界面开发 (7) 4.2登录后学生信息界面的开发 (8) 4.3登录后教师信息界面的开发 (8) 4.4登录后学生选课界面的开发 (9) 4.5登录后教师发布选课界面的开发 (9) 总结 (10) 参考文献 (10)

第一章概述 引言 由于信息科技化的越来越多的被应用在商业、工业等领域。管理信息系统的实施在技术上已逐步成熟。任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。那么作为高等教育组织的学校也不例外。 所以在顺应形势的前提下我们做了此实训,本文介绍了以Oracle11g和JAV A为开发环境而实现的学生教务管理系统的完全运行。自下而上地应用开发”的策略开发一个学校教务管理信息系统的过程。 摘要 学生选课管理系统是一个非常通用的信息管理系统,本课题主要设计一个简单的选课管理系统,进行简单的课程查询及管理。主要实现的功能有:学生基本信息的导入/导出;学生课程信息的录入、修改、添加、删除、查询;在课程设计中,系统开发平台为Windows7,程序设计语言采用Java,数据库采用MYSQL,程序运行平台为Windows7。系统的实现可以极大地方便教师和学生对课程的使用,查询和管理。之所以选择Java作为开发工具,不仅仅因为它好用,更是它的功能强大和使用方便。系统设计部分主要介绍了系统功能设计和数据库设计及JAVA代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。 第一章需求分析 2.1功能需求 “学生选课系统”服务于两种客户,一种是:教师,主要实现的功能包括自己信息管理,公布课程信息,选择学生。另一是:学生,主要实现功能包括管理自己信息,选择课程,查看各种信息。

课程设计实验报告

竭诚为您提供优质文档/双击可除 课程设计实验报告 篇一:课程设计(综合实验)报告格式 课程设计报告 (20XX--20XX年度第一学期) 名称:题目:院系:班级:学号:学生姓名:指导教师:设计周数: 成绩:日期:《软件设计与实践》课程设计计算机系软件设计与实践教学组 20XX年1月14 日 《软件设计与实践》课程设计 任务书 一、目的与要求 1.了解网络爬虫的架构和工作原理,实现网络爬虫的基本框架;2.开发平台采用JDK1.60eclipse集成开发环境。 二、主要内容 1.了解网络爬虫的构架,熟悉网页抓取的整个流程。

2.学习宽度优先和深度优先算法,实现宽度crawler应用程序的编写、调试和运行。 3.学习主题爬行及内容分析技术。 4.实现网络爬虫的基本框架。 三、进度计划 四、设计成果要求 1.要求按时按量完成所规定的实验内容; 2.界面设计要求友好、灵活、易操作、通用性强、具有实用性; 3.基本掌握所采用的开发平台。五、考核方式 平时成绩+验收+实验报告。 学生姓名:于兴隆指导教师:王蓝婧20XX年1月2日 一、课程设计的目的与要求1.目的: 1.1掌握crawler的工作原理及实现方法;1.2了解爬虫架构; 1.3熟悉网页抓取的整个流程及操作步骤; 1.4掌握宽度优先,深度优先算法,并实现宽度crawler 应用程序的编写、调试和运行;1.5掌握主题爬行及内容分析技术;1.6实现一个最基础的主题爬虫的过程;1.7理解pageRank算法,并编程验证;二、设计正文 网络爬虫研究与应用 [摘要]:本文通过对网络爬虫研究的逐步展开,讨论了爬虫的相关概念与技术,并通过实验设计了简单的基于宽度

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (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。

数据结构实训报告

《数据结构与算法分析》 课程设计 题目:文字处理程序(字符串的应用) 学生姓名:林武祥 学号:16230243008 专业班级: B16软件工程1班 指导教师:颜慧 学院: 大数据与计算机学院 2017年12月

目录 一、课程设计题目 (1) 二、开发背景 (1) 三、项目总体设计 (1) 3.1需求分析 (1) 3.2系统功能模块设计 (1) 四、详细实现步骤和流程图 (2) 4.1功能实现展示 (2) 4.2流程图框架 (4) 五、部分具体代码分析及实现 (5) 六、项目总结 (9) 七、参考文献 (9)

一、课程设计题目 文字处理程序(字符串的应用)及简单文本编辑器 二、开发背景 由于对于现在的电脑族对电脑的使用频率逐年增大,对电脑的需要具有依赖性。其中不乏有对文本的编辑的需求,因此,本次实训周做了一款简单的文本编辑器的应用程序,对文本编辑器的相关功能做了一定的实现,既简单又实用。 本软件为一个简单而且很实用的文本编辑的工具,不但可以进行一些文字的输入和文本的读取,而且,该文本编辑器也可以对文本进行一些保存、另存、剪切、粘贴、删除等常规的操作,是一款比较适合广大普通用户和非计算机专业的用户和文本编辑的处理软件,本软件不但界面友好,功能齐全,而且操作简单。 三、项目总体设计 3.1需求分析 文字处理程序运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。其中程序基本操作:包括文本的复制、粘贴、剪切、删除、查找、替换等功能。统计功能:分别统计出文本文件中的各类字符的个数,包括英文字母个数、空格个数、汉字个数、标点符号个数、总字数等并显示统计信息;允许用户统计某一字符串在文章中出现的次数,并显示统计信息;加密和解密:用户可对指定文本文件进行加密和解密操作;用户可保存该文件。 3.2系统功能模块设计

数据库实训报告

实训报告 实训课程:JA V A WEB项目实训 实训名称:JA V A项目实训综合能力培养 实训地点:中国江苏无锡国家软件园巨蟹座C601 学生姓名:胥康 学号:140703133 指导教师:张志华 实训时间:2016年7月22日 实训数据库MySQL与JA V A 编程 一、实训目的 熟悉扫描器结构及工作原理,监测输入实训结果分析,通过该实训,从设计到性能测试完成完整的实训流程,锻炼同学编程能力、测试能力、设计能力、全局把控能力、学习能力、动手能力和分析问题能力等。 二、实训内容 1、设计好数据库结构,录入测试数据五条以上。 2、通过标准Statement语句对象,完成增删改查四个类编程。 三、实训器材 教学投影机一台、个人笔记本电脑一台、本地服务器一台(教师机) 四、实训步骤与结果 /** *功能:完成数据查询 */ package com.ec; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;

/** * @author xukang * */ public class SelectData { /** * @paramargs * */ public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/ECDB1?useSSL=false"; String user="root"; String password="12345678"; Connection conn=DriverManager.getConnection(url,user,password); Statement st=conn.createStatement(); String sql="select * from ware"; ResultSet r=st.executeQuery(sql); while (r.next()) { System.out.println(r.getInt(1)+"\t"+r.getString(2)+"\t"+r.getFloat(3)+"\t"+r. getString(4)+"\t"+r.getString(5)+"\t"+r.getString(6)); } r.close(); st.close(); conn.close(); // TODO Auto-generated method stub } }

数据库实训报告

数据库实训报告 目的:熟练掌握与应用数据库操作应用技术。 时间:2012.2.20 ~ ~2012.2.26 地点:学校机房 实训人:网络1001班 32号马长旺 指导老师:孔庆月王彦新 实训任务:运用Microsoft SQL Server 2005和Microsoft Visual Studio 2008软件制作一个学生成绩管理系统。 一:实训的内容:1.项目目标:具体规划模块如下, 1)课程信息管理:包括对课程信息管理、浏览等功能。 2)学生信息管理:包括学生信息的浏览、管理、查询等功能。 3)成绩管理:包括对学生所学课程浏览、管理、查询功能。功能结构图如下: 成绩信息的查询 成绩信息的增减删 学生信息的查询 学生信息的增减删 课程信息的增减删 学生成绩管理系统 课程信息管理 学生信息管理 学生成绩管理 2.数据库结构设计与实现 学生成绩管理系统数据库的名称设置为“JDXS”,其中包括3个数据表:课程信息表、学生信息表、成绩表。 a. 课程信息表:用于保存所有的课程信息; b. 学生信息表:包括用于保存说有学生的基本信息; c. 成绩表:用于保存学生所学课程及成绩;

3.创建项目 启动程序“Microsoft Visual Studio 2008”,选择“文件”-----“新建”----“项目”命令,打开“新建项目”对话框,输入项目名称“StudentInfoSystem”,文件位置设置为“E:/学生成绩管理系统”文件夹。单击“确定”按钮后,出现创建项目的开发环境 4.设计与实现主窗体 将刚才创建的窗体Form1作为主窗体:右击主窗体,设置主窗体的属性。添加各个控件。 5.设计与实现课程设置窗体 选中项目中的解决方案名称(StudentInfoSystem)右击,选中“添加”---“新建项”---“Windows窗体”,在“新添加项”对话框中,输入窗体名 称“FrmCourseManage”,单击“添加”按钮。然后,对改窗体进行界面设计和代码设计。 6.设计与实现学生信息管理窗体

java课程设计实验报告

一实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。在对Java 程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。 二、实验要求 (1)问题描述准确、规范; (2)程序结构合理,调试数据准确、有代表性; (3)界面布局整齐,人机交互方便; (4)输出结果正确; (5)正确撰写实验报告。 三、设计内容 1、计算器 计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。允许正负数间的运算。要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。 2、文本编辑器 可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。其他功能参照windows的文本编辑器。

四.实验步骤 (1)上机实验之前,为课程设计的内容作好充分准备。对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。 (3)根据实验结果,写出实验报告。 五. 源代码及运行结果 1.计算器源代码 import .*; import .*; import .*; public class jisuanqi extends WindowAdapter { , "=", "+","n!" ,"关闭" }; static double a, sum=1; static String s, str ;rame(); } public void frame() { etBackground; txt = new TextField(""); (false);ddActionListener(new buttonlistener());ddActionListener(new close()); (this); (new BorderLayout());.计算器运行界面(1)计算器主界面

最新数据结构实训总结

精品文档 这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。 编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。 通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解,也形成了一定的个人做事风格。 通过这次课程设计,让我对一个程序的数据结构有更全面更进一步的认识,根据不同的需求,采用不同的数据存储方式,不一定要用栈,二叉树等高级类型,有时用基本的一维数组,只要运用得当,也能达到相同的效果,甚至更佳,就如这次的课程设计,通过用for的多重循环,舍弃多余的循环,提高了程序的运行效率。在编写这个程序的过程中,我复习了之前学的基本语法,哈弗曼树最小路径的求取,哈弗曼编码及译码的应用范围,程序结构算法等一系列的问题它使我对数据结构改变了看法。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,也从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 精品文档

课程设计实训总结范文

三一文库(https://www.wendangku.net/doc/236813850.html,)/工作总结 课程设计实训总结范文 这次数据库课程设计做的还是很成功的,功能全部基本都实现了。在做的过程中出现过几次小问题,搞了很长时间才做通的。做完这次课设之后,回顾起来,数据库课设其实挺简单的。只不过以为我们以往的不深入的探究,只看表面一堆堆的代码就感觉很难很难,实际上代码不要我们写,照着模板做,一通百通,就ok了,正是因为我们的这种畏惧的敬而远之的心态导致我们数据库课程始终都是初学状态,没有一点长进,我想经过这次系统的做了这个企业进销存数据库,部分的数据库结构、功能、使用等方面与以前相比有了长足的进步,虽然知道的依然很少,但有进步都是可喜的。

在本次课程设计的软件开发的过程中,我全面实践一个面向数据库的应用系统的开发过程,学习了很多有关的知识。这样的项目对我学过的数据库课程是一个综合性很高的实践。一些以前没有学得很杂实的课程的内容,由于需要在实践中运用,刚开始我也感到很头痛。但回过头再去看教科书,经过一段时间的钻研,对与这些知识点的相关的背景,概念和解决方案理解得更透彻了,学习起来也越来越有兴趣,越来越轻松。差不多熟悉了数据库设计的每一个过程。 另外我还充分体会了从事软件开发工作需要特别严谨认真 的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,我自己觉得我写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,只有不断地向老师提问,有时提问的问题特幼稚,可就是不懂,很是郁闷。 在反反复复的学习及询问之下,我的辛勤努力有了回报,终于做出了一个简单的软件,虽然这个软件的功能非常的简单,而

c课程设计实验报告

c课程设计实验报 告

中南大学 本科生课程设计(实践)任务书、设计报告 (C++程序设计) 题目时钟控件 学生姓名 指导教师 学院交通运输工程学院 专业班级 学生学号 计算机基础教学实验中心 9月7日 《C++程序设计基础》课程设计任务书

对象:粉冶、信息、能源、交通工程实验2101学生时间: .6 2周(18~19周) 指导教师:王小玲 1.课程设计的任务、性质与目的 本课程设计是在学完《C++程序设计基础》课程后,进行的一项综合程序设计。在设计当中学生综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。经过此设计进一步提高学生的动手能力。并能使学生清楚的知道开发一个管理应用程序的思想、方法和流程。 2.课程设计的配套教材及参考书 ●《C++程序设计》,铁道出版社,主编杨长兴刘卫国。 ●《C++程序设计实践教程》,铁道出版社,主编刘卫国杨长兴。 ●《Visual C++ 课程设计案例精编》,中国水力电力出版社,严华峰等编著。 3.课程设计的内容及要求 (1)自己任选一个题目进行开发(如画笔、游戏程序、练习打字软件等),要求利用MFC 工具操作实现。 (2)也可选一个应用程序管理系统课题(如:通讯录管理系统;产品入库查询系统;学生成绩管理;图书管理 等);

设计所需数据库及数据库中的数据表,建立表之间的关系。 设计所选课题的系统主封面(系统开发题目、作者、指导教师、日期)。 设计进入系统的各级口令(如系统管理员口令,用户级口令)。 设计系统的主菜单。要求具备下列基本功能: ●数据的浏览和查询 ●数据的统计 ●数据的各种报表 ●打印输出 ●帮助系统 多种形式的窗体设计(至少有查询窗体、输入窗体) 注意:开发的应用程序工作量应保证在2周时间完成,工作量不能太少或太多。能够2人合作,但必须将各自的分工明确。 4.写出设计论文 论文基本内容及撰写顺序要求: ●内容摘要 ●系统开发设计思想 ●系统功能及系统设计介绍 ●系统开发的体会

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

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

数据结构实习报告

数据结构课程设计报告 学生姓名:孔令周 指导老师:陈占龙 班级:116102 学生学号:021

实习题目一 1.需求规格说明书 设停车场是一个可停放n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停 车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n 辆汽车,则后来的汽车只能在门外的便道上等 候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 2.总体分析与设计 【设计思想】 在内存中实现,无需外存的流处理过程。主要的算法思想是栈和队列的使用。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息,汽车牌照号以及到达或离去的时刻。对每一组输入的数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 【设计表示】 【详细设计表示】 主函数开始时要求用户输入停车场的初始大小,然后对进入的车辆进行管理,如果是进入,调用添加函数,此函数中定义的规则是如果停车场如果没有满就加到停车场栈中,如

果停车场已经满了,就添加到走道队列中。处理完添加函数后while循环调用次过程。同理,如果是车辆要出去,就调用删除函数,如果删除后走道上有车在等待车位就将走道上的车辆根据先进先出的规则压到栈中。处理完删除函数之后也while循环调用次过程。只有当用户输入结束的时候此循环才会结束。 3.编码 1.输入A表示的是添加,输入D表示删除,输入E表示结束,那么要是用户不小心输入了其他的一个字母怎么办呢在while循环中最开始进行判断的并不是输入的是否为ADE而是输入的是不是不是ADE中间的任何一个,这时候令输入无效,用户需重新输入。此时的输入作废。 2.添加的时候如果是栈没有满,这时应该添加到栈中去,储存进入时间和车号,但是如果只是停在走道上需不需要这些数据呢这里要不要抖没有关系,因为在这里如果要了的话在后面闪出部分走道上的车子重新进入的时候就重新记录一遍车子的进入时间,避免在走道上的时间也要被收费。 3.删除的时候将此时的时间减去车子这个数据对象的进入时间就是时间差,根据规定的单价计算停车费用。但是如果走道上有车子的时候他的进入时间呢处理时一定的,一定要更新,否则车子在走道上的时间也总算在停车场的时间这是不对的。 4.如果在停车场中要出去的车是先进来的车子,则表示比他后来的车要先出去那此时的算法呢答案是也将前面的车先存在一个栈中,等向后面的车子先出去后在出栈重新压栈。 4.程序算分分析 【运行结果】

数据库实训报告实训

这次实训,总的下来,感觉不易。在数据库这门课程一开始,感觉学的云里雾里,觉得记代码很麻烦,也会担心这门课程期末考过不了。许多同学也有这样的感受,但相信通过这次的实训大家应该有了更多的信心。这次实训还综合应用数据库、SQLServer2005、学生管理等知识。使我们所学知识得到延伸与拓展,也提高了我们的综合实践能力。 在这一周的实训当中,我们做了一个学校综合管理数据库系统,我们实训的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从实训中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败。另一个内容是数据库的约束、视图、查询。从中我们了解到查询语句的基本结构,和简单SELECT语句的使用,多表连接查询。而在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的大部分操作,使用视图一样可以完成。虽然只是一个比较和我们有关的数据库,但是在这一周的实训过程中,做的也不是很顺利,其中也遇到了许多问题,通过反反复复的看书,并且向同学请教,把相关的知识复习了一遍,这也是一种很大的收获。至少我们在做的过程中学会了思考,就像在做这个数据库系统的时候,我们在做之前就要有一个方案,设计一个步骤,先开始进行需求分析,接着进行概念模型设计,其次进行逻辑结构设计,最后我们在创建数据库脚步文件。在创建的过程中,是我们问题最多的步骤,通过做题,我们发现了自己的不足,这也与我们平时上课有关,许多学过的知识,转眼就忘,而且也没有在空余时间去复习,并且对于一些重点的知识,我们也掌握的不好,许多的语法知识和基本语句都会出错。对于这种情况,我们就得好好反省自己,在以后的学习当中,我们就要补其不足,掌握更好的学习方法。 其实,不管我们做什么事情,我们都应该想清楚,首先干什么,其次干什么,有了一个合理的规划,我们做起来也就比较的有了方向,有了目标,再向目标去奋斗,这样我们才能更好的把握自己,使自己更好的发展。

课程设计实训报告书

课程设计实训报告 书

九江学院 信息科学与技术学院 《嵌入式应用开发》课程设计 报告书 题目:有名管道通信 专业:计算机应用技术 班级:B1232 姓名:邓亲超 学号: 03 同组人员:谢辉、张想、周政拉、毛扎西 指导老师:周红波 设计时间: 10月27日~ 11月07日 目录 1.实训计划....................................................................... 错误!未定义书签。

2.问题描述....................................................................... 错误!未定义书签。 3.问题分析....................................................................... 错误!未定义书签。 4.业务逻辑....................................................................... 错误!未定义书签。 5.程序模块设计 ............................................................... 错误!未定义书签。 6.技术原理与分析 ........................................................... 错误!未定义书签。 7.系统测试....................................................................... 错误!未定义书签。 8.心得体会....................................................................... 错误!未定义书签。 9.参考文献....................................................................... 错误!未定义书签。

数据结构课程设计心得体会

数据结构课程设计心得体会数据结构课程设计心得体会怎么写,以下是XX精心整理的相关内容,希望对大家有所帮助! 数据结构课程设计心得体会这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了C 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还

没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件基础语言。在这次课程设计中,硬件基础语言。在这次课程设计中,虽然不会成功的编写一个完整的程序,但是在看程序的过程中,个完整的程序,但是在看程序的过程中,不断的上网查资料以及翻阅相关书籍,通过不断的模索,测试,发现问题,以及翻阅相关书籍,通过不断的模索,测试,发现问题,解 决问题和在老师的帮助下一步一步慢慢的正确运行程序,决问题和在老师的帮助下一步一步慢慢的正确运行程序,终于完成了这次课程设计,于完成了这次课程设计,虽然这次课程设计结束了但是总觉得自已懂得的知识很是不足,学无止境,得自已懂得的知识很是不足,学无止境,以后还会更加的努力深入的学习。力深入的学习。 数据结构课程设计心得体会本次课程设计,使我对《数

相关文档