算法设计与分析课程大作业

算法设计与分析课程大作业
算法设计与分析课程大作业

题目作业调度问题及算法分析

学院名称:计算机与信息工程学院

专业名称:计算机科学与技术

目录

《算法设计与分析》课程大作业.................................................................... 错误!未定义书签。一.动态规划算法解决流水作业调度. (4)

1、问题描述 (4)

2、算法分析 (4)

3. 算法的描述 (5)

4、部分算法实现 (6)

5. 运行结果 (8)

6、时空效率分析 (8)

二.贪心算法解多机调度问题 (8)

1、问题描述 (8)

2、算法分析 (9)

3.部分算法实现 (9)

4.计算复杂性分析 (11)

5. 运行结果 (12)

三.回溯法解决批作业调度问题 (12)

1.问题描述 (12)

2.算法思想 (13)

3. 部分算法实现 (14)

4.运行结果 (15)

5.时间复杂性分析 (15)

四.作业调度算法比较 (16)

五.课程学习总结 (16)

摘要:

在现代企业中,作业调度已成为提高资源利用率、从而提高企业运行效益的关键环节之一。把各个作业分配到车间现有的设备上,并确定它们的先后次序,这是一项复杂的工作本文就作业调度排序问题进行了研究,通过对几个经典作业调度算法的分析讨论,总结了各个算法对作业调度的求解过程,并给出了每个算法的复杂度及性能分析。

关键词:作业调度;动态规划;贪心算法;回溯法;

一.动态规划算法解决流水作业调度

1、问题描述

给定n 个作业,每个作业有两道工序,分别在两台机器上处理。一台机器一次只能处理一道工序,并且一道工序一旦开始就必须进行下去直到完成。一个作业只有在机器1上的处理完成以后才能由机器2处理。假设已知作业i 在机器j 上需要的处理时间为t[i,j]。流水作业调度问题就是要求确定一个作业的处理顺序使得尽快完成这n 个作业。

2、算法分析

直观上,一个最优调度应使机器M1没有空闲时间,且机器M2的空闲时间最少。在一般情况下,机器M2上会有机器空闲和作业积压2种情况。

在一般情况下,机器M1开始加工S 中作业时,机器M2还在加工其他作业,要等时间t 后才可利用。将这种情况下完成S 中作业所需的最短时间记为T(S,t)。流水作业调度问题的最优值为T(N,0)。 由流水作业调度问题的最优子结构性质可知,

)}},{({min )0,(1i i n i b i N T a N T -+=≤≤(1)

})}0,max{},{({min ),(i i i S i a t b i S T a t S T -+-+=∈(2) 从公式(1)可以看出,该问题类似一个排列问题,求N 个作业的最优调度问题,利用其子结构性质,对集合中的每一个作业进行试调度,在所有的试调度中,取其中加工时间最短的作业做为选择方案。将问题规模缩小。

公式(2)说明一般情况下,对作业集S 进行调度,在M2机器上的等待时间,除了需要等该部件在M1机器上完成时间,还要冲抵一部分原来的等待时间,如果冲抵已成负值,自然仍需等待M1将作业做完,所以公式取max{t-ai,0}。

3. 算法的描述

从分析可知,流水作业调度问题一定存在满足Johnson 法则的最优调度,且容易由下面的算法确定。

流水作业调度问题的Johnson 算法:

(1)令]}2,[]1,[|{]},2,[]1,[|{21i t i t i N i t i t i N ≥=<=;

(2)将中作业依的非减序排列;将中作业依的非增序排列; 作业接种作业构成满足Johnson 法则的最优调度。

4、部分算法实现

5. 运行结果

6、时空效率分析

算法Flowshop的主要计算时间花在对作业集的排序上。

在这里,我们使用冒泡排序法(BubbleSort),因此,在最坏情

况下算法FlowJob所需要的计算时间为)

n

O。所需要的空

log

(n

闲显然是)

O。

(n

二.贪心算法解多机调度问题

1、问题描述

多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。这个问题是NP完全问题,到目前为止还没有有效的解法。对于这一类问题,用贪心选择策略有时可以设计出较好的近似算法。

2、算法分析

贪心算法只需按顺序以数组方式提供各作业的加工时间和机器的台数;求出作业的个数,若小于机器台数,就将作业逐个分配给就近的机器,所需要的加工时间,即为最长作业所需时间。

若作业数大于机器台数,将作业按加工时间的多少降序排序,以机器数建立最小堆,先将前m个作业分配给m个机器,最小堆顶是最小的元素(即m个作业中加工时间最少的作业),将其移出并加上后续作业的加工时间,再插入堆,这时会改变原来的状态,升到堆顶的机器加工总时间最少,它再移出加后续作业的加工时间,在插入堆,依此类推,直到全部作业结束。堆中的最大值就是完成所有作业所需的最短时间。

3.部分算法实现

4.计算复杂性分析

当n≤m 时,所有作业可以一次安排给各机器,算法greedy需要o(1) 时间。当n>m 时,排序耗时O(nlogn)。初始化堆需要O(m) 时间。关于堆的removeMin和put运算共耗时O(nlogm),因此算法greedy 所需的计算时间为O(nlogn+nlogm)=O(nlogn)。

5.运行结果

三.回溯法解决批作业调度问题

1.问题描述

输入:

1. 任务数N

2. 机器数M

3. 随机序列长度t[i],其中t[i]=x表示第i个任务完成需要时间单位x,

输出:

1. 开销时间besttime,表示最佳调度需要时间单位

2. 最佳调度序列bestx[],其中bestx[i]=x,表示将第i个任务

分配给第x个机器执行。

2.算法思想

解空间的表示:

一个深度为N的M叉树。

t[i]:第i个任务的时间

x[i]=j:当前输出结果

Res[i]=j:表示第i个任务要运行在第j台机器上

time_machine[i]:第i个机器上的运行时间

基本思路:

1、搜索从开始结点(根结点)出发,以DFS搜索整个解空间。

2、每搜索完一条路径则记录下time_min和Res[i]序列,开始结点就成为一个活结点,

同时也成为当前的扩展结点。在当前的扩展结点处向纵深方向移至一个新结点,

并成为一个新的活结点,也成为当前扩展结点。

3、如果在当前的扩展结点处不能再向纵深方向扩展,则当前扩展结点就成为死结点。

此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展

结点;直至找到一个解或全部解。

3.部分算法实现

{x[k] = i;//将第k个任务放到第i个机器上面

if( placetest(k) )

{

time_machine[i] += t[k];

Backtrack(k+1,t,x);

time_machine[i] -= t[k];

}

}

4.运行结果

5.时间复杂性分析

由于没有使用限界函数进行优化,算法时间和空间复杂度呈指数级增长。所以该算法不适合较大规模的计算。

蓝线表示机器数一定M=3时,n增大时求解最佳调度对所消耗的时间,该趋势随着指数增加。

四.作业调度算法比较

在流水作业调度中,Johnson算法这是在只有两台设备情况下的最优排序算法,同时说明工件的第一道工序和最后一道工序的加工时间对排序的影响是主要的。

贪心算法只需按顺序以数组方式提供各作业的加工时间和机器的台数;求出作业的个数,若小于机器台数,就将作业逐个分配给就近的机器,所需要的加工时间,即为最长作业所需时间复杂度为O(nlogn)。

回溯算法解决批作业调度问题与前面两个问题不同,前两个是求所有作业在M2机器上加工完成的最后时间,而这里要求的是求所有作业在机器M2上完成处理时间的总和达到最小。这种调度算法可用于计算加工费用。批处理作业调度问题属于排列树的解空间问题,因此时间复杂度为Ω(n!)

五.课程学习总结

算法分析与设计是一门非常重要的课程,很多问题的解决,程序

的编写都要依赖它,算法的学习对于培养一个人的逻辑思维能力是有极大帮助的,它可以培养我们养成思考分析问题,解决问题的能力。但是算法的学习同时也需要较强的理解能力,有些算法程序不易读懂,这时需要在理解问题的本质上对算法程序进行解读。在对一个问题进行算法设计时,要了解问题的特点,找到适合的方法才能得到理想的结果。

在本门课程过程中,我深刻体会到算法是建立在解法基础之上的,是在某个具体问题解法过程的分析之后,归纳出的解决一类相关问题的程序或步骤;如果一个具体问题具有代表性,其解法又具有程序性,那么这样的解法也能体现算法思想.在学习过程中老师起到了极大的引导及指导作用,也让我们明白了在算法学习中我们要多了解一些问题的最新解法及关注算法在实际问题中的应用。在本次学习过程中还发现了自己的很多不足,在以后的学习中更要弥补不足,要熟练掌握一些算法思想及其应用。

数据库课程设计大作业

《数据库原理》课程设计报告 专业:测控技术与仪器 班级:测控071班 学号:200710402112 200710402115 姓名:杜文龙王京京 题目名称:物资管理系统 完成日期:2009年12月25日 昆明理工大学信息工程与自动化学院 2009年12月

物资管理系统 一、课程设计目的: 1.加深对讲授内容的理解 《数据库原理及应用》中有关数据库技术的基本理论、基本概念、设计与实现的方法和阶段性知识,光靠课堂讲授既枯燥无味又难以记住,但它们都很重要,要想熟练掌握,必须经过大量实践环节加深对它们的理解。 2.通过课程设计,掌握数据库系统设计与开发的方法及步骤 数据库是一门应用性很强的学科,开发一个数据库系统需要集理论、系统和应用三方面为一体,以理论为基础,以系统(DBMS)作支柱,以应用为目的,将三者紧密结合起来。同时结合实际需要开发一个真实的数据库系统,对于较大型的系统可多人一起完成,但无论如何都应完成数据库的需求分析、数据的分析与建模、数据库的建立、数据库的开发与运行等全部过程。在此过程中将所学的知识贯穿起来,达到能够纵观全局,分析、设计具有一定规模的题目要求,基本掌握数据库系统设计与开发的基本思路和方法并且做到对知识的全面掌握和运用。 3.培养学生自学以及主动解决问题的能力 通过本次设计,使同学能够主动查阅与数据库相关资料,掌握一些课堂上老师未曾教授的知识,从而达到培养学生自学以及主动解决问题的能力的目的。 二、课程设计基本要求: 1.课程设计应由学生本人独立完成,严禁抄袭。 2.掌握所学的基础理论知识,数据库的基本概念、基本原理、关系数据库的设 计理论、设计方法等。熟悉数据建模工具Visio与数据库管理系统SQLServer 软件的使用。 3.按时上机调试,认真完成课程设计。 4.认真编写课程设计报告。 三、需求分析 信息管理系统是集计算机技术、网络通讯技术为一体的信息系统工程,它能够使企业运行的数据更加准确、及时、全面、详实,同时对各种信息进一步地加工,使企业领导层对生产、经营的决策依据更充分,更具有合理性和库、科学性,并创建出更多的发展机会;另外也进一步加强企业的科学化、合理化、制度化、规范化管理,为企业的管理水平跨上新台阶,为企业持久、健康、稳定的发展打下基础。 这个物资管理系统是以客户机/服务器模式的信息管理模式的信息管理系统。它的开发过程不仅仅是一个编写应用程序的过程,而是以软件工程的思想为指导,从可行性研究开始,经过系统分析、系统设计、系统实施

《ACM算法与数据结构设计》大作业

《ACM算法与数据结构设计》课程大作业报告 题目:五位以内的对称素数 学生姓名 班级学号 学生学院计算机软件学院 学生专业计算机科学与技术 联系电话 电子邮 指导教师 指导单位计算机学院软件工程系 日期2011.5.24

注意事项 (1)课程大作业从《ACM算法与数据结构设计》课程实验二(2011年4月19日)或实验三(2011年5月10日)中任选一个课题完成。(2)课程大作业内容包括课题名称、课题内容和要求、课题分析、概要设计、详细设计、测试数据及其结果分析、调试过程中的问题、参考资料列表、课程小结等。 (3)课程报告可以打印,也可以手写,但前面两页内容、大作业撰写纲要、课程小结不可遗漏和更换。 (4)课程小结给出ACM程序设计过程的收获、遇到的问题,遇到问题解决问题过程的思考、程序调试能力的思考等,需要手写签字。(5)课程大作业提交时间为2011年5月24日(第14周星期二)晚19:00~20:00,地点:计算中心A机房。

一、课题名称: 五位以内的对称素数 二、课题内容和要求: 题目:判断一个数是否为对称且不大于五位数的素数。 要求:判断输入的一组数据(正整数)是否是五位以内的对称素数,逐个判断并输出“yes”或“no” 三、课题分析: 定义两个函数分别判断数据是否为素数(bool isprime(int n)),是否是对称数(bool issym(int n));在main()函数中利用if()语句来判断该数据是否是五位以内的数。只有同时满足三个条件,才能判断一个数据是五位以内的对称素数,输出“yes”;否则输出“no”。 输入输出方案: 输入: 输入数据含有不多于50个的正整数(0

浅谈课程设计模式

?89? □王 哲,郭长侠,董 光 (吉林省经济管理干部学院,吉林 长春130012) [摘要]课程设计是教学过程中的一项重要环节,是完成教学计划达到教学目标的重要方法,它有助 于学生深入地理解课堂上所学的理论知识、掌握实验课程中所学的实践技能,也有助于全面地提高学生的综合素质。为培养符合高职高专教学特色的应用型人才,高职高专院校各专业的课程设计必须要实现实用性、理论性与实践性的紧密衔接。[关键词]课程设计;模式;步骤[中图分类号]G423[文献标识码]A [文章编号]1009-0657(2006)04-0089-03 [收稿日期]2005—12—15 [作者简介]王哲(1981—),男,吉林省长春市人,吉林省经济管理干部学院计算机系教师,主要从事计算机基础和计算机 网络方面的教学与研究工作。 随着我国社会经济发展的多样化,对高等职业技术学院的办学思路、专业结构、管理方式和培养模式提出了新的任务和要求,坚持搞好实践性教学环节既是培养社会所欢迎的应用型人才的必经之路,更是人才培养模式的重要内容。强化学生设计能力和实际动手能力,突出创新意识和创新精神的培养模式是高职院校素质教育的核心和基本特征之一。所以,高等职业院校在建立人才培养模式和深化教学改革的过程中应高度重视实践性教学环节。实践教学环节主要包括课程实验、课程设计、毕业设计三部分,而课程设计在实践教学环节中起到关键的纽带作用。 在实践教学过程中,我们通常模糊了课程实验与课程设计的概念。课程实验应具有时间要求,即与该课程的理论学习同步进行,还应按统一的格式要求写出相应的实验报告。课程实验是帮助学生理解和巩固基础理论,培养学生实验技能、独立工作能力和科学研究方法的重要环节。课程实验的考核一般是对课程实验项目及实验操作水平的考核;课程设计是围绕一门专业基础课或专业课的内容所进行的实践性教学环节,是理工类专业学生必须完成的实践教学内容之一。它是根据教学计划的要求,在浅谈课程设计模式 教师指导下对学生进行阶段性的实践技能的训练;是实现由知识向智能的初步转化,也是对学生综合分析能力、独立工作能力的培养与检查过程。课程设计的任务就是把社会发展的客观要求、知识增长的客观趋势和学生成长的客观需要转化为具有适当水准、适当内容和结构优化的教学实践内容。同时,培养学生具有独立设计、开发、总结的能力以及协作和创新意识。课程设计主要考核学生综合运用已学过的理论知识和实践技能去分析和解决实际问题的能力。根据课程专业性质的不同,理工类各专业至少应安排三至四门课程的课程设计,时间安排是在教学过程中一般停课1至2周去完成某门课程的课程设计。 就目前而言,大多数的高职院校对课程设计不够重视,课程设计的要求不够规范,在教学计划制定过程中对课程设计的课时及实施步骤的叙述不明确,甚至遗漏。为规范课程设计这一实践性教学环节,以培养学生综合素质和专业知识的应用能力,我们认为:形成一套完整的课程设计模式是十分必要的。在课程设计过程中对设计题目、设计方法和设计手段进行全面改革,以培养学生的创新能力、综合分析能力、系统设计能力、协作能力以及形成市场意识。在课程设 第20卷第4期吉林省经济管理干部学院学报 V ol.20No.42006年8月Journal of Jilin Province Economic Management Cadre College August 2006

(完整版)大工16秋《道路勘测设计课程设计》大作业答案

网络教育学院《道路勘测设计课程设计》 题目:某公路施工图设计 学习中心: 专业: 年级: 学号: 学生: 指导教师:

学 号学 生: 指导教师: 乔 娜 1 设计交通量的计算 设计年限内交通量的平均年增长率为7%,路面竣工后第一年日交通量如下: 桑塔纳2000:2300辆; 江淮a16600:200辆; 黄海dd680:420辆; 北京bj30:200辆; Ep140:580辆; 东风sp9250:310辆。 设计交通量:d N =0N ×() 1 1n r -+ 式中:d N —远景设计年平均日交通量(辆/日); 0N —起始年平均交通量(辆/日); r —年平均增长率; n —远景设计年限。 代入数字计算: 解: 0N =2300+200+420+200+580+310=4010(辆/日) 假设远景设计年限为20年,则将上述的种种数字带入公式后计算: 设计交通量:d N =0N ×() 1 1n r -+ =4010×(1+0.07)19 =14502(辆/日)

2 平面设计 路线设计包括平面设计、纵断面设计和横断面设计三大部分。道路是一个三维空间体系,它的中线是一条空间曲线。中线在水平面上的投影称为路线的平面。沿着中线竖直的剖切,再展开就成为纵断面。中线各点的法向切面是横断面。道路的平面、纵断面和各个横断面是道路的几何组成。 道路的平面线形,受当地地形、地物等障碍的影响而发生转折时,在转折处需要设置曲线,为保证行车的舒顺与安全,在直线、圆曲线间或不同半径的两圆曲线之间要插入缓和曲线。因此,直线、圆曲线、缓和曲线是平面线形的主要组成因素。 直线是平面线形中的基本线形。在设计中过长和过短都不好,因此要加以限制。直线使用与地形平坦、视线目标无障碍处。直线有测设简单、前进方向明确、路线短截等特点,直线路段能提供较好的超车条件,但长直线容易使司机由于缺乏警觉产生疲劳而发生事故。 圆曲线也是平面线形中常用的线性。《公路路线设计规范》规定,各级公路不论大小均应设置圆曲线。平曲线的技术标准主要有:圆曲线半径,平曲线最小长度以及回头曲线技术指标等。 平曲线的半径确定是根据汽车行驶的横向稳定性而定: )(1272 i V R +=μ 式中:V-行车速度km/h ; μ-横向力系数; i -横向超高,我国公路对超高的规定。 缓和曲线通过曲率的逐渐变化,适应汽车转向操作的行驶轨迹及路线的顺畅,以构成美观及视觉协调的最佳线形;离心加速度的逐渐变化,不致产生侧向冲击;缓和超高最为超高变化的过渡段,以减小行车震荡。 平曲线要素: 切线增长值:q=2s L -2 3 240R L s 内移值: p=R L s 242-3 4 2384R L s

汽车修理管理系统 课程设计 数据库大作业(有源文件)

数据库大作业 《数据库原理与设计》课程设计汽车修理管理系统 学号: 姓名: 年级层次: 教学中心:

汽车修理管理系统 一. 概述 1.项目背景 在计算机不断发展的今天,计算机已经运用到各个领域,计算机的作用使由手工的操作到计算机的操作是一个大的飞跃,代替的复杂的容易出错的人工操作,节省了大量的时间,提高了正确性,提高了数据的可靠性。因此每个公司使用计算机建立自己的业务是迫在眉睫,汽车修理厂根据业务发展的需要,决定建立一个数据库管理系统,以代替单一的人工管理。这样使人工操作的管理方便,简单。 2.编写目的 编写的目的是使汽车修理厂由单一的人工管理到计算机管理的飞跃,使汽车修理厂的管理的效率得到很大的提高,使人工管理的出错的机会大大减少,实现数据的共享,便于查询自己的数据信息,使汽车修理厂的业务的流程时间大大减少,从而可以提高该汽车修理厂的竞争性,在社会有立足之地。 3.软件定义 该软件为第一版,既汽车修理管理系统1.0 版。 4.开发环境 数据库: SQL SERVER 2000 开发和编译环境: Visual C++6.0。 二.需求分析 1.通过分析得知,该修理厂共使用5种单据,4种账册和3种主要报表。 ⑴五种单据如表1所示: 表中D1由送修人填写。修理派工员据此开出修理单D2,分派给指定的修理工执行。如果在修理中需要更换零件,一律由修理工填写零件领用单D3向仓库领用。修理结束后,修理工将D2交回给派工员,然后转财务部门结账并开修车发票D5。D4在零件入库时由仓库管理员验收并且填写。图6显示了这些单据的格式内容。 编号名称填写人 D1 修车登记单送修人 D2 汽车修理单修理派工员和修理工 D3 零件领用单修理工 D4 零件入库单仓库管理员 D5 修车发票财务人员 表1 当前系统单据一览表

内燃机设计课程设计大作业

第一部分:四缸机运动学分析 绘制四缸机活塞位移、速度、加速度随曲轴转角变化曲线(X -α,V -α,a -α)。 曲轴半径r=52.5mm 连杆长度l=170mm, 连杆比31.0==l r λ 1、位移:)]2cos 1(4 1 )cos 1[(αλα-+-=r x 2、速度:)2sin 2 (sin αλ αω+ =r v 3、加速度:)2cos (cos 2αλαω+=r a

第二部分:四缸机曲柄连杆机构受力分析 1、初步绘制四缸机气缸压力曲线(g F -α),绘制活塞侧击力变化曲线(N F -α),绘制连杆力变化曲线(L F -α),绘制曲柄销上的切向力(t F ),径向力(k F )的变化曲线(-α),(-α)。 平均大气压MPa p 09839.098.39kPa 0== 缸径D=95mm 则 活塞上总压力 6 010 )(?-=A P P F g g 24 D A π = 单缸活塞组质量:kg m h 277.1= 连杆组质量: 1.5kg =l m 则 往复运动质量:l h j m m m 3.0+= 往复惯性力:)2cos (cos 2αλαω+-=-=r m a m F j j j )sin arcsin(αλβ=又 合力:g j F F F += 侧击力:βtan F F N = 连杆力:β cos F F L = 切向力:)sin(βα+=L t F F 径向力:)cos(βα+=L k F F t F k F

2.四缸机连杆大头轴承负荷极坐标图,曲柄销极坐标图 连杆大头集中质量产生的离心力:2 227.0ωωr m r m F l rL == 连杆轴颈负荷: qy qx p F F arctan =α 连杆轴承负荷: ?+++=180βαααq P )sin(p P px F F α= 2m rL L q F F F +=k rL qx F F F -=t qy F F =q p F F -=)(p p py con F F α=

数据库课程设计工厂管理系统大作业

摘要 姓名:颜超丽学号:200915553013027 此文运用了数据字典、数据流图等方法对工厂管理系统进行了需求分析,运用E-R图进行了概念结构设计,在逻辑结构设计中将E-R图转化为关系模型,在物理结构设计中确定该数据库的存储结构,最后通过SQL语言实现数据库的设计。在这过程中,还详细地分析了各个子系统的属性、实体间的联系以及子系统间的关系。在这基础上,通过金仓数据库软件,运用SQL语言将所建工厂管理系统数据库顺利实现。 关键字:数据字典,E-R图,SQL语言 目录 一、系统概述 (1) 二、需求分析 (1) 1信息分析 (1) 2数据流图 (2) 3数据字典 (2) 三、概念结构设计 (4) 1实体列表 (4) 2分E-R图 (4) 3全局E-R图 (5) 四、物理结构设计 (5) 1关系模式存取方式选择 (5) 2确定数据库的存储结构 (5)

3评价物理结构 (5) 五、逻辑结构设计 (6) 六、数据库的实施 (7) 七、设计总结........ (8) 八、文献 (9)

工厂管理系统库 一、系统概述 工厂管理信息化是工厂管理系统应用信息技术及其产品的过程,是信息技术应用于工厂管理的过程。工厂信息化的实施,自下而上而言,必须以管理人员使用信息技术水平的逐步提高为基础;自上而下而言,必须与工厂的制度创新、组织创新和管理创新结合。 工厂管理系统算是比较简单一种信息系统。它主要应用于工厂仓库管理、职工管理、车间管理和零件管理。其中车间对职工和零件来说是很重要的。 工厂管理信息化建设工作具有长期性和内容的多变性;正因为这样,车间管理信息系统也不是一个简单的、静止的、封闭的系统,而是一个开放的,随着时间的推移会逐步变化和发展的系统。 二、需求分析 1、信息分析 根据工厂方面取得的信息资料,得出系统的信息需求和处理要求,得到设计所需的需求信息。这些信息是是选择了对数据库设计直接有用的信息。 A.工厂系统: a.车间:一个工厂有很多个车间,每个车间有车间号、车间主任名、地址、 电话。 b.工人:一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和 工种。 c.产品:一个车间生产多钟产品,产品有产品号,价格。 d.零件:一个车间有多个零件,一个零件也可以由多个车间制造。零件有 零件号、重量和价格。 e.仓库:产品与零件存入仓库中,厂内有多个仓库,仓库有仓库号、仓库 保管员、姓名、电话。 B.系统联系: a.生产:一个车间有多个零件,一个零件也可以由多个车间制造。 b.组成:一个产品由多个零件组成,一种零件也可装配多中产品内。 c.保管:产品与零件存入仓库中,厂内有多个仓库。

《程序设计与算法综合实践》期末大作业题目及评分标准

2017级《程序设计与算法综合实践》 期末大作业题目及评分标准 有如下情况之一者,为不及格。 (1)未能完成所选题目评分标准的最低要求。 (2)抄袭他人成果。 (3)大作业检查时不带电脑,或电脑没有C语言开发环境。 (4)出勤次数、课堂表现等不符合学校相关教学文件规定等其他情况。 备选题目目录 1.图书购买系统...............................................................................................................- 2 - 2.物流信息管理系统 ....................................................................................................- 3 - 3.PM2.5实时信息管理系统 ............................................................ - 5 - 4.电影评论系统 ............................................................................... - 6 - 5.游戏角色属性分析........................................................................ - 8 - 6.KTV点歌系统 ................................................................................ - 9 - 7.英语词斩系统 ............................................................................. - 11 - 8.校运动会成绩管理系统.............................................................. - 14 - 9.通讯录管理系统 ......................................................................... - 15 - 10.机票购买系统 ............................................................................. - 16 - 11.车辆销售管理系统...................................................................... - 17 - 12.饮品自动贩卖机系统.................................................................. - 18 -

设计模式大作业

摘要: 随着软件系统规模和复杂性的增加, 人们对软件的可靠性和生产效率也提出了更高的要求, 软件重用在当前比以往任何时候都显得重要. 设计模式是系统设计阶段的软件重用, 使得那些具有良好性能的设计方案可以在相似环境下被再次复用. 设计模式以文档的形式把面向对象的软件设计经验记录下来, 并予以系统的命名、解释和评价, 使开发人员在进行系统的设计与开发时, 可以使用别人的成功经验而不必为普通的、重复的问题重新设计解决方案,使设计者更容易理解其设计思路,能为自己的问题找到更合适的解决办法,帮助设计者更快更好地完成系统设计. 1.设计模式简介 设计模式是针对面向对象系统中重复出现的设计问题,提出一个通用的设计方案,并予以系统化的命名和动机解释。它描述了问题,提出了解决方案,并指出在什么条件下使用该方案以及其效果。该解决方案是解决该问题的一组精心安排的通用的类和对象,再经过定制和实现就可用来解决特定的上下文中的问题。简单来说,设计模式就是一个常用的方案。在我们的开发过程中经常会遇到一些相同或相近的问题,如果每次都寻找一个相应的解决办法&那么就会增加开发时间,降低开发效率。为了节省时间&提高开发效率&就需要提供一些解决类似问题的,在应用中被证明可行的方案设计模式。所以一个设计模式就是描述了一个被证明可行的方案,这些方案可以重用,有良好的伸缩性。一般而言,一个设计模式有四个要素: 1.模式名称 2.问题。 3.解决方案。 4.效果。 2.设计模式的分类 根据两条准则对模式进行分类,范围准则和目的准则。 范围准则,即指定设计模式主要是用于类还是用于对象。设计模式据此可分 为: (1)类设计模式:处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时刻便确定下来了。 (2)对象设计模式:处理对象间的关系,这些关系在运行时刻是可以变化的,更具动态性。从某种意义上来说,几乎所有设计模式都使用继承机制,所以“类设计模式”只指那些集中于处理类间关系的设计模式,而大部分设计模式都属于对象设计模式的范畴。 目的准则,即设计模式是用来完成什么工作的。设计模式据此可分为: (l)创建型设计模式:与类或对象的创建有关; (2)结构型设计模式:处理类或对象的组合; (3)行为型设计模式:对类或对象怎样交互和怎样分配职责进行 描述。 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 3.设计模式的六大原则 1.单一职责原则:一个类应该只有一个职责。 优点:降低类的复杂性;提高类的可读性;提高代码的可维护性和复用性;降低因变更引

软件系统分析与设计大作业

《软件系统分析与设计》 期末大作业 选题名称:游戏平台管理系统设计人:徐文豪刘青海 赖超宇甘智宏 班级:软工143班 南昌大学软件学院 2016.6.1

目录 一、整体描述 (2) 二、需求分析 (3) 三、系统功能概况 (4) 四、类的属性与方法 (5) 五、系统界面界限 (11) 六、设计模型 (13) 七、设计原则 (17) 八、设计模式······················

一、整体描述 随着移动通讯的发展,手机应用也越来越多,其中,游戏应用占据了很大的比重,游戏平台管理系统是整合了大量游戏应用,以及玩家线上交流的平台。 主要受众群:拥有移动端或电脑端的人群。 应用前景:移动互联的发展为游戏平台的发展提供了很大的生存空间,应用前景十分广阔 盈利方式:向平台中游戏的开发商收取一定的费用,游戏玩家向游戏中注入资金时,收取一定比例的游戏收入。 面临的困难:游戏平台前期的推广,提高游戏平台本身对开发商和游戏玩家的吸引力,游戏平台能否适应大部分游戏玩家的要求。 玩家首先要注册账号,然后就可以在上面下载游戏应用,上传自己的游戏资源。同时,根据玩家的活跃程度获取相应积分,用积分可以兑换游戏礼包,也会根据玩家等级在游戏装备上给与相应的优惠和等级奖励。玩家在每一款游戏的评论区都可以交流游戏经验,提出意见和建议,以便游戏及时更新,弥补相应不足。玩家也可以建立游戏工会,不同游戏的玩家都可以加入,分享自己的游戏心得或者转赠游戏装备或积分。

二、需求分析 时间when:游戏厂商:随时;注册用户:随时;管理人员:正常工作时间。 地点Where:游戏厂商,管理人员:工作地点;注册用户:随地 人员who:游戏厂商,管理人员,注册用户, What:游戏厂商:推广游戏,管理人员:扩大服务,盈利;注册人员:玩游戏。 Why:游戏厂商:推广力度不大,效果不好,管理人员:方便管理,注册用户:良好的游戏环境。 性能Performance:系统提供服务的效率,响应时间快,由于是手机端的APP吞吐量不需要太大。 成本Cost:实现系统需要付出的代价,耗费****元 时间Time:2016年6月3日 可靠性Reliability: 需要系统长时间正确运行的能力 安全性Security: 由于该平台会涉及资金的流动,所以需要对信息安全的保护能力。 合规性Compliance: 需要符合各种行业的标准,法律法规,规范。技术性Technology:要求基于安卓平台开发。 兼容性Compatibility:需要与一些支付平台进行兼容能力。还有对游戏的兼容性。

现代控制理论课程设计(大作业)

现代控制理论课 程设计报告 题目打印机皮带驱动系统能控能观和稳定性分析 项目成员史旭东童振梁沈晓楠 专业班级自动化112 指导教师何小其 分院信息分院 完成日期 2014-5-28

目录 1. 课程设计目的 (3) 2.课程设计题目描述和要求 (3) 3.课程设计报告内容 (4) 3.1 原理图 (4) 3.2 系统参数取值情况 (4) 3.3 打印机皮带驱动系统的状态空间方程 (5) 4. 系统分析 (7) 4.1 能控性分析 (7) 4.2 能观性分析 (8) 4.3 稳定性分析 (8) 5. 总结 (10)

项目组成员具体分工 打印机皮带驱动系统能控能观和稳定性 分析 课程设计的内容如下: 1.课程设计目的 综合运用自控现代理论分析皮带驱动系统的能控性、能观性以及稳定性,融会贯通并扩展有关方面的知识。加强大家对专业理论知识的理解和实际运用。培养学生熟练运用有关的仿真软件及分析,解决实际问题的能力,学会使用标准、手册、查阅有关技术资料。加强了大家的自学能力,为大家以后做毕业设计做很好的铺垫。 2.课程设计题目描述和要求 (1)环节项目名称:能控能观判据及稳定性判据 (2)环节目的: ①利用MATLAB分析线性定常系统的可控性和客观性。 ②利用MATLAB进行线性定常系统的李雅普诺夫稳定性判据。 (3)环节形式:课后上机仿真 (4)环节考核方式: 根据提交的仿真结果及分析报告确定成绩。 (5)环节内容、方法: ①给定系统状态空间方程,对系统进行可控性、可观性分析。 ②已知系统状态空间方程,判断其稳定性,并绘制出时间响应曲线验

证上述判断。 3.课程设计报告内容 3.1 原理图 在计算机外围设备中,常用的低价位喷墨式或针式打印机都配有皮带驱动器。它用于驱动打印头沿打印页面横向移动。图1给出了一个装有直流电机的皮带驱动式打印机的例子。其光传感器用来测定打印头的位置,皮带张力的变化用于调节皮带的实际弹性状态。 图1 打印机皮带驱动系统 3.2 系统参数取值情况 表1打印装置的参数

算法分析大作业动态规划方法解乘法表问题和汽车加油行驶问题#精选.

算法分析大作业 动态规划方法解 乘法表问题和汽车加油行驶问题目录 1.动态规划解乘法表问题 1.1问题描述------ 1.2算法设计思想------ 1.3设计方法------ 1.4源代码------ 1.5最终结果------ 2.动态规划解汽车加油行驶问题 2.1问题描述------ 2.2算法设计思想------ 2.3设计方法------ 2.4源代码------ 2.5最终结果------ 3.总结

1.动态规划解决乘法表问题 1.1问题描述 定义于字母表∑{a,b,c)上的乘法表如表所示: 依此乘法表,对任一定义于∑上的字符串,适当加括号表达式后得到一个表达式。 例如,对于字符串x=bbbba,它的一个加括号表达式为(b(bb))(ba)。依乘法表,该表达式的值为a。 试设计一个动态规划算法,对任一定义于∑上的字符串x=x1x2…xn,计算有多少种不同的加括号方式,使由x导出的加括号表达式的值为a。 1.2算法设计思想 设常量a,b,c 分别为 1, 2 ,3 。n 为字符串的长度。 设字符串的第 i 到第 j 位乘积为 a 的加括号法有result[i][j][a] 种, 字符串的第 i 到第 j 位乘积为 b 的加括号法有result[i][j][b] 种, 字符串的第 i 到第 j 位乘积为 c 的加括号法有 result[i][j][c] 种。 则原问题的解是:result[i][n][a] 。 设 k 为 i 到 j 中的某一个字符,则对于 k 从 i 到 j :result[i][j][a] += result[i][k][a] * result[k + 1][j][c] + result[i][k][b] * result[k + 1][j][c] + result[i][k][c] * result[k + 1][j][a]; result[i][j][b] += result[i][k][a] * result[k + 1][j][a] + result[i][k][a] * result[k + 1][j][b] + result[i][k][b] * result[k + 1][j][b]; result[i][j][c] += result[i][k][b] * result[k + 1][j][a] + result[i][k][c] * result[k + 1][j][b] + result[i][k][c] * result[k + 1][j][c];

软件设计模式大作业样例

设计模式大作业 课程名称:软件设计模式 设计题目:公司经费申请 院系:计算机科学与信息工程学院学生姓名: 学号: 专业班级:软件工程13-1 指导教师:高原 2016年6月

软件设计模式任务书

目录 一、系统目标 (1) 1. 设计目的 (1) 2. 需求描述 (1) 二、系统模块选择 (1) 1. 需求分析 (1) 2. 选用设计模式 (2) (1)模板方法模式 (2) (2)职责链模式 (2) (3)观察者模式 (3) 三、系统设计 (4) 1. 系统功能模块设计 (4) 四、系统实现 (5) 1.模板方法模块及其实现类 (5) 2.职责链模块及其实现类 (6) 3.观察者模块及其实现类 (9) 4.事件处理程序 (10) 五、系统设计总结 (11) 1. 实现的功能和优点 (11) 2. 不足之处 (12) 3. 完成心得 (12) 六、参考文献 (12) 参考文献 (12)

一、系统目标 1.设计目的 通过本课程设计,加深对软件设计课程的理解,熟练掌握和巩固所学的各种设计模式,培养自我动手、查阅技术文献、资料、手册以及编写技术文献的能力。通过运用设计模式来解决实际系统中遇到的问题,从而具备利用计算机编程分析解决综合性实际问题的初步能力。 2.需求描述 本系统的主要目的在与应用设计模式解决公司经费申请问题,可以了解申请经费的具体流程为申请人先填写申请单,然后交给领导审批,如果申请批准下来,领导会通知申请人审批通过,然后申请人去财务领取费用,财务部给于其拨款,如果没有批准下来,领导会通知申请人审批未通过。不同级别的领导,对于审批的额度是不一样的,比如,项目经理只能审批500元以内的申请;部门经理能审批1000元以内的申请;而总经理可以审核3000元以内的申请,否则不通过。系统中总共用到三种设计模式,分别是模板方法模式,职责链模式,观察者模式。 模板方法模式定义了一个操作中算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。申请经费的具体流程是固定的,写申请单,审核,得到通知这三个过程,只是审核过程不同。职责链模式鉴于不同级别的领导,对于审批的额度是不一样,使其各自的职责权限更加清晰明了。观察者模式是一种一对多依赖关系,一个对象状态发生改变时,其相应依赖对象得到通知并自动更新。 二、系统模块选择 1. 需求分析 根据问题的描述,可以确定系统的大致业务逻辑。如下:需要申请活动费用,按照固定工作流程进行申请,给出申请金额,由领导根据各自的职责权限进行审核,并将结果告知申请人,财务部根据结果给予拨款。将结果返回到客户端,呈现给用户。

C语言课程设计大作业

郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: *** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书

成绩评定教师:一. 需求分析

1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能: 输出数据函数:随时输出数据; 读取数据函数:读取输入的数据信息;

显示菜单函数:显示可供选择的主菜单; 显示记录函数:显示通讯录所有输入的信息; 删除记录函数:显示要删除的通讯录所有输入的信息; 查找记录函数:显示要查询的通讯录所有输入的信息; 自定义清屏函数:清除前面运行留下的信息; 自定义输入函数:输入通讯录的成员;; 字符输入函数:从终端输入一个字符,遇回车键返回; 修改数据函数:修改通讯录的成员信息; 保存数据函数:保存通讯录的成员信息; 排序数据函数:排序通讯录的成员信息; (2)程序中的抽象数据类型的定义: 用户的状态结构 用户 { 编号: 姓名: 电话; 年龄; 邮箱: 地址; (3)总体流程图 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 } 三. 详细设计

大数据库课程设计——图书管理系统

数据库系统原理课程设计 课题名称:图书信息管理系统 姓名: 班级: 学号: 指导老师: 2014年 01月 02日

目录 1.绪论------------------------------------------------------------ 3 1.1背景介绍------------------------------------------------------ 3 1.2开发背景的选用及介绍------------------------------------------ 3 2.需求分析-------------------------------------------------------- 4 2.1系统分析------------------------------------------------------ 4 2.2系统目标------------------------------------------------------ 4 2.3总体需求------------------------------------------------------ 4 3.概念设计阶段---------------------------------------------------- 5 3.1实体E-R图---------------------------------------------------- 5 3.2数据流程图---------------------------------------------------- 8 4.逻辑结构设计阶段------------------------------------------------ 8 4.1E-R图转换为关系模型 ------------------------------------------ 8 4.2数据字典------------------------------------------------------ 9 5.物理结构设计阶段---------------------------------------------- 10 5.1物理设计阶段的目标和任务------------------------------------- 10 5.2数据存储方面------------------------------------------------- 10 6.数据库实施与维护----------------------------------------------- 10 6.1创建数据库,数据表------------------------------------------- 10 6.2创建视图----------------------------------------------------- 12 6.3创建索引----------------------------------------------------- 13 6.4创建触发器--------------------------------------------------- 13 6.5数据表的初始化----------------------------------------------- 14 6.6初始表的显示------------------------------------------------- 16 7.数据库界面实现------------------------------------------------ 19 7.1系统总的功能模块图------------------------------------------- 19 7.2系统的实现--------------------------------------------------- 19 8.心得体会------------------------------------------------------- 25

对并行算法的介绍和展望——学期大作业

《计算机系统结构》大作业 对并行算法的介绍和展望 专业计算机科学与技术 班级 111 学号 111425020133 姓名完颜杨威 日期 2014年4月17日 河南科技大学国际教育学院

对并行算法的介绍和展望 我们知道,算法是求解问题的方法和步骤。而并行算法就是用多台处理机联合求解问题的方法和步骤,其执行过程是将给定的问题首先分解成若干个尽量相互独立的子问题,然后使用多台计算机同时求解它,从而最终求得原问题的解。并行算法的研究涉及到理论、设计、实现、应用等多个方面,要保持并行算法研究的持续性和完整性,需要建立一套完整的“理论-设计-实现-应用”的学科体系,也就是所谓的并行算法研究的生态环境。其中,并行算法理论是并行算法研究的理论基础,包含并行计算模型和并行计算复杂性等;并行算法的设计与分析是并行算法研究的核心内容;并行算法的实现是并行算法研究的应用基础,包含并行算法实现的硬件平台和软件支撑技术等;并行应用是并行算法研究的发展动力,除了包含传统的科学工程计算应用外,还有新兴的与社会相关的社会服务型计算应用等。 并行算法主要分为数值计算问题的并行算法和非数值计算问题的并行算法。而并行算法的研究主要分为并行计算理论、并行算法的设计与分析、和并行算法的实现三个层次。现在,并行算法之所以受到极大的重视,是为了提高计算速度、提高计算精度,以及满足实时计算需要等。然而,相对于串行计算,并行计算又可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。并行算法是一门还没有发展成熟的学科,虽然人们已经总结出了相当多的经验,但是远远不及串行算法那样丰富。并行算法设计中最常用的的方法是PCAM方法,即划分,通信,组合,映射。首先划分,就是将一个问题平均划分成若干份,并让各个处理器去同时执行;通信阶段,就是要分析执行过程中所要交换的数据和任务的协调情况,而组合则是要求将较小的问题组合到一起以提高性能和减少任务开销,映射则是要将任务分配到每一个处理器上。任何一个并行算法必须在一个科学的计算模型中进行设计。我们知道,任何算法必须有计算模型。任何并行计算模型必须要有为数不多、有明确定义的、可以定量计算的或者可以实际测量的参数,这些参数可以构成相应函数。并行计算模型是算法设计者与体系结构研究者之间的一个桥梁,是并行算法设计和分析的基础。它屏蔽了并行机之间的差异,从并行机中抽取若干个能反映计算特性的可计算或可测量的参数,并按照模型所定义的计算行为构造成本函数,以此进行算法的复杂度分析。 经过多年的发展,我国在并行算法的研究上也取得了显著进展,并行计算的应用已遍布天气预报、石油勘探、航空航天、核能利用、生物工程等领域,理论研究与应用普及均取得了很大发展。随着高性价比可扩展集群并行系统的逐步成熟和应用,大规模电力系统潮流并行计算和分布式仿真成为可能。目前,并行算法在地震数据处理中应用已较为成熟,近年来向更实用的基于PC机群的并行技术发展.然而,在非地震方法中,并行算法应用较少见文献报道,研究尚处于初级研究阶段。在大地电磁的二维和三维正、反演问题上,并行计算技术逐渐得到越来越多关注和重视.随着资源和能源需求的增长,地球物理勘探向深度和广度快速发展,大幅增长的数据量使得高性能并行计算机和高效的并行算法在勘探地球物理学中的发展和应用将占据愈来愈重要的地位。计算机技术在生物医学领域已经广泛应用,实践证明,并行算法在生物医学工程的各个领域中具有广泛的应用价值,能有效提高作业效率。随着电子科学技术的发展,电磁问题变得越来越复杂,为了在有限的计算机资源条件下求解大规模复杂电磁问题,许电磁学家已

相关文档
最新文档