文档库 最新最全的文档下载
当前位置:文档库 › 广东工业大学算法分析与设计实验

广东工业大学算法分析与设计实验

广东工业大学算法分析与设计实验
广东工业大学算法分析与设计实验

算法设计与分析实验报告

学院计算机学院

专业软件工程

班级计算机软件<1>班

学号

姓名周帅

指导教师顾国生

2014年06月03日

计算机学院软件工程专业班学号:

姓名:协作者:________ 教师评定:实验题目__实验一:用分治法实现快包算法一、实验目的与要求

理解分治法的效率

用分治法完成快包算法,并给出一个运行实例二、算法的运行环境:

在windows7系统中,用eclipse进行编译。

算法实现代码:

import java.awt.Point;

import java.util.Arrays;

import java.util.Iterator;

import java.util.LinkedList;

public class 实验1 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Point[] Points = new Point[15];

Points[0] = new Point(-5, 7);

Points[1] = new Point(3,-6);

Points[2] = new Point(5, 4);

Points[3] = new Point(-5, -5);

Points[4] = new Point(1, 7);

Points[5] = new Point(6, 0);

Points[6] = new Point(0, 0);

Points[7] = new Point(-5, 0);

Points[8] = new Point(3, -2);

Points[9] = new Point(3, 4);

Points[10] = new Point(1, 6);

Points[11] = new Point(5, 3);

Points[12] = new Point(-4, -5);

Points[13] = new Point(-3, 6);

Points[14] = new Point(2, 5);

Arrays.sort(Points); //预排序处理

LinkedList list = new LinkedList ();

for(int i = 0;i < Points.length;i++)

list.add(Points[i]); //list存放全部的顶点

LinkedList result = getConvexHulls(list); //result用来存放最终的结果顶点

System.out.println("一共有 " + result.size() + " 个顶点, " + "凸包的顶点是: ");

Iterator it = result.iterator();

while(it.hasNext())

{

Point next = (Point) it.next();

System.out.print("(" + next.x + "," + next.y + ")" + " " );

}

}

public static LinkedList getConvexHulls(LinkedList list){ //将凸包顶点以result链表返回

LinkedList result = new LinkedList();

Point temp1 = list.removeFirst();

Point temp2 = list.removeLast();

result.add(temp1);

result.add(temp2);

//递归的处理temp1 ---> temp2左右两侧的点

dealWithLeft(temp1,temp2,result,list);

dealWithLeft(temp2,temp1,result,list);//注意每次要将result带着,存放结果集

return result;

}

private static void dealWithLeft(Point p1,Point p2,LinkedList

result,LinkedList list){

//递归的处理p1,p2构成的射线左边的点

Iterator it = list.iterator();

//找出左边最高的点Pmax

Point Pmax = null;

int max = 0;

while(it.hasNext())

{

Point next = (Point) it.next();

int x1 = p1.x,y1 = p1.y;

int x2 = p2.x,y2 = p2.y;

int x3 = next.x,y3 = next.y;

//int max = 0;//小小的一个错误啊!!!!!!!

int compute = x1*y2 + x3*y1 + x2*y3 - x3*y2 - x2*y1 - x1*y3;

if(compute > max)

{

max = compute;

Pmax = next;

}

}

//又找到了一个顶点

if(Pmax != null)

{

result.add(Pmax);

list.remove(Pmax);

//递归

dealWithLeft(p1,Pmax,result,list);

dealWithLeft(Pmax,p2,result,list);

}

}

private static boolean onLeft(Point target,Point p1,Point p2){

//判断target是否在p1--->p2射线的左侧

int x1 = p1.x,y1 = p1.y;

int x2 = p2.x,y2 = p2.y;

int x3 = target.x,y3 = target.y;

int compute = x1*y2 + x3*y1 + x2*y3 - x3*y2 - x2*y1 - x1*y3;

if(compute > 0)

return true;

else

return false;

}

}

三、

运行结果:

输入要排序的个数,下图为显示结果:

四、心得:

在本次算法实现中,我懂得了分治法实现凸包的算法实现原理,同时分治法的灵活运用有理解,虽然参考了《算法设计与分析基础》里的思想,但还是通过自己的程序语言把它实验了。在这次实验过程中,我懂得了数学在算法中的广泛性应用的重要性。

计算机学院软件工程专业班学号:

姓名:协作者:________ 教师评定:

实验题目__实验二:按要求实现算法

一.实验目的与要求

通过键盘输入一个高精度的正整数n(n的有效位数≤240),去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n 和s,寻找一种方案,使得剩下的数字组成的新数最小。

二.算法的运行环境:

在windows7系统中,用eclipse进行编译。

三.算法实现代码:

public class实验2 {

public static void main(String args[]){

String result=method1(3111006079L,7);

System.out.println(result);

}

private static String method1(long n,int s){

String s1=String.valueOf(n);

if(s1.length()<=s){

return"n的长度不能小于s";

}else{

String s3=s1;

int l=s;

int flag = 0;

String last ="" ;

int f=0;

while(f

int

m=Integer.valueOf(String.valueOf(s3.charAt(s)));

for(int j=s-1;j>=0;j--){

if(Integer.valueOf(String.valueOf(s3.charAt(j)))<=m){

m=

Integer.valueOf(String.valueOf(s3.charAt(j)));

flag=j;

}else{

flag=s3.indexOf(String.valueOf(m));

}

}

s3=s3.substring(flag+1,s3.length());

System.out.println(s3);

s=s-flag;

last=last+m;

f=f+1;

}

if(Integer.valueOf(last)==0){

int m=9;

for(int x=0;x

if(Integer.valueOf(String.valueOf(s3.charAt(x)))<=m){

if(Integer.valueOf(String.valueOf(s3.charAt(x)))!=0){

m=

Integer.valueOf(String.valueOf(s3.charAt(x)));

}

}

}

last=last+m;

}else{

int

m=Integer.valueOf(String.valueOf(s3.charAt(s)));

for(int j=s-1;j>=0;j--){

if(Integer.valueOf(String.valueOf(s3.charAt(j)))<=m){

m=

Integer.valueOf(String.valueOf(s3.charAt(j)));

flag=j;

}else{

flag=s3.indexOf(String.valueOf(m));

}

}

last=last+m;

}

return"输入值 n 为"+n+" s 为 "+l+" 输出结果为:"+last;

}

}

}

四.运行结果:

五.学习心得:

通过本次试验,我学习了算法的思维,也对自己的能力有了新的认识,对于算法的思想以及对于自己算法的能力都有了提高.

算法分析与设计实验指导书

《算法分析与设计》实验指导书本书是为配合《算法分析与设计实验教学大纲》而编写的上机指导,其目的是使学生消化理论知识,加深对讲授容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。 上机实验一般应包括以下几个步骤: (1)、准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机。(2)、上机输入和调试自己所编的程序。一人一组,独立上机调试,上机时出现的问题,最好独立解决。 (3)、上机结束后,整理出实验报告。 实验报告应包括: 1)问题分析 2)算法描述 3)运行结果、 4)算法性能分析。 实验一 实验名称:贪心算法应用及设计 实验学时:6学时 实验类型:验证 实验目的: 1.理解贪心算法的基本思想 2.掌握利用贪心算法求解问题的求解步骤 实验容 1.活动选择问题(2学时) 问题描述: 设有11个会议等待安排,用贪心法找出满足目标要求的会议集合,这些会议按结束时间的非减序排列如下表。 实验实现提示: 1)数据结构设计: 将会议开始时间存储在数组B中,结束时间存储在数组E中,数组下标为会议的代码。结果存储在数组A中,其元素A[i]==true,表示会议i被选中。 2)算法: void GreedySelect(int n, struct time B[], struct time E[], bool A[]) { int i,j;

A[1]=true; j=1; i=2; while( i<=n) if (B[i]>=E[j]) { A[i]=true; j=i;} else A[i]=false; } 思考题:证明所得的解是最优解? 2.单源点最短路径问题。(2学时) 问题描述 如图所示的有向带权图中,求源点0到其余顶点的最短路径及最短路径长度。并对算法进行性能分析。 实现提示 1)数据结构设计: 将图存储在邻接矩阵C中,结点个数为n,源点编号为u, 源点u到其余顶点的最短路径长度存储在dist[],最短路径存储在p[]。 2) 算法 void Dijkstra(int C[n][n], int n,int u,float dist[],int p[]) { bool s[n]; for( int i=1; i<=n; i++) { dist[i]=C[u][i]; s[i]=false; if (dist[i]=∞) p[i]=-1; else p[i]=u; } p[u]=-1; s[u]=true; for( i=1; i<=n; i++) { int temp= ∞; int t=u; for( int j=1;j<=n;j++)

广东工业大学实验室安全考试修订版

广东工业大学实验室安 全考试 Document number:PBGCG-0857-BTDO-0089-PTT1998

广东工业大学2015年实验室 1、[判断题]实验大楼出现火情时千万不要乘电梯,因为电梯可能因停电或失控,同时又因“烟囱效应”,电梯井常常成为浓烟的流通道。(分值)你的答案:正确 2、[判断题]高速设备和精密设备应在管理人员指导下使用。(分值)你的答案:正确 3、[判断题]箱式电阻炉的加热元件及其电源连接点需保持良好的绝缘性能,管理员应进行定期检查。(分值)你的答案:正确 4、[判断题]操作机床时,留长发者要戴安全防护帽。(分值)你的答案:正确 5、[判断题]焊接场地应预留安全通道并保持畅通。(分值)你的答案:正确 6、[判断题]焊接场地在10米内,禁止堆放易燃和易爆物质。(分值)你的答案:正确 7、[判断题]安装工件时,工件要装正、夹紧,装、卸工件后必须及时取下卡盘扳手。(分值)你的答案:正确 8、[判断题]在冲压过程中,如果工件卡在模子里,应先关闭电源,并用专业工具取出。(分值)你的答案:正确 9、[判断题]数控电火花线切割机床在加工时,可以用手触摸钼丝。(分值)你的答案:错误 10、[判断题]手工锻造时,握钳者应将钳把置于体侧,不得正对腹部,或将手放入钳股之间。(分值)你的答案:正确 11、[判断题]电源的电压、容量必须符合仪器设备的用电要求。(分值)你的答案:正确 12、[判断题]仪器设备开机前要先阅读熟悉该机器设备的操作规程。(分值)你的答案:正确 13、[判断题]有“严禁烟火”警示牌的大楼和实验室,可不必配置必要的消防、冲淋、洗眼、报警和逃生设施和有明显标志。(分值)你的答案:错误 14、[判断题]Ⅳ类放射源为低危险源。基本不会对人造成永久性损伤,但对长时间、近距离接触这些放射源的人可能造成可恢复的临时性损伤。(分值)你的答案:正确 15、[判断题]Ⅲ类放射源为危险源。在没有防护情况下,接触这类源几小时就可对人造成永久性损伤,接触几天至几周也可致人死亡。(分值)你的答案:正确

KTV点歌系统广工数据库课程设计

课程设计 课程名称数据库系统 题目名称___ 卡拉OK点歌系统___ 学生学院计算机学院 专业班级 2010级计算机科学与技术四班学号 3110006015 学生姓名张法光 指导教师路璐 2013年1 月12 日成绩

评价标准分数比例 (%) 成绩 论文论文结构包含: 1、相关技术介绍、需求分析、 2、概念结构设计(涉及的实体至少三个以上)、 3、逻辑结构设计(有完整性约束说明)、 4、数据库物理设计、 5、数据库完整性设计(违反实体、参照完整性时的解决办法,比 如触发器、存储过程等) 5、数据库安全性设计、 6、数据库实施、系统测试方案和测试报告、 7、系统的主要功能和使用说明、系统安装说明。 要求论文完整、内容详细,格式规范。 40 程序1、系统运行正确; 2、功能完善:有增、删、改、查功能,输入、输出功能; 3、有基本的统计、报表功能 4、有多表连接查询、自身连接查询、字符串匹配查询、模糊查询、 分组查询等。 5、工作量饱满; 6、系统实现技术的难度。 30 数据库设计E-R图设计正确,至少3个实体; 数据库逻辑结构设计规范化; 数据库物理设计合理。 30 总评成绩优良中及格不及格总分

目录 1 引言 (7) 1.1课题来源 (7) 1.2课题研究主要内容 (7) 1.3主要工作 (8) 2 需求分析 (8) 2.1信息要求分析 (8) 2.2处理要求分析 (8) 2.3数据字典及安全性、完整性要求分析 (9) 3 概念结构设计 (10) 3.1数据实体描述及分ER图 (10) 3.2整体ER图 (13) 4 系统概要设计 (14) 4.1数据库逻辑结构设计 (14) 4.2数据库物理设计 (16) 4.3系统总体框架 (17) 5 系统详细设计 (17) 5.1数据库实施 (17) 5.2数据库的数据完整性设计 (29) 5.3数据的安全设计 (31) 5.4系统功能模块的设计与实现 (31) 5.5系统功能测试 (32) 5.6数据库性能检测与备份设计 (49) 5.7系统安装使用说明 (49) 6 回顾与展望 (50) 7 参考文献 (50)

算法分析与设计实验报告

算法设计与分析 学院:计算机科学与技术 学号:129074106 姓名:张淼淼 2014 11 14

1、 当问题规模100 N 时,快速排序和插入排序各需多少时间?写清机器配置,列出五种 快速排序所需时间(ms) 插入排序所需时间(ms ) 两者相差多少 N=100 0.00600 0.019000 -0.013000 N=1000 0.074000 0.724000 -0.650000 N=10000 0.032000 64.657000 -64.625000 N=100000 13.300000 50.900000 -37.600000 N=1000000 53.500000 117.700000 -64.200000 Window 7 32位 Cpu :Inter(R) Core(TM) i3-2120 cpu@3.30GHz AMD Radeon HD 6450 Graphics

程序: #include #include #include #include int a[1000000];

int b[1000000]; void QuickSort(int low ,int high) { long i,j; int x; i=low; j=high; x=a[i]; while(i=x&&i(j+1)) QuickSort(j+1,high); } void BinaryInsertSort(int length) { int low,high,mid; int i,j,m;//m为保存待插入的元素 for(i=1;i=b[mid]) low=mid+1; else high=mid-1; } for(j=i-1;j>=high+1;j--)//high为插入位置 b[j+1]=b[j];//后移元素,留出插入的空位b[high+1]=m;//将元素插入正确的位置 }

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

广东工业大学实验室用房分配标准及管理办法

广东工业大学实验室用房分配标准与管理办法 广工大设字[2004]6号 第一条 为了加强对实验室的管理,规范实验室用房的配置和使用,更充分、合理、高效、公平的利用学校教学资源和办学条件为教学、科研服务,特制定本办法。 第二条 广东工业大学实验室用房指在广东工业大学大学城校园、东风路校区和龙洞校区所有建筑目的为实验室的建筑。实验室面积以室内有效使用面积计算。 第三条 实验室与设备管理处是实验室用房的直接管理部门。凡是实验室用房的分配、调整、使用、日常维护和室内装修改造等,由实验室与设备管理处负责。 第四条 学校关于实验室用房的分配标准、使用方法等方面的规章制度,经校长办公会议讨论通过后,由实验室与设备管理处组织实施。 第五条 实验室用房分为实验教学用房、科研用房和实验行政办公用房。实验教学用房包括公共基础课实验室、专业基础实验室和专业实验室;科研用房包括科研办公室、研究生用房和科研实验室。 第六条 实验室用房的分配标准主要依据各学院及有关单位所承担的本科生实验教学基本任务、研究生的基本规模和科研队伍的基本结构以及所承担的科研基本任务,并综合考虑各学院教学、科研及学科建设发展的需要。 第七条 教学实验室用房面积分配标准 (一)公共基础课实验室面积标准A j1 公共基础课实验室主要指大学物理实验室、电工电子实验室、计算机基础实验室、机械设计原理实验室、基础化学实验室(含有机、无机、分析和物化实验室)和力学实验室。 100/1A 11??=SK j N K (平方米) 其中K 1是考虑不同专业性质的调整系数,K 1取值如表1所示;N SK 是按学校教学计划该实验室承担的教学实验年人时数(如承担实训,按实际使用实验室时数); 表1 考虑不同专业性质的调整系数K 1 j2100/4A 22??=SK j N K (平方米) 表2 考虑不同专业性质的调整系数K 2 j3单独计算。 第八条 科研用房分配标准 (一)科研办公室面积标准A k1 以各学院教学、科研队伍的基本结构为基数,并考虑职称及学历结构因素。基本单元面积为5平方米。

计算机算法设计与分析

算法设计与分析 实 验 报 告 班级: 姓名: 学号: (备注:共给出5个参考实验案例,根据学号尾数做对应的实验,即如尾号为1,则模仿案例实验123;尾号2,则模仿案例实验234;尾号3,即345;尾号4,同1.)

目录 实验一分治与递归 (1) 1、基本递归算法 (1) 2、棋盘覆盖问题 (2) 3、二分搜索 (3) 4、实验小结 (5) 实验二动态规划算法 (5) 1、最长公共子序列问题 (5) 2、最大子段和问题 (7) 3、实验小结 (8) 实验三贪心算法 (8) 1、多机调度问题 (8) 2、用贪心算法求解最小生成树 (10) 3、实验小结 (12) 实验四回溯算法和分支限界法 (12) 1、符号三角形问题 (12) 2、0—1背包问题 (14) 3、实验小结 (18) 实验五多种排序算法效率比较 1、算法:起泡排序、选择排序、插入排序、shell排序,归并排序、快速排序等 (19) 2、实验小结 (18)

P art1:课程设计过程 设计选题--→题目分析---→系统设计--→系统实现--→结果分析---→撰写报告 P art2:课程设计撰写的主要规范 1.题目分析:主要阐述学生对题目的分析结果,包括题目描述、 分析得出的有关模型、相关定义及假设; 2.总体设计:系统的基本组成部分,各部分所完成的功能及相互 关系; 3.数据结构设计:主要功能模块所需的数据结构,集中在逻辑设 计上; 4.算法设计:在数据结构基础上,完成算法设计; 5.物理实现:主要有数据结构的物理存储,算法的物理实现,系 统相关的实现。具体在重要结果的截图,测试案例的结果数据,核心算法的实现结果等; 6.结果分析:对第五步的分析,包括定性分析和定量分析,正确 性分析,功能结构分析,复杂性分析等; 7.结论:学生需对自己的课程设计进行总结,给出评价,并写出 设计体会; 8.附录:带有注释的源代码,系统使用说明等; 9.参考文献:列出在撰写过程中所需要用到的参考文献。

广东工业大学实验室安全考试

广东工业大学2015年实验室 1、[判断题]实验大楼出现火情时千万不要乘电梯,因为电梯可能因停电或失控,同时又因“烟囱效应”,电梯井常常成为浓烟的流通道。(分值1.0) 你的答案:正确 2、[判断题]高速设备和精密设备应在管理人员指导下使用。(分值1.0) 你的答案:正确 3、[判断题]箱式电阻炉的加热元件及其电源连接点需保持良好的绝缘性能,管理员应进行定期检 查。(分值1.0) 你的答案:正确 4、[判断题]操作机床时,留长发者要戴安全防护帽。(分值1.0) 你的答案:正确 5、[判断题]焊接场地应预留安全通道并保持畅通。(分值1.0) 你的答案:正确 6、[判断题]焊接场地在10米内,禁止堆放易燃和易爆物质。(分值1.0) 你的答案:正确 7、[判断题]安装工件时,工件要装正、夹紧,装、卸工件后必须及时取下卡盘扳手。(分值1.0) 你的答案:正确 8、[判断题]在冲压过程中,如果工件卡在模子里,应先关闭电源,并用专业工具取出。(分值1.0)你的答案:正确 9、[判断题]数控电火花线切割机床在加工时,可以用手触摸钼丝。(分值1.0) 你的答案:错误

10、[判断题]手工锻造时,握钳者应将钳把置于体侧,不得正对腹部,或将手放入钳股之间。(分值1.0) 你的答案:正确 11、[判断题]电源的电压、容量必须符合仪器设备的用电要求。(分值1.0) 你的答案:正确 12、[判断题]仪器设备开机前要先阅读熟悉该机器设备的操作规程。(分值1.0) 你的答案:正确 13、[判断题]有“严禁烟火”警示牌的大楼和实验室,可不必配置必要的消防、冲淋、洗眼、报警和逃生设施和有明显标志。(分值1.0) 你的答案:错误 14、[判断题]Ⅳ类放射源为低危险源。基本不会对人造成永久性损伤,但对长时间、近距离接触这些放射源的人可能造成可恢复的临时性损伤。(分值1.0) 你的答案:正确 15、[判断题]Ⅲ类放射源为危险源。在没有防护情况下,接触这类源几小时就可对人造成永久性损伤,接触几天至几周也可致人死亡。(分值1.0) 你的答案:正确 16、[判断题]α衰变放出带二个正电的氦核,对它的防护是防止它进入体内,即内照射防护。(分值1.0) 你的答案:正确 17、[判断题]各涉源单位要建立健全放射性同位素保管、领用和消耗的登记制度,做到帐物相符。实验过程必须小心谨慎,严格按照操作规程进行,做好安全防护工作。(分值1.0) 你的答案:正确 18、[判断题]人体触电,双手触电致死比单手触电致死的概率要大得多。(分值1.0) 你的答案:正确

《算法分析与设计》实验指导书

《计算机算法设计与分析》实验指导书(第一版)

前言 计算机算法分析与设计是面向设计的,它是计算机科学的核心。无论是计算机系统、系统软件和解决计算机的各种应用问题都可归结为算法的设计。通过本课程的学习,使学生掌握计算机领域中许多常用的非数值的算法描述:分治法、贪心法、动态规划、回溯法、分枝限界等算法,并掌握算法分析的方法,从而把学生的分析问题和解决问题能力提高到理论的高度。 前期课程为程序设计语言、数据结构、高等数学,即学生应该具备一门高级语言程序设计编程基础,学习基本的数据结构知识,还要求学生掌握较好的数学基础。 开发环境不限,本书采用C/C++语言的集成开发环境等。 实验完成后书写实验报告,包含实验问题、基本思想、关键算法流程图、测试数据及运行结果(截图)、调试心得和源程序。 总实验学时为16学时。

目录 预备实验验证算法的方法 (4) 实验目的: (4) 实验课时: (4) 实验原理: (4) 实验题目: (6) 基本题: (6) 提高题: (6) 实验一递归与分治 (7) 实验目的: (7) 实验课时: (7) 实验原理: (7) 实验题目: (7) 基本题: (7) 提高题: (8) 思考问题: (8) 实验二动态规划算法 (9) 实验目的: (9) 实验课时: (9) 实验原理: (9) 实验题目: (9) 基本题: (9) 提高题: (10) 思考问题: (10) 实验三贪心选择算法 (11) 实验目的: (11) 实验课时: (11) 实验原理: (11) 实验题目: (11) 基本题: (11) 提高题: (12) 思考问题: (12) 实验四回溯算法 (13) 实验目的: (13) 实验课时: (13) 实验原理: (13) 实验题目: (14) 基本题: (14) 提高题: (14) 思考问题: (14)

数据库课程设计超市管理系统(广工)

课程名称数据库系统 题目名称小型超市管理系统学生学院计算机学院 专业班级 学号 学生姓名 指导教师 2013 年 1 月

目录 1 引言 (1) 1.1课题来源 (1) 1.2课题研究主要内容 (1) 1.3主要工作 (1) 2 开发工具和平台 (1) 3 命名约定 (1) 4 需求分析 (2) 4.1信息要求分析 (2) 4.2处理要求分析 (2) 5 概念结构设计 (3) 5.1数据实体描述及分ER图 (3) 5.2整体ER图 (3) 6 系统概要设计 (4) 6.1数据库逻辑结构设计 (4) 6.2数据库物理设计 (6) 6.3系统总体框架 (7) 7 系统详细设计 (7) 7.1数据库实施 (7) 7.2数据库的数据完整性设计 (9) 7.3数据的安全设计 (10) 7.4系统功能模块的设计与实现 (11) 7.5系统安装使用说明 (21) 8 回顾与展望 (21) 参考文献 (22)

1 引言 1.1课题来源 到超市购物是一种较为频繁的生活事件。由于人们的超市购物行为越来越频繁,超市规模越来越大,商品种类数目与之俱增,超市商品的管理变得更加困难。显然手工的管理方式是不合适的。因此利用数据库相关技术开发一个规模适当、操作方便、功能完备的超市管理系统显得很有必要。 1.2课题研究主要内容 使用数据库管理系统和应用程序实现小型超市管理系统的商品销售结算,销售情况管理,商品信息管理,库存管理,权限管理等功能。 1.3主要工作 先对小型超市管理系统的设计进行需求分析,建立数据流图和数据字典。进行概念结构设计,作出E-R图并进行优化。进行逻辑结构设计,建立数据关系模型。进行物理结构设计,选择适当的存取方法。利用数据库管理系统按前面的分析设计作出若于基本表,根据应用程序和用户的需要建立视图。最后进行应用程序的设计、调试、运行。 2 开发工具和平台 数据库管理系统:Microsoft SQL Server 2008 程序设计语言:Java 1.6 应用程序开发工具:eclipse 测试平台 Windows 7 64bit 3 命名约定 表名和属性名的首字母大写(虽然SQL语言不分大小写,但设计过程仍遵守这一约定), 1

算法分析与设计实验指导书

《算法分析与设计》实验指导书 《算法分析与设计》课程是计算机专业的一门必修课程。开设算法分析与设计实验,目的就是为了使学生消化理论知识,加深对讲授内容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。 《算法分析与设计》课程实验的目的:是为了使学生在课程学习的同时,通过实验环境中的实际操作,对部分算法的具体应用有一个初步的了解,使学生加深了解和更好地掌握《算法分析与设计》课程教学大纲要求的内容。 《算法分析与设计》课程实验的注意事项:在《算法分析与设计》的课程实验过程中,要求学生做到: (1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出 现的情况提前作出思考和分析。 (2)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分 析。 (3)遵守机房纪律,服从辅导教师指挥,爱护实验设备。 (4)实验课程不迟到。如有事不能出席,所缺实验一般不补。 《算法分析与设计》课程实验的验收:实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交电子的实验报告。

实验一算法实现一 一、实验目的与要求 熟悉C/C++语言的集成开发环境; 通过本实验加深对分治法、贪心算法的理解。 二、实验内容: 掌握分治法、贪心算法的概念和基本思想,并结合具体的问题学习如何用相应策略进行求解的方法。 三、实验题 1. 【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的 任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量是否相同。试用分治法的思想写出解决问题的算法,并计算其时间复杂度。 2.【找零钱问题】一个小孩买了价值为33美分的糖,并将1美元的钱交给售货员。售 货员希望用数目最少的硬币找给小孩。假设提供了数目有限的面值为25美分、10美分、5美分、及1美分的硬币。给出一种找零钱的贪心算法。 a)实验步骤 理解算法思想和问题要求; 编程实现题目要求; 上机输入和调试自己所编的程序; 验证分析实验结果; 整理出实验报告。 四、实验程序 五、实验结果 六、实验分析

广东工业大学现代控制理论实验报告

实验一系统的传递函数阵和状态空间表达式的转换 一.实验目的 学习多变量系统传递空间表达式的建立方法、了解系统状态空间表达式和传递函数相互转换的方法; 通过编程、伤及调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。二.实验容 例1.1: A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;-6]; C=[1 0 0]; D=0; %状态空间表达式转换成传递函数阵的格式为 %[num,den]=ss2tf(a,b,c,d,u) [num,den]=ss2tf(A,B,C,D,1) 例1.2 num=[0 1 5 3]; den=[1 2 3 4]; [A,B,C,D]=tf2ss(num,den)

练习题 求A、B、C、D阵的程序和运行结果 程序如下: %传递函数阵的格式转换成为状态空间表达式num=[0 0 1 2;0 1 5 3]; den=[1 2 3 4]; [A,B,C,D]=tf2ss(num,den)

验证: 程序如下: A=[-2 -3 -4;1 0 0;0 1 0]; B=[1;0;0]; C=[0 1 2;1 5 3]; D=[0;0]; %状态空间表达式转换成传递函数阵的格式为%[num,den]=ss2tf(a,b,c,d,u) [num,den]=ss2tf(A,B,C,D,1)

实验二状态空间控制模型系统仿真及状态方程求解 一.实验目的 1.熟悉线性连续系统的状态空间控制模型的各种表示方法; 2.熟悉系统模型的转换功能; 3.利用MATLAB对线性定常系统进行动态分析。 例2.1 num=[1 2 1 3]; den=[1 0.5 2 1]; [z,p,k]=tf2zp(num,den) [a,b,c,d]=tf2ss(num,den)

[精编]数据库课程设计(酒店管理系统)

计算机与通信工程学院 数据库课程设计(酒店 管理系统)

数据库系统课程设计报告题目: 酒店管理系统 课程代号:0680036 课程名称:数据库系统课程设计 学号: 姓名: 班级: 指导教师 完成日期:2011年4月 目录 第一章引言 第二章系统分析与设计 2.1需求分析 2.2结构设计 2.3数据库设计 第三章系统开发及实现

3.1创建主窗体 3.2创建子窗体 3.3建立公共模块 第四章总结 参考文献 附录(附部分源代码) 第一章引言 酒店管理系统是现代服务行业不可缺少的一个组成环节。 酒店管理信息系统是一个由人、计算机和数据库组成的进行酒店经营管理的系统,通过对信息的收集、传递、整理、加工、维护和使用,提高管理水平和效率,从而实现酒店管理的自动化、规范化和人性化。 本文简要介绍了基于Microsoft和VB程序语言开发实现的酒店管理系统,着重阐述了该系统开发实现过程,从系统的需求分析、方案论证、模块设计、数据设计、详细设计到系统测试等各个环节都进行了较为详尽的分析和描述。 关键词:酒店管理系统、Access、数据库、VB 第二章系统分析与设计 2.1需求分析 在进行一个项目的设计之前,首先要进行必要的需求分析。酒店需要管理各种人员和入住信息,希望实现酒店的信息化管理,通过建立一个酒店管理系统来管理酒店的日常业务。其完成功能如下: 1、能够实现对客人的登记信息查询,包括逐个浏览,以及对客人资料的增加、删除和编辑操作。

2、能够的酒店人员值班情况进行管理。 3、管理人员也可以直接增加和删除用户信息。 系统功能模块图如图1所示。 图1系统的功能模块图 根据功能模块图设计划出的实体有散客入住实体、团队入住实体、投诉管理实体、值班管理实体。 散客入住实体E-R如图2所示。 团队入住实体E-R如图3所示 投诉管理实体E-R图如图4所示 值班管理实体E-R图如图5所示 2.2 统Access即可。他们之间的关系如图6所示。

算法设计与分析实验报告

算法设计与分析实验报告 教师: 学号: 姓名:

实验一:串匹配问题 实验目的:(1) 深刻理解并掌握蛮力法的设计思想; (2) 提高应用蛮力法设计算法的技能; (3) 理解这样一个观点: 用蛮力法设计的算法, 一般来说, 经过适度的努力后, 都可以对算法的第一个版本进行一定程度的改良, 改进其时间性能。 三、实验要求:( 1) 实现BF 算法; (2 ) 实现BF 算法的改进算法: KMP 算法和BM 算法; (3 ) 对上述 3 个算法进行时间复杂性分析, 并设计实验程序验证 分析结果。 #include "stdio.h" #include "conio.h" #include //BF算法 int BF(char s[],char t[]) { int i; int a; int b; int m,n; m=strlen(s); //主串长度 n=strlen(t); //子串长度 printf("\n*****BF*****算法\n"); for(i=0;i

广东工业大学编译原理实验报告

一、课内试验要求 对PL/0作以下修改扩充: (1)增加单词:保留字ELSE,REPEAT,DOWHILE,RETURN 运算符+=,-=,++,-- (2)修改单词:不等号# 改为<> (3)增加条件语句的ELSE子句 二、具体操作 (一)增加保留字ELSE,REPEAT,DOWHILE,RETURN和运算符+=,-=,++,--的修改需要在头文件和主程序的init()初始化函数修改,相应的要增加关键字个数。 具体如下: 《一》头文件PL0.h中修改的程序部分 //************************************* # define norw 17 //关键字增加了4个,13改为17 增加了保留字ELSE,REPEAT,DOWHILE,RETURN //************************************* /*符号*/ enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, lss, leq, gtr, geq, lparen, rparen, comma, semicolon,period, becomes, beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym, //**************************************************************** //增加保留字else,repeat,dowhite,return,运算符+=,-=,++,-- elsesym,repeatsym,dowhitesym,returnsym, addbecomes,//运算符+= minusbecomes,//运算符-= adddouble,//运算符++ minusdouble,//运算符-- //**************************************************************** }; //**************************************************************** #define symnum 40 //关键字由原来的32个变为40个,则32改为40 //**************************************************************** 《二》主程序文件PL0.cpp中修改的程序部分 初始化函数void init();中修改部分: /*设置保留字名字,按照字母顺序,便于折半查找*/ strcpy(&(word[0][0]),"begin"); strcpy(&(word[1][0]),"call"); strcpy(&(word[2][0]),"const"); strcpy(&(word[3][0]),"do"); //********************************** //添加增加的保留字,下标也要随着更改 strcpy(&(word[4][0]),"dowhite"); strcpy(&(word[5][0]),"else"); //********************************** strcpy(&(word[6][0]),"end"); strcpy(&(word[7][0]),"if"); strcpy(&(word[8][0]),"odd"); strcpy(&(word[9][0]),"procedure"); strcpy(&(word[10][0]),"read"); //********************************** strcpy(&(word[11][0]),"repeat"); strcpy(&(word[12][0]),"return"); //**********************************

学生信息管理系统数据库课程设计

1概述 学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。随着在校大学生人数的不断增加,教务系统的数量也不断的上涨,。学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。 随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。通过这个系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量?毋庸置疑,切实有效地把 计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有 着显著意义? 2需求与功能分析 学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强。该系统实现的大致功能:用户登陆。提供了学生学籍信息的查询,相关科目的成绩查询和排名,修改登录密码等功能。教师管理。提供了对学生学籍信息的查询,添加,修改,删除;学生成绩的录入,修改,删除,查询班级排名。修改密码等功能。管理员管理。拥有最高的权限。允许添加教师信息和课程信息等。其提供了简单、方便的操作。 3 概要设计 3.1功能模块图 功能模块图,如下图3.1所示

算法分析与设计实验报告

实验一、归并排序及各种排序算法性能比较 一、实验实习目的及要求 了解归并排序等各种排序算法,并能独立在计算机上实现,同时并能够计算它们的时间复杂度,并用计算机来验证。 二、实验实习设备(环境)及要求(软硬件条件) 计算机eclipse软件,执行环境JavaSE-1.8. 三、实验实习项目、内容与步骤(注意是主要关键步骤,适当文字+代码+截图说明) 项目:对10 4 6 3 8 2 5 7进行从小到大排序,采用几种排序方法,并统计这几种方法的运行时间,与归并排序比较。 内容及步骤: (1)归并排序:将序列每次分成两组,再进行合并,直到递归完成; 1、递归调用mergeSort对数组排序 2、merge将两个有序数组合并为一个有序数组

3、主函数调用mergeSort对数组排序 4、统计时间 (2) 选择排序:每次选择一个当前最小的并和当前的相对的第一个元素交换,直到最后 只有一个元素时结束;也可选择当前最大的并与当前的相对的最后一个 元素交换,直到最后只有一个元素时结束。

1、数组长度为n,需要选择n-1次;每次选择完成后,将数组中的最大值与最后一 个元素互换,调用java.util包中Arrays类。 2、主函数调用ChooseSort对数组排序。 3、统计运行时间。 (3)插入排序:从第二个元素开始,每次插入一个到当前有序序列中,使得有序,当 所有的元素插入完毕时,就排好序了; 1、从第二个元素开始,与之前序列比较,插入到合适的位置。

2、主函数调用sort对数组排序。 3、统计运行时间 (4) 快速排序:每次选择一个中间元素,并进行交换,使得中间元素的左边比它小,右 边比它大,然后对左右两边进行递归; 1、选取一个基准位,从右边向左边看,找比基准位小的元素,再从左边向右边看, 找比基准位大的元素,若两者均存在则交换;若两者相遇,则相遇元素与基准位元素交换,然后递归排序左右半数组。

算法分析与设计实验报告

计算机算法设计与分析实验报告

目录 实验一 (1) [实验题目] (1) [问题描述] (1) [算法设计] (1) [算法分析] (1) [源代码] (1) [运行结果] (2) 实验二 (2) [实验题目] (2) [问题描述] (2) [算法设计] (2) [算法分析] (2) [源代码] (2) [运行结果] (4) 实验三 (5) [实验题目] (5) [问题描述] (5) [算法设计] (5) [算法分析] (5) [源代码] (5) [运行结果] (6)

实验一 [实验题目] 2-7集合划分问题 [问题描述] n个元素的集合{1,2,…,n}可以划分为若干非空子集。例如,当n=4时,集合{1,2,3,4}可以划分为15个不同的非空子集。 [算法设计] 给定正整数n,计算出n个元素的集合{1,2,…,n}可以划分为多少个不同的非空子集。 [算法分析] 本算法实现采用分治法思想,F(n,m)=F(n-1,m-1)+m*F(n-1,m)。假设将m个元素分解到n 个集合中,首先考虑将(m – (n - 1))个元素分到第一个集合中,将余下的(n - 1)个元素分别分配到余下的(n - 1)个集合中,然后再考虑将(m – (n - 2))个元素分配到第一个集合中,将余下的(n - 2)个元素分别分配到余下的(n - 1)集合中,依此类推,直到后面的有一个集合中的元素个数比第一个集合中的元素个数多为止。 [源代码] #include using namespace std; int compute_bell(int row,int position) { if(row==1) return 1; if(row == 2 && position ==1) return 1; else { if(position == 1) return compute_bell(row-1,row-1); else return compute_bell(row,position-1)+ compute_bell(row-1,position-1); } } int main(){ int n=0; int m; cout<<"please input a number."<>n; m=compute_bell(n,n); cout<<"the resule is "<

数据库课程设计学生信息管理系统

数据库程序设计说明书 一.引言 本程序是一个学生信息数据库系统的程序,随着效率和质量提出 了越来越高的要求。学生管理信息系统广泛地应用于各大中院校的学生管理工作过程中,几乎每个进行了信息化建设的学校都建设了学生管理信息系统。 对于大型和结构复杂、内容繁多的学生数据库,都要实现方便的管理。 数据管理离不开数据库系统的支持。由于数据库系统一般用户难以熟悉和正确操作,所以开发数据库连接程序提供友好的界面,方便用户提高效率和操作的准确性。 二.编写目的 本说明数据库程序设计需要解决的问题以及问题的性质、程序目标、程序规模等。并且为了用户对系统的要求,使编程人员可以及时发现软件的缺点和不足,进一步认识问题所在。该说明书可供设计人员和开发人员参考,也可供用户阅读,对系统的需求提出意见。 开发本软件的目的是给学生数据库提供一个操作控制系统,可以对数据库进行查询、添加、删除、修改、SQL语言高级操作。 三.背景 学校部门中有着相当庞大的数据内容,而这些数据只是作为单纯数据摆放在电脑里,并没有真正使这些数据起到更大的作用。大量数据的手工操作也会是数据操作错误增加,而且还使得相关的工作更加冗长、繁锁,为了使这些数据为使用者起到更多的作用,为管理人员提供依据与分析,建立起了自己的数据库系统,由计算机管理代替手工操作,进行收集、管理业务数据,从而提高操作人员的工作效率。 数据库技术是当今信息管理的最新技术,其核心就是数据库管理系统(简称DBMS)。DBMS是各类管理信息系统的支撑平台,也是信息化建设中需求量最大、应用最广泛的基础性软件。

四、系统需求分析 1.要求系统可以准确地记录和查询学生信息,包括学生的姓名、单位、年龄、性别等。 2.要求系统可以准确地记录学生地每一次奖惩情况以及每次的缺勤情况。 3.系统可以对课程情况进行管理,包括设置课程名称、修改课程的名称等。 4.系统应该可以对基础数据进行维护。 5.系统应该有很好的可扩展性。 学生成绩管理工作是学校学生管理工作的重要组成部分,现在相当一部分学校的学生成绩管理工作仍沿用手工方式。随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,按照软件工程原理和数据库技术开发学生成绩管理系统已成为学生管理部门的迫切需要。本实验实现的学生成绩管理系统主要包括以下功能: 1.完成数据的录入和修改,并提交数据库保存。其中的数据包括:学生信 息、课程设置、学生成绩以及操作员信息等; 2.实现信息查询。主要包括:学生信息查询、课程信息查询和成绩查询等; 3.具备一定的安全性管理功能。包括操作员的权限设置、密码设置、重新登 录等功能。

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