东华理工大学数据结构课程设计

东华理工大学数据结构课程设计
东华理工大学数据结构课程设计

数据结构课程设计

论文题目:基于线性表下的查找与排序

姓名:赖德发

学院:理学院

专业:信息与计算科学

班级:1123202

学号:201120320202

2014年1月17日

一、实验环境

(1)硬件:学生每人一台计算机。

(2)软件:Windows操作系统,Visual C++6.0。

二、实验内容

基于线性表下的查找与排序。

三、实验原理

1.基于线性表的查找法概述

集合结构是数据对象之间关系松散的一种数据结构,对其进行查找是根据给定的关键字,在特定的列表中确定一个其关键字与给定值相同的数据元素,并返回该数据元素在列表中的位置。查找的方法分为比较式查找法和计算式查找法,其中比较式查找法可分为基于线性表的查找法和基于树的查找法;而计算式查找法也称为Hash(哈希)查找法。基于线性表的查找法是将集合的数据对象组织成为线性表形式进行查找,即用给定的关键字与线性表中各元素的关键字逐个比较,直到成功或失败。线性表的存储结构通常是顺序存储结构,也可使用链式存储结构。

查找时可在表的一端设置一个“监视哨”,存放要查找元素的关键字,从表的另一端开始查找,若在“监视哨”找到要查找元素的关键字,返回失败信息,否则返回关键字的位序。基于线性表的查找技术有着非常广泛的应用。

2.基于线性表的排序法概述

排序是计算机程序设计中的一种重要操作,在数值计算或数据处理过程中,都会直接或间接用到数据的排序问题。排序的功能是将一个数据元素(或称记录)的无序序列,按数据元素的关键字大小排列成一个递增或递减有序的记录序列。

由于待排序的记录数量不同,使得排序过程中涉及的存储器也不同,因此可将排序方法分为内排序和外排序。内排序包括插入、交换、选择和归并等几类排序。

2.1基于插入类的排序概述

插入类排序的基本思想是假定记录序列中前面的一部分记录已经有序,把后面的一个记录插入已排序的有序子序列中去,使得插入这个记录后得到的依然是有序序列,从而逐步扩大有序的子序列的长度,直到所有记录都有序为止。直接插入排序是采用顺序查找法来确定记录的插入位置。折半插入排序是采用折半查找法来确定记录的插入位置。希尔排序是对待排序记录序列先做宏观直接插入排序调整,再做微观直接插入排序调整,故称缩小增量排序排序。

2.2基于交换类的排序概述

交换排序的基本思想是两两比较待排序记录的关键字,当两个记录的次序相反时进行交换,直到没有反序的记录为止。基于交换类的排序有冒泡排序和快速排序。

冒泡排序是比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

2.3基于选择类的排序概述

选择排序的基本思想是从每一趟待排序数据中选取一个关键字最小的记录,并置于适当的位置上。即第一趟从n个记录中选取关键字最小的记录,第二趟从剩下的n-1个记录中选取关键字最小的记录,直到整个序列的记录选完,由选取记录的顺序便可得到关键字有序的序列。堆排序的基本思想是通过类似于淘汰赛的想法,让序列中的关键字两两相比,不断淘汰较大者,最终选出关键字最小的记录。

四、系统测试

4.1基于线性表的查找源代码

#include

#include

#define LIST_SIZE 100

//定义顺序表的最大长度

typedef int keyType ;

//定义关键字类型为整形

typedef struct

{

keyType key ;

//关键字项

}

RecordType ;

//记录类型

typedef struct

{

RecordType r[LIST_SIZE+1];

//r[0]用作监视哨

int length ;

//定义顺序表长度

}

RecordList ;

//顺序表类型

/*函数申明*/

void CreatList(RecordList*L);

int SeqSearch(RecordList*l,keyType k); int BinSrch(RecordList*l,keyType k); void Display(RecordList*L);

void shunxu();

void zheban();

void Menu();

//主函数

int main()

{

int i ;

Menu();

printf("请选择:\n");

scanf("%d",&i);

switch(i)

{

case 1 :

{

shunxu();

break ;

}

case 2 :

{

zheban();

break ;

}

case 3 :

exit(1);

default :

{

printf("输入命令错误,请重新输入!\n");

break ;

}

Menu();

printf("请选择:\n");

scanf("%d",&i);

}

return 0 ;

}

//创建线性表

void CreatList(RecordList*L)

{

int i ;

printf("请输入数据元素的个数:");

scanf("%d",&L->length);

printf("请输入数据元素:\n");

for(i=1;i<=L->length;i++)

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

}

/*有哨兵的顺序查找*/

int SeqSearch(RecordList*l,keyType k)

{

int i ;

l->r[0].key=k ;

i=l->length ;

while(l->r[i].key!=k)

i--;

return i ;

}

/*折半查找*/

int BinSrch(RecordList*l,keyType k)

{

int low,high,mid ;

low=1 ;

high=l->length ;

while(low<=high)

{

mid=(low+high)/2 ;

if(k==l->r[mid].key)

return mid ;

else if(kr[mid].key)

high=mid-1 ;

else

low=mid+1 ;

}

return 0 ;

}

/*折半查找结果*/

void zheban()

{

int key ;

RecordList l ;

printf("折半查找如下:\n");

CreatList(&l);

Display(&l);

printf("\n请输入关键字数据:\n");

scanf("%d",&key);

if(BinSrch(&l,key))

printf("关键字数据的位置是:%d\n",BinSrch(&l,key));

else

printf("不存在这样的关键字!\n");

}

/*顺序查找结果*/

void shunxu()

{

int key ;

RecordList l ;

printf("顺序查找如下:\n");

CreatList(&l);

Display(&l);

printf("\n请输入关键字数据:\n");

scanf("%d",&key);

if(SeqSearch(&l,key))

printf("关键字数据的位置是:%d\n",SeqSearch(&l,key));

else

printf("不存在这样的关键字!\n");

}

//输出线性表

void Display(RecordList*L)

{

int i ;

printf("数据集合输出:\n");

printf("序号\t\t");

for(i=1;i<=L->length;i++)

printf("%d\t",i);

printf("\n");

printf("数据元素\t");

for(i=1;i<=L->length;i++)

printf("%d\t",L->r[i]);

printf("\n");

}

//程序菜单

void Menu()

{

printf("/********************************基于线性表的查找******************************/");

printf("/* 1:顺序查找*/");

printf("/* 2:折半查找*/");

printf("/* 3:退出*/");

printf("/******************************************************************************/") ;

}

测试结果如下:

4.2基于线性表的排序源代码

#include

#include

#define MAXSIZE 100//定义顺序表的最大长度typedef int keyType;//定义关键字类型为整形typedef struct

{

keyType key;//关键字项

}RedType;//记录类型

typedef struct

{

RedType r[MAXSIZE+1];//r[0]用作监视哨

int length;//定义顺序表长度

}SqList;//顺序表类型

//函数申明

void CreateSqList(SqList *L);

void InsertSort(SqList *L);

void BInsertSort(SqList *L);

void ShellInsert(SqList *L,int dk);

void ShellSort(SqList *L,int dlta[],int t);

void BubbleSort(SqList *L);

int Partition(SqList *L,int low,int high);

void QSort(SqList *L,int s,int t);

void QuickSort(SqList *L);

void SelectSort(SqList *L);

void HeapAdjust(SqList *L,int s,int t);

void HeapSort(SqList *L);

void Display(SqList *L);

void Menu();

int main() //主函数

{

int i;

SqList l;

int dlta[3]={5,3,1};//希尔排序的增量

Menu();

printf("请选择:");

scanf("%d",&i);

switch(i)

{

case 1:

{

CreateSqList(&l);

Display(&l);

InsertSort(&l);

printf("直接插入排序输出:\n");

Display(&l);

break;

}

case 2:

{

CreateSqList(&l);

Display(&l);

BInsertSort(&l);

printf("折半插入排序输出:\n");

Display(&l);

break;

}

case 3:

{

CreateSqList(&l);

Display(&l);

ShellSort(&l,dlta,3);

printf("希尔排序输出:\n");

Display(&l);

break;

}

case 4:

{

CreateSqList(&l);

Display(&l);

BubbleSort(&l);

printf("冒泡排序输出:\n");

Display(&l);

break;

}

case 5:

{

CreateSqList(&l);

Display(&l);

QuickSort(&l);

printf("快速排序输出:\n");

Display(&l);

break;

}

case 6:

{

CreateSqList(&l);

Display(&l);

SelectSort(&l);

printf("简单选择排序输出:\n");

Display(&l);

break;

}

case 7:

{

CreateSqList(&l);

Display(&l);

HeapSort(&l);

printf("堆排序输出:\n");

Display(&l);

break;

}

case 0:

exit(1);

default:

{

printf("输入命令错误,请重新输入!\n");

break;

}

Menu();

printf("请选择:\n");

scanf("%d",&i);

}

return 0;

}

void CreateSqList(SqList *L)//创建线性表

{

int i;

printf("请输入数据元素的个数:");

scanf("%d",&L->length);

printf("请输入数据元素:\n");

for(i=1;i<=L->length;i++)

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

}

void InsertSort(SqList *L)//直接插入排序

{

int i,j;

for(i=2;i<=L->length;++i)

if(L->r[i].keyr[i-1].key)

{

L->r[0]=L->r[i];

L->r[i]=L->r[i-1];

for(j=i-2;L->r[0].keyr[j].key;--j)

L->r[j+1]=L->r[j];

L->r[j+1]=L->r[0];

}

}

void BInsertSort(SqList *L)//折半插入排序

{

int i,j,low,high,m;

for(i=2;i<=L->length;++i)

{

L->r[0]=L->r[i];

low=1;

high=i-1;

while(low<=high)

{

m=(low+high)/2;

if(L->r[0].keyr[m].key)

high=m-1;

else

low=m+1;

}

for(j=i-1;j>=high+1;--j)

L->r[j+1]=L->r[j];

L->r[high+1]=L->r[0];

}

}

void ShellInsert(SqList *L,int dk) //一趟希尔排序{

int i,j;

for(i=dk+1;ilength;++i)

if(L->r[i].keyr[i-dk].key)

{

L->r[0]=L->r[j];

for(j=i-dk;j>0&&(L->r[0].keyr[j].key);j-=dk) L->r[j+dk]=L->r[j];

L->r[j+dk]=L->r[0];

}

}

void ShellSort(SqList *L,int dlta[],int t)//希尔排序

{

int k;

for(k=0;k

ShellInsert(L,dlta[k]);

}

void BubbleSort(SqList *L)//冒泡排序法

{

int i=L->length,j,temp;

int lastExchangeIndex;

while(i>1)

{

lastExchangeIndex=1;

for(j=1;j

if(L->r[j+1].keyr[j].key)

{

temp=L->r[j+1].key;

L->r[j+1].key=L->r[j].key;

L->r[j].key=temp;

lastExchangeIndex=j;

}

i=lastExchangeIndex;

}

}

int Partition(SqList *L,int low,int high)//一趟快速排序寻找枢轴{

int key;

key=L->r[low].key;

while(low

{

while(lowr[high].key>=key)

--high;

L->r[low].key=L->r[high].key;

while(lowr[low].key<=key)

++low;

L->r[high].key=L->r[low].key;

}

L->r[low].key=key;

return low;

}

void QSort(SqList *L,int s,int t)//对区间[s,t]进行快速排序{

int pivotloc=Partition(L,s,t);

if(t-s<=1)

return;

QSort(L,s,pivotloc-1);

QSort(L,pivotloc+1,t);

}

void QuickSort(SqList *L) //对顺序表进行快速排序{

QSort(L,1,L->length);

}

void SelectSort(SqList *L) //简单选择排序

{

int i,j,temp,t;

for(i=1;ilength;i++)

{

for(j=i+1,t=i;j<=L->length;j++)

{

if(L->r[t].key>L->r[j].key)

t=j;

}

if(t!=i)

{

temp=L->r[t].key;

L->r[t].key=L->r[i].key;

L->r[i].key=temp;

}

}

}

void HeapAdjust(SqList *L,int s,int t) //堆的赛选{

int j,key;

key=L->r[s].key;

for(j=2*s;j<=t;j*=2)

{

if(jr[j].keyr[j+1].key)

++j;

if(key>=L->r[j].key)

break;

L->r[s].key=L->r[j].key;

s=j;

}

L->r[s].key=key;

}

void HeapSort(SqList *L) //对顺序表进行堆排序{

int key,i;

for(i=L->length/2;i>0;i--)

HeapAdjust(L,i,L->length);

for(i=L->length;i>1;--i)

{

key=L->r[1].key;

L->r[1].key=L->r[i].key;

L->r[i].key=key;

HeapAdjust(L,1,i-1);

}

}

void Display(SqList *L) //输出线性表

{

int i;

printf("数据集合输出:\n");

printf("序号\t\t");

for(i=1;i<=L->length;i++)

printf("%d\t",i);

printf("\n");

printf("数据元素\t");

for(i=1;i<=L->length;i++)

printf("%d\t",L->r[i]);

printf("\n");

}

void Menu() //程序菜单

{

printf("/**********************************基于线性表的各种排序************************/");

printf(" 1:直接插入排序\n");

printf(" 2:折半插入排序\n");

printf(" 3:希尔排序\n");

printf(" 4:冒泡排序\n");

printf(" 5:快速排序\n");

printf(" 6:简单选择排序\n");

printf(" 7:堆排序\n");

printf(" 0:退出\n");

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

}

测试结果如下:

4.3测试评价

优点:此次做的基于线性表下的查找和排序系统,采用顺序存储结构,融合了各种查找和排序的算法,简单方便,执行效率高。

不足与改进:此次课程设计由于时间有限,查找法只做了基于线性表下的查找法,基于树的查找和计算式查找(Hash法查找)没有做,课外空余时间可以再去做做。对于排序也还有归并排序没有做,留到课外再完善吧。

五、实习体会与总结

经过这次数据结构的课程设计,首先使我对数据结构这门课更感兴趣,也对编程和这门课程有了更深入的体会和认知,数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。这门课对于计算机类的专业确实非常重要,起到举足轻重的作用,如果想干计算机这一行,那这门课一定要更深入的学习才行。其次,通过这次课程设计,让我对编程方面有了极大的进步,自己的程序调试能力也有了很大的提升,增加了自信。最后通过这次的课程设计,更是让我深刻认识到自己在学习中的不足,同时也找到了克服这些不足的方法,这也是一笔很大的资源。在以后的时间中,我们应该利用更多的时间去上机实验,加强自学的能力,多编写程序,相信不久后我们的编程能力都会有很大的提高,能设计出更多的更有创新的作品。

总而言之,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。在设计过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世,这次课程设计对我来说真的受益良多。

六、参考文献

1.数据结构试验教程(C语言版),王青海编著,中国铁道部出版社,2012年9月。

2.数据结构用C语言描述,耿国华主编,高等教育出版社,2013年4月。

东华理工大学高职院毕业实习毕业设计论文有关规定

东华理工大学高职院毕业实习、毕业设计(论文)有关规定

————————————————————————————————作者:————————————————————————————————日期:

高职毕业实习报告、毕业设计(论文)的有关规定 为了让高职学生安心在企业单位进行毕业实习,鼓励学生就业,特对有关高职毕业实习、毕业设计(论文)作出相关规定:1.各教学学院在每学年的9月底前,安排高职毕业实习、毕业设计(论文)指导老师,并将安排表交一份纸质稿给高职学院,表中要包含指导老师联系电话。 2.对于已就业并在就业单位签署就业协议(以上交学生科有效就业协议为准)的学生,要求按照《高职毕业实习报告要求》做好毕业实习报告,不用做毕业设计(论文)。指导老师指导学生撰写毕业实习报告。 3.在校内做毕业设计(论文)的学生,必须按照《毕业设计(论文)过程管理手册》的要求做好毕业设计(论文)。指导老师按照《毕业设计(论文)过程管理手册》的要求做好指导工作。 4.高职毕业实习报告、毕业设计(论文)等材料装订好后,全部装在高职院统一印制的资料袋中。 5.每学年的5月底前要完成毕业实习报告、毕业设计(论文),并上交成绩。

毕业实习报告要求 1.毕业实习报告采用A4幅面纸张填写。 2.毕业实习报告封面要求: 封面填写的字体采用三号宋体加黑。 3.目录规范要求: “目录”用三号宋体加黑,居中,目录内容用宋体四号字(行间距1.5倍)。4.实习报告内容要求: 1) 基本情况概述。对实习时间、实习单位、实习岗位等基本情况的概述。 2)对实习内容的总结。根据专业的特点和实习企业的情况,结合自己实习的岗位内容、特点等进行全面深入的总结。 3)主要收获。从个人的思想进步,业务锻炼和团队合作等方面总结。 4)自我评价。梳理自己的不足之处,明确今后的努力方向。 5)对实习管理工作的意见和建议。 字数不少于5000字。实习报告的页码编在当前页的右下角。 5.实习自我鉴定要求: 以一页纸为宜,要求对实习的主要内容、本人实习的表现、收获与体会,以及存在的问题进行简单的评价。 6.评语要求: 要求校外、校内实习指导教师填写考核意见,并要求指导教师和实习单位在评语栏内按等级打分(等级分为优秀、良好、中等、及格、不及格5个等级)。7.装订顺序要求: 1)毕业实习报告封面 2)目录 3)毕业实习报告正文 4)毕业实习鉴定表

数据结构课程设计——文字编辑实验报告

课程设计报告课程设计题目:文章编辑 姓名杨博 学号201520220205 班级1522202 指导教师邹国华 2016年6月30日

东华理工大学 课程设计评分表 学生姓名:杨博班级:1522202 学号:201520220205 课程设计题目:文章编辑 项目内容满分实评 选题能结合所学课程知识、有一定的能力训练。符合选题要求 (5人一题) 10 工作量适中,难易度合理10 能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10 理论依据充分,数据准确,公式推导正确10 能应用计算机软件进行编程、资料搜集录入、加工、排版、 制图等 10 能体现创造性思维,或有独特见解10 成果质量总体设计正确、合理,各项技术指标符合要求。10 说明书综述简练完整,概念清楚、立论正确、技术用语准确、 结论严谨合理;分析处理科学、条理分明、语言流畅、结构 严谨、版面清晰 10 设计说明书栏目齐全、合理,符号统一、编号齐全。格式、 绘图、表格、插图等规范准确,符合国家标准 10 有一定篇幅,字符数不少于5000 10 总分100 指导教师评语: 指导教师签名: 2016年6月30 日

实验题目:简单的文本编辑器 1、题目及要求 名称:简单的文本编辑器 内容:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章, 每行最多不超过80个字符,共N行。 要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一字符或者子串,并将后面的字符前移。 (4)插入某一字符或者子串。 (5)查找某一字符或者子串。 存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章。 2、对题目的大概理解: 本程序应实现以下功能: (1)文章内容的输入:包括字母、标点符号、数字、空格等; (2)文章内容的统计:包括文章中大写字母、小写字母、数字、标点符号、空格以 及文章所有字数的个数的统计; (3)文章内容的处理:包括对文章内容的查找、删除以及对指定位置进行插入操作,其中在查找的过程中统计出该字符或字符串在文章中出现的次数; 1、问题分析 本程序是对一段英文文章的内容进行处理,存储方式采用链式存储,没有文件操作,故本程序对其文本内容的所有操作都是在链表中进行的。对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中,在此部分设计中最大的问题在于输入文章过程中输 入的字符数大于80时如何换行;对于文本内容的统计,使用循环对已存储的文章进行匹配,大写字母数、小写字母数、空格数、数字数直接通过比较即可得到,标点符号通过ASCⅡ比较即可得到;对于文本内容的处理,查找部分仍是使用循环对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,如果存在相同的记录相同的个数及位置并输出个数及位置。删除部分先使用程序的查找功能对文章中需要删除的字符或者字 符串进行查找,然后对其进行删除。插入部分为通过输入的插入位置(行、列)将字符或者 字符串插入到文章制定位置。 一、数据结构选择和概要设计

东华理工大学数据结构A卷

一、选择题(每空2分,共20分) 1、设语句x++的时间是单位时间,则以下语句的时间复杂度为(B) for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(n2) C.O(n) D.O(n3) 2、若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用(C)存储方式最节省运算时间。 (A) 双链表(B) 单链表(C) 顺序表(D) 单循环链表 3、若长度为n的线性表采用顺序存储结构,在其第i(1≤i≤n+1)。个位置插入一个新元素的算法的时间复杂度为(C) A.O(0) B.O(1) C.O(n) D.O(n2) 4、若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是(D) A. 不确定 B.n-i C. n-i-1 D. n-i+1 5、设有广义表D=(a,b,D),其长度为(C) A.1 B.2 C.3 D.无穷 6、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为(C)A.4 B.5 C.6 D.7 7、在有n个叶子节点的哈夫曼树中,其节点总数为(D) A、不确定 B、2n C、2n+1 D、2n-1 8、要联通一个具有n个顶点的无向图中,要连通全部顶点至少需要( A)条边。 A.n-1 B.n C.n+1 D.2n 9、在一个具有n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素(又称为有效元素)的个数为(D) A.nB.n×eC.eD.2×e 10、下列排序方法中,哪一个是稳定的排序方法?(A) A.直接插入排序B.希尔排序C.堆排序D.快速排序 二、填空题(每空2分,共20分) 1、线性表是一种线性结构,一个线性表中的所有元素应与结点之间存在一对一的关系 2、一个顺序表的第一个元素的存储地址是2000,若每个元素的所占存储空间长度为5,则第8个元素的存储地址是2035 3、在表长为n的顺序表的第i(1≤i≤n+1)个位置上插入一个元素,插入的新元素作为第i个元素,则涉及到的元素的移动次数为n-i+1 4、对于一单链表L(L为头指针,且结点的后继指针分量为next),其p结点(p为链表中某结点的指针)既不是第一个结点,也不是最后一个结点,在p结点后插入s结点(s为某结点的指针)的语句序列是s->next=p->next; p->next=s; 5、设有广义表D=((a,b),(c,d)) 则Head(D)=(a,b)

数据库家电销售管理课程设计

课程设计报告课程设计题目:家电销售管理 学生姓名陈煌 专业软件工程 班级1221809 指导教师江霞 2013年01 月09 日 东华理工大学

一.需求分析 软件需求分析工作是软件生存周期中重要的一步。只有通过需求分析才能把软件功能和性能的总体概念描述为具体上的软件需求规格说明,从而奠定软件开发的基础。软件需求分析工作也是一个不断认识逐步细化的过程。该过程将软件调研阶段的需求资料进行分析和设计,使软件范围逐步细化到详细定义的程度,并分析出各种不同的软件元素,然后为这些元素找到可行的解决方法。家电销售管理系统将从不同的角度的需求分析问题,讲述软件需求类型,分析过程,并部分给出了数据字典和数据流图。 家电销售管理系统是为了确切地表达出系统的每项需求,并作为设计的基础,为软件设计人员提供明确的指导方向,并为软件的功能测试提供测试依据。 对于从网上搜索到的和家电销售有关的系统,我们都只能从一个使用者的角度来对其作出分析。由于我们技术水平和实践经验的局限性,我们觉得我们做的家电销售系统,目的在于巩固和提高自己的技术水平,丰富自己的实践经验,所以要实现的功能也只能是简单的后台数据的添加、删除、修改、查询等,具体来说包括以下的几方面: 1.用户注册:新用户输入相应的信息。 2.用户登录:用户输入用户名,密码,以获得身份确认。 3.个人信息浏览:用户可以查看自己的各种信息。 4.个人信息修改:用户可以修改自己的一些基本信息。 5.管理员登录:管理员输入用户名,密码,以获得身份确认。 6.管理员查询:管理员可以查询商品信息和用户信息。 7.管理员修改:管理员可以修改商品信息和用户信息。 二.全局E—R图

东华理工大学实验报告

计算机通信与网络课程设计报告题目:组建校园局域网 专业:软件工程 班级:10211112 学号:1021111222 姓名:吴美冬 指导教师:李宇锋 2012年9月6号

目录 一、课程设计目的及要求 二、问题描述 三、分析与设计 四、绘制拓扑结构图 五、详细步骤 六、路由器或交换机配置的代码 七、显示最后的结果 八、课程设计总结

一、课程设计目的及要求 一、课程设计目的: 通过一周的课程设计,培养进一步理解和掌握网络组网的过程及方案设计,为今后从事实际工作打下基础;熟练掌握子网划分及路由协议的配置,熟练掌握路由器和交换机的基本配置。 二、课程设计要求: 要求能根据实际问题绘制拓扑结构图,拓扑结构图可以是树形、星形、网状形、环状形及混合形结构的之一,清晰的描述接口,进行路由器或交换机的代码配置实现,并且每个方案的需有以下几部分的内容: 1、需求特点描述; 2、设计原则; 3、解决方案设计,其中必须包含: (1)设备选型; (2)综合布线设计; (3)拓扑图; (4)IP地址规划; (5)子网划分; (6)路由协议的选择; (7) 路由器配置。 二、问题和描述 组建校园局域网 总体要求: 校园网的建设是现代教育发展的必然趋势,建设校园网不仅能够更加合理有效地利用学校现有的各种资源,而且为学校未来的不断发展奠定了基础,使之能够适合信息时代的要求。校园网络的建设及其与Internet的互联,已经成为教育领域信息化建设的当务之急。假

设学校有100台计算机,请规划各个部门,便于管理。 三、分析与设计 进行校园网总体设计,首先要进行对象研究和需求调查,明确学校的性质、任务和改革发展的特点及系统建设的需求和条件,对学校的信息化环境进行准确的描述;其次,在应用需求分析的基础上,确定学校Intranet服务类型,进而确定系统建设的具体目标,包括网络设施、站点设置、开发应用和管理等方面的目标;第三是确定网络拓扑结构和功能,根据应用需求建设目标和学校主要建筑分布特点,进行系统分析和设计;第四,确定技术设计的原则要求,如在技术选型、布线设计、设备选择、软件配置等方面的标准和要求;第五,规划校园网建设的实施步骤。网络要求具有高可靠性,高稳定性和足够的冗余,提供拓扑结构及设备的冗余和备份,为了防止局部故障引起整个网络系统的瘫痪,要避免网络出现单点失效。在网络骨干上要提供备份链路,提供冗余路由。在网络设备上要提供冗余配置,设备在发生故障时能以热插拔的方式在最短时间内进行恢复,把故障对网络系统的影响减少到最小,避免由于网络故障造成用户损失; 校园网网络整体分为三个层次:核心层、汇聚层、接入层。为实现校区内的高速互联,核心层由1个核心节点组成,包括教学区区域、服务器群;汇聚层设在每栋楼上,每栋楼设置一个汇聚节点,汇聚层为高性能“小核心”型交换机,根据各个楼的配线间的数量不同,可以分别采用1台或是2台汇聚层交换机进行汇聚, 主机分配 部门主机数目 教务处25 财务处30 人事处20 软件学 院25

青岛理工大学算法与数据结构期末试题

1.数据的最小单位是()。 A.数据项 B.数据类型 C.数据元素 D.数据变量 2.将含100个结点的完全二叉树从根这一层开始,每层上从左到右依次对结点编号,根结点的编号为1。编号为49的结点X的双亲编号为( ) A.24 B.25 C.23 D.无法确定 3.一个具有n个顶点的无向完全图的边数为( ) A.n(n+1)/2 B.n(n-1)/2 C.n(n-1) D.n(n+1) 4. 设二维数组A[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放的数组元素,a[0][0]的存储地址为860,则a[3][5]的存储地址是( ) A. 1000 B. 860 C. 1140 D.1200 5.关键路径是事件结点网络中( ) A.最短的回路 B.最长的回路 C.从开始结点到完成结点的最短路径 D.从开始结点到完成结点的最长路径 6.判断一个循环队列Q(最多元素为m)为满队列的条件是( ) A.Q->front==Q->rear B. Q->front!=Q->rear C. Q->front== (Q->rear+1)%m D. Q->front!=(Q->rear+1)%m 7. 栈和队列的共同特点是( )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 8. 广义表((a),a)的表尾是( )。 A.a B.((a),a) C.(a) D.((a)) 9.下面程序段的时间复杂度为( ) for (int i=0;ilink; delete s; B.rear=rear-

东华理工大学C++课程设计(哈夫曼树)

《数据结构与算法设计》课程设计报告 题目:哈夫曼树及其应用 学生姓名:刘信宏 学号: 201120180823 班级: 1121808 指导教师:杨勇 2013年1 月11 日

数据结构课程设计任务书 使用班级:1121805-8/1121813-16/1121821-22 使用时间:2012-2013学年第1学期 一、课程设计目的 本课程设计的目的考察学生对常见数据结构及相关算法的综合应用能力,达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,解决实际问题中数据的合理存储表示,并根据相应的存储结构设计效率较高的算法实现对问题的求解;通过此次课程设计进一步培养学生良好的程序设计技巧和分析问题解决问题的能力。 二、课程设计题目 哈夫曼树及其应用 设计目的: 熟悉树的各种存储结构及其特点。 掌握建立哈夫曼树和哈夫曼编码的方法及带权路径长度的计算。 设计内容: 欲发一封内容为AABBCAB ……(共长100 字符,其中:A、B 、C 、D 、E 、F分别有7 、9 、12 、22 、23、27个)的电报报文,实现哈夫曼编码和译码。 设计要求: 分析系统需求。 建立哈夫曼树。 进行哈夫曼编码,并求出平均编码长度。 译码。对编码好的内容进行译码。 三、课程设计要求: 1、每人一题,且需独立完成。 2、每人的设计程序必须为可执行的exe文件,且需指导教师验收合格。学生程序必须在课程设计的最后一天交由指导教师验收合格。过期不再验收程序,如程序验收不合格或在规定时间内未经指导教师验收,则视为该生程序没有完成。 3、每人必须在规定时间内到机房做程序,指导老师将严格考勤,上机期间严禁做与课程设计无关的事情。指导教师将随时抽查。 4、每人必须撰写课程设计报告并上交纸质稿(格式附后)。 5、上交材料包括课程设计报告电子稿和程序代码电子稿(每位同学先建立一个文件夹,取

神秘国度的爱情故事实验报告 (2000字)

课程设计报告 课程设计题目:神秘国度的爱情故事 学生姓名谢良斌 学号 1224269809 专业软件工程班级 1221809 指导教师李翔 2014年 1月 5 日

东华理工大学课程设计评分表 学生姓名:谢良斌班级:1221809 学号:201220180914 课程设计题目:神秘国度的爱情故事 一、课程设计题目:神秘国度的爱情故事 二、课程设计内容:

某个太空神秘国度中有很多美丽的小村,从太空中可以望见,小村间有路相连,更精确一点说,任意两村之问有且仅有一条路径。 小村a中有位年轻人爱上了自己村里的美丽姑娘。每天早晨,姑娘都要去小村b里的面包房工作,傍晚6点回到家。年轻人终于决定要向姑娘表白,他打算在小村c等着姑娘路过的时候把爱慕说出来。问题是,他不能确定小村c是否在小村b到小村a 之间的路径上。你可以帮他解决这个问题吗? 三、算法设计: 我们能够注意到条件中有一条“任意两村之间有且仅有一条路径”,这表明这是一棵n个节点的树,每次查询给定点c是否在其余两点a、b之间的路径上。最直接的解法是沿着a、b点往上找,直到相遇或者碰到c,不过这样对于全部节点在一条线上的树,每次查询的复杂度是o(n),肯定超时。 仔细观察,我们可以发现如果点c在a、b之间的路径上,那么它满足下面这个有趣的规律:点c在a、b之间的路径上当且仅当c仅是a、b其中一个节点的祖先——除了一个非常特殊的情况,就是当c是a、b两点的最低公共祖先时,点c也在a、b的路径上(其实这道题的关键就是判断这个特殊情况)。因此,我们得到如下的算法:判断点c 是否仅是其中一个节点的祖先。如果是,那么c肯定在路径上(那么就有该青年可以等到这位美丽姑娘);否则,如果c是a、b两点的共同祖先,则判断c是否为最低公共祖先,如果是,那么c肯定在路径上(那么就有该青年可以等到这位美丽姑娘),否则c不在路径上(该青年不可以等到这位美丽姑娘)。 那么现在剩下两个问题: (1)如何快速判断一个点是否是另外一个点的祖先?

东华理工大学数据库应用复习题

数据库应用复习题 一、选择题 1、SQLserver数据库文件有三类,其中主数据文件的后缀为(C): A、.ndf B、.ldf C、.mdf D、.idf 2、下面标志符不合法的是:(C)。 A、[mydelete] B、_mybase C、$money D、trigger1 3、下面字符串能与通配符表达式[ABC]%a进行匹配的是:(C)。 A、BCDEF B、A_BCD C、ABC_a D、A%a 4、下列说法正确的是__B____。 A、视图是观察数据的一种方法,只能基于基本表建立。 B、视图是虚表,观察到的数据是实际基本表中的数据。 C、索引查找法一定比表扫描法查询速度快。 D、索引的创建只和数据的存储有关系。 5、下列途径哪个不是实现值域完整性____B___。 A、rule(规则) B、primarykey C、notnull D、default 6、SQL Server 2008是一个(C)的数据库系统。 (A)网状型(B)层次型(C)关系型(D)以上都不是 7、SQL Server 2008采用的身份验证模式有(D)。 (A)仅Windows身份验证模式(B)仅SQL Server身份验证模式 (C)仅混合模式(D)Windows身份验证模式和混合模式 8、在SQL Server 2008中,当数据表被修改时,系统自动执行的数据库对象是(B)。(A)存储过程(B)触发器(C)视图(D)其他数据库对象 9、SQL Server的字符型系统数据类型主要包括(B)。 A.Int、money、char B.char、varchar、text C.datetime、binary、int D.char、varchar、int 10、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是(A)。(A)聚集索引(B)非聚集索引(C)主键索引(D)唯一索引 11、要查询book表中所有书名中包含“计算机”的书籍情况,可用(B)语句。 (A)SELECT * FROM book WHERE book_name LIKE ‘计算机*’ (B)SELECT * FROM book WHERE book_name LIKE ‘计算机%’ (C)SELECT * FROM book WHERE book_name=‘计算机*’ (D)SELECT * FROM book WHERE book_name=‘计算机%’ 12、SELECT语句中与HAVING子句通常同时使用的是(C)子句。 A.ORDERBY B.WHERE C.GROUP BY D.无需配合 13、要删除mytable表中的myindex索引,可以使用(D)语句。 (A)DROP myindex(B)DROP mytable.myindex (C)DROP INDEX myindex(D)DROP INDEX mytable.myindex 14、下列选项都是系统提供的存储过程,其中可以进行视图信息的查询是(A)。 (A)sp_helptext(B)sp_helpindex(C)sp_bindrule(D)sp_rename 15、SQLServer提供的单行注释语句是使用(B)开始的一行内容。 A.“/*” B.“--” C.“{” D.“/” 16、以下运算符中优先级最低的是(D。 (A)+(加)(B)=(等于)(C)like (D)=(赋值) 17、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(B)

东华理工大学毕业设计

东华理工大学毕业设计(论文)撰写规范 (修订稿) 2006年10月 学士学位毕业(论文)是学生在教师的指导下经过调查研究、科学实验或工程设计,对所取得成果的科学表述,是学生毕业及学位资格认定的重要依据。其撰写在参照国家、各专业部门制定的有关标准及语法规范的同时,应遵照如下规范(适用于我校所有专业毕业论文的撰写): 一、毕业设计(论文)存档资料 1.《东华理工学院本科生毕业设计(论文)过程管理手册》,包括:毕业设计(论文)任务书、毕业设计(论文)开题报告、文献综述(3000~5000字)、毕业实习成绩鉴定表、毕业设计(论文)进展情况记录、毕业设计(论文)进展中期小结、教师评语和评分表、毕业答辩评分表、毕业设计(论文)答辩记录卡等); 2. 毕业论文或毕业设计说明书; 3. 外文译文、原文复印件; 4. 图纸、软盘等; 5. 毕业设计(论文)学生日志。 二、毕业设计(论文)存档文档的填写及有关资料的装订 毕业设计(论文)存档资料使用学校教务处统一印制的毕业设计(论文)资料袋存放。毕业设计(论文)存档资料应包括(一)中规定内容。 毕业设计(论文)存档文档应按要求认真填写,字迹要工整,卷面要整洁,手写一律用黑或蓝黑墨水。 毕业设计(论文)存档文档应按顺序分成两册装订。封面应按照学校提供的格式和要求填写,封面颜色可以院系为单位统一自行选用,填写论文题目、姓名、指导教师姓名等内容。其中“申请学位级别”按照《中华人民共和国学位条例暂行实施办法》所规定的名称填写,如工学学士、管理学学士、理学学士、经济学学士、文学学士等。扉页的内容、格式与封面相同。 第一册(毕业论文或毕业设计说明书)的内容和装订顺序为:封面、扉页、中文摘要及关键词、英文摘要及关键词、目录、正文、谢辞、参考文献、附录。 第二册(即附件——东华理工学院本科生毕业设计(论文)过程管理手册)的内容和装订顺序已经确定,按规定要求认真填写。 外文译文与原文复印件、文献综述与工程图纸(按国家标准折叠装订)、电子文档、软盘及学生日志等资料一起放入毕业设计(论文)资料袋内交指导教师查收,经审阅、评阅、答辩后,交院(系)统一归档保存。 三、论文结构及写作要求 论文(设计说明书)应包括标题、中文摘要与关键词、英文题目、英文摘要与关键词、目录、正文、致谢、参考文献和附录等部分。 (一)标题、封面及扉页 标题应简短、明确、有概括性,应恰当、准确地反映本课题的研究内容。通过标题使读者大致了解毕业设计(论文)的内容、专业的特点和科学的范畴。标题字数要适当,一般不宜超过25字,外文题目不超过15个实词,不使用标点符号,中外文题名应一致。标题中尽量不用英文缩写词,必须采用时,应使用本行业通用缩写词。

物理实验教学中心总体情况-教务处-北京理工大学珠海学院

物理实验教学中心 总体情况 2013.01

一、中心概况 北京理工大学珠海学院物理实验教学中心前身为物理实验室,成立于2005年,是学校首批建设的实验室之一。按照“建设创新型国家、培养知识素质能力协调发展、具有创新能力优秀人才”对物理实验教学的要求,采取有力措施,及时的调整实验室布局、优化资源配置、整合教学内容、科学合理的构建教学平台,在学校的大力支持下,2012年实验室搬迁到化工楼E座一、二、三楼,实验室面积和教学仪器设备不断增加,五年多来,累计投资330多万元,进行实验室的环境改造及仪器设备的更新,现有实验室面积1040m2,仪器设备总台数895台。根据学校“实验中心-实验室-实验分室”的管理模式,2010年数理学院成立了大学物理实验中心。为进一步整合和优化学院教学资源,2011年学院成立了数理学院实验中心,下辖物理实验教学中心、统计学实验室。物理实验教学中心分为力热综合实验室、光学实验室、电学实验室、创新实验室、计算机辅助教学实验机房、应用物理学专业实验室四大部分组成,承担全校基础物理实验教学、物理创新与演示实验、部分学生课外科技制作和部分专业软件类课程教学。实验中心成立以来,制定并完善了各项管理制度,做到了管理规范、教学规范。针对独立学院应用型人才的培养目标,在强化基本实验技能训练的基础上把物理思想突出的实验方法和实践性强的项目提炼并转化为综合性实验或设计性实验的教学内容。密切跟踪国内外一些知名高校物理实验教学的成功做法,及时的修改和调整教学内容和教学体系。新的实验体系包括演示实验、基础实验、综合性实验、设计性实验、创新性实验五个层次。其先进性(新技术新方法新内容)、综合性(理论方法应用)、实用性(实际问题的解决)与针对性(学科特点专业特色)有了明显提高,2011年获批首个也是目前唯一一个校级实验实践类精品课程建设项目。

拆装实验报告1

东华理工大学长江学院专业技术综合实践 院部:机械与电子工程系 学号:1030670326 专业:材料成型及控制工程 姓名:程倩娟 指导教师:刘汉代 二〇一三年六月

夹具拆装综合实践 一、实验目的和要求 1、了解夹具的结构和夹具主要零部件的基本构造与组成,如夹具体、定位元件、夹紧机构、辅助装置; 2、了解夹具体、定位元件、夹紧机构、辅助装置之间的位置关系; 3、熟悉夹具的拆装和调整过程,初步掌握夹具的工作原理。 注意事项:1. 夹具体的材料; 2. 定位方式的选择; 3. 夹紧机构确定; 二、实验设备及拆装工具 1、实验设备:夹具 2、拆装工具:各类扳手、钳子、螺丝刀、锤子等。 分组安排: 注:F是组长,担任检查和调试任务。 三、实验内容 1、双臂曲柄钻孔组合夹具结构简图及拆装步骤

1)双臂曲柄钻孔夹具结构简图(如下) 双臂曲柄钻孔组合夹具 1—长方形基础板2—伸长板3、4、12—方形支承5—圆形定位盘6—圆柱形定位销7—螺栓8—垫圈9—螺母10—a孔 11、14—钻模板13—b孔15—槽用方头螺栓 2、确定拆装方案 1)拆过程 旋转螺母9,使其从螺栓杆7上取下;依次取下垫片8、工件、定位销6、定位盘5、方形支撑4、最后从基础板1上取下螺栓杆7。 工件定位装置拆卸:旋转螺母,使其从螺栓杆上取下;然后取下垫片;从钻套10中取下定位螺钉,然后从螺杆上取下钻模板11、依次取下方形支座12、将螺栓杆从基础板1上拿下。 旋转螺母,将其从螺纹杆上拿下,然后取下垫片,将方形支撑3从螺栓杆上取下;旋转螺母,将其从螺栓杆上取下,依次取下伸长板2,最后从基础板上取下螺栓杆。

数据结构试卷及答案90325

东华理工大学2015 —2016学年第 一 学期考试 模拟试卷 A 一、 填空题(50分) 1、数据结构是一门研究非数值计算的程序设计问题中的 数据元素 以及它们之间 关系 和运算等的科学。(2分) 2、数据结构的类型通常分为: 集合、线性结构、树形结构、图状结构或网状结构 ;从逻辑上可以把它们分成: 线性结构和非线性结构 。 3、数据的 逻辑结构 只抽象反映数据元素的 逻辑关系 ;数据的 存储(物理)结构 是数据的逻辑结构 在计算机存储器中的实现 。 4、算法分析的目的是分析算法的 效率以求改进 ,算法分析的两个主要方面是 空间复杂度和时间复杂度 。 A 5、计算机算法是解决问题的 有限运算序列 ,它必须具备 输入、输出、确定性、有穷性和稳定性 等5个方面的特性。 6、线性结构中元素之间的关系存在 一对一 关系,树形结构中元素之间的关系存在 一对多 关系,图形结构中元素之间的关系存在 多对多 关系。 7、试写出以下算法的时间复杂度 i=s=0 while (s

i = i*2 O(log2n) 8、抽象数据类型的定义由三元组来定义:(D,S,P)其中,D是数据对象, S是D上的关系集,P是对D的基本操作集。 9、写出抽象数据类型线性表的定义 ADT List{ 数据对象:D={ai | ai ∈Elemset, i=1,2,…,n,n≥0} 数据关系:R={< ai-1 , ai> | ai-1 , ai ∈D, i=2,…,n} 基本操作: InitList(&L) //构造一个空的线性表L DestroyList(&L) //消毁线性表L ListLength(L) //返回L中数据元素的个数 ListInsert(&L,i,e) // 1 ≤ i ≤ ListLength(L)+1,在L中第i个位置之前插入数据元素e,L长度加1 ListDelete(&L,i,&e) // 1 ≤ i ≤ ListLength(L),删除L中的第i个元素,并用e 返回 ListTraverse(L,visit()) //依次对L的每个元素调用函数visit() ………… } ADT List 10、指出线性表顺序存储、链式存储结构的优缺点。 答:顺序存储优点:逻辑上相邻,物理位置也相邻,可以随机存取表中任一元素;缺点:插入和删除元素时需要移动大量元素。 链式存储结构优点:插入、删除元素时不需要移动元素;缺点:逻辑上相邻,物理位置不一定相邻,不能随机存取表中元素,需要依次查找,求线性表的长度时不如顺序存储结构方便,需要逐个结点搜索计算,或设置带头结点的线性链表。 11、完成下列在单链表中删除元素算法 Status ListDelete_L(LinkList &L, int i, ElemType &e){ //删除第i个元素e p = L; j =0; //p指向头结点 while(p->next && jnext; ++j

东华理工大学数据库应用复习题 新 优质文档

最新《数据库应用》复习题 一、填空题 1、在三大传统的数据模型中,具有严格的数学理论基础的是_____关系模型___。 2、实现概念模型最常用的表示方法是__E-R图_______。 3.用树型结构表示实体类型及实体间联系的数据模型称为层次模型。 4、模式/内模式映象为数据库提供了_物理_数据独立性。 5、在关系代数运算中,从关系中取出满足条件的元组的运算称为__选择_______。 6.参照完整性规则是对外键的约束。 7.SELECT语句查询条件中的谓词“=SOME”,与运算符IN 等价。 8、关系代数中专门的关系运算包括:选择、投影、_连接_。 9、关系数据操作语言(DML)的特点是:操作对象与结果均为关系、操作的_非过程性强_____、语言一体化、并且是建立在数学理论基础之上。 10.文件系统与数据库系统的最大区别是在数据结构化方面。 11,内模式是描述数据如何在存储介质上组织存储的,又称之为存储或物理模式。12.E-R图中包括实体、属性和联系三种基本图素。 15.数据库概念设计通常采用画E-R图方法。 17.数据库系统的主要特点是:数据独立、_数据共享__和减少了数据冗余、数据的安全性、使用操作方便性。 18.数据库的数据独立性包括:_逻辑独立性_和物理数据独立性。 19.关系代数中专门的关系运算包括:__选择__、投影、连接和除法。 20.数据库的存储结构是建立在___文件组织__基础上的。 23.实体间联系分为三种:一对一联系、____一对多_______ 、多对多联系。 24.属性是信息世界中广泛使用的一个术语,它对应于数据世界的__数据项(字段)__。25.数据库结构设计的过程是“概念设计→__逻辑设计_________→物理设计”。 26.联系是数据库技术的重要特点,至于怎样实现联系,取决于___数据库类型__。 27.数据独立性是指当数据发生变化时,可以不用修改__应用程序____。 28.如果有元组在关系的主码上取值为空值,那么它违反了关系的_实体___完整性约束。29.数据管理经过了人工管理、文件系统和_数据库系统___三个发展阶段。 30.DBMS利用事务日志保存所有数据库事务的_更新(或修改)__操作。 31.如果两个实体之间具有M:N联系,则将它们转换为关系模型的结果是___3____个表。 32.一个关系就是一个_二维表_____,一行对应一个元组,一列对应一个域,也就是一个属性。 33.DBA是指___数据库管理员______,它的职责是维护和管理_数据库____,使之始终处于最佳状态。 34.数据库的三个模式之间存在两种映射,一是_外模式到模式__间的影射,二是__模式到内模式间的映射。 35.数据库的三级体系结构,是从____外模式、___模式______和内模式三个不同层次描述的。 36.在数据处理领域中,数据处理技术经历了_人工管理___、文件管理和__数据库管理_____三个阶段。 37.在关系数据库中,用___二维表_______表示实体及实体之间的关系。 38.DBMS的含义是_数据库管理系统_______,它是用户和_数据库__之间的接口。 39.数据冗余是指_数据的重复存储_____。

毕业设计(论文)过程管理手册正文[东华理工大学][2018][毕业设计][机械与电子工程学院](2018定稿)

学术诚信承诺书 本人以信誉郑重声明:所呈交的学位毕业设计(论文),是本人在指导教师指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。文中引用他人的文献、数据、图件、资料均已明确标注出,不包含他人成果及为获得东华理工大学或其他教育机构的学位或证书而使用过的材料。对本设计(论文)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本毕业设计(论文)引起的法律结果完全由本人承担。本毕业设计(论文)成果归东华理工大学所有。 特此声明。 毕业设计(论文)作者(签字): 签字日期:年月日 本人声明:该学位论文是本人指导学生完成的研究成果,已经审阅过论文的全部内容,并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性。 学位论文指导教师签名: 年月日

毕业设计(论文)任务书 毕业设计(论文)题目: 课题类型:课题来源:指导教师: 1.课题来源、目的和意义 2.课题任务的主要内容和要求(包括原始数据、资料、技术参数、工作要求等)

3.主要参考文献 4 毕业设计(论文)工作规定进行的日期:自年月日至年月日止学生实际开始执行任务书日期:年月日 学生送交毕业设计(论文)日期:年月日 指导教师签名: 年月日

5.系领导或专业负责人审核意见 负责人(签名): 年月日6.学生意见 学生签名: 年月日7.课题变更情况记录(无变更者不需要填写) 指导教师签名:院(系)领导签名: 年月日年月日 注:1)课题类型:理工类——①理论研究型;②应用研究型;③应用设计型;④综合型 经管文法等——①专题型;②项目研究与设计型;③综述型;④综合型2)课题来源:①国家、省部级课题;②企业(公司)资助项目;③学校资助项目;④自选项目

DAC0832波形发生器课程设计实验报告1

DAC的输出控制 班级: 1221201 专业:测控技术与仪器 姓名: xxxxx 学号: xxxxx 指导老师:周伟 东华理工大学 2015年1月12日

目录 第1章系统设计方案 (2) 1.1 设计思路 (2) 1.2 方案比较与选择 (2) 第2章系统硬件设计……………………………………………………………………….2. 2.1 主控制器电路 (2) 2.2 数模转换电路 (3) 第3章系统软件设计…………………………………………………………………….. .6 3.1 系统整体流程………………………………………………………………………….. .6 3.2 数模转换程序………………………………………………………………………….. .6 第4章系统调试 (8) 4.1 proteus的调试 (8) 第5章结论与总结 (11) 5.1 结论 (11) (系统总体设计与完成做一个总结,是客观的,主要包括:设计思路,设计过程,测试结果及完善改进的方向。) 5.2 总结 (11) (这是一个主观的总结,谈谈自己收获和不足等方面的内容。)

第1章系统设计方案 1.1 设计思路 (一)、课设需要各个波形的基本输出。如输出矩形波、锯齿波,正弦波。这些波形的实现的具体步骤:正弦波的实现是非常麻烦的。它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。然而为了实现100HZ的频率,终于发现,将总时间除了总步数,根据每步执行时间,算出延时时间,最终达到要求,然后建一个表通过查表来进行输出,这样主要工作任务就落到了建表的过程中。这样做的好处在于,查表所耗费的时钟周期相同,这样输出的点与点之间的距离就相等了,输出的波形行将更趋于完美,当然更让我们感到的高兴的是它输出波形的频率将近达到了100赫兹,能够满足我们设计的扩展要求了。而三角波,则每次累加1,当达到初值时,每次累减1,算出延时时间,也就达到要求了,矩形波和锯齿波类似。 (二)、这次做的三种波形可以相互转换,这个实现起来找了很多人最终发现,在每次循环之初进行扫描,而在每个中断入口处,对中断优先级进行设定,最终达到设计目的。 1.2 方案比较与选择 方案一:采用模拟电路搭建函数信号发生器,它可以同时产生方波、三角波、正弦波。 但是这种模块产生的不能产生任意的波形(例如梯形波),并且频率调节很不方便。 方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定 在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。 方案三:使用集成信号发生器发生芯片,例如AD9854,它可以生成最高几十MHZ的波形。 但是该方案也不能产生任意波形(例如梯形波),并且价格昂贵。 方案四:采用AT89C51单片机和DAC0832数模转换器生成波形,加上一个低通滤波器, 生成的波形比较纯净。它的特点是可产生任意波形,频率容易调节,频率能达到设计的500HZ 以上。性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。 经比较,方案四既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比高,所以采用该方案. 第2章系统硬件设计 2.1 主控制器电路 89C52可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。 89C52可编程并行接口芯片工作方式说明:

数据结构课程设计-赫夫曼编码(C语言)

课程设计报告 课程设计题目:赫夫曼编码系统 学生姓名:章建 专业:计算机科学与技术 班级:1120702 学号:201120070214 指导教师:艾菊梅 2012年06 月20 日

目录 一、设计要求------------------------------------2 二、存储结构------------------------------------2 三、设计思想------------------------------------2 1、设计包含的几个部分-----------------------2 2、流程图-----------------------------------3 四、详细设计------------------------------------4 五、算法复杂度分析------------------------------8 六、显示结果------------------------------------9 七、心得体会------------------------------------11 八、附录:源程序代码----------------------------11

一、设计要求 赫夫曼树 任务:建立建立最优二叉树函数 要求:可以建立函数输入二叉树,实现赫夫曼树的编码和译码系统,重复地显示并处理编码/解码功能,直到选择退出为止。 二、存储结构: 在本次课程设计中,每一个字符的信息用一个结构体存储,包含结点值、权值、双亲结点、左孩子结点、右孩子结点等数据。赫夫曼码和所有字符都是用一个一维数组建立存储的,所以本次课程设计的存储结构是顺序存储。 三、设计思想 哈夫曼编译码系统的主要功能是先建立哈夫曼树,然后利用建好的哈夫曼树生成哈夫曼编码后进行译码。 在通信中可以采用0和1的不同排列来表示不同的字符,称为二进制编码。而赫夫曼树在数据编码中的应用是数据的最小冗余编码问题他是数据压缩学的基础。若每个字符出现的频率相同,则可以采用等长的二进制编码,频率不同,采用不等长的二进制编码,频率达的字符采用位数较少的编码,频率小的采用位数较多的编码。赫夫曼编码就是一种不等长的二进制编码,而赫夫曼树是一种最优二叉树,它的编码也是一种最优编码。在赫夫曼树中,规定往左编码为0,往右编码为1,则得到叶子节点的编码为从根结点带叶子结点中所有路径中0和1的顺序排列。 (1)设计包含的几个方面: ①赫夫曼树的构造 假设有n个权值,则构造出的赫夫曼树有n个叶子结点。n个权值分别为w1,w2,………wn,则赫夫曼树构造规则为: 1、将w1,w2,…….wn,看成有n棵树的森林。 2、在森林中选出两个根结点最小的树合并,作为一棵新树的左右子书, 且新树根结点权值为左右子树根结点权值之和。 3、从森林中删除选取的两棵树,并将新树加入森林。 4、重复2和3步骤,直到森林中只剩一棵树为止。 ②赫夫曼编码 要求电文的赫夫曼编码,必须先定义赫夫曼编码类型,根据设计要求和实际需要定义的类型如下: typedet struct { char ch; // 存放编码的字符 char bits[N+1]; // 存放编码位串 int len; // 编码的长度 }CodeNode; // 编码结构体类型 ③代码文件的译码 在通信中,若将字符用赫夫曼编码形式发送出去,对方接收到编码后将编码还原成字符。译码的基本思想是:读文件中编码,并与原先生成的赫夫曼编码表

相关文档
最新文档