文档库 最新最全的文档下载
当前位置:文档库 › 中国矿业大学数据结构课程设计报告

中国矿业大学数据结构课程设计报告

中国矿业大学数据结构课程设计报告
中国矿业大学数据结构课程设计报告

《空间数据结构基础》

课程实习报告(地信12级)

姓名朱红鑫

班级地信12-2

学号 07122960

环境与测绘学院

目录

实验一:C++面向对象程序设计基础 (2)

实验三:通讯簿管理(顺序表的应用) (6)

实验五:将中缀表达式转换为后缀表达式 (13)

实验七:二叉树的操作 (18)

实验九:字符串 (24)

1C++面向对象程序设计基础

【实验简介】学会用算法语言C++描述抽象数据类型,使用模板建立数据结构。理解数据结构的组成分为两部分,第一部分是数据集(数据元素),第二部分是在此数据集上的操作。从面向对象的观点看,这两部分代表了对象的属性和方法。掌握用C++描述数据结构的基本方法,即通过建立类来描述抽象数据类型。类的数据成员提供对象属性,成员函数提供操作方法,方法是公共接口,用户通过调用方法实现对属性的访问。

【实验内容】

1.定义三维空间的坐标点TPoint

2.描述三维空间的球TBall,实现其主要操作(如计算体积和表面积,输

出空间坐标等)。

【主要代码】

#include

#include

class TPoint

{

protected:

double x; //虚拟类型的水平坐标值

double y; //虚拟类型的垂直坐标值

double z; //z坐标

public:

TPoint(){x = 0; y = 0; z = 0; } //缺省构造函数

TPoint(double px, double py,double pz){x = px;y = py;z=pz;} //带参数的构造函数

void move(double mx,double my,double mz){x = mx;y = my;z=mz;} //移动位置(修改坐标值)

void show(){cout<<"x="<

else if(distance(ma,pb)==ma.r)

cout<<"该点在球面上"<

else

cout<<"该点在球内"<

}

void main()

{

TBall a;//调用缺省的函数

cout<<"a球的基本参数为:"<

a.show();//调用show函数

TBall b(15,25,36,2);

cout<<"b球的基本参数为:"<

b.show();

TPoint c(15,25,37.5); //创建点c

cout<<"c点的基本参数为:"<

c.show();

TBall d(c);//调用TBall(TPoint &p)函数

cout<<"d球的基本参数为:"<

d.show();

TBall e;

cout<<"bd两球心的距离:"<

TBall f;

f.judge(b,c);

}

【实验过程】

1、首先对三维点的定义,包括缺省和有参数的构造函数;

2、之后对球的定义,因为是继承的所以只把半径作为数据成员,包括对球缺省

和有参数的构造函数,另一个为点创建的球定义(半径默认为r=1);

3、对两点的距离求解的实现,也是球心与球心或者点的距离的求解

4、对点与球的位置判断,利用点与球心的距离与半径的比较来得到,编制实现

函数,之后就是main函数的实现。

【实验结果】

【实验体会】

通过本次实验,我了解到类的基本概念。类中分公有成员和私有成员。私有

成员需在公有成员中对其操作。掌握了模板类的基本用法。对点的定义是重要的,对点的取值操作在后面的使用很重要,公有继承等操作不能取父类的私有成员。对球的操作也应该包括以点创建球心赋初值,这对构造球有更加方便的作用,对程序的调试更加方便。程序的实现对返回的类型也有很大的影响,所以要正确的选用返回类型。

3通讯簿管理(顺序表的应用)

【问题描述】通讯簿是一个线性表,可以存储一定数量的联系人记录,提供查找、插入、删除和修改等操作。通讯簿的特点是以查找为主要操作,要求快速查找到指定对象的位置,故宜采用具有随机访问功能的顺序表。

【数据结构】使用顺序表SeqList建立通讯簿。作为表项的联系人记录,至少应包括以下属性:

{ 序号,姓名,与本人关系,电话号码}

其中序号具有唯一性。序号和姓名可作为查找的主要关键字。与本人关系可枚举为“亲人”、“朋友”和“同事”,主要作用是为联系人分组,并作为次要关键字。

将上述联系人记录定义为一个结构(struct),在主程序中建立模板类顺序表SeqList的对象时用该结构实例化表结点的类型。

【主要功能】程序应为用户提供操作选择界面,必要的操作包括:查找某人电话号码,添加新记录,修改记录,删除记录,打印亲人清单、朋友清单或同事清单以及退出等。另外,为初始化方便,原始数据可存储在磁盘文件中。

【主要代码】

#include

#include

#include

static n=1;

enum Relation{Friends,Familiers,Colleague};

template

struct Person

{ char Num[10];//编号

char PhoNum[12];//电话号码

char Name[20];//姓名

int m;//关系

Person( int &ite) {m=ite;}

Person(int &p1,char Name[],char P[], char item[])

{ for(int i=0;i<20;i++){ Name[i]=Name[i]; }

for(int j=0;j<11;j++){PhoNum[j]=P[j];}

for(int k=0;k<10;k++) {Num[k]=item[k];}

m=p1;

}};

template

class SeqList

{protected:

Person *data;

public:

SeqList(T& x){data=new Person(x);}

bool Input();

void Output();

void Insert();

void Search();

void Show_All();

void Delete();

void Correct();

void Show_Select();

void Show_Friends();

void Show_Familiers();

void Show_Colleague();

};

template

bool SeqList::Input()

{ static l;

cout<<"请输入您要添加的人的编号:"; cin>>data[l].Num;

cout<<"请输入您要添加的人的姓名:"; cin>>data[l].Name;

cout<<"请输入您要添加的人的电话:"; cin>>data[l].PhoNum;

cout<<"请输入您要添加人与您的关系亲人(1)朋友(2)同事(3)"; cin>>data[l].m; l++; n++; return true;

}

template

void SeqList::Insert()

{ this->Input(); cout<<"信息已保存好!"<

template

void SeqList::Search()

{ char pr[20];

cout<<"请输入您要查找的序号或姓名:"; cin>>pr;

bool flag=1;

for(int li=0;li

{ if(IfEqual(pr,data[li].Name)||IfEqual(pr,data[li].Num)) {

cout<<"序号:"<

"<

for(int k=0;data[li].PhoNum[k]!='\0';k++)

{cout<

cout<<'\t';Switch(data[li].m);flag=0;

} }

if(flag) cout<<"查找失败!请查证后再试!"<

}

template

void SeqList::Show_All()

{ cout<<"所有人的信息如下:"<

for(int lm=0;lm

{

cout<<"序号:"<

"<

for(int k=0;data[lm].PhoNum[k]!='\0';k++)

{cout<

cout<<'\t'; Switch(data[lm].m); }

}

template

void SeqList::Show_Select()

{cout<<"请选择要显示联系人与您的关系:亲人(1),朋友(2),同事(3),个人(4):";

int m;cin>>m;

switch(m)

{

case 1:{Show_Familiers();break;}

case 2:{Show_Friends();break;}

case 3:{Show_Colleague();break;}

case 4:{Search();break;}

default: {cout<<"关系设置错误!";break;}

}}

template

void SeqList::Show_Friends()

{ cout<<"所有朋友的信息如下:"<

for(int lm=0;lm

{ if(data[lm].m==0)

{

cout<<"序号:"<

"<

for(int k=0;data[lm].PhoNum[k]!='\0';k++)

{cout<

cout<<'\t';Switch(data[lm].m);}

}}

template

void SeqList::Show_Familiers()

{ cout<<"所有亲人的信息如下:"<

for(int lmm=0;lmm

{ if(data[lmm].m==1)

{

cout<<"序号:"<

"<

for(int k=0;data[lmm].PhoNum[k]!='\0';k++)

{cout<

cout<<'\t'; Switch(data[lmm].m); }

}}

template

void SeqList::Show_Colleague()

{ cout<<"所有同事的信息如下:"<

for(int lmp=0;lmp

{ if(data[lmp].m==2)

{

cout<<"序号:"<

"<

for(int k=0;data[lmp].PhoNum[k]!='\0';k++)

{cout<

cout<<'\t'; Switch(data[lmp].m); }

}}

template

void SeqList::Correct()

{ char ptk[20];

cout<<"请输入您要修改联系人的序号或姓名:";cin>>ptk; bool

flag=1;

for(int lp=0;lp

{if(IfEqual(ptk,data[lp].Name)||IfEqual(ptk,data[lp].Num))

{

cout<<"修改编号:"; cin>>data[lp].Num;

cout<<"修改姓名:"; cin>>data[lp].Name;

cout<<"修改电话号码:"; cin>>data[lp].PhoNum;

cout<<"修改与您的关系:亲人(1),朋友(2),同事(3):";

cin>>data[lp].m; flag=0;

} }

if(flag) cout<<"您要修改的联系人不存在!"<

}

template

void SeqList::Delete()

{ char ptr[20];

cout<<"请输入您要删除的联系人的序号或姓名:";cin>>ptr;bool flag=1;

for(int lr=0;lr

{if(IfEqual(ptr,data[lr].Name)||IfEqual(ptr,data[lr].Num))

{strcpy(data[lr].Num,data[n-2].Num);

strcpy(data[lr].Name,data[n-2].Name);

strcpy(data[lr].PhoNum,data[n-2].PhoNum);

data[lr].m=data[n-2].m; n--;

cout<<"信息已删除!"<

}

}

if(flag) cout<<"删除失败!"<

void Switch(int i)

{ switch(i)

{

case 1: {cout<<"亲人"<<'\t'<

case 2: {cout<<"朋友"<<'\t'<

case 3: {cout<<"同事"<<'\t'<

default: {cout<<"关系设置错误!";break;}

}}

int IfEqual(char p1[],char p2[])

{ int flag=strcmp(p1,p2); return flag; }

void Menu()

{

cout<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★" <

<<"\t\t※※"

<

<<"\t\t※※我※的※通※迅※录※※" <

<<"\t\t※※"

<

<<"\t\t※ 1. 添加新联系人. 4. 修改信息. ※"

<

<<"\t\t※※"

<

<<"\t\t※ 2. 删除联系人. 5. 查询联系人. ※"

<

<<"\t\t※※"

<

<<"\t\t※ 3. 显示所有联系人. 6. 关闭通讯簿. ※"

<

<<"\t\t※※"

<

<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"

<

}

void main()

{ cout<<"^_^ 欢迎使用通讯簿!"<

char ptr[20];cout<<"安全验证,请输入密码:";cin>>ptr;

{ int flag=strcmp(ptr,"朱红鑫");

if(flag==0)cout<<"通过验证!"<

else

{ cout<<"#_# 对不起,您无访问权限!" <

bool flag1=0; Menu(); int x=0; SeqList hyb(x);

while (1)

{

cout<<"\t\t请选择菜单 :" ; int n; cin>>n;

switch (n)

{

case 1: hyb.Insert();break;//添加联系人

case 2: hyb.Delete();break;//删除联系人

case 3: hyb.Show_All();break;//显示所有联系人

case 4: hyb.Correct();break;//修改联系人信息

case 5: hyb.Show_Select();break;//选择查询联系人

case 6: cout <<"\t\t安全退出" <

}

if(flag1) break;

}

}

【实验过程】

【实验体会】

Switch开关语句用得比较多,写完后想想应该给通讯簿加把锁,查资料才搞清楚包含在stdlib.h中的exit(1)可以判断后直接退出程序。以前一直以为

exit(1)可有可无,现在在实际应用中才理解了它的意思。看来课本上的内容还是蛮有用的。程序还存在一些缺陷。

5将中缀表达式转换为后缀表达式

【问题描述】表达式转换。输入的中缀表达式为字符串,转换得到的后缀表达式存入字符数组中并输出。

例如: a*(x+y)/(b-x) 转换后得: a x y + * b x - /

【数据结构】

●定义一个暂时存放运算符的转换工作栈opst。

●中缀表达式字符串char *infix;

●后缀表达式字符串char *postfix;

【算法提示】

转换规则:把运算符移到它的两个操作数后面,删除掉所有的括号。

从头到尾扫描中缀表达式,对不同类型的字符按不同情况处理:

●数字或小数点,直接写入字符串postfix,并在每个数值后面写入一个空

格;

●左括号,进栈,直到遇见相配的右括号,才出栈;

●右括号,表明已扫描过括号内的中缀表达式,把从栈顶直到对应左括号

之间的运算符依次退栈,并把结果推入栈内;

●对于运算符,分两种情况处理:

◆该运算符的优先级大于栈顶符号的优先级,则入栈;

◆若该运算符的优先级小于栈顶优先级,则先弹出栈顶运算符、写入

postfix串;继续将该运算符与栈顶运算符比较,直到能把它推入栈

内为止(即优先级大于栈顶运算符)。

说明:自行设计运算符优先级的表示。

【主要代码】

#include

#include

const int stackIncreament=20;

class SeqStack

{

private:

char *elements;

int top;

int maxSize;

void overflowProcess();

public:

SeqStack(int sz=50);

~SeqStack()

{ delete []elements; }

void Push(const char &x); //入栈

bool Pop(char &x); //出栈

bool getTop(char &x); //取头

int isdigit(char ch);

int isp(char ch1);

int icp(char ch2);

bool IsEmpty() const //判断是否为空

{ return (top == -1)? true:false; }

bool IsFull() const //判断是否已经满

{ return (top == maxSize-1)? true:false; }

int getSize() const { return top+1; } //长度

void MakeEmpty() { top= -1; }

};

SeqStack::SeqStack(int sz)

{ top = -1; maxSize = sz; elements = new char[maxSize]; assert(elements!=NULL);

}

void SeqStack::overflowProcess(){

char*newArray=new char[maxSize+stackIncreament];

for (int i = 0; i <= top; i++) newArray[i] = elements[i];

maxSize= maxSize+stackIncreament;

delete []elements; elements = newArray;

}

void SeqStack::Push(const char &x) //入栈操作

{

if (IsFull()==true) overflowProcess();

elements[++top]=x;

}

bool SeqStack::Pop(char &x) //出栈操作

{ if (IsEmpty() == true) return false;

x = elements[top--]; return true;

}

bool SeqStack::getTop(char &x)

{ if (IsEmpty()==true) return false;

x=elements[top]; return true;

}

int SeqStack::isdigit(char ch)

{ if(ch>='0'&&ch<='9'||ch=='.'||ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')

return 1; else return 0;

}

int SeqStack::isp(char ch1)

{ int val; switch(ch1)

{ case '#': val=0; break;

case '(':val=1;break;

case '*':case '/':case '%':val=5;break;

case '+': case '-': val=3; break;

case ')': val=6; break;

}

return val;

}

int SeqStack::icp(char ch2)

{ int val; switch(ch2)

{ case '#': val=0; break;

case '(': val=6; break;

case '*': case '/': case '%': val=4; break;

case '+': case '-': val=2; break;

case ')': val=1; break;

} return val;

}

class Show:public SeqStack

{ public:

Show(int sz):opst(sz){} void Clear(); void Postfix();void Input();void Output(); private:

SeqStack opst; char *infix; char *postfix;

};

void Show::Clear()

{ opst.MakeEmpty();

}

void Show::Input()

{ infix=new char[20];cout<<"请输入中缀表达式:"<

cin>>infix;

}

void Show::Postfix()

{ postfix=new char[20];cout<<"输出的后缀表达式为:"<

SeqStack opst;char ch='#',ch1,op;opst.Push(ch);

int i=0; ch=infix[i];while(opst.IsEmpty()==false&&ch!='#') if(opst.isdigit(ch)==1)

{ cout<

}else { cout<<" ";opst.getTop(ch1);

if(opst.isp(ch1)

{opst.Push(ch); i++;ch=infix[i];

}

else

if(opst.isp(ch1)>opst.icp(ch))

{opst.Pop(op); if(op!='#') cout<

}

else{opst.Pop(op); i++; ch=infix[i]; }

} cout<

}

void main()

{

Show a(100);

a.Input();

a.Postfix();

}

【实验过程】

1.首先将一个左括号‘(’进栈,作为栈底元素;

2.接着从左到右对算数表达式进行扫描,每次读一个字符,若遇到左括号‘(’,则进栈;若遇到的是操作数,则立即输出;

3.若又遇到运算符,如果他的优先级比栈顶元素的优先级高的话,则直接进栈,否则输出栈顶元素,直到新的栈顶元素的优先级比他低的时候,将他压栈;

4.若遇到的是右括号‘)’,则将栈顶的运算符输出,知道栈顶的元素为‘(’,谈后,左右括号互相抵消;

5.如果最终,我们要扫描的表达式结束,就将栈中的运算符全部输出,消除栈底的左括号‘(’

【实验结果】

【实验体会】

中缀转后缀的实验,让我深入了解栈的创建并且掌握了关于运算符优先级的相关制定方法,熟悉栈的后进先出的性质。在实验的过程中,虽然有很多自己尚未理解的补分,但通过查询交流我很快就找到了解决的办法,所以编程贵在坚持!

7二叉树的操作

【实验简介】二叉树是树形结构的一种重要类型。通过本次实验,熟悉二叉树结点的结构,掌握二叉树的基本操作以及具体实现,学会利用递归方法编写对二叉树这种递归数据结构进行处理的算法。

【实验内容】

编写程序,实现对二叉树的以下操作:

1.建立二叉树。

2.按任一种遍历次序输出二叉树中的所有结点。

3.求二叉树的深度。

4.求二叉树中的所有节点数。

5.求二叉树中的所有叶子节点数。

6.清除二叉树,使之编程一只空树。

【主要代码】

#include

#include

template

struct bintreenode //二叉树结点类定义

{ T data; //数据域

bintreenode *leftchild, *rightchild; //左子女、右子女链域 bintreenode () //构造函数

{

leftchild = NULL;

rightchild = NULL;

}

bintreenode (T x, bintreenode *left = NULL, bintreenode

*right = NULL)

{ data = x; leftchild = left; rightchild = right; } };

template

class binarytree

{ //二叉树类定义

public:

binarytree () { root=NULL; } //构造函数

binarytree (T value) //构造函数

{ refvalue = value; root = NULL; }

binarytree(const binarytree &s); //复制构造函数

bintreenode *copy(bintreenode *orignode); //复制函数

~binarytree () { destroy(root); }

void destroy(bintreenode* subtree);// 删除结点

bool IsEmpty() { return (root == NULL)?true:false;} //判二叉树空否

void Createbintree(bintreenode* &subtree); // 创建二叉树

bintreenode* getroot()const {return root;} // 取根

void Traverse(bintreenode* subtree); // 前序输出

int size(bintreenode* subtree)const;//求二叉树的结点个数

int height(bintreenode* subtree)const;//求二叉树的高度

bintreenode* parent(bintreenode* subtree,bintreenode* current);//求二叉树的父结点

bintreenode* find(bintreenode* subtree,const T& x)const;//查找二叉树的值为X的结点,并返回该节点的指针

void preorder(bintreenode* subtree,void

(*visit)(bintreenode* p));//前序遍历

void inorder(bintreenode* subtree,void (*visit)(bintreenode* p));//中序遍历

void postorder(bintreenode* subtree,void

(*visit)(bintreenode* p));//后序遍历

bool equal(bintreenode* a,bintreenode* b);//判断两棵树是否相等

// int insert(const T& item);

protected:

bintreenode *root;

T refvalue;

friend istream& operator>>(istream& in,binarytree& tree);//输入符重载

friend ostream& operator<<(ostream& out,binarytree& tree);//输入符重载

};

template

binarytree::binarytree(const binarytree &s)//复制构造函数

{root=copy(s.root);}

template

bintreenode *binarytree::copy(bintreenode *orignode)//复制函数,用来实现复制构造函数的

{

if(orignode==NULL)return NULL;

bintreenode *temp=new bintreenode;

temp->data=orignode->data;

temp->leftchild=copy(orignode->leftchild);

temp->rightchild=copy(orignode->rightchild);

return temp;

}

template

void binarytree::destroy(bintreenode* subtree)//删除一棵二叉树,用来实现析构函数

{

if(subtree!=NULL)

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

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

中国矿业大学 结构力学 期末试卷

中国矿业大学2009~2010学年第 二 学期 《结构力学A(1)》试卷(A 卷) 考试时间:150 分钟 考试方式:闭卷 注意:第一至第三题请直接在试题旁作答,第四至第七题请在答题纸上作答! 一、判断题。要求:简要说明判断依据,并将错误的加以改正(每题4分,共16分) 1、如果体系的计算自由度小于或等于零,那么体系一定是几何不变体系。( ) 错误。要考虑约束的布置位置是否恰当 2、图一(2)所示结构中B 处支座反力等于 P/2(↑)。 ( ) 错误。等于0。 图一(2) 3、图一(3)所示组合结构,若CD 杆( EA =常数)制造时做短了l ,则E 点的竖向位移方向是向下的。( ) C D A E B 错误。向上的。 图一(3) 4、梁的绝对最大弯矩表示在一定移动荷载作用下当移动荷载处于某一最不利位置时相应截面的截面弯矩。( )。错误。指所有截面最大弯矩值的最大值。

二、对图(二)所示两个平面杆件体系进行几何组成分析。要求:写出必要的分析过程。(每题4分,共8分) (a ) 几何瞬变。去二元体,再应用三刚片规则 (b ) 无多余约束的几何不变体系。依次解除二元体或增加二元体 图(二) 三、填空题(每题4分,共16分)(要求:写出必要的分析过程) 1、图三(1)所示梁中C 截面的弯矩M C = (要注明受拉侧)。 M C = 1/4Fa(下侧受拉),利用弯矩图特征及区段叠加法 图三(1) 2、图三(2)所示拱结构中K 截面的弯矩值M K = (要注明受拉侧)。 2 l /q 4 l /16l /4 l /16 l / M K = 0 ,求支座反力,代入拱弯矩计算公式或直接得用截面法即可。 图三(2)

中国矿业大学简介及历史沿革

中国矿业大学简介及历史沿革 中国矿业大学简单介绍 中国矿业大学是教育部直属的全国重点大学,是国家"211工程"和"985优势学科创新平台项目"重点建设的高校之一。中国矿业大学经过多年的发展,已经形成了以工科为主、以矿业为特色,理工文管法经教育等多学科协调发展的学科专业体系。目前,学校设有20个学院,61个本科专业;设有15个一级学科博士点,31个一级学科硕士点,69个博士点,173个硕士点;现有8个国家重点学科、1个国家重点(培育)学科,4个部级重点学科,15个省级重点学科,8个"长江学者奖励计划特聘教授"岗位设置学科,12个博士后科研流动站。中国矿业大学历史沿革 中国矿业大学的前身是创办于1909年的焦作路矿学堂,后改称焦作工学院。1950年,以焦作工学院为基础在天津建立了新中国第一所矿业高等学府——中国矿业学院。1952年,全国高等学校院系调整,清华大学、天津大学、唐山铁道学院采矿科系并入中国矿业学院。1953年,迁至北京,改称北京矿业学院,1960年被确定为全国重点高校。"文革"期间,迁至四川,更名为四川矿业学院。1978年,在江苏省徐州市重新建校,恢复中国矿业学院校名,1988年,更名为中国矿业大学。1997年,经教育部批准设立中国矿业大学北京校区。2000年,划转教育部直属管理。

中国矿业大学设置极其所有专业 中国矿业大学现设研究生院;资源与安全工程学院;力学与建筑工程学院;机电与信息工程学院;化学与环境工程学院;理学院;管理学院;文法学院;安全科学技术学院;成人教育学院;地球科学与测绘工程学院等院。 中国矿业大学历任校(院)长: 彭世济:(1982至1993,任中国矿业大学校长、中国矿业学院院长);郭育光:(1993至1998,任中国矿业大学校长);谢和平:(1998至2003,任中国矿业大学校长);王悦汉:(2003至2007,任中国矿业大学校长);葛世荣:(2007至现今,任中国矿业大学校长);乔建永:(2003至现今中国矿业大学(北京校区)校长)。 本文来自:https://www.wendangku.net/doc/204719959.html,/beijing/yangb/zgkydx.html 由:https://www.wendangku.net/doc/204719959.html, https://www.wendangku.net/doc/204719959.html, https://www.wendangku.net/doc/204719959.html, https://www.wendangku.net/doc/204719959.html, https://www.wendangku.net/doc/204719959.html,整理上传

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

数据结构实验总结报告

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

中国矿业大学研究生学位授予工作的通知

关于做好我校2013年6月研究生学位授予工作的通知 研究生院通字[2013]1号 各学院、研究生导师及研究生: 为做好我校2013年6月研究生学位授予工作,现将有关事项通知如下: 一、时间安排 3月4日前:①拟申请提前毕业的研究生请将个人申请表,报研究生院学籍服务中心。②拟于2013年6月申请学位的研究生到所在学院研究生秘书处提出申请。 3月6日:各学院将汇总的拟申请学位人员名单报学位办公室。 3月中旬:组织论文抽查,确定学校统一送审学位论文人员名单。 4月10日前:抽查到的研究生将学位论文送交学位办公室。 5月20日-5月29日:各学院统一组织研究生答辩。 6月3日前:各学院召开分学位评定委员会会议。 6月5日前:各学院向学位办公室送交有关材料。 6月14日召开校学位评定委员会会议。 6月19日研究生学位授予仪式。 二、学分自查 拟申请学位的研究生请自行对照本年级的研究生培养方案,对学分进行自查;未达到培养方案规定学分要求的研究生,不能进行论文送审和答辩。 三、论文抽查和送审 1.学校将于3月中旬按照《中国矿业大学研究生学位论文抽查的办法》进行抽查,凡被学校抽查到的学位论文由学位办公室统一送审;未被学校抽查到的博士学位论文由学院负责送审,且至少要聘请3位校外专家进行双盲送审;硕士论文各学院应按照不低于所有申请学位人数20%的比例进行双盲送审。 2.被学校抽查到的研究生学位论文因故不能按时提交送审,可参加下次的学位申请,但论文仍由学校统一送审。 3. 送审论文要求:论文封面、扉页、致谢及取得的学术成果等项中必须隐去作者及指导教师的姓名,论文简装,博士5本、硕士2本。博士生在送交论文的同时还需送交填写好的“博士论文创新性评价表”(一式5份,网上下载)。 四、论文评阅 1.为缩短论文评阅周期,本次申请学位的研究生学位论文全部试行网上评阅。被学校抽查到的研究生须向学位办提交论文电子版(PDF

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

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

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

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

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

最新数据结构实训总结

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

计算机科学与技术学院-中国矿业大学研究生院

计算机科学与技术学院 2018年优秀应届本科毕业生免试攻读研究生复试录取工作细则 根据《中国矿业大学免试硕士研究生推荐办法》(中矿大教字[2014]2号)和《关于做好推荐及接收2018年优秀应届本科毕业生免试攻读研究生的通知》文件精神,为做好我院2018年优秀应届本科毕业生免试攻读硕士研究生复试工作,经学院党政联系会议讨论,决定我院2018年免试攻读研究生复试工作安排如下: 一、复试安排 1. 复试内容: 主要考察对专业基础理论、基础知识、基本技能的理解与掌握,考察综合运用所学知识分析问题、解决问题的能力、表达能力、实验技能、计算技能、培养潜力,英语听力水平等。 2. 报到时间:2017年9月26下午2:00—5:00 报到地点:南湖校区计算机学院A521 3.复试方法: 复试采用面试方式,主要考察专业素质和能力、英语听力和口语的测试以及考生的综合素质和能力等,复试成绩满分为100分。其中英语听力和口语测试(满分30分);综合素质和能力测试(满分70分),包括思想政治素质,工作实绩、创新精神和创新能力。 时间: 9月27日8:00-11:30 地点: 南湖校区计算机楼A506 其中:复试成绩总分为100分,由英语听力和口语的测试和综合素质和能力测试成绩经过权重计算得出,计算公式为:复试成绩= 英语听力和口语测试+综合素质和能力测试成绩,复试成绩低于60分(不含60分)者为复试不合格,不予录取。 二、录取办法 1. 名额分配:根据学校文件规定,各类型、各专业录取人数不超过学校规定的最大限额。 2.录取办法:各类型、各专业分别按最终成绩排序,依次录取,其中: (1)最终成绩由加权平均成绩和复试成绩组成,其计算公式为: 最终成绩=加权平均成绩×0.6+复试成绩×0.4; (2)加权平均成绩为推荐时经学校教务部门认定的加权平均成绩。

中国矿业大学管理学院研究生国家奖学金评审推荐细则(2015年修订版)【模板】

中国矿业大学管理学院研究生国家奖学金评审推荐细则(2015年修订版) 第一章总则 第一条为发展中国特色研究生教育,促进研究生培养机制改革,提高研究生培养质量,国家自2012年起建立研究生国家奖学金制度,根据财政部、教育部《研究生国家奖学金管理暂行办法》,财政部、教育部《普通高等学校研究生国家奖学金评审办法》为做好我院研究生国家奖学金的评审推荐工作,结合我院实际,特制定《中国矿业大学管理学院研究生国家奖学金评审推荐细则(2015年修订版)》。 第二条研究生国家奖学金面向全院所有全日制研究生,每年评审推荐一次,同一学年内,研究生国家奖学金与其他奖学金不得兼得。 第三条管理学院研究生国家奖学金评审委员会由院长、书记、主管研究生工作的副院长、副书记、教授委员会主任委员、副主任委员、各学科带头人、研究生教学工作秘书、辅导员和研究生会主席组成。具体分工: 主任委员:管理学院院长、管理学院党委书记 委员:管理学院主管研究生工作副院长、副书记、教授委员会主任委员、副主任委员、各学科带头人、研究生教学工作秘书、辅导员和研究生会主席 第二章研究生国家奖学金设置 研究生国家奖学金推荐名额根据每年中国矿业大学下达给管理学院的推荐名额确定。博士研究生国家奖学金奖励标准为每年3万元/人;硕士研究生国家奖学金奖励标准为每年2万元/人。 第三章管理学院研究生国家奖学金评审推荐办法第四条管理学院研究生国家奖学金评审推荐在每年9月份进行。学术型硕士研究生主要依据研究生思想品德、课程学习、科研实践、创新能力和社会活动情况等五个方面进行评定。专业型硕士研究生主要依据研究生思想品德、课程学习、科研实践、专业能力和社会活动情况等五个方面进行评定。其中,研究生思想品德是研究生国家奖学金评选的基本条件,思想品德考核合格的研究生才有资格获得国家奖学金。对思想品德考核合格的研究生再依据课程学习、科研实践、创新能力(或专业能力)和社会活动等四

数据结构课程设计报告

数据结构课程设计 设计说明书 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..

中国矿业大学2017年硕士学位研究生招生简章

中国矿业大学2017年硕士学位研究生招生简章 中国矿业大学的研究生教育始于1951年,1978年研究生教育恢复后,我校第一批获准招收研究生;1981年,我校被批准为首批具有博士、硕士学位授予权的学校。2000年5月,经教育部批准,获准试办研究生院,2004年5月,被批准正式成立研究生院,成为全国正式拥有研究生院的56所高校之一。 一、培养目标 培养德、智、体全面发展,掌握本学科坚实的基础理论和系统的专业知识,具有创新精神、创新能力和从事科学研究、教学、管理等工作能力的高层次学术型专门人才以及具有较强解决实际问题的能力、能够承担专业技术或管理工作、具有良好职业素养的高层次应用型专门人才。 二、招生类别与计划 2017年,我校在141个学科(类别)、专业(领域)拟招收攻读硕士学位研究生约3000人(含联合培养、调剂等),其中全日制:学术型硕士研究生约1260名、专业学位硕士研究生约1000名;非全日制:专业学位硕士研究生(含单独考试)约740人。实际招生人数以国家下达的招生计划为准,各学科(类别)、专业(领域)招生名额在录取时根据生源状况和学校发展需求做适当调整,目录中公布的招生人数和推免人数供参考。 三、报考条件 (一)报名参加全国硕士研究生招生考试的人员,须符合下列条件: 1.中华人民共和国公民。 2.拥护中国共产党的领导,品德良好,遵纪守法。 3.身体健康状况符合国家规定的体检要求。 4.考生必须符合下列学历等条件之一: (1)国家承认学历的应届本科毕业生(含普通高校、成人高校、普通高校举办的成人高等学历教育应届本科毕业生)及自学考试和网络教育届时可毕业本科生,2017年9月1日前须取得国家承认的本科毕业证书。 (2)具有国家承认的大学本科毕业学历的人员。 (3)获得国家承认的高职高专学历后满2年(从毕业后到2017年9月1日,下同)或2年以上,达到与大学本科毕业生同等学力。该类考生只能以同等学力资格报考,且符合我校相关学院和专业对考生提出的具体业务要求的人员。 (4)国家承认学历的本科结业生,按本科毕业生同等学力身份报考。

2017矿大北京管理学院第一志愿复试名单

中国矿业大学(北京)管理学院 2017年硕士研究生招生 第一志愿统考生复试名单 学术型硕士生(复试分数线:国家线) 序号姓名考生编号报考专业政治理论英语一数学三专业课总分 1 关琦凡114137*********金融学687889140375 2 李成国114137*********金融学6168125120374 3 敖咏超114137116300219金融学5759107126349 4 王雪娇114137*********金融学6461102119346 5 王雅佳114137116300221金融学667171134342 6 李振宇114137116300218金融学676379130339 7 李肃114137116300223产业经济学596999140367 8 张冉冉114137*********管理科学与工程6872128135403 9 陈伟楠114137*********管理科学与工程6473103130370 10 肖懿轩114137*********管理科学与工程6265100136363 11 贾宇婷114137116300214管理科学与工程5267114127360 12 历颖超114137*********管理科学与工程666695125352 13 田文杰114137131401588管理科学与工程6471101116352 14 刘丽君114137*********管理科学与工程6049122119350 15 孙兴恒114137412502963管理科学与工程6560107118350 16 郭锦华114137415403208管理科学与工程5465112115346 17 祁国强114137153202014管理科学与工程6062101120343 18 王姿114137211702110管理科学与工程6149107125342 19 刘玲竹114137116300225金融工程与风险管理5459119135367 20 董雪114137*********金融工程与风险管理5364108138363 21 武秀琴114137*********会计学6172117147397 22 张泽瑞114137116300228会计学7056125144395 23 张聪114137*********会计学6472116124376 24 余洁114137131801652会计学6163105142371 25 孔书敏114137*********会计学5865106141370 26 韩孟雨114137*********会计学716997130367 27 陈超群114137116300234会计学5559118129361 28 刘卫敏114137*********会计学696390134356 29 李安琪114137116300231会计学665993137355 30 任崇宝114137371302768会计学675896131352 31 詹娟114137116300227会计学587875140351 32 滕娇114137*********会计学6257103123345 33 张娟114137141901939会计学556898122343 34 牟翔羽114137*********企业管理5877121132388 35 潘莹雪114137371402779企业管理7066122130388 36 魏素静114137*********企业管理676396135361 37 戎喜珍114137*********企业管理576395128343

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

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

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

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

中国矿业大学管理学院管理科学与工程专业聂锐考博参考书-考博分数线-专业课真题

中国矿业大学管理学院管理科学与工程专业聂锐考博参考书-考博分数线- 专业课真题 一、专业的设置 中国矿业大学管理学院共招生15人,分为4个专业,分别为管理科学与工程、金融工程与风险管理、能源资源管理、安全管理。 二、考试的科目

三、导师介绍 聂锐男,博士,中国矿业大学教授,博士生导师;现任中国矿业大学管理学院执行院长。先后担任中国煤炭咨询委员会委员,中国煤炭企业管理协会会员等职务。主持承担“苏北地区创新体系的研究”、“企业兼并重组及集团化发展战略研究”等工作。出版《企业竞争学》、《企业管理》、《企业经营管理案例》、《成功策》专著和教材4部。 育明教育考博分校解析:考博如果能够提前联系导师的话,不论是在备考信息的获取,还是在复试的过程中,都会有极大的帮助,甚至是决定性的帮助。育明教育考博分校经过这些年的积淀可以协助学员考生联系以上导师。 四、参考书目 专业课信息应当包括一下几方面的内容: 第一,关于参考书和资料的使用。这一点考生可以咨询往届的博士学长,也可以和育明考博联系。参考书是理论知识建立所需的载体,如何从参考书抓取核心书目,从核心书目中遴选出重点章节常考的考点,如何高效的研读参考书、建立参考书框架,如何灵活运用参考书中的知识内容来答题,是考生复习的第一阶段最需完成的任务。另外,考博资料获取、复习经验可咨询叩叩:捌九叁,二肆壹,二二六,专业知识的来源也不能局限于对参考书的研读,整个的备考当中考生还需要阅读大量的paper,读哪一些、怎么去读、读完之后应该怎么做,这些也会直接影响到考生的分数。 第二,专题信息汇总整理。每一位考生在复习专业课的最后阶段都应当进行专题总结,专题的来源一方面是度历年真题考点的针对性遴选,另一方面是导师研究课题。最后一方面是专业前沿问题。每一个专题都应当建立详尽的知识体系,做到专题知识点全覆盖。 第三,专业真题及解析。专业课的试题都是论述题,答案的开放性比较强。一般每门专业课都有有三道大题,考试时间各3小时,一般会有十几页答题纸。

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目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

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

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

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

相关文档
相关文档 最新文档