当前位置:文档之家› 算法分析课程设计(摘要+正文)

算法分析课程设计(摘要+正文)

算法分析课程设计(摘要+正文)
算法分析课程设计(摘要+正文)

特殊0-1背包问题

摘要

算法设计与分析,其实可以解释为一类优化问题,一般针对可以利用计算机解决的离散型问题的优化。主要目的就是为了解决某一问题而提出各种不同的解决方案,并且要针对具体的问题做细致的空间和时间复杂度分析。所有的算法中,应该尽量选取“好”的算法,这里所说的“好”,首先是正确的,其次是所选算法解决问题的效率要尽可能的高。计算机计算时间的长短以及所用空间的大小,跟算法有直接关系,用来衡量算法好坏的两个重要标准就是就是时间和空间复杂度,所以提出好的解决方案,其算法是重中之重。针对0-1背包问题,解决方案有很多种,并且各种解决方案都有其自己的有点和缺点,其中比较重要的有分支限界法、动态规划法、贪心法、回溯法、分治策略等,本论文将利用分支限界法来解决0-1背包问题,并分析该算法的时间和空间复杂度,以及与另外一些算法的简单比较。

关键字:计算机;分支限界法;0-1背包问题;复杂度分析

SPECIAL 0-1 KNAPSACK PROBLEM

ABSTRACT

Algorithm Design and Analysis, in fact, can be interpreted as a kind of optimization problem, the general optimization that can utilize the computer to solve discrete problems. The main purpose is to put forward a variety of different solutions in order to solve a problem, and to address specific issues detailed space and time complexity analysis. All algorithms, should try to select a "good" algorithm, used herein, "Good", the first is correct, followed by the efficiency of the selected algorithm to solve the problem is to be as high as possible. Computer to calculate the length of time and the size of the space used has a direct relationship with the algorithm, two important criteria used to measure the algorithm is good or bad is the time and space complexity, solutions proposed so good, and the algorithm is the most important . 0-1 knapsack problem, the solutions are many and various solutions have their own advantages and disadvantages, which is more important branch and bound, dynamic programming, greedy method, backtracking, divide-and-conquer strategy In this paper, using the branch and bound method to solve the 0-1 knapsack problem, and analyze the time and space complexity of the algorithm, as well as a simple comparison with the other algorithms.

Key words: computer; branch and bound; 0-1 knapsack problem; complexity analysis

1 问题描述

给定n 种物品和一背包。物品i 的重量是wi ,其价值为vi ,背包容量为c 。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。在选择装入背包的物品时,对每种物品i 只有两种选择,即装入背包或不装入背包。不能将物品i 装入背包多次,也不能只装入部分的物品i 。因此,该问题称为0-1背包问题。

0-1背包问题的形式化描述是,给定c>0,Wi>0,Vi>0,1≤i ≤n ,要求找出一个n 元0-1向量(x1,x2,……xn ),Xi ∈{0,1},1≤i ≤n ,使得

∑=n

1

i iXi W c ≤,而且∑=n

1

i i i X V 达到最大。

因此0-1背包问题是一个特殊的整数规划问题:

=n

i i

i x v 1max ?????≤≤∈≤∑

=n i x C x w i n

i i i 1},1,0{1

2 问题分析

0-1背包问题是一类典型的离散型优化问题,问题的约束条件和要求都很简单。求解方案也比较多,本论文就几种典型的求解方案做简单的分析,但是主要实现的是利用分支限界法解决的方案。下面是几种典型算法的简单分析:

1.分支限界法:分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。

此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。从活结点表中选择下一扩展结点的不同方式导致不同的分支限界法:

队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。

优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

最大优先队列:使用最大堆,体现最大效益优先

最小优先队列:使用最小堆,体现最小费用优先

2.贪心算法:顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。具有最优子结构性质的问题,用贪心算法更简单、更直接且解题效率更高。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。

3.回溯法:回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免

不必要搜索的穷举式搜索法。这种方法适用于解一些组合数相当大的问题。

回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。

问题的解向量:回溯法希望一个问题的解能够表示成一个n元式(x1,x2,…,xn)的形式。

显约束:对分量xi的取值限定。

隐约束:为满足问题的解而对不同分量之间施加的约束。

解空间:对于问题的一个实例,解向量满足显式约束条件的所有多元组,构成了该实例的一个解空间。

4. 动态规划:动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题。但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。

动态规划的一般步骤:找出最优解的性质,并刻划其结构特征。

递归地定义最优值。

以自底向上的方式计算出最优值。

根据计算最优值时得到的信息,构造最优解。

3 算法分析及描述

0-1背包问题,问题分析中的几种解决方案是同源的,那些算法中有些算法是另一种算法的改进,比如:分支限界法可以看成是回溯法的改进,因为分支限界法是有判别的进行搜索,以期望最早获得问题的最优解,即优先在最有可能获得最优解的子树上搜索。而不像回溯法那样:对所有的可能过程进行搜索,直到找到最好的一种方案。所以下面对几种算法作简单分析和比较时,相同的地方就不再重复。

3.1 分支限界法的分析与描述

分支限界法的分析:已知有N个物品和一个可以容纳M重量的背包,每种物品I的重量为WEIGHT,一个只能全放入或者不放入,求解如何放入物品,可以使背包里的物品的总效益最大。对物品的选取与否构成一棵解树,左子树表示不装入,右表示装入,通过检索问题的解树得出最优解,并用结点上界杀死不符合要求的结点。

分支限界法的描述:首先,要对输入数据进行预处理,将各物品依其单位重量价值从大到小进行排列。在下面描述的优先队列分支限界法中,节点的优先级由已装袋的物品价值加上剩下的最大单位重量价值的物品装满剩余容量的价值和。算法首先检查当前扩展结点的左儿子结点的可行性。如果该左儿子结点是可行结点,则将它加入到子集树和活结点优先队列中。当前扩展结点的右儿子结点一定是可行结点,仅当右儿子结点满足上界约束时才将它加入子集树和活结点优先队列。当扩展到叶节点时为问题的最优值。

3.2 贪心法的分析与描述

贪心法的分析:假定有n个物体和一个背包,物体i 有质量wi,价值为pi,而背包的载荷能力为M。若将物体i的一部分xi(1<=i<=n,0<=xi<=1)装入背包中,则有价值pi*xi。在约束条件(w1*x1+w2*x2+…………+wn*xn)<=M下使

目标(p1*x1+p2*x2+……+pn*xn)达到极大,此处0<=xi<=1,pi>0,1<=i<=n.这个问题称为背包问题(Knapsack problem)。

贪心法算法描述首先计算每种物品单位重量的价值Vi/Wi,然后,依贪心选择策略,将尽可能多的单位重量价值最高的物品装入背包。若将这种物品全部装入背包后,背包内的物品总重量未超过C,则选择单位重量价值次高的物品并尽可能多地装入背包。依此策略一直地进行下去,直到背包装满为止。

3.3 回溯法的分析与描述

回溯法的分析:对于0-1背包问题回溯法的一个实例,n=4,c=7,p=[9,10,7,4],w=[3,5,2,1].这4个物品的单位重量价值分别为[3,2,3,5,4].以物品为单位价值的递减序装入物品。先装入物品4,然后装入物品3和1.装入这

3个物品后,剩余的背包容量为1,只能装入0.2的物品2.由此可得到一个解为x=[1,0,2,1,1],其相应的价值为22.尽管这不是一个可行解,但可以证明其价值是最有大的上界。因此,对于这个实例,最优值不超过22.

回溯法算法描述:0-l背包问题是子集选取问题。一般情况下,0-1背包问题是NP难题。0-1背包问题的解空间可用子集树表示。解0-1背包问题的回溯法与装载问题的回溯法十分类似。在搜索解空间树时,只要其左儿子结点是一个可行结点,搜索就进入其左子树。当右子树有可能包含最优解时才进入右子树搜索。否则将右子树剪去。设r是当前剩余物品价值总和;cp是当前价值;bestp 是当前最优价值。当cp+r≤bestp时,可剪去右子树。计算右子树中解的上界的更好方法是将剩余物品依其单位重量价值排序,然后依次装入物品,直至装不下时,再装入该物品的一部分而装满背包。由此得到的价值是右子树中解的上界。

3.4 动态规划法的分析与描述

动态规划算法描述:设所给0-1背包问题的子问题 max∑(Vk * Xk) k=i..n ;

max∑(Vk * Xk)〈= j (k=i..n );

Xk ∈{0,1},i〈=k〈=n ;

的最优值为m(i,j)是背包容量为j,可选择物品为i,i+1,…,n时0-1

背包问题的最优值。由0-1背包问题的最优子结构性质,我们可以建立计算m(i ,j)的递归式如下:

m(i,j) = max{m(i+1,j),m(i+1,j-wi)+ Vi} j >= wi

m(i,j) = m(i+1,j) 0 <= j < wi

m(n,j) = Vn j >= wn

m(n,j) = 0 0 <= j < wn

4 分支限界法的C语言描述

在程序中,队列的初始值为100,如果在进行分支限界算法的过程中用到的队列的最大长度超过100,那么所得到的结果很可能不是最优解,所以当运行结算结果界面出现“队满,请修改对流初始大小!”时,必须修改队列的初始最大值,重新运行程序才能得到正确的最优解。附录的代码里面重要部分由注释,下面简单介绍程序设计的几个关键部分。

程序实现中用到的结构体及数据结构:

分支限界法中所用队列的结点类型结构体定义:

typedef struct QNode

{

float weight;

float value;

int ceng;

struct QNode *parent;

bool leftChild;

}QNode,*qnode;

队列类型的定义:

typedef struct

{

qnode Q[MaxSize];

int front,rear;

}SqQueue;

队列的初始化函数:

void InitQueue(SqQueue &sq ) //队列初始化

{

sq.front=1;

sq.rear=1;

}

队列判空函数:

bool QueueEmpty(SqQueue sq) //队列判空

{

if(sq.front==sq.rear)

return true;

else

return false;

}

入队函数:

void EnQueue(SqQueue &sq,qnode b)//结点入队函数

{

if(sq.front==(sq.rear+1)%MaxSize){

cout<<"队满,请修改队列初始大小!"<

exit(1); //队满出错,不再继续计算

return ;

}

sq.Q[sq.rear]=b;

sq.rear=(sq.rear+1)%MaxSize;

}

入队函数设计中需要特别注意的是当队满时,就立即停止运行,不再耗费计算机资源。

出对函数:

qnode DeQueue(SqQueue &sq)//出队

{

qnode e;

if(sq.front==sq.rear)

return 0;

e=sq.Q[sq.front];

sq.front=(sq.front+1)%MaxSize;

return e;

}

其余部分详细代码见附录。

5 测试数据及运行结果

在windows XP SP3系统,vc++6.0的环境下,运行程序,按提示输入相应的数据得到如下的结果:

6 分支限界法的优缺点与改进

6.1 分支限界法的优缺点

分支限界法优点:分支限界法本身可以看成是回溯法的一种改进,所以其效率无疑要比回溯法的高,计算时间要短。分支限界法的搜索策略是,在扩展结点处,先生成其所有的儿子结点,然后在从当前的活结点表中选择下一个扩展结点。在每一个活结点处,计算一个函数值(限界),并根据函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间上的最优解的分支推进,以尽快找出一个最优解。

对于具有最优子结构的问题应该选用贪心算法还是动态规划算法求解?是否能用动态规划算法求解的问题也能用贪心算法求解?下面研究2个经典的组合优化问题,并以此说明贪心算法与动态规划算法的主要差别。

分支限界法与回溯法的不同

(1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。

(2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。

分支限界法缺点:分支限界法的空间复杂度为O(2n),其中n为所求解问题的规模。即分支限界法所用的计算机内存空间是2n规模的空间,对于所装载物品数量较大时,需要为队列分配的内存空间非常大,这是分支限界法的一大缺点。

6.2 分支限界法的改进

与其他几种算法相比之下,分支限界法已经是一个很好的算法,效率高,速度快,特别是比回溯法好了不少。但是分支限界法仍然有课改进的地方。

1)分支限界法中的队列采用先进先出的算法(FIFO),算法将分支限界法

的活结点表组织成一个队列,并按队列的先进先出原则选取下一个结点成为当前扩展结点,这种情况下算法将会对更多的结点进行计算,浪费了时间。

2)在分支限界法中,队列采用优先队列,及将队列式分支限界法中活结点组织成一个优先队列,并按优先队列的原则选取优先级最高的下一个活结点作为当前的扩展结点。

参考文献

[1] 王晓东.算法设计与分析(第2版).北京:清华大学出版社,2008

[2] 孟爱国.C语言程序设计.上海:复旦大学出版社,2010.02

[3] 严蔚敏,吴伟民. 数据结构(C语言版). 北京:清华大学出版社,2007

[4] 陈嫒.数据结构学习指导实验指导课程设计.北京:机械工业出版社,

2008.01

附录源程序清单

#include

#include

#include

#define MaxSize 100 //初始化队列长度为100 typedef struct QNode

{

float weight;

float value;

int ceng;

struct QNode *parent;

bool leftChild;

}QNode,*qnode; //定义队列类型typedef struct

{

qnode Q[MaxSize];

int front,rear;

}SqQueue; //定义队列SqQueue sq;

float bestv=0; //最优解

int n=0; //实际物品数

float w[MaxSize]; //物品的重量

float v[MaxSize]; //物品的价值

int bestx[MaxSize]; // 存放最优解

qnode bestE;

void InitQueue(SqQueue &sq ) //队列初始化

{

sq.front=1;

sq.rear=1;

}

bool QueueEmpty(SqQueue sq) //队列判空

{

if(sq.front==sq.rear)

return true;

else

return false;

}

void EnQueue(SqQueue &sq,qnode b)//结点入队函数

{

if(sq.front==(sq.rear+1)%MaxSize){

cout<<"队满,请修改队列初始大小!"<

exit(1); //队满出错,不再继续计算return ;

}

sq.Q[sq.rear]=b;

sq.rear=(sq.rear+1)%MaxSize;

}

qnode DeQueue(SqQueue &sq)//出队

{

qnode e;

if(sq.front==sq.rear)

return 0;

e=sq.Q[sq.front];

sq.front=(sq.front+1)%MaxSize;

return e;

}

void EnQueue1(float wt,float vt, int i ,

QNode *parent, bool leftchild)

{

qnode b;

if (i==n) //可行叶子结点

{

if (vt==bestv)

{

bestE=parent;

bestx[n]=(leftchild)?1:0;

}

return;

}

b=(qnode)malloc(sizeof(QNode)); //非叶子结点

b->weight=wt;

b->value=vt;

b->ceng=i;

b->parent=parent;

b->leftChild=leftchild;

EnQueue(sq,b);

}

void maxLoading(float w[],float v[],int c)

{

float wt=0;

float vt=0;

int i=1; //当前的扩展结点所在的层

float ew=0; //扩展节点所相应的当前载重量float ev=0; //扩展结点所相应的价值

qnode e=NULL;

qnode t=NULL;

InitQueue(sq);

EnQueue(sq,t); //空标志进队列

while (!QueueEmpty(sq))

{

wt=ew+w[i];

vt=ev+v[i];

if (wt <= c)

{

if(vt>bestv)

bestv=vt;

EnQueue1(wt,vt,i,e,true); // 左儿子结点进队列}

EnQueue1(ew,ev,i,e,false); //右儿子总是可行;

e=DeQueue(sq); // 取下一扩展结点if (e == NULL)

{

if (QueueEmpty(sq)) break;

EnQueue(sq,NULL); // 同层结点尾部标志

e=DeQueue(sq); // 取下一扩展结点

i++;

}

ew=e->weight; //更新当前扩展结点的值

ev=e->value;

}

cout<<"最优价值为:"<

cout<<"最优取值法:"<

for( int j=n-1;j>0;j--) //构造最优解

{

bestx[j]=(bestE->leftChild?1:0);

bestE=bestE->parent;

}

for(int k=1;k<=n;k++)

{

if(bestx[k]==1)

cout<<"物品"<

cout<

}

void main()

{

int c;

float ewv[MaxSize];

cout<<"----------分支限界法求解0-1背包问题----------"<

cout<<"请输入物品的总数:";

cin>>n;

cout<<"请输入背包容量:";

cin>>c;

cout<<"请输入物品的价值与对应重量:"<

for(int i=1;i<=n;++i){

cout<<"物品"<

cin>>ewv[i]>>w[i];

v[i]=ewv[i];

}

cout<

maxLoading(w, v, c);

}

课程设计说明文档模板

网上书店系统的设计与实现 本文从零开始介绍一个网上书店项目的设计、实现、测试和发布。 一. 程序概要设计 程序概要设计需要对系统的目录以及相关文件进行说明。重点描述各模块的程序组成以及每个程序的功能。因为这个阶段还不能完全预测所涉及的程序,只需要主要的程序进行说明。 1.主要路径与页面及页面流转关系

二. 数据库概要设计 数据库概要设计需要说明系统涉及的表名称以及表结构。必须对每个字段的类型以及功能提供详细说明,因为不同数据库管理系统提供的数据类型有些差异,所以应该指出这些数据类型对应的数据库管理系统。目前,大部分情况采用SQL Server和Oracle作为数据库管理系统。 数据库名称:shop 数据库管理系统:SQL Server2008 数据表:(需要将所有的数据表列出,并简要说明其功能)

三. 系统详细设计 在B/S架构系统的详细设计中,与传统的C/S架构不同,需要对前台页面、后台数据库以及服务器端程序进行详细说明。 3.1 页面详细设计 页面详细设计主要针对客户端执行的程序进行说明。主要是程序中所涉及的JavaScript 代码,因为实际使用过程中,为了实现一些动态的效果。 3.2 数据库详细设计 在数据库概要设计中,已经对数据库表以及表的结构进行了说明,为了开发的需要,除了这些表以外,还可能提供一些索引、视图和存储过程,等等。在实际的开发过程中,数据库的结构虽然已经确定了,但是随着开发的深入,需要经常对数据库结构进行细微的改动,这些改动需要立刻修改文档,并通知其他组员某处已经改动。 3.3 后台脚本详细设计 后台脚本详细设计是对程序的重点功能模块进行设计,每个开发人员需要对自己的模块进行说明,这个阶段,可以利用程序将功能描述清楚,也可以利用流程图对模块进行描

Java程序设计课程设计学生考勤系统

信息与电子工程学院 课程设计报告 Java程序设计课程设计课程名称: 名:姓 学号: 级:班 指导老师:完成时间:月6年2016 学生考勤系统 问题描述:以班为单位,可以以日期为标识记录每个学生的考勤情况(正常、旷课、请假、迟到、. 早退)、可以查看某个学生的考勤情况、可以查看全班的考勤情况 0.5需求分析(标题,黑体,小四,段前段后行)1.(1)用户需求描述:

学生用户:学生对本系统的主要需求是在线请假以及查看学期内的上课出勤信息。 在线请假中,学生可以随时查看请假的进展情况。另外学生还可以修改本人的密码。 教师用户:任课老师对本系统的主要需求是查看班级信息,查看学生信息。并且在上课前进行点名,管理所教班级学生的上课出勤信息,查看学生上课出勤情况,对学生请假审请进行批准等。另外,教师还可以修改自己的密码。 (2)系统功能划分: 根据用户需求的描述,该考勤管理系统应该具备:在线请假模块,考勤管理模块这两大模块。 在线请假模块: 该模块主要操作用户是由学生,由学生登录并进行请假操作。可以选择请假开始时间,请假结束时间,请假的原因等,最后提交由教师和辅导员进行审核审批,审核通过后学生可以在请假记录里面实时查看请假通过情况。若教师或辅导员不允许该请假,学生可以在请假失败记录里面查看具体原因。 考勤管理模块: 该模块主要由教师登录并进行操作,自己操作界面中修改学生考勤。老师在上课时通过该模块可以对本课程考勤情况进行网上考勤,考勤结果会保存在后台,也可以通过选择导出为E表格,最后方便统计整个学期本课程所有学生的考勤情况。 2.总体设计 ; 功能结构图 : 图ER : 数据库设计数据库需求分析1 学生考勤管理系统要实现在线请假、随堂考勤两大子系统,需要了解学生用户、教 学生表:学生流水号、师用户两类用户的功能模块。然后,据此分析出数据需求。 请假表:请假开始时间、请学生学号、学生名字、性别、宿舍号、联系方式、密码。、ID假结

07360110材料工程课程设计教学大纲

材料工程课程设计 Course Exercise for Material Engineering 课程编号:07360110 学分: 2 学时:2周(其中:讲课学时:实验学时:上机学时:2周) 先修课程:材料工程基础 适用专业:无机非金属材料专业本科三年级学生 教材: 开课学院:材料科学与工程学院 一、课程的性质与任务: 《材料工程课程设计》目的在于加强实践教学环节,加深对理论知识的理解,培养学生综合运用基础理论和专业知识分析、解决实际问题的能力。 课程设计的任务是通过设计各种型号的窑炉,加深对专业课《材料热工工程》的全面理解,掌握无机材料工业的重要设备-窑炉的工作原理,设计与计算的方法,提高分析问题与解决问题的能力,同时也培养学生应用计算机辅助设计与绘图的能力。 二、课程的基本内容及要求: 1.课程的基本内容 (1)掌握窑炉的工作原理 (2)掌握窑体的主要尺寸计算 (3)掌握窑炉的热工计算 (4)掌握窑体材料的选择 (5)熟练应用CAD软件制图 (6)撰写设计说明书 2.课程要求: 要求通过给定设计内容及原始数据,结合专业课《热工工程》的教学内容,掌握窑炉的工作原理,掌握窑炉的设计与计算的方法,并能熟练应用CAD软件制图,完成设计说明书和结构简图一份。

四、大纲说明 1、根据学生完成的课程设计说明书和图纸的质量和设计阶段的表现综合评定成绩,分优、良、中、及格、不及格五等。 2、按每天8小时计,总工作量不少于80小时。 五、参考书目及学习资料 1、《硅酸盐工业热工基础》;孙晋源主编;武汉工业出版社,1992年 2、《陶瓷工业热工设备》,刘根群主编;武汉工业出版社,1989年 3、《玻璃工业热工设备》,孙承绪主编;武汉工业大学出版社,1996年 4、《玻璃窑炉设计与计算》,孙承绪主编;中国建筑工业出版社,1983年 制定人:陈彩凤审定人:刘军批准人:杨娟 2013 年4 月10 日

软件工程课程设计概要设计与详细设计

淮海工学院计算机工程学院实验报告书 课程名:《软件工程》 题目:图着色理论在仓库管理系统中的应用 ——概要设计与详细设计班级:网络122 学号:2012122683 姓名:叶婷

1、实验目的与要求 熟悉Visio绘图工具或PowerDesigner系统,并使用Visio或PowerDesigner系统提供的设计绘图工具,如H图、程序流程图、盒图、PAD图等完成软件工程实验项目的概要设计与详细设计文档中的层次图和程序流程图等图形绘制与文档说明。 2、实验内容 一、概要设计 1.1引言 1.1.1编写目的 近年来,生产的工业化速度迅速加快,生产的产品数量猛增,给传统的仓库管理方式手工作业带来了很大的负担,今天的仓库作业和库存控制作业已十分多样化,复杂化,靠人工去记忆去处理已十分困难,且出现错误的可能性很大。如果不能保证正确的进货、验收、质量保证及发货,就会导致浪费时间,产生库存,延迟交货,增加成本,以致失去为客户服务的机会。本文正是为解决这个问题而作。本说明书的预期读者为小中型仓库的管理员及客户和采购员。 1.1.2背景 本系统是:仓库管理系统。 本项目的任务提出者、开发者都是本人 用户:中小型仓库管理员。 软件的计算机网络:任何装有IIS的计算机作为服务器端,其他处在同一网络的计算机作为客户端。 1.1.3定义 DFD: Data Flow Diagram 数据流图,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 DD;Data Dictionary 数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。 1.1.4参考资料 1.《软件工程》---钱乐秋,赵文耘,牛军钰编著 ------ 清华大学出版社 2.《数据库系统概论》—王珊萨师煊主编 -------高等教育出版社 3.《 Java语言程序设计实用教程》董迎红张杰敏编著------ 北京大学出版社 4. 可行性研究报告 5. 需求分析说明书 1.2总体设计 1.2.1需求规定 本系统软件主要实现的功能是仓库管理员对仓库进行库存的管理,主要包括,对于生产部门送来的货物进行清点,无误后入库,对于销售部门请求的货物进行核实,无误后出库。并对仓库的

Java语言程序设计课程设计指导书

《JAVA程序设计基础课程设计》指导书 课程名称:JAVA程序设计基础课程设计 设计题目:班级通信录电子万年历简单计算器聊天小程序 图书管理系统学生成绩管理系统英汉电子小字典 使用班级:通信151-2 指导教师:宫淑兰、张明玉 一、课程设计的目的和要求 1、通过面向对象程序设计课程设计,使学生能将学到的面向对象的程序设计思想用到具体的工作和学习中,加深对类与对象的理解,要求学生能够对现实生活中许多具体的事物抽象出来,并掌握继承与派生,基类、虚函数和多态性的概念。 2、通过这次课程设计掌握面向对象的编程思想,为后续课程打下基础。 3、培养学生实际操作能力和团结协作能力,为以后的工作打下坚实的基础。 二、课程设计内容 运用Java语言描述各种类,每一个类应包含数据成员和成员函数。设计基类和派生类,并运用多态性和虚函数的知识。注重面向对象程序设计理论知识的理解与实际的动手编程能力,要求学生设计具有继承与派生以及多态性的类,理解面向对象程序设计的核心的概念。 不得从网上下载或者抄袭别人的资料,一经发现,课程设计不及格。 三、课程设计进度表 时间为一周,大致划分如下: 第一天布置任务及分组,总体需求分析,编写相关文档,设计说明,查找资料第二天基类、各派生类设计及代码实现,各模块的编程设计 第三天各模块的调试与修改,系统组装,程序总调试,修改 第四天~第五天撰写课程设计说明书,课程设计检查与答辩 四、课程设计步骤与方法 1、需求分析:为提出的问题找出解决的办法和思路。用自顶向下的方法创建主程序和子程序,控制对象间的相互作用。 2、根据需求,设计系统功能模块,并设计相应的类结构。 3、根据基本思路,确定输入和输出,设计程序的算法。

课程设计基本要求

《网页设计与网站规划》课程设计 课程设计基本要求 【总体要求】 课程设计作品要求思想健康、表达的主题要积极向上,能够反映大学生积极向上、不断进取的精神面貌。 课程设计作品在内容组织上要紧扣题目要求,内容要充实、要避免简单的内容堆砌。原创内容不得低于总内容的50%,转载内容要注明出处。 课程设计作品在内容上要包括6个一级栏目,网页总数不得低于30页。栏目之间要做到逻辑结构完整,栏目名称应清晰易懂。必须设计网站独立的Logo,应具备基本的VI要素。网站名称可以根据题目要求进行自定义,但网站名称不可为英文和繁体字。 课程设计作品中除网页设计设计的图片外,在内容上必须包含文字内容、图片内容、视频内容、音频内容、动画内容的至少3种。其中视频内容、音频内容、动画内容必须包括原创部分。 课程设计要求以小型团队的方式开展工作,每团队4人,4人要求必须包含计算机科学与技术专业1班1人、信息管理与信息系统专业1班1人、信息管理与信息系统专业2班1人。 每个团队设立组长1名,需要聘请指导教师1人,指导教师可以任意聘请。【技术要求】 要求使用XHTML、CSS、JavaScript、JQuery、Flash、AJAX等技术,不可使用ASP、https://www.doczj.com/doc/7f3941252.html,、PHP、JSP、Ruby等动态网站开发技术。 必须能够符合Web标准,能够通过Web标准测试。 网页能够在Windows、Ubuntu Desktop、Fedora操作系统下正常访问,并支持英文操作系统、中文操作系统的正常访问。 网页应支持Apple iPad、Android Pad的基本访问,在IOS、Android、Windows Phone等智能手机系统下能够实现基本访问。

软件课程设计总结报告1

编号:()字号 《软件课程设计》报告 班级:信科09-3班 姓名:张晴刚 学号:08093588 讲师:谢红侠 中国矿业大学计算机科学与技术学院 2011年1 月

软件课程设计任务书 专业年级:电子信息科学与技术2009级 学生姓名:张晴刚 任务下达日期:2010年10月16日 课程设计日期:2010年10月16日至2011年1月2日课程设计题目: 类别题目序号面向过程1,2,3,4,5,6,7 面向对象1,2,3,4,5,6,7,8 图形界面 3 数据结构1,2,3,4, 6, 9

软件课程设计指导教师评阅书 指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力; ③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等): 成绩:指导教师签字: 年月日

目录 ============================== 第一部分基础题 第一题1面向过程 5. 编程序,使用户任意输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。注意,2月份闰年为29天,非闰年为28天;可被4整除而不可被100整除的年份、或者可被400整除的年份均为闰年。 // 思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入一个表示日期的年月日,则程序就应计算出那一天是星期几。 (7) 1.1 需求分析 (1) 1.2 概要设计 (1) 1.3 详细设计与编码 (1) 1.4 调试分析 (2) 1.5 用户使用说明 (3) 1.6 设计心得 (3) 第二题 7.将输入的罗马数据化为10进制数。假设罗马数据中只使用如下7个“基值”字母:M、D、C、L、X、V、I,分别用来表示1000、500、100、50、10、5、1。如,罗马数据LXXXVII表示10进制的87。 将输入的10进制正整数转换为罗马数据。假设罗马数据中只使用“基值”字母:M、D、C、L、X、V、I,分别用来表示1000、500、100、50、10、5、1。 (3) 2.1需求分析 (3) 2.2 概要设计 (3) 2.3 详细设计与编码 (4) 2.4 调试分析 (4) 2.5 用户使用说明 (5) 2.6 设计心得 (5) 2面向对象

JAVA程序设计课程设计指导书

JA V A程序设计课程设计指导书 一、课程设计的目的与要求: 1.掌握JA V A语言中面向对象的概念,并能在程序中熟练运用。 2.了解面向对象程序设计(JA V A)的基本概念以及运用面向对象技术进行程序设计的基本思 想。 3.能正确编写和调试JA V A程序。 4.了解在JA V A环境下进行程序设计的基本思想和方法。 二、设计内容 2.1项目一:项目描述与设计要点(数据结构算法要求较高) 1.设计一个连连看的游戏程序。 2.在JAVA环境下,将上述程序使用GUI、数据结构等内容完成 3.设计思路: (1)界面设计 1)初始测试界面可以考虑使用简单的按钮来代表连连看游戏中的图标。 2)布局可以考虑使用GRID方式。 3)设计菜单选择连连看难度等内容,具体可参照QQ连连看,也可自定义。 4)考虑完善界面,例如图片、声音、动画等。 (2)代码设计 1)本设计的核心为练练看算法的设计,可以考虑数据结构中的图的遍历章节,合理设计 算法,将界面中各按钮的分布映射入数学矩阵进行路径规划。(可以上网搜索相关算法)。 2)完成连连看游戏的图形、算法等代码的设计。 3)有能力的同学可以考虑网络对战,设计SOCKET服务器,使得CLIENT之间通信是否已完 成游戏。 4.实验步骤(包括操作方法、数据处理) (1)界面设计 (2)算法设计 (3)代码设计 (4)网络通信设计 2.2项目二:项目描述与设计要点(计算机图形、网络编程要求较高) 1.一个类似于电子白板的“你画我猜”游戏设计(若不知道此游戏,请上网查找),游戏要求 一方绘图后通过网络将绘图内容显示于另外一方界面中,由另外一方猜测绘制的内容,并通过键盘输入告知绘图方。 2.在JAVA环境下,将上述内容设计成为应用程序。

工程材料课设报告

工程材料课设报告

南京航空航天大学《工程材料与热加工基础》课程设计 学院:航空宇航学院 专业:飞行器设计与工程 学号: 完成日期:2009年6月18日

说明书目录 任务书---------------------------------------------------------------------------3 铸造件设计---------------------------------------------------------------------5 锻造件设计---------------------------------------------------------------------9 焊接件设计--------------------------------------------------------------------13 总结------------------------------------------------------------------------------17 心得体会------------------------------------------------------------------------18 参考文献------------------------------------------------------------------------18 一、课程设计任务书 课程设计任务书

1.课程设计的目标: (1)通过课程设计的实践,使学生进一步加深了解和巩固课堂所学的有关知识,提高学生综合运用所学知识的能力。 (2)通过课程设计使学生初步达到在一般机械设计中,能合理选择材料,选择毛坯制造方法,并能合理地安排热处理工艺及零件制造工艺流程。 2.课程设计的选题: 本课程设计包括典型零件的材料选择,热处理工艺路线的安排,零件毛坯生产方法的选择(主要包括铸造(液态成型)、压力加工(塑性成形)和焊接(连接成型)三种成型方法)。 3.课程设计的主要内容: 1)根据图纸熟悉产品的结构、各零件的作用和工作条件。 2)依据零件的受力情况(或给定的条件),环境即失效形式进行零件的选材设计(即选择合适的材料成分,组织及热处理状态)。 3)根据零件的使用条件、制造精度、形状尺寸、材料及生产性质等条件,对指定的零件毛坯进行毛坯部分种类的选择(即选择锻压铸造、或焊接的方法),并进行结构工艺分析、完成工艺设计的部分内容(铸件的铸造方法、浇注位置、分型面的选择、并在零件图上示意标出冒口位置;锻件结构工艺、选择的锻造方法;零件的焊接方法、结构工艺、合理布置焊缝等)。 4)对轴类零件(或齿轮)应设计制造工艺流程,正确选择热处理工艺,工艺流程的合理安排,并作详细的说明。 5)对上述第(4)项中的零件,用相应的材料制成试样,分别用自己设计的热处理工艺进行处理,分别测其硬度、磨制试样观察其组织,判断是否达到预期效果,并作分析。

课程设计-关键路径

荆楚理工学院 课程设计成果 学院: 班级: 学生姓名: 学号: 设计地点(单位) 设计题目: 完成日期:年月日 指导教师评语: 成绩(五级记分制): 教师签名:

数据结构课程设计报告 摘要 关键路径是我们估算某些工程非常有用,是一种非常重要的估算一项工程所需的最短时间的依据。本文对如何求一个工程的关键路径做了详细的说明,包括需求分析、概要设计、详细设计、测试与分析、总结、源程序清单。 首先,做了需求分析,解释了什么是关键路径,并指出它在估算工程中的重要作用。然后给出求关键路径的概要设计,包括程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。 在概要设计的基础上,又给出了详细的算法设计,实现概要设计中定义的所有函数,对每个函数写出核心算法,并画出了流程图。然后对编码进行了测试与分析(并在最后附上C语言编写的程序代码)。最后对整个设计过程进行了总结。 【关键词】:关键路径;抽象数据类型;程序模块;核心算法;流程图。

目录 1. 需求分析 (1) 1.1 问题描述 (1) 1.2 基本要求 (1) 1.3 目的 (1) 2 概要设计 (2) 2.1算法分析 (2) 2.2算法步骤 (3) 2.3 数据结构 (3) 2.3.1 数据结构 (3) 2.3.2程序模块 (3) 2.3.3各模块间的调用关系 (4) 3 详细设计 (4) 3.1 主要函数的核心代码 (4) 4 测试 (5) 4.1 开始界面 (5) 4.2进入求关键路径的系统 (5) 4.2.1输入节点数和活动个数 (6) 4.2.2输入某项目的信息(弧头,弧尾,权值) (6) 4.2.3打印出关键路径 (7) 4.2.4课本上图7.29的程序测试 (7) 4.2.5错误测试 (9) 4.2.6回路测试 (9) 5 总结 (10) 参考文献 (12) 附录:源程序代码 (13)

java程序设计课程设计

武汉科技大学城市学院 课程设计报告 课程设计名称JAVA程序设计课程设计 题目ACM 院系信息工程学部 专业软件工程 班级15级3班 姓名洪汉山 指导教师于海平 2017 年 6 月23 日

课程设计评分表

JA V A编程课程设计指导书 学时:1周,学分:1 1.课程设计目的:JAVA编程课程设计属于软件开发类课程设计。该课程设计培养学生熟练应用当前主流的JAVA软件开发语言,检验软件的设计、编码与测试,具备较强的JAVA语言软件开发能力。 2.课程设计方式: (1)JAVA编程课程设计方式采取ACM测试的方式,利用所学的面向对象程序设计(JAVA)知识,培养学生具有分析应用问题的能力,能够独立完成应用程序的编制与调试工作。 (3)每个同学必须完成8-12道题,每题写出解题报告,解题报告内容:○1.题目标题○2.题目描述○3.解题思路○4.源码○5.小结 3.课程设计平台: eclipse或Myeclipse 4.课程设计考核方式 (1)学生独立提交软件设计作品和“课程设计报告书”,指导教师根据学生组提交的软件设计作品和“课程设计报告书”的质量,为学生组评定“优”“良”“中”“及格”或“不及格”; (2)根据各组学生所选题目的难易程度以及验收结果,为学生评定“优”“良”“中”“及格”或“不及格”。 “课程设计报告书”包括:课程设计项目名称,课程设计任务, 课程设计任务(功能)说明及功能模块图,数据库设计,各模块功能说明,使用的算法描述(如果需使用算法),各模块界面设计,各模块中关键代码段功能说明与代码行注释,测试说明,参考文献等。 5.参考文献 [1] 张思民. Java语言程序设计(第2版)[M].北京:清华大学出版社,2012.1 [2] 姜华. Java项目实战教程[M]. 北京:清华大学出版社,2012.9 [3] 陈喧. Java程序设计教程[M]. 北京:清华大学出版社,2011.5 [4] [美]Echel,B .Java编程思想(第四版)[M].北京:机械工业出版社,2007 [5] Michael Main. 数据结构:Java语言描述(第二版)(国外经典计算机科学教材)[M]. 北京:中国电力出版社,2007

课程设计要求

数据结构课程设计任务书 课程设计名称:数据结构课程设计 课程设计编号:CSE03704 课程设计学分:2 课程设计周(时)数:2周 课程设计授课单位:信息工程学院计算机系 指导方式:集体辅导与个别辅导相结合 课程设计适用专业:计算机科学与技术 课程设计教材及主要参考资料: 《数据结构课程设计》,滕国文编著,清华大学出版社,2010年; 《数据结构课程设计》,陈越钦铭雁编著,浙江大学出版社,2009年 《数据结构课程设计案例教程》, 马巧梅等编著, 人民邮电出版社,2012年

一、课程设计教学目的及基本要求 1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。 二、设计内容 题目1:模拟停车场管理问题 问题描述: 设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到来的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门后,为它让路的车辆再按原次序进入车场。每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 基本要求: 试为停车场编制按上述要求进行管理的模拟程序。在这里假设汽车不能从便道上开走。试设计一个停车场管理程序。 实现提示: 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,例如:('A',1,5)表示一号牌照车在5这个时刻到达,而('D',5,20)表示5号牌照车在20这个时刻离去,整个程序可以在输入信息为('E',0,0)时结束。对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车, 题目2:哈夫曼编码和译码 问题描述: 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。 基本要求: 一个完整的系统应具有以下功能: (1)初始化及文本的频率统计。从终端读入字符集大小n,以及n个字符和n个权值,完成文本的频率统计。建立哈夫曼树,并将它存于文件中。 (2)编码。利用已建好的哈夫曼树,从文件中读入,对正文进行编码。然后将结果存入文件"CodeFile-姓名"中。 (3)译码。利用已建好的哈夫曼树将输入的代码进行译码,将文件"CodeFile-姓名" 中的代码进行译码,结果存入文件"Decoding-姓名"中。

《机械工程材料》教学大纲

《机械工程材料》教学大纲 修订单位:机械工程学院材料工程系 执笔人:吕柏林 一、课程基本信息 1.课程中文名称:机械工程材料 2.课程英文名称:Mechanical Engineering Materials 3.适用专业:机械设计制造及其自动化 4.总学时:48学时 5.总学分:3学分 二、本课程在教学计划中的地位、作用和任务 机械工程材料课程是为机械类本科生开设的必修课,本课程的主要目的是使学生通过本课程的学习,掌握金属材料,非金属材料,材料热处理以及材料选用等方面的技术基础知识.本课程的任务是结合校内金工教学实习,使学生通过工程材料的基础知识,材料处理,材料选用基础的学习,获得常用机械工程材料方面的实践应用能力,也为进一步学习毛坯成型和零件加工知识以及其它有关课程及课程设计,制造工艺方面奠定必要的基础。 三、理论教学内容与教学基本要求 (一)教学基本要求: 1.熟悉工程材料的基本性能 2.掌握金属学的基础知识,包括金属的晶体结构,结晶,塑性变形与再结晶,二元合金的结构与结晶. 3.掌握运用铁碳合金相图,等温转变曲线,分析铁碳合金的组织与性能的关系. 4.熟悉各种常规热处理工艺以及材料的表面热处理技术. 5.掌握常用工程材料(包括高分子材料,陶瓷材料)的组织,性能,应用与选用原则.(二)理论教学内容 1.绪论(2学时) 课程的目的和任务 ;教学方法和教学环节 ;学习要求与方法 2.工程材料的机械性能(2学时) 强度,刚度,硬度,弹性,塑性,冲击韧性 3.金属的晶体结构和结晶(6学时) 常见的三种晶体结构 ;金属实际结构及晶体缺陷 ;金属的同素异构转变4.金属的塑性变形与再结晶(6学时)

XX大学课程设计基本要求(新)【模板】

**大学课程设计基本要求(新) 为规范课程设计这一实践性教学环节,以培养学生的综合素质和专业知识的应用能力。特制定本《基本要求》。 一.课程设计的任务 课程设计是培养学生运用有关课程的基础理论和技能解决实际问题,进一步提高学生本专业必要的基本技能、方法和创新能力的重要环节之一。通过课程设计要使学生受到设计方法的初步训练。能用文字、图形和现代设计方法系统地、正确地表达设计成果。 二.课程设计的组织 (1)课程设计应按教学计划的规定进行。基层教学单位应依据教学大纲,从学生的中等水平出发,确定课程设计的内容和具体要求,使学生能在规定的时间内完成设计任务。 课程设计的题目要具有一定的典型性、综合性,每位学生的设计内容应不同。 (2)基层教学单位负责课程设计(或大型作业)的全面组织工作,选派称职的指导教师,每位教师指导的学生人数不宜过多,师生比一般为1:15左右。基层教学单位应在设计开始前编印好课程设计(或大型作业)的任务书、指导书,准备好必要的文献资料并做好各项具体的准备工作。 (3)设计应在教师指导下由学生独立完成。教师要充分发挥主导作用,指导学生阅读相关参考资料,在难点和关键性问题上对学生进行启发、引导,以培养学生的独立工作能力、设计能力和树立正确的设计思想。教师要贯彻因材施教的原则,对学习困难的学生加强辅导,对优秀学生可适当提高要求。 指导教师应做到教书育人。设计开始时要进行动员布置,对学生提出明确的设计任务要求及注意事项,在设计期间要每天进行辅导和检查,及时予以指导和帮助,使设计顺利进行。基层教学单位的指导教师应创造条件让学生使用计算机进行设计,培养学生的计算机应用能力。 三.课程设计的考核 课程设计完成后,指导教师要认真审阅学生的设计资料,对每个学生的设计写出评语,并评定成绩。考核的方式可采用口试、笔试或两者结合。 课程设计成绩由指导教师针对学生在课程设计期间的工作态度,设计考核成绩综合评分。采用五级制记分,成绩评定标准是: 优秀:能独立完成设计工作,方案先进,计算正确,设计符合规范要求,说明书叙述透彻、图面整洁,体现一定的创新能力。设计过程中表现好,无违纪现象。 良好:能独立完成设计工作,方案合理,计算正确。设计符合规范要求,说明书叙述清楚,图面清晰。设计过程中表现较好,无违纪现象。

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

软件综合课程设计教学大纲

珠海学院课程教学大纲 课程名称:计算机软件综合课程设计 适用专业: 2015级软件工程专业 课程类别:专业基础课 制订时间:2017年6月 计算机科学与技术系制

目录 1 《计算机软件综合课程设计》教学大纲 2 《计算机软件综合课程设计》(模板) 3 《计算机软件综合课程设计》成绩评定表

《计算机软件综合课程设计》教学大纲 一、课程设计基本信息 课程代码: 课程名称:计算机综合应用课程设计 课程学时:32学时 课程学分:2.0 适用对象:计算机科学与技术专业、软件工程专业 先修课程:高级语言程序设计、数据结构、操作系统、数据库原理与应用 二、课程设计目的和任务 本课程设计是检验计算机专业的学生在大学主干课程完成之后,为了加深和巩固学生对前两年所学理论和应用知识的理解,同时提高学生综合运用的能力和分析问题、解决的问题的能力而开设的一门实践课程。 通过本环节学生能够充分把前两年学到的知识综合应用到实际的编程实践中,可以进一步巩固所学到的理论。通过实现一个中等规模的应用软件,提高利用计算机系统解决实际问题的能力,为顺利毕业、进入社会打好基础;通过对程序的规范编写,可以培养学生良好的编程风格,包括程序结构形式,行文格式和程序正文格式等;并培养学生的上机调试能力。 三、课程设计方式 1、课程设计题目的选定 采用指导教师提供参考题目与学生自主命题相结合的办法选定课程设计题目。要求不多于4个人一个小组,不得重复,所涉及数据库的基本表至少在5张表以上,在尽量满足数据库设计原则的前提下,允许适当冗余以提高检索的速度。其中学生自主命题需要指导教师严格的审核,看是否满足课程要求,检查是否为重复课题。 2、课程设计任务的完成

工程材料及成形技术基础A答案

一、填空题(每空1分,共20分) 1. 机械设计时常用屈服强度和抗拉强度两种强度指标。 2. 纯金属的晶格类型主要有面心立方、体心立方和密排六方三种。 3. 实际金属存在点、线和面缺陷等三种缺陷。 4.F和A分别是碳在α-Fe 、γ-Fe 中所形成的间隙固溶体。5. 加热是钢进行热处理的第一步,其目的是使钢获得奥氏体组织。 6. QT600-3中,QT表示球墨铸铁,600表示抗拉强度不小于600Mpa 。7.金属晶体通过滑移和孪生两种方式来发生塑性变形。 8.设计锻件时应尽量使零件工作时的正应力与流线方向相同 ,而使切应力与流线方向相垂直。 9.电焊条由药皮和焊芯两部分组成。 10.冲裁是冲孔和落料工序的简称。 1.在铁碳合金相图中,碳在奥氏体中的最大溶解度为( b )。 a、0.77% b、2.11% c、0.02% d、4.0% 2.低碳钢的焊接接头中,( b )是薄弱部分,对焊接质量有严重影响,应尽可能减小。 a、熔合区和正火区 b、熔合区和过热区 c、正火区和过热区 d、正火区和部分相变区 3.碳含量为Wc=4.3%的铁碳合金具有良好的( c )。 a、可锻性 b、可焊性 c、铸造性能 d、切削加工性 4.钢中加入除Co之外的其它合金元素一般均能使其C曲线右移,从而( b ) b、增加淬透性 c、减少其淬透性 d、增大其淬硬性 a、增大V K 5. 高碳钢淬火后回火时,随回火温度升高其( a ) a、强度硬度下降,塑性韧性提高 b、强度硬度提高 ,塑性韧性下降 c、强度韧性提高,塑性硬度下降 d、强度韧性下降,塑性硬度提高 6.感应加热表面淬火的淬硬深度,主要决定于因素( d ) a、淬透性 b、冷却速度 c、感应电流的大小 d、感应电流的频率 7.珠光体是一种( b ) a、单相间隙固溶体 b、两相混合物 c、Fe与C的混合物 d、单相置换固溶体8.灰铸铁的石墨形态是( a ) a、片状 b、团絮状 c、球状 d、蠕虫状

人机交互课程设计大纲

四川理工学院计算机学院 《人机交互》课程设计大纲 课程编号:课程类别:选修 课程名称:人机交互课程性质:实践 学时:1周开课学期:6 学分:1 先行课程:网站程序设计,JAVA程序设计 适用专业:计算机科学与技术(信息方向) 一、课程设计的目的 通过课程设计,主要达到以下目的: 1、加深对交互界面设计、软件工程、程序设计语言的理论知识的理解和应 用水平。 2、掌握交互界面设计的基本方法,熟悉界面设计的步骤。 3、通过设计人机交互界面应用课题,进一步熟悉界面设计工具的操作技术, 提高动手能力,提高分析问题和解决问题的能力。 二、课程设计教学基本要求 1.掌握交互界面的概念设计和逻辑设计。采用VB,DELPHI,VS2005,Dreamwear,等设计工具完成界面建立工作。 2.根据所学的界面设计步骤、程序设计以及软件工程的知识,对设计交互界面系统,进行可用性评估。 3.学会团队协作解决问题的方法,增强学生自信心与团队责任心、培养学生的主动性思考能力和自主学习能力。 4.按规定和要求编写课程设计说明书。 三、课程设计的内容 课题一、学生学籍管理系统界面设计 1.课程设计目的 (1)掌握界面设计的概念设计和逻辑设计。选用一种开发工具,完成该系统的界面设计工作。 (2)学会团队协作解决问题的方法,增强学生自信心与团队责任心、培养

学生的主动性思考能力和自主学习能力。 2.课程设计要求 1)分析系统的功能,画出系统的功能结构图;系统流程图。 2)对象建模分析:通过系统的用例图反映用户的实际交互需求。 3)视图抽象设计:分析系统可能包括的功能视图,分析每一个视图可能的 交互操作和需要的信息。 4)概要设计:对抽象的视图设计做进一步的具体设计,产生视图的概要设 计。 5)视图的关联设计:将不同交互视图之间的联系和状态转换关系整理清楚。 画出各视图之间的关联关系图。 6)视图的全面设计:确定各个视图的具体内容和大致布局,并在每个视图 上明确体现与其他视图的关系,保证系统的整体性和和谐性,然后借助 具体的开发工具进行界面的实际设计。 课题二、网上投稿管理系统界面设计 1.课程设计目的 (1)掌握界面设计的概念设计和逻辑设计。选用一种开发工具,完成该系统的界面设计工作。 (2)学会团队协作解决问题的方法,增强学生自信心与团队责任心、培养学生的主动性思考能力和自主学习能力。 2.课程设计要求 1)分析系统的功能,画出系统的功能结构图;系统流程图。 2)对象建模分析:通过系统的用例图反映用户的实际交互需求。 3)视图抽象设计:分析系统可能包括的功能视图,分析每一个视图可能的 交互操作和需要的信息。 4)概要设计:对抽象的视图设计做进一步的具体设计,产生视图的概要设 计。 5)视图的关联设计:将不同交互视图之间的联系和状态转换关系整理清楚。 画出各视图之间的关联关系图。 6)视图的全面设计:确定各个视图的具体内容和大致布局,并在每个视图 上明确体现与其他视图的关系,保证系统的整体性和和谐性,然后借助 具体的开发工具进行界面的实际设计。 教师采取同组异质的策略将学生分组,每个小组成员为一个团队。每个小组设置项目经理1人,由项目经理负责组内成员的分工。按照软件工程的方法和技

Java程序设计课程设计学生考勤系统

信息与电子工程学院课程设计报告 课程名称:Java程序设计课程设计姓名: 学号: 班级: 指导老师: 完成时间:2016年6月

学生考勤系统 问题描述: 以班为单位,可以以日期为标识记录每个学生的考勤情况(正常、旷课、请假、迟到、早退)、可以查看某个学生的考勤情况、可以查看全班的考勤情况. 1.需求分析(标题,黑体,小四,段前段后0.5行) (1)用户需求描述: 学生用户:学生对本系统的主要需求是在线请假以及查看学期内的上课出勤信息。 在线请假中,学生可以随时查看请假的进展情况。另外学生还可以修改本人的密码。 教师用户:任课老师对本系统的主要需求是查看班级信息,查看学生信息。并且在上课前进行点名,管理所教班级学生的上课出勤信息,查看学生上课出勤情况,对学生请假审请进行批准等。另外,教师还可以修改自己的密码。 (2)系统功能划分: 根据用户需求的描述,该考勤管理系统应该具备:在线请假模块,考勤管理模块这两大模块。 在线请假模块: 该模块主要操作用户是由学生,由学生登录并进行请假操作。可以选择请假开始时间,请假结束时间,请假的原因等,最后提交由教师和辅导员进行审核审批,审核通过后学生可以在请假记录里面实时查看请假通过情况。若教师或辅导员不允许该请假,学生可以在请假失败记录里面查看具体原因。 考勤管理模块: 该模块主要由教师登录并进行操作,自己操作界面中修改学生考勤。老师在上课时通过该模块可以对本课程考勤情况进行网上考勤,考勤结果会保存在后台,也可以通过选择导出为E 表格,最后方便统计整个学期本课程所有学生的考勤情况。 2.总体设计 功能结构图;

ER图: 数据库设计: 1 数据库需求分析 学生考勤管理系统要实现在线请假、随堂考勤两大子系统,需要了解学生用户、教师用户两类用户的功能模块。然后,据此分析出数据需求。学生表:学生流水号、学生学号、学生名字、性别、宿舍号、联系方式、密码。请假表:请假开始时间、请假结束时间、请假原因、请假天数、审批时间。考勤表:考勤流水号、考勤的学生ID、考勤的课程ID、考勤时间、考勤课次、考勤结果。 3.主要功能的实现 (1)设计的思路: 根据用户需求的描述,该考勤管理系统应该具备:在线请假模块,考勤管理模块这三大模块。 在线请假模块: 该模块主要操作用户是由学生,由学生登录并进行请假操作。可以选择请假开始时间,请假结束时间,请假的原因等,最后提交由教师和辅导员进行审核审批,审核通过后学生可以在请假记录里面实时查看请假通过情况。若教师或辅导员不允许该请假,学生可以在请假失败记录里面查看具体原因。 考勤管理模块: 该模块主要由教师登录并进行操作,自己操作界面中修改学生考勤。老师在上课时通过该模块可以对本课程考勤情况进行网上考勤,考勤结果会保存在后台,也可以通过选择导出为E 表格,最后方便统计整个学期本课程所有学生的考勤情况。 用户信息修改模块:

相关主题
文本预览
相关文档 最新文档