文档库 最新最全的文档下载
当前位置:文档库 › 矩阵控制器用户使用手册_V1.2.3

矩阵控制器用户使用手册_V1.2.3

矩阵控制器用户使用手册_V1.2.3
矩阵控制器用户使用手册_V1.2.3

矩阵控制器用户使用手册

用户须知

本手册适用于矩阵控制器,内容仅供参考,产品请以实际为准。

我们将不定期对手册进行更新,恕不另行通知。更新内容将直接编入新版说明书,同时会在公司网站下载中心提供最新版的说明书。本用户手册可能包含技术上的不准确或印刷方面的错误,真诚地希望您能把意见及时反馈给我们,在以后的版本中,我们会加以充实或改进。

目录

第1章简介 (1)

1.1产品简介 (1)

1.2约定 (1)

第2章矩阵控制器的安装、配置与卸载 (2)

2.1安装矩阵控制器 (2)

2.2安装VCREDIST_X86 (3)

2.3卸载矩阵控制器 (4)

第3章矩阵控制器的运行与使用 (5)

3.1运行矩阵控制器 (5)

3.2使用矩阵控制器 (5)

3.2.1 添加解码器 (5)

3.2.2 解码器轮巡预览 (6)

3.2.3 解码器预览上墙 (7)

3.2.4 解码器报警联动上墙 (7)

第4章模拟键盘的使用 (9)

4.1配置并运行矩阵键盘 (9)

4.2安装模拟键盘 (10)

4.3使用模拟键盘实现预览上墙 (12)

4.4使用模拟键盘实现全局策略 (14)

第1章简介

1.1产品简介

矩阵控制器是一款当综合安防管理平台中加入硬件解码器时,实现监控设备视频在解码器屏幕上显示的功能软件。

矩阵控制器在Windows系统下运行,需和综合安防管理平台、硬件解码器配合使用。该软件开启时置于后台运行,不影响当前服务器的其他操作;该软件具有统一的处理模块,发出上墙命令后能快速生效;该软件具有自动重启功能,在硬件发生故障时能快速彻底恢复到异常发生前的状态;该软件具有灵活的循环切换功能,可设置单路循环切换或者多路循环切换。

1.2约定

在本手册中为了简化描述,做以下约定:

数字硬盘录像机、网络摄像机简称为设备

设备的通道称为视频点位

点击为鼠标左键单击

双击为鼠标左键双击

右键单击为鼠标右键单击

模拟键盘分为SN4211-B与SN4211-C两款,SN4211-C也称智敏键盘

第2章矩阵控制器的安装、配置与卸载2.1安装矩阵控制器

第一步:双击矩阵控制器可执行程序图标,

弹出安装向导界面,选择“我接受”,点击“下

一步”按钮。

第二步:进入安装组件选择界面,选择好

安装组件后,点击“下一步”按钮。

注意:矩阵键盘需要模拟键盘配合使用,

详情参见本使用手册第4章。

第三步:进入软件的安装路径设置界面,选

择安装路径;若想更换默认安装路径,可点击“浏

览”按钮重新选择;设置好安装路径后,点击“安

装”按钮。

第四步:弹出矩阵参数配置界面,填写各

项参数后,点击确定按钮。

【本机IP配置】填写安装矩阵控制器软

件的主机IP。

【服务端口配置】填写不与本机其他服务

端口相冲突的端口号,默认RTSP服务端口为

10071,命令服务端口为10070。

【数据服务配置】填写综合安防管理平台

的数据库服务器IP及端口号。

第五步:在安装过程中,如果弹出了安全软件的拦截,请放行;安装结束时会出现安装成功的提示,点击“确定”按钮即可。

注意:WIN 7或以上系统下安装好矩阵控制器软件,鼠标左键点击“开始→所有程序→矩阵控制器→参数配置”,打开矩阵参数配置页面,若修改各个配置保存后再次打开仍与修改前一样,可尝试用鼠标右键“以管理员身份运行(A)”打开矩阵参数配置页面,一定能成功修改。

2.2安装vcredist_x86

矩阵控制器正常的安装过程中,会自动安装vcredist_x86;如果矩阵控制器完成安装后仍没法正常运行,可手动安装vcredist_x86,安装步骤如下:

第一步:双击应用程序,

弹出安装程序界面,点击“下一步”按钮。

点击“安装”按钮,进入正式安装过程。

2.3卸载矩阵控制器

按钮即可。

第3章矩阵控制器的运行与使用

3.1运行矩阵控制器

点击任务栏“开始→所有程序→矩阵控制器→启动矩阵控制器”,即可开启矩阵控制器,并运行于后台。

矩阵控制器运行后会自动注册到综合安防管理平台,可在“配置管理客户端→设备管理→解码设备”界面看到上报的具体信息。

3.2使用矩阵控制器

矩阵控制器的最终目的是在解码器屏幕上显示所选择设备的视频,故需先添加解码器。添加解码器后,可通过配置解码器的轮巡预案,实现在指定屏幕显示指定视频点位的画面,且定时做预案切换;可在监控中心客户端发送画面上墙命令,实现在指定屏幕长时间显示指定视频点位的画面;可设置报警联动上墙方案,接收到指定报警时,实现在指定屏幕上显示所配置视频点位的画面。

3.2.1添加解码器

解码器的信息既可自动上报到综合安防管理平台,也可手动添加到平台。

解码器自动上报:

打开解码器的解码设置页面,解码类型选择

被动解码,IP地址为已安装好矩阵控制器的IP

地址,端口号默认为10071,用户名和密码可不

填,协议类型TCP,URL自动生成无需填写。

保存后,可在“配置管理客户端→设备管理→解

码设备”界面看到上报解码器的具体信息。

解码器手动添加:

第一步:在解码设备界面中,点击“增加”按钮,打开解码器增加页面。

第二步:填写解码器IP 、端口、用户名、密码等基本信息,然后点击获取解码器相关信

息,再选择所属设备为指向的矩阵控制器,确定后即可成功添加解码器。远程获取基本信息后,还可以在屏幕一栏根据实际需要修改通道号、屏幕名称、归属位置。

注意:解码器的能力集表示解码器对指定规格图像的可解码通道个数,能力集为视频点位的分辨率长度和分辨率高度的乘积,若乘积≤704*576,则能力集=1。

3.2.2 解码器轮巡预览

在配置管理客户端为解码器配置轮巡预案,可使解码器屏幕进行单路或多路循环切换视频点位画面,具体操作步骤如下:

第一步:选中解码设备,点击“配置”,进入解码策略配置页面。

第二步:点击预案“增加”按钮,即可添加默认预案;双击默认预案的序号、名称、时间或是否

启用,即可编辑预案;点击“删除”按钮,即可删除预案。

第三步:选择屏幕。

第四步:点击点位名称的“增加”按钮,进入点位选择页面。选择位置树名称,点击待选择设备一栏中选中的设备,即可把设备添加至已选择设备;点击“清除选择”按钮,即可清空已选择设备,退出点位选择页面;点击“确定”按钮,即可保存已选择设备,并退出点位选择页面;点击“取消”按钮,即可不作任何改变,并退出点位选择页面。

第五步:退出点位选择页面后,点击“确定”按钮,即可成功配置解码器轮巡预案,此时在解码器屏幕上就可以看到配置预案对应的视频点位画面了。

3.2.3解码器预览上墙

登录监控中心客户端,在视频点位树上右键

单击“点位视频上墙”,或者选中正在预览的视

频窗口,右键单击“画面上墙”项,弹出矩阵选

项框,选择矩阵服务、矩阵屏幕、矩阵分割、显

示窗口信息,确定后该预览窗口的视频画面将在

对应的解码器屏幕对应的窗口上显示。

注意:可对正在进行解码器轮巡预览的屏幕

做预览上墙操作,但是解码器屏幕不会自动恢复

轮巡预览,此时,可使用“矩阵恢复”功能。

“矩阵恢复”的具体操作方法为:点击监控

中心客户端主界面右上角的按钮,打开矩阵

控制框,选中要恢复的矩阵服务,点击“矩阵恢

复”按钮,则可使解码器恢复原先的轮巡预览。

3.2.4解码器报警联动上墙

在配置管理客户端配置设备的报警联动时,添加报警上墙的视频点位和解码器屏幕,当该报警触

发时,就能在对应的解码器屏幕上看到对应的视频点位画面。具体操作步骤如下:第一步:在配置管理客户端的报警联动界面中,点击“增加”按钮,打开报警联动增加页面。

第二步:填写或选择设备名称、报警类型、报警名称、报警级别、对讲设备及报警声音等参数,再选择计划模板,最后点开“报警上墙”一栏,点击“增加”按钮,选择点位名称及上墙显示区域,确定后退出报警联动增加页面,即完成了报警联动上墙的配置。

第三步:待所设置报警触发后,就可在对应解码器屏幕(上一步的“上墙显示区域”)看到对应视频点位(上一步的“点位名称”)的画面。

注意:和解码器预览上墙一样,可对正在进行轮巡预览的解码器屏幕做报警联动上墙,但是解码器屏幕也不会自动恢复轮巡预览。此时,也可进行“矩阵恢复”操作,使得解码器恢复轮巡预览。

第4章模拟键盘的使用

4.1配置并运行矩阵键盘

第2章2.1节中,若安装组件未选择矩阵键盘,则需要再安装矩阵键盘软件,安装方法与数字矩阵软件一样。矩阵键盘既可单独安装在某一服务器上,也可和数字矩阵安装在同一台设备上。

安装矩阵键盘软件过程中,会弹出矩阵键盘参数

配置界面:

【主控矩阵(控制器)参数配置】填写安装数字

矩阵软件的设备IP,端口号为数字矩阵的命令

服务端口号。

【串口配置】选择安装了矩阵键盘软件的服务

器上插着模拟键盘的串口。

【模拟键盘】SN4211-B键盘选择1.0键盘。

SN4211-C键盘选择2.0键盘。

配置好矩阵键盘参数后,点击任务栏“开始→所

有程序→矩阵键盘→启动矩阵键盘”,即可开启

矩阵键盘,并在右下角最小化运行。

【串口调试】使用串口调试助手来测试电脑与键

盘通信是否成功,先关闭键盘驱动器,运行串口

调试助手,转动键盘摇杆,查看调试助手界面是

否有数据传入,若有数据传入即可判断电脑与键

盘通信成功,串口正常工作。

注意:WIN 7或以上系统下安装好矩阵键盘软件,鼠标左键点击“开始→所有程序→矩阵键盘→参数配置”打开矩阵键盘参数配置页面,若修改配置并保存后再次打开仍与修改前一样,可尝试用鼠标右键“以管理员身份运行(A)”打开矩阵键盘参数配置页面,一定能成功修改。

4.2安装模拟键盘

用网线连接模拟键盘和供电盒,与供电盒连接的串口转换器去连接安装了矩阵键盘软件的服务器串口,最后插入电源线,这样就完成了模拟键盘的安装。

以下用实物图对安装过程加以说明:

键盘拨码与跳线连接

进行跳线连接,同时键盘地址码将1238置于“ON”位置,将4567置于“OFF”位置。

注意SN4211-C没有键盘拨码与跳线连接。

485线连接

从线盒中出来“红、黑”两根线,红色接485转接头“T+”,黑色接485转接头“T-”。

串口与主机连接

将串口转换器连接到安装了矩阵键盘软件的服务器上位串口。

4.3使用模拟键盘实现预览上墙

要使用模拟键盘实现特定视频点位的预览上墙功能,具体的操作步骤如下:

第一步:在配置管理客户端的解码设备列表中为数字矩阵设置键盘编号(1~255的整数值,且不能重复)。

第二步:在配置管理客户端的点位管理列表中为视频点位设置键盘编号(1~512的整数值,且不能重复)。

第三步:参照下列图表实现视频点位上墙及云台控制。

(SN4211-B 键盘)

(SN4211-C 键盘)

4.4使用模拟键盘实现全局策略

当综合安防管理平台中加入了解码器或者其他数字矩阵时,可令所有数字矩阵屏幕及所有解码器屏幕统一进行同步预案切换。要做到这一点,只要配置全局策略,再操作模拟键盘的对应按键即可。

第一步:在配置管理客户端的解码设备列表中为数字矩阵和解码器设置键盘编号(1~255的整数值,且不能重复)。

第二步:在解码设备列表中为数字矩阵和解码器配置轮巡预案。

第三步:点击解码设备列表上方的,进入全局策略配置页面。

第四步:点击“增加”按钮,进入全局策略增加页面,填写策略参数信息并选择解码设备参与当前策略的预案,完成后点击右上角的“确定”按钮,即添加成功了一个策略;配置完策略后,点击“关闭”按钮退出全局策略配置页面,即可开始所有解码设备的同步轮巡。

第五步:参照下面图表,使用模拟键盘实现全局策略。

(SN4211-B键盘)

(SN4211-C键盘)

注意:1、解码器屏幕正在进行全局策略时,此时若有监控中心客户端的预览上墙、报警联动上墙或者模拟键盘操作的预览上墙,上墙画面只能显示到下一个策略开始之前。

2、解码器屏幕正在进行全局策略时,此时若要使所有解码设备恢复各自的预案轮巡,则先按下SN4211-C键盘的图像保持键(SN4211-B键盘上的HOLD键),再到监控中心客户端进行“矩阵恢复”操作。

稀疏矩阵的建立与转置

实验2 稀疏矩阵的建立与转置 一、实验目的 掌握特殊矩阵的存储和操作算法。 二、实验内容及问题描述 实现用三元组保存稀疏矩阵并实现矩阵转置的算法。 三、实验步骤 1. 定义稀疏矩阵的三元组形式的存储结构。 2. 实现三元组矩阵的传统转置算法。 3. 实现三元组矩阵的快速转置算法。 4. 输入矩阵非零元素,测试自己完成的算法。 四、程序流程图

五、概要设计 矩阵是很多的科学与工程计算中研究的数学对象。在此,我们感兴趣的是,从数学结构这门学科着眼,如何存储矩阵的元从而使矩阵的各种运算有效的进行。本来,用二维数组存储矩阵,在逻辑上意义是很明确的,也很容易理解,操作也很容易和方便。但是在数值分析中经常出现一些阶数很高的矩阵,同时,在矩阵中又有很多值相同或者都为零的元素,可以对这种矩阵进行压缩存储:对多个值相同的元素只分配一个存储空间;对零元素不分配空间。稀疏矩阵的定义是一个模糊的定义:即非零元个数较零元个数较少的矩阵。例如下图所示的矩阵 为一个稀疏矩阵。为了实现稀疏矩阵的这种存储结构,引入三元组这种数据结构。三元组的线性表顺存储形式如下图: 六、详细设计 sanyuanzu.h 头文件 #define max 100 typedef struct { int row,col; int e; }Triple;//定义三元组 typedef struct { Triple data[max]; int mu,nu,tu; }TSMatrix;///*定义三元组的稀疏矩阵*/ void creat( TSMatrix &M) ; void fasttrans(TSMatrix A,TSMatrix &B);

数据结构课程设计之稀疏矩阵实现与应用1

数据结构课程设计报告 题目:十字链表成为存储结构,实现稀疏矩阵的求和运算 学生姓名:张旋 班级:软件三班学号:201213040304 指导教师: 吴小平

一、需求分析 1.问题描述: 要求:十字链表下的稀疏矩阵的加、转、乘的实现。 2.基本功能 实现十字链表下的转置,乘法,加法运算。 3.输入输出 (1)设计函数建立稀疏矩阵,初始化值。 (2)设计函数输出稀疏矩阵的值。 (3)构造函数进行两个稀疏矩阵相加,输出最终的稀疏矩阵。 (4)构造函数进行两个稀疏矩阵的相乘,输出最终的稀疏矩阵。 (5)构造函数进行稀疏矩阵的转置,并输出结果。 (6)退出系统。 二、概要设计 1.设计思路: 本实验要求在三元组,十字链表下实现稀疏矩阵的加、转、乘。首先要进行矩阵的初始化操作,定义三元组和十字链表的元素对象。写出转置,加法,乘法的操作函数。通过主函数调用实现在一个程序下进行矩阵的运算操作。 2.数据结构设计: 抽象数据类型稀疏矩阵的定义如下: ADT SparseMatrix{ 数据对象:D={aij | i=1,2,…,m; j=1,2,..,n; aij∈Elemset, m和n分别称为矩阵的行数和列数。} 数据关系:R={Row,Col} Row={ | 1<=i<=m, 1<=j<=n-1} Col= { | 1<=i<=m-1, 1<=j<=n} 基本操作: CreateSMatrix(&M); 操作结果:创建稀疏矩阵M。 DestroySMatrix(&M); 初始条件:稀疏矩阵M存在。操作结果:销毁稀疏矩阵M。 PrintSMatrix(M); 初始条件:稀疏矩阵M存在。操作结果:输出稀疏矩阵M。 AddSMatrix(M,N,&Q); 初始条件:稀疏矩阵M与N的行数和列数对应相等操作结果:求稀疏矩阵的和Q=M+N。 MultSMatrix(M,N,&Q); 初始条件:稀疏矩阵M的列数等于N的行数。操作结果:求稀疏矩阵乘积Q=M*N。 TransposeSMatrix(M,&T); 初始条件:稀疏矩阵M存在。操作结果:求稀疏矩阵M的转置矩阵T。 }ADT SparseMatrix 3.软件结构设计:

三元组顺序表稀疏矩阵课程设计报告(不完整)

1.稀疏矩阵运算器

数据结构课程设计任务书 针对本课程设计,完成以下课程设计任务: 1、熟悉系统实现工具和上机环境。 2、根据课程设计任务,查阅相关资料。 3、针对所选课题完成以下工作: (1)需求分析 (2)概要分析 (3)详细设计 (4)编写源程序 (5)静态走查程序和上机调试程序 4、书写上述文档和撰写课程设计报告。

3.课程设计报告目录

4.正文 (1)问题描述 稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算频率。实现一个能进行稀疏矩阵基本运算的运算器。 (2)需求分析 本课程设计的稀疏矩阵运算器在visual studio 2013下运行调试成功,可以实现的功能有: 1.矩阵运算方式选择 2.根据提示输入相应数据 3.显示最终结果 使用的主要存储结构为三元组,并用三元组形式进行运算。所有参与运算数据类型为整形,因此输入的数据应为整形数据。为了节省存储空间使用三元组数据进行运算,可以通过多次扫描三元组数据来实现,即使用嵌套循环函数。输出结果为通常的阵列形式,因此使用了右对齐,保证输出形式的整齐。 (3)概要分析 本次课程设计中定义的结构体 typedef struct { int i, j;//矩阵元素所在行列 int v;//元素的值 }triple; typedef struct { triple data[MAXSIZE]; triple cop[MAXSIZE];//辅助数组 int m, n, t;//矩阵的行列数 }tripletable; Main函数调用子函数时输入1为调用 int Push_juzhen(int m, int n, int count)函数,可以实现矩阵相加功能 输入2为调用 int Dec_juzhen(int m, int n, int count)函数,可实现矩阵相减功能 输入3为调用 int Mul_juzhen()函数,可以实现矩阵相乘功能 (4)详细分析(流程图伪代码) 加法函数 int Push_juzhen(int m, int n, int count)//矩阵相加(行,列,矩阵数) { // p行,q列,s非零元素个数,v元素值 //ucount对数组下标计数的变量,与变量x实现多个矩阵相加 for (int c = 0; c < count; c++) { int x = 0; cout << "请输入第" << c + 1 << "个矩阵的非零元素个数" << endl; cin >> s; cout << "请依次输入非零元素所在行和列以及该非零元素的值并以空格隔开" << endl; for (; x< s; x++)//传递行列及元素值

稀疏矩阵在迭代求解线性方程组中的运用

稀疏矩阵在迭代求解线性方程组中的运用 学院:自动化院 专业:电力系统及其自动化 姓名:张庆磊 学号:111101112 指导老师:杨伟

摘要:对于稀疏矩阵的稀疏存储技术进行了研究,研究了按行存储的检索方式,以便于迭代计算,分别对雅克比法和高斯—赛特法的算法进行理论研究和程序实现,并且比较了两种方法的优劣。 关键词:系数技术;线性方程;迭代 大型稀疏矩阵线性化方程组的求解问题,在电力系统中有着广泛的的运用。由于电力网本身的结构限制,节点导纳矩阵节点繁多,而仅有少量的非零元,稀疏度很高,若采用传统存储计算方式,会占用大量的存储空间,并且降低运算效率。在迭代计算中,由于无法分辨零元素,也会无谓地浪费运算时间。因此稀疏技术在求解方程组中的运用显得尤为重要。 1.稀疏矢量与稀疏矩阵的存储 稀疏矢量与稀疏矩阵的存储特点是排零存储,即只存储其中的非零元和有关的检索信息.存储的目的是为了在计算中方便的访问和运用,这就要求既节省内存,又便于搜索。论文采用了按行存储格式。 按行顺序依次存储A 中的非零元,同一行元素依次排列在一起,存储格式: V A ——按行存储矩阵A 中的非零元ij a ,共τ个; JA ——按行存储矩阵A 中的非零元的列号,共τ个; IA ——记录A 中每行第一个非零元在V A 中的位置,共n 个。 2.迭代法求解线性方程 设n n n n R b R A ∈∈?,,考虑线性方程组 Ax=b 一般的,先将式1变为同解方程组 X=Bx+f 形成迭代式 f Bx x k k +=+)()1( 式中:B 为迭代矩阵; 若要求迭代式收敛则需满足1B 1)(<<或B ρ,其中?为任意范数 式1中,A 可以分裂为 A=M+N (1)

数据结构----稀疏矩阵运算器课程设计报告书

科技大学 数据结构课程设计说明书 题目:稀疏矩阵运算器设计 学生: 学号: 专业:计算机科学与技术 班级:计09-1班 指导教师:月峰 2011 年 6 月 24 日

稀疏矩阵运算器设计 摘要 摘要:设计一稀疏矩阵运算器。实现转置,相加,相乘的功能。用“带行逻辑信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相转置、相加和相乘的运算,采用分级的设计方法,分别设计出转置、加、乘运算器的子程序,相加运算时只要依次扫描两矩阵的行号和列号,若相等则相加后存入结果矩阵,不等时则存入较小的。相减运算与相加运算相同,同样比较两矩阵的行号和列号,只是不等时,若第一个小,则存入第一个的元素,若第二个小,则存入其相反数。相乘运算要先判断两矩阵能否相乘。通过给顶的行号和列号找出原矩阵对应的元素值。当在三元组表示中找到时返回其元素值,找不到时,说明该位置为0,因此返回0。然后利用该函数计算出C的行号i和列号j 处的元素值,若该值不为0,则存入矩阵,否则不存入。通过实验表明本程序能够进行稀疏矩阵的相加,相减,相乘运算。具备矩阵的加、减、乘功能。 关键词:转置运算器;相加运算器;相乘运算器

目录 稀疏矩阵运算器设计........................................................ I 摘要................................................................... II 第一章需求分析. (1) 第二章概要设计 (2) 第三章设计步骤 (6) 3.1 函数说明 (6) 3.2 设计步骤 (7) 第四章设计理论分析方法 (20) 4.1 算法一:矩阵转置 (20) 4.2 算法二:矩阵加法 (20) 4.3 算法三:矩阵乘法 (21) 第五章程序调试 (23) 第六章心得体会 (25) 参考文献 (26)

数据结构 稀疏矩阵运算器课程设计

数据结构----稀疏矩阵运算器课程设计 目录 稀疏矩阵运算器设计............................................................................................ I 摘要................................................................................................................ ... II 第一章需求分析 (1) 第二章概要设计 (2) 第三章设计步骤 (6) 3.1 函数说明 (6) 3.2 设计步骤 (7) 第四章设计理论分析方法 (20) 4.1 算法一:矩阵转置.....................................................................

20 4.2 算法二:矩阵加法..................................................................... 20 4.3 算法三:矩阵乘法 (21) 第五章程序调试 (23) 第六章心得体会 (25) 参考文献 (26) 第一章需求分析 1.稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。

2.以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现矩阵转置,求逆,实现两个矩阵相加、相减和相乘的运算。稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则以通常的阵列形式列出。 3.演示程序以用户和计算机的对话方式执行,数组的建立方式为边输入边建立。 4.由题目要求可知:首先应输入矩阵的行数和列数,并判别给出的两个矩阵的行、列数对于所要求作的运算是否相匹配。 5.程序可以对三元组的输入顺序不加以限制;根据对矩阵的行列,三元组作直接插入排序,从而进行运算时,不会产生错误。 6.在用三元组表示稀疏矩阵时,相加、乘积和相减所得结果矩阵应该另生成;矩阵求逆时,为了算法方便,使用二维数组存放。 7.程序在VC6.0环境下设计。 程序执行的命令为:1.稀疏矩阵转置; 2.稀疏矩阵加法; ;3. 稀疏矩阵乘法; 4.退出 的工作。 第二章概要设计 1.抽象数据类型稀疏矩阵的定义如下: ADT SparseMatrix{ 数据对象:D={a|i=1,2,…,m; j=1,2,…,n;

数据结构 稀疏矩阵相乘问题

#include #include #define OK 1 #define ERROR 0 #define MAXSIZE 25 //最多非0元素的个数 #define MAXR 5 //rpos所能处理的最大行数 #define MAXC 5 //系数矩阵相乘时,保留临时列结果的数组temp[MAXC] typedef struct NODE{ //定义稀疏矩阵结点 int i; int j; int data; } Node; typedef struct MATRIX{ //定义稀疏矩阵(可以快速访问) int mu, nu, tu; Node matrix[MAXSIZE+1]; int rpos[MAXR+1]; } Matrix; int CreatSMatrix( Matrix* M ); //创建一个矩阵(由用户输入原始矩阵,转化为稀疏矩阵方式储存) int Print( Matrix M ); //打印一个稀疏矩阵 int Mul_SMatrix( Matrix M, Matrix N, Matrix *Q); //两个稀疏矩阵相乘 main(){ printf("计科四班刘辉学号:41012169"); printf("\n"); printf("稀疏矩阵相乘"); printf("\n\n"); Matrix A1, A2, A3; //定义矩阵 CreatSMatrix( &A1 ); CreatSMatrix( &A2 ); if( A1.nu==A2.mu ){ //判断能否相乘 Mul_SMatrix( A1, A2, &A3 ); printf("两矩阵相乘得:\n"); Print(A3); } system("pause"); } //稀疏矩阵相乘 int Mul_SMatrix( Matrix M, Matrix N, Matrix *Q) { int i,Mj;

稀疏矩阵的运算课程设计

数据结构 课程设计说明书题目: 稀疏矩阵的运算 院系:计算机科学与工程学院 专业班级:计算机10-**班 学号: 201030**** 学生姓名: ****** 指导教师: ****** 2011年 12 月 28 日

安徽理工大学课程设计(论文)任务书 计算机科学与工程学院 2011年 11 月 8 日

安徽理工大学课程设计(论文)成绩评定表

目录 1 问题描述 (1) 2 需求分析 (1) 3 总体设计 (2) 3.1 Matrix结构的定义 (2) 3.2 系统流程图 (3) 4 详细设计 (4) 4.1 “菜单”界面 (4) 4.2 建立矩阵 (4) 4.3 显示矩阵 (6) 4.4 矩阵的转置 (7) 4.5 矩阵的加法运算 (8) 4.6 矩阵的减法运算 (9) 4.7 矩阵的乘法运算 (9) 5 程序运行 (11) 5.1 输入矩阵 (11) 5.2 矩阵转置 (11) 5.3 矩阵加法 (12) 5.4 矩阵减法 (12) 5.5 矩阵乘法 (12) 5.6 退出及错误提示 (13) 6 总结 (13) 参考文献 (14)

1 问题描述 (1)题目内容:设计稀疏矩阵运算系统实现两个稀疏矩阵的加法、减法、乘法以 及转置操作。 (2)基本要求: ①存储结构选择三元组存储方式; ②实现一个稀疏矩阵的转置运算; ③实现两个稀疏矩阵的加法运算; ④实现两个稀疏矩阵的减法运算; ⑤实现两个稀疏矩阵的乘法运算。 (3)设计目的:通过本次课程设计,了解稀疏矩阵的一些基本运算操作,并通过 相关的程序代码实现。 2 需求分析 经过本次的课程设计,我认为稀疏矩阵运算系统主要实现的功能如下:(1)建立矩阵:只有先建立了矩阵,才能够对矩阵进行运算操作,包括建立矩阵 A和矩阵B; (2)转置运算操作:对矩阵A或者矩阵B进行转置运算,输出相应的转置矩阵; (3)四则运算操作:该步骤由两个矩阵同时参与,对其进行加法运算(A+B)、减 法运算(A-B)以及乘法运算(A*B和B*A); (4)退出:当做完矩阵的运算操作之后,就可以点击它退出该界面。 在这次设计中用到了一些变量和函数,例如:void Display(Matrix M);int Max(int i,int j);Matrix Zero(Matrix M)等,下面会做进一步详细的介绍。

数据结构C语言版-稀疏矩阵三元组的基本操作

数据结构 课程设计实验报告 内容名称:稀疏矩阵的基本操作成员1:09213020-陈东 成员2:09213040-蔡丹 班级:09数31 教师:李晓翠 江苏师范大学 数学科学学院

目录 1.序言 (3) 1.1数据结构背景 (3) 1.2课程设计目的 (3) 1.3 课程名称 (3) 1.4设计要求 (3) 1.5设计说明 (3) 2.课程任务设计说明书 (5) 3.需求分析 (6) 3.1题目名称 (6) 3.2题目内容 (6) 3.3题目分析 (6) 4.概要设计 (7) 4.1稀疏矩阵存储结构 (7) 4.2.稀疏矩阵的基本操作 (7) 4.3各模块设计要求 (8) 4.4总体功能流程图 (9) 4.4.1存储结构流程图 (9) 4.4.2稀疏矩阵基本操作流程图 (10) 5.详细设计 (11) 5.1设计原理 (11) 5.2基本函数实现流程图 (13) 6.主要函数代码 (21) 7.调试与操作说明 (27) 7.1操作说明 (27) 7.2调试结果………………………………………………………………………………. ..28 7.3结果分析 (31) 8.设计体会 (32) 9.参考文献 (32) 10.分工说明 (33)

1.序言 1.1数据结构背景 数据结构是一门理论性强、思维抽象、难度较大的课程,是基础课和专业课之间的桥梁。该课程的先行课程是计算机基础、程序设计语言、离散数学等,后续课程有操作系统、编译原理、数据库原理、软件工程等。通过本门课程的学习,我们应该能透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法,并进一步培养良好的程序设计能力和解决实际问题的能力,而且该课程的研究方法对我们学生在校和离校后的学习和工作,也有着重要的意义。 数据结构是计算机科学与技术专业的一门核心专业基础课程,在该专业的课程体系中起着承上启下的作用,学好数据结构对于提高理论认知水平和实践能力有着极为重要的作用。学习数据结构的最终目的是为了获得求解问题的能力。对于现实世界中的问题,应该能从中抽象出一个适当的数学模型,该数学模型在计算机内部用相应的数据结构来表示,然后设计一个解此数学模型的算法,再进行编程调试,最后获得问题的解答。 基于此原因,我们开设了数据结构课程设计。针对数据结构课程的特点,着眼于培养我们的实践能力。实习课程是为了加强编程能力的培养,鼓励学生使用新兴的编程语言。相信通过数据结构课程实践,无论是理论知识,还是实践动手能力,同学们都会有不同程度上的提高。 1.2课程设计的目的 巩固和深刻理解―数据结构(C语言版)‖课程所讲解的C语言作为数据结构的算法的描述,掌握对数据的存储结构和算法进行描述时,尽量考虑C 语言的特色。培养学生独立工作和创新思维的能力,取得设计与调试的实践经验。提高和加强计算机应用及软件开发能力。通过课程设计题目的练习,强化学生对所学知识的掌握及对问题分析和任务定义的理解,对每到题目作出了相应的逻辑分析和数据结构的选择,通过对任务的分析,为操作对象定义相应的数据结构,以过程化程序设计的思想方法为原则划分各个模块,定

稀疏矩阵(算法与数据结构课程设计)

稀疏矩阵 一、问题描述 假若在n m ?阶中,有t 个元素不为零,令n m t ?=δ称为矩阵的稀疏因子。通常认为≤δ0.05时称为稀疏矩阵。稀疏矩阵的研究大大的减少了数据在计算机中存储所需的空间,然而,它们的运算却与普通矩阵有所差异。通过本次实验实现稀疏矩阵的转置、加法和乘法等多种运算。 二、基本要求 1、稀疏矩阵采用三元组表示,建立稀疏矩阵,并能按矩阵和三元组方式输出; 2、编写算法,完成稀疏矩阵的转置操作; 3、编写算法,完成对两个具有相同行列数的稀疏矩阵进行求和操作; 4、编写算法,对前一矩阵行数与后一矩阵列数相等的两个矩阵,完成两个稀疏矩阵的相乘操作。 三、测试数据 1、转置操作的测试数据: ??????? ? ?00200013000010020100 2、相加操作的测试数据: ??????? ? ?002000130000100 20100 ??????? ??00200010000210030300 3、相乘操作的测试数据: ?????? ? ??000000030040 0021 ??????? ??001002000021 四、算法思想 1、三元组结构类型为Triple ,用i 表示元素的行,j 表示元素的列,e 表示元素值。稀疏矩阵的结构类型为TSMatrix ,用数组data[]表示三元组,mu 表示行数,nu 表示列数,tu 表示非零元个数。 2、稀疏矩阵转置的算法思想 将需要转置的矩阵a 所有元素存储在三元组表a.data 中,按照矩阵a 的列序来转置。

为了找到a的每一列中所有非零元素,需要对其三元组表a.data扫描一遍,由于a.data 是以a的行需序为主序来存放每个非零元的,由此得到的就是a的转置矩阵的三元组表,将其储存在b.data中。 3、稀疏矩阵相加的算法思想 比较满足条件(行数及列数都相同的两个矩阵)的两个稀疏矩阵中不为0的元素的行数及列数(即i与j),将i与j都相等的前后两个元素值e相加,保持i,j不变储存在新的三元组中,不等的则分别储存在此新三元组中。最后得到的这个新三元组表就是两个矩阵的和矩阵的三元组表。 4、稀疏矩阵相乘的算法思想 两个相乘的矩阵为M与N,对M中每个元素M.data[p](p=1,2,…,M.tu),找到N中所有满足条件M.data[p].j=N.data[q].i的元素N.data[q],求得M.data[p].v和N.data[q].v 的乘积,又T(i,j)=∑M(i,k)×N(k,j),乘积矩阵T中每个元素的值是个累计和,这个乘积M.data[p].v×N.data[q].v只是T[i][j]中的一部分。为便于操作,应对每个元素设一累计和的变量,其初值是零,然后扫描数组M,求得相应元素的乘积并累加到适当的求累计和的变量上。由于T中元素的行号和M中元素的行号一致,又M中元素排列是以M的行序为主序的,由此可对T进行逐行处理,先求得累计求和的中间结果(T的一行),然后再压缩存储到Q.data中去。 五、模块划分 1、Status CreateM(TSMatrix *M, int a[],int row, int col),创立三元组; 2、void PrintM(TSMatrix M),按数组方式输出; 3、void PrintM3(TSMatrix M),按三元组方式输出; 4、Status TransposeSMatrix(TSMatrix M, TSMatrix *T),稀疏矩阵的转置; 5、Status MultSMatrix(TSMatrix M, TSMatrix N, TSMatrix *Q),稀疏矩阵加法; 6、Status MultSMatrix(TSMatrix M, TSMatrix N, TSMatrix *Q),稀疏矩阵相乘; 7、main(),主函数。 六、数据结构//(ADT) 1、三元组结构类型 typedef struct { int i,j; ElemType e; } Triple; 2、稀疏矩阵 typedef struct { Triple data[MAXSIZE+1];

数据结构C语言版-稀疏矩阵的三元组顺序表存储表示和实现

typedef int ElemType; // 稀疏矩阵的三元组顺序表存储表示 #define MAXSIZE 100 // 非零元个数的最大值 typedef struct { int i,j; // 行下标,列下标 ElemType e; // 非零元素值 }Triple; typedef struct { Triple data[MAXSIZE+1]; // 非零元三元组表,data[0]未用 int mu,nu,tu; // 矩阵的行数、列数和非零元个数 }TSMatrix; // 创建稀疏矩阵M int CreateSMatrix(TSMatrix *M) { int i,m,n; ElemType e; int k; printf("请输入矩阵的行数,列数,非零元素个数:(逗号)\n"); scanf("%d,%d,%d",&(*M).mu,&(*M).nu,&(*M).tu); (*M).data[0].i=0; // 为以下比较顺序做准备 for(i = 1; i <= (*M).tu; i++) { do { printf("请按行序顺序输入第%d个非零元素所在的行(1~%d)," "列(1~%d),元素值:(逗号)\n", i,(*M).mu,(*M).nu); scanf("%d,%d,%d",&m,&n,&e); k=0; // 行或列超出范围 if(m < 1 || m > (*M).mu || n < 1 || n > (*M).nu) k=1; if(m < (*M).data[i-1].i || m == (*M).data[i-1].i && n <= (*M).data[i-1].j) // 行或列的顺序有错 k=1; }while(k);

数据结构课程设计报告--稀疏矩阵运算器

闽江学院 数据结构 课程设计报告 题目:稀疏矩阵运算器 院系:计算机科学系 专业班级:10计算机科学与技术(网络工程)学号: 学生姓名: 指导教师:王润鸿 2011年12月23 日

目录: 1、分析问题和确定解决方案 (3) 1.1问题描述 (3) 1.2 输入的形式和输入值的范围 (3) 1.3 输出的形式 (3) 1.4 程序所能达到的功能 (3) 1.5 测试数据 (3) 1.6 确定解决方案 (4) 1.7所有抽象数据类型的定义 (4) 2、详细设计 (5) 2.1稀疏矩阵加法运算思路 (5) 2.2稀疏矩阵减法运算思路 (7) 2.3稀疏矩阵乘法运算思路 (9) 2.4创建稀疏矩阵 (11) 3、系统调试与测试 (12) 3.1程序的菜单界面 (12) 3.2 实现加法运算 (12) 3.3 实现减法运算 (13) 3.4实现乘法运算 (14) 4、结果分析 (15) 4.1、算法的时空分析 (15) 4.2、经验和体会 (15) 5、参考文献 (15)

1、分析问题和确定解决方案 1.1问题描述 稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计 算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。用三元组实现稀疏矩阵的相加、相减,相乘; 1.2输入的形式和输入值的范围 以三元组的形式输入,首先应输入矩阵的行数和列数,并判别给出的两个 矩阵的行、列数对于所要求作的运算是否相匹配。可设矩阵的行数和列数均不超过20; 例如:输入的三元组为:((1,1,10),(2,3,9),(3,1,-1))其对应的稀疏矩阵为: ???? ??????-0019000010 1.3 输出的形式 运算结果的矩阵以通常的阵列形式输出; 1.4程序所能达到的功能 该程序可以实现以三元组形式输入两个矩阵,求出两个矩阵的和、差、积; 并可根据输入的矩阵的行列数不同判别是否可以进行相加、减、乘,并重新输入 正确的矩阵; 1.5测试数据 测试的数据及其结果如下: 矩阵M 矩阵N 矩阵Q 加法: ???? ??????-0019000010 + ????? ?????--301100000 = ????? ?????-3008000010 减法: ???? ? ?????-0190010 - ???? ? ?????--311000 = ???? ??????-32100010 乘法:

稀疏矩阵应用.

稀疏矩阵应用 ●课题简介 1.1课题及要求 稀疏矩阵应用(限1 人完成) 设计要求:实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现。 (1)稀疏矩阵的存储 (2)稀疏矩阵加法 (3)矩阵乘法 (4)矩阵转置 1.2课程任务分析 本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘操作,最后输出运算后的结果。稀疏矩阵采用三元组和十字链表表示,并在两种不同的存储结构下,求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C;求出A的转置矩阵D,输出D;求两个稀疏矩阵A和B的相乘矩阵E,并输出E。 1.3课程的意义 其意义是让我们在学习完C、数据结构等课程基础上,掌握多维数组的逻辑结构和存储结构、掌握稀疏矩阵的压缩存储及转置,相加,相乘等基本操作,并用不同的方法输出结果,进一步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。 ●程序分析 2.1设计函数建立稀疏矩阵及初始化值和输出稀疏矩阵的值 本模块要求设计函数建立稀疏矩阵并初始化,包括在三元组结构下和十字链表结构下。首先要定义两种不同的结构体类型,在创建稀疏矩阵时,需要设计两个不同的函数分别在三元组和十字链表下创建稀疏矩阵,在输入出现错误时,能够对错误进行判别处理,初始化稀疏矩阵都为空值,特别注意在十字链表下,对变量进行动态的地址分配。在设计输出稀疏矩阵的值的函数时,也要针对两种不同的情况,分别编制函数,才能准确的输出稀疏矩阵。在对稀疏矩阵进行初始化及输出值时,均只输出非零元素的值和它所在的所在行及所在列。 2.2构造函数进行稀疏矩阵的转置并输出结果 本模块要求设计函数进行稀疏矩阵的转置并输出转置后的结果,由于对稀疏函数的转置只对一个矩阵进行操作,所以实现起来难度不是很大,函数也比较容易编写。在编写函数时,要先定义一个相应的结构体变量用于存放转置后的矩阵,最后把此矩阵输出。

数据结构课程设计稀疏矩阵

稀疏矩阵应用 摘要本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘操作,最后输出运算后的结果。在程序设计中,考虑到方法的难易程度,采用了先用三元组实现稀疏矩阵的输入,输出,及其转置,相加,相乘操作的方法,再在十字链表下实现。程序通过调试运行,结果与预期一样,初步实现了设计目标。 关键词程序设计;稀疏矩阵;三元组;十字链表 1 引言 1.1课程设计任务 本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘操作,最后输出运算后的结果。稀疏矩阵采用三元组和十字链表表示,并在两种不同的存储结构下,求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C;求出A的转置矩阵D,输出D;求两个稀疏矩阵A和B的相乘矩阵E,并输出E。 1.2课程设计性质 数据结构课程设计是重要地实践性教学环节。在进行了程序设计语言课和《数据结构》课程教学的基础上,设计实现相关的数据结构经典问题,有助于加深对数据结构课程的认识。本课程设计是数据结构中的一个关于稀疏矩阵的算法的实现,包括在三元组和十字链表下存储稀疏矩阵,并对输入的稀疏矩阵进行转置,相加,相乘等操作,最后把运算结果输出。此课程设计要求对数组存储结构和链表存储结构非常熟悉,并能熟练使用它们。 1.3课程设计目的

其目的是让我们在学习完C、数据结构等课程基础上,掌握多维数组的逻辑结构和存储结构、掌握稀疏矩阵的压缩存储及转置,相加,相乘等基本操作,并用不同的方法输出结果,进一步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。 2需求分析 2.1设计函数建立稀疏矩阵及初始化值和输出稀疏矩阵的值 本模块要求设计函数建立稀疏矩阵并初始化,包括在三元组结构下和十字链表结构下。首先要定义两种不同的结构体类型,在创建稀疏矩阵时,需要设计两个不同的函数分别在三元组和十字链表下创建稀疏矩阵,在输入出现错误时,能够对错误进行判别处理,初始化稀疏矩阵都为空值,特别注意在十字链表下,对变量进行动态的地址分配。在设计输出稀疏矩阵的值的函数时,也要针对两种不同的情况,分别编制函数,才能准确的输出稀疏矩阵。在对稀疏矩阵进行初始化及输出值时,均只输出非零元素的值和它所在的所在行及所在列。 2.2构造函数进行稀疏矩阵的转置并输出结果 本模块要求设计函数进行稀疏矩阵的转置并输出转置后的结果,由于对稀疏函数的转置只对一个矩阵进行操作,所以实现起来难度不是很大,函数也比较容易编写。在编写函数时,要先定义一个相应的结构体变量用于存放转置后的矩阵,最后把此矩阵输出。 2.3构造函数进行两个稀疏矩阵相加及相乘并输出最终的稀疏矩阵 本模块要求设计相加和相乘函数对两个矩阵进行运算,并输出最终的稀疏矩阵,在进行运算前,要对两个矩阵进行检查,看是不是相同类型的矩阵,因为两个矩阵相加要求两个矩阵一定是同一类型的矩阵,定义相应的矩阵类型用于存放两个矩阵相加相乘后的结果矩阵,这个结果矩阵的行数列数需要综合多方面情况来确定。这四个函数也是整个程序的难点,需要灵活运用数组及指针的特点。 2.4退出系统

稀疏矩阵

攀枝花学院 学生课程设计(论文)课程名称 设计题目 学生姓名:学号: 所在院(系): 专业: 班级: 指导教师:职称: 年月日 攀枝花学院教务处制

注:任务书由指导教师填写。

课程设计(论文)指导教师成绩评定表

摘要 本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘等操作,最后输出运算后的结果。考虑到难易程度,先用三元组实现稀疏矩阵的输入,输出,及其转置,相加,相乘等操作的方法,再在十字链表下实现。程序通过调试运行,结果与预期一样,初步实现了设计目标。 关键词:程序设计,稀疏矩阵,三元组,十字链表

目录 摘要........................................................................ I 绪论 (1) 1.设计目的与要求 (2) 1.1题目名称:稀疏矩阵的操作 (2) 1.2设计要求 (2) 1.3设计涉及知识 (2) 2、功能设计 (2) 2.1需求分析 (2) 2.2总体设计 (3) 2.3数据结构 (3) 3.功能模块图 (3) 3.1概要设计 (4) 3.2 系统流程图 (5) 3.3 菜单函数 (6) 4.稀疏矩阵的操作的源代码及说明 (7) 4.1 矩阵的声明与结构体定义 (7) 4.2 矩阵的输出函数模块 (7) 4.3 两矩阵相加 (8) 4.4 矩阵的转置 (9) 4.5 创建矩阵 (10) 4.6 主函数模块 (12) 5程序运行结果 (13) 5.1 经过调试,无错误,无警告 (13) 5.2创建矩阵并显示登录页面即主菜单 (13) 5.3 运行操作 (14) 5.4转置矩阵A (14) 5.5转置矩阵B (15) 5.6输出矩阵R (15) 5.7退出程序 (15) 6编程中遇到的困难及解决方法 (16) 7总结心得及良好建议 (17) 8致谢 (18) 9参考文献 (19)

数据结构课程设计(稀疏矩阵运算器)

实习报告 题目:编制一个稀疏矩阵运算器的程序 班级:智能科学与技术系姓名:尤雅萍学号:31520082204064 完成日期:2009-11-27 一?需求分析 1.【问题描述】 稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。 2.【基本要求】 以“带行逻辑链接信息”的三元组顺序表示稀疏矩阵,实现两个矩阵相加,相减和相乘的运算,稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则以通常的阵列形式列出。 3.【测试数据】 (1)10 0 0 0 0 0 10 0 0 0 0 9 + 0 0 -1 = 0 0 8 -1 0 0 1 0 -3 0 0 -3 (2)10 0 0 0 10 0 0 9 - 0 -1 = 0 10 -1 0 1 -3 -2 3 (3)4 -3 0 0 1 3 0 0 0 -6 0 0 0 0 8 0 4 2 0 8 0 0 0 0 1 0 0 * 0 1 0 = 0 1 0 0 0 0 0 70 1 0 0 0 0 0 0 0 0 4.【实现提示】 (1)首先应输入矩阵的行数和列数,并判别给出的两个矩阵的行,列数对于所要求作的运算是否匹配,可设矩阵的行数和列数均不超过20。 (2)程序可以对三元组的输入顺序加以限制,例如,按行优先。 (3)在用三元组表示稀疏矩阵时,相加或相减所得结果矩阵应该另生成,乘积矩阵也可用二维数组存放。

1.设定数组的抽象数据类型定义: ADT SparseMatrix{ 数据对象:D={ m和n分别称为矩阵的行数和列数} 数据关系:R={Row,Col} Row={|1<=i<=m,a<=j<=n-1 } Col={|1<=i<=m-1,a<=j<=n } 基本操作: CreateSMatrix(&M); 操作结果:创建稀疏矩阵M。 DestorySMatrix(&M); 初始条件:稀疏矩阵M存在。 操作结果:销毁稀疏矩阵M。 PrintSMatrix(M); 初始条件:稀疏矩阵M存在。 操作结果: 输出稀疏矩阵M。 CopySMatrix(M,&T); 初始条件:稀疏矩阵M存在。 操作结果:由稀疏矩阵M复制得到T。 AddSMatrix(M,N,&Q); 初始条件:稀疏矩阵M与N的行数和列数对应相等。 操作结果:求稀疏矩阵的和Q=M+N。 SubtSMatrix(M,N,&Q); 初始条件:稀疏矩阵M与N的行数和列数对应相等。 操作结果:求稀疏矩阵的差Q=M-N。 MultSMatrix(M,N,&Q); 初始条件:稀疏矩阵M的列数等于N的行数。 操作结果:求稀疏矩阵乘积Q=M*N。 TransposeSMatrix(M,&T); 初始条件:稀疏矩阵M 存在。 操作结果:求稀疏矩阵M的转置矩阵T。 }ADT SparseMatrix 2.本程序包含的模块 (1)void main() { 初始化; do{ 接收命令;处理命令;}while(命令!=退出); } (2)稀疏矩阵模块——实现稀疏矩阵抽象数据类型。 (3)稀疏矩阵求值模块——实现稀疏矩阵求值抽象数据类型。 稀疏矩阵求值模块包括:矩阵相加模块AddRLSMatrix(); 矩阵相减模块SubRLSMatrix();相乘模块MulTSMatrix();

稀疏矩阵的运算(完美版)

专业课程设计I报告( 2011 / 2012 学年第二学期) 题目稀疏矩阵的转换 专业软件工程 学生姓名张鹏宇 班级学号 09003018 指导教师张卫丰 指导单位计算机学院软件工程系 日期 2012年6月18号

指导教师成绩评定表

附件: 稀疏矩阵的转换 一、课题内容和要求 1.问题描述 设计程序用十字链表实现稀疏矩阵的加、减、乘、转置。 2.需求分析 (1)设计函数建立稀疏矩阵,初始化值。 (2)设计函数输出稀疏矩阵的值。 (3)构造函数进行两个稀疏矩阵相加,输出最终的稀疏矩阵。 (4)构造函数进行两个稀疏矩阵相减,输出最终的稀疏矩阵。 (5)构造函数进行两个稀疏矩阵的相乘,输出最终的稀疏矩阵。 (6)构造函数进行稀疏矩阵的转置,并输出结果。 (7)退出系统。 二、设计思路分析 (1)设计函数建立稀疏矩阵,初始化值。 (2)设计函数输出稀疏矩阵的值。 (3)构造函数进行两个稀疏矩阵相加,输出最终的稀疏矩阵。 (4)构造函数进行两个稀疏矩阵相减,输出最终的稀疏矩阵。 (5)构造函数进行两个稀疏矩阵的相乘,输出最终的稀疏矩阵。 (6)构造函数进行稀疏矩阵的转置,并输出结果。 (7)退出系统。 三、概要设计 为了实现以上功能,可以从3个方面着手设计。 1.主界面设计 为了实现对稀疏矩阵的多种算法功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户交互式使用本系统。本系统主控菜单运行界面如图所示。

2.存储结构设计 本系统采用单链表结构存储稀疏矩阵的具体信息。其中:全部结点的信息用头结点为指针数组的单链表存储。 3.系统功能设计 本系统除了要完成稀疏矩阵的初始化功能外还设置了4个子功能菜单。稀疏矩阵的初始化由函数i typedef int ElemType 实现。建立稀疏矩阵用void Creat()实现,依据读入的行数和列数以及非零元素的个数,分别设定每个非零元素的信息。4个子功能的设计描述如下。 (1)稀疏矩阵的加法: 此功能由函数void Xiangjia( )实现,当用户选择该功能,系统即提示用户初始化要进行加法的两个矩阵的信息。然后进行加法,最后输出结果。 (2)稀疏矩阵的乘法: 此功能由函数void Xiangcheng( )实现。当用户选择该功能,系统提示输入要进行相乘的两个矩阵的详细信息。然后进行相乘,最后得到结果。 (3)稀疏矩阵的转置: 此功能由函数void Zhuanzhi( )实现。当用户选择该功能,系统提示用户初始

最新员工能力矩阵

员工能力矩阵及多功能员工 一、多能工的概念 多能工就是具有操作多种机器设备能力的作业人员。多能工是与设备的单元式布置紧密联系的。在U 型生产线上,多种机器紧凑的组合在一起,这就要求作业人员具有能够应对循环时间和标准作业组合的变化以及在多数情况下能应对一个个作业内容变化的能力。作业人员必须是多能工,能够进行多种设备的操作,负责多道工序。 为此必须通过工作岗位轮换把作业人员训练成对所有工序的所有岗位都是熟练的作业人员,也就是多能工。 二、工作岗位轮换的三个阶段 工作岗位轮换就是让每个作业人员轮流承担自己作业现场的全部作业,经过一段时间的训练,每个作业人员就自然而然熟悉了各种作业,成了多能工。 通过工作岗位轮换培养多能工要通过三个阶段实行: 第一阶段,职务系列中的每个管理人员依次转换工作场所(主要是组)体验所有的职务,不管在什么职务上都能向一般作业人员进行熟练自如的示范。为了把一般作业人员培养成多能工,首先职务系列中的管理人员们必须亲自作为多能工以身示范。为此,全体工长、组长、班长要在其所属的各工作场所巡回换岗。 例如,组长在各组之间依次轮换。因为职务系列中的全体管理人员在各工作场所轮换一圈儿需要数年时间,所以工作岗位轮换计划要做为长期计划的一个环节来实施。 第二阶段,让每个作业人员在组内各种作业之间轮换,训练得在任何作业中都能操作自如。为了实施这种轮换,制定每个一般作业人员的作业训练计划。该计划以让组内的所有作业人员能够熟练掌握组内所有的作业为目的,由组长制定。 在推行这个训练计划的时候,必须使用下面的公式表示各组的多能

工化率。 小组多能化实现率= ∑(各人已通过考核的工序数) x100% 作业单元内工序数×n 式中:n为作业单元内人员数 第三阶段,该阶段被称为“工作岗位轮换”,每天数次有计划地让每个作业人员变换所承担的作业。多能工化进展到一定的程度,全体作业人员甚至可以每隔二至四小时就能有计划地在组内的部作业工序中轮换。 多能工实施要点: 1、作业简单化。动作尽量单纯;动作尽量规范。 2、必须给予指导。整体最了解的人不是作业者;培养合格工人是现场干部的最大职责。 3、整体推广。班前班后灌输多能工观念;定期举办多能工竞赛活动。 4、制定计划。制作多能工技能培训计划表;实施个人和整体的定期考核。 5、改良设备。简单快速,达到离人化;成立设备改善小组 6、绝对安全。一时疏忽也不会造成伤害;伤害影响多能工的积极性。多能工实施技巧:

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