广义表基本操作演示系统
- 格式:doc
- 大小:42.00 KB
- 文档页数:3
软件安装及简要操作说明一.软件安装包1.软件安装包大小总约29M,下载以后首先解压文件,2.“广力报表简要操作说明.doc”:是软件安装及简要操作说明。
3.“广力报表学习课件.pps”:软件使用帮助,也可作为各级主管部门培训教学使用。
4.“Setup.exe”为安装程序引导文件,用于引导安装报表系统。
二.安装报表软件1.双击“Setup.exe”文件,在弹出的安装界面上选择“安装报表系统”,按照系统提示依次操作即可。
2.软件默认安装目录是“C:\Program Files\GLBB2011js”,如果手动指定安装目录,注意不要覆盖其它同类目录。
3.一般不需安装“安装数据驱动”一项。
如果计算机是第一次安装报表系统,需要重新启动计算机。
三.打开软件1.双击桌面“广力报表2011”图标,2.在弹出的登录框中,系统默认用户是管理员,密码为空,3.注意报表年份应为“2011年”,点确定进入软件。
四.基层单位主要应用功能及操作目的1.单位:添加、删除单位、管理单位信息;2.录改:浏览、编辑报表数据,并确保“表内校验”通过。
3.计算:所有其它表填写完成后,通过“表间计算”自动生成下列表的数据(这些表可以不手工填写)。
工资表的总表、人均月标准4.校验:检查并确保全部表“表间校验”通过。
5.打印:打印生成纸质报表。
6.生成报送盘:生成报表数据上报盘。
五.主管单位主要应用功能及操作目的1.单位:添加、删除单位,管理单位信息;一般的,只须建一个“汇总单位”。
2.接收报送盘:接收下级单位的上报数据。
3.录改:浏览、编辑数据,并检查“表内校验”情况。
4.校验:检查“表间校验”是否通过。
5.汇总:汇总各下属单位的数据,并将结果存在“汇总单位”上。
6.打印:打印生成纸质报表。
7.生成报送盘:生成报表数据上报盘。
六.基层单位填报建议指南1.依次填写每一张表,确保“表内校验”通过后,再填写下一张表。
2.所有表填写完后,进行“表间校验”,如有不正确调整至全部通过后再打印、生成报送盘。
广义表的基本操作1. 什么是广义表?广义表(Generalized List),又称为广义线性表、列表或链表,是一种扩展了线性表的数据结构。
与线性表只能存储单一类型的数据不同,广义表可以存储任意类型的数据,包括其他广义表。
广义表的存储结构通常采用链式存储。
2. 广义表的基本概念广义表由一系列的表头和表尾构成,表头可以是一个单一的元素,而表尾则是由更小的广义表组成。
广义表可以是空表,即没有任何元素。
例如,广义表L可以表示为: L = (a, b, c, (d, e), f)在该广义表中,a、b、c和f是表头元素,而(d, e)是表尾的广义表。
3. 广义表的基本操作3.1. 创建广义表广义表可以使用链表来实现。
通过遍历输入的数据,可以动态创建一个广义表。
class Node:def __init__(self, data):self.data = dataself.next = Nonedef create_list(data):head = Node(data[0])current = headfor i in range(1, len(data)):new_node = Node(data[i])current.next = new_nodecurrent = current.nextreturn head以上是一个简单的Python代码,用于创建广义表。
3.2. 获取广义表的表头和表尾广义表的表头可以通过简单的链表操作来获取,即获取链表的第一个节点的数据。
def get_head(L):return L.data广义表的表尾可以通过跳过第一个节点来获取。
如下所示:def get_tail(L):return L.next3.3. 判断广义表是否为空表通过判断广义表的表头是否为None,可以确定广义表是否为空表。
def is_empty(L):return L is None3.4. 获取广义表的长度获取广义表的长度可以通过遍历整个链表来计数。
目录沈阳航空航天大学 ........................................................................... 错误!未定义书签。
学术诚信声明 ................................................................................... 错误!未定义书签。
1 题目介绍与功能描述 (1)1.1题目介绍 (1)1.2具体要求 (1)1.3题目分析 (1)2 系统功能模块结构图 (2)2.1系统功能结构图 (2)2.2主要模块功能说明 (3)2.2.1 建立广义表 (3)2.2.2 对表进行求头尾操作 (3)3 数据结构设计及用法说明 (4)3.1存储结构 (4)3.2用法说明 (4)4 主要函数 (5)4.1 VOID CREATLIST(GL IST &L S ) (5)4.2 VOID GL_E LEM(GL IST P) (7)4.3 VOID PRINTF_GL(GL IST L S,INT &I) (7)4.4 VOID G ET H EAD(GL IST &L S) (9)4.5 VOID G ET T AIL(GL IST &L S) (9)4.6 VOID G ET_HT(GL IST L S) (10)5 主要函数流程图 (12)5.1 MAIN函数 (12)5.2 CREATLIST函数 (13)5.3 PRINTF_GL函数 (14)6 调试报告 (15)6.1测试用例设计 (15)6.2调试过程 (15)6.3运行结果 (16)参考文献 (21)附录源程序清单 (22)1 题目介绍与功能描述1.1 题目介绍本课程设计主要完成对广义表的建立以及遍历(输出),并且对已建立的广义表实施操作,操作序列为一串由“t”、“h”以及“”组成的字符串。
广义表实验:广义表基本操作实现实验目的:1、熟悉的存储方式;2、通过实验,深入理解递归以及广义表中的递归实现;实验要求:1、在vc++或tc环境下实现基本功能;2、先完成基本功能,基本功能为必做内容,有多余时间的同学可以做选做的内容;3、独自完成实验操作,并给出相关的数据;4、每次实验后,撰写实验报告,并在下星期一由学习委员收集并按学号整理好后,交任课教师。
实验内容及步骤:必做题:1、由字符串构建一个广义表;2、输出该广义表;3、求广义表的长度和深度;选做:1、求广义表的表头、表尾;2、输出广义表的所有的原子,并求该广义表中的最大原子;附:程序可以使用参考的,更提倡自己编写,使用参考程序的同学把函数的功能读懂,并用实例去走一遍。
参考程序:#include"stdio.h"#include"malloc.h"typedef char elemtype;typedef struct lnode{int tag;union{elemtype data;struct lnode *sublist;}val;struct lnode *link;}glnode;glnode *creatgl(char *&s){glnode *h;char ch;ch=*s;s++;if(ch!='\0'){h=(glnode *)malloc(sizeof(glnode));if(ch=='('){h->tag=1;h->val.sublist=creatgl(s);}else if(ch==')')h=NULL;else{h->tag=0;h->val.data=ch;}}else h=NULL;ch=*s;s++;if(h!=NULL)if(ch==',')h->link=creatgl(s);elseh->link=NULL;return h;}int gllength(glnode *g) {int n=0;g=g->val.sublist;while(g){n++;g=g->link;}return n;}int gldepth(glnode *g) {int max=0,dep;if(g->tag==0)return 0;g=g->val.sublist;if(g==NULL)return 1;while(g){if(g->tag==1){dep=gldepth(g);if(dep>max)max=dep;}g=g->link;}return(max+1);}void dispgl(glnode *g){if(g){if(g->tag==1){printf("(");if(g->val.sublist==NULL)printf("");elsedispgl(g->val.sublist);}elseprintf("%c",g->val.data);if(g->tag==1)printf(")");if(g->link){printf(",");dispgl(g->link);}}}void main(){glnode *g;char *s="(a,(b,c),d,(e,(f,g)))";g=creatgl(s);printf("输出广义表g:");dispgl(g);printf("\n");printf("输出广义表g的长度:");printf("%d\n",gllength(g));printf("输出广义表g的深度:");printf("%d\n",gldepth(g));}。
⼴义表(C++实现)⼴义表是⾮线性结构,其定义是递归的。
以下给出⼏种简单的⼴义表模型:由上图我们可以看到,⼴义表的节点类型⽆⾮head、value、sub三种,这⾥设置枚举类型,利⽤枚举变量来记录每个节点的类型:enum Type{HEAD, //头节点VALUE, //值节点SUB, //⼦表节点};每个节点都有⾃⼰的类型以及next指针,除此之外,如果该节点是VALUE类型还要分配空间存储该节点的有效值;但是若该节点是SUB类型,就需定义⼀个指针指向⼦表的头。
这⾥我们可以⽤联合来解决这个问题。
(联合(或共同体)是⼀种不同数据类型成员之间共享存储空间的⽅法,并且联合体对象在同⼀时间只能存储⼀个成员值)构造节点:struct GeneralizedNode{Type _type; // 1.类型GeneralizedNode* _next; //2.指向同层的下⼀个节点union{char _value; // 3.有效值GeneralizedNode* _subLink; // 3.指向⼦表的指针};GeneralizedNode(Type type = HEAD, char value = '0'):_value(value),_type(type), _next(NULL){if (_type == SUB){_subLink = NULL;}}};⼴义表的定义及基本操作:class Generalized{public://⽆参的构造函数,建⽴空的⼴义表Generalized();//建造⼴义表,有参数的构造函数Generalized(const char* str);//打印⼴义表void Print();//获取值节点的个数size_t Amount();//获取⼴义表的深度size_t Depth();//拷贝构造Generalized(const Generalized& g);////赋值运算符的重载Generalized& operator=(const Generalized& g);////析构函数~Generalized();protected:void _Print(GeneralizedNode* head);GeneralizedNode* _CreatList(const char*& str);size_t _Amount(GeneralizedNode* head);GeneralizedNode* _Copy(GeneralizedNode* head);void _Destory(GeneralizedNode* head);protected:GeneralizedNode* _head; //记录⼴义表头指针}; 初始化建⽴⼴义表进⾏循环递归。
第四章XX数控GSK980T面板操作CRT及键盘操作面板图标键名图标键名编辑方式按钮空运行按钮自动加工方式按钮返回程序起点按钮录入方式按钮单步/手轮移动量按钮回参考点按钮手摇轴选择单步方式按钮紧急开关手动方式按钮手轮方式切换按钮单程序段按钮辅助功能锁住机床锁住按钮4.1 机床准备4.1.1 选择机床类型打开菜单“机床/选择机床…”(如图4-1-1-1所示),或者点击工具条上的小图标,在“选择机床”对话框中,控制系统类型默认为“GSK980T”,默认机床类型为车床,厂家及型号在下拉框中选择,选择完成之后,按确定按钮。
图4-1-1-1 XX数控系统4.1.2 激活机床点击工具条上的小图标,或者点击菜单“视图/控制面板切换”,此时将显示整个机床操作面板,然后检查【急停按钮】按钮是否松开至状态,若未松开,点击【急停按钮】按钮,将其松开。
此时机床完成加工前的准备。
4.2 设置工件坐标系原点(对刀)数控程序一般按工件坐标系编程,对刀过程就是建立工件坐标系与机床坐标系之间对应关系的过程。
常见的是将工件右端面中心点(车床)设为工件坐标系原点。
本使用手册采用卡盘底面中心为机床坐标系原点将工件右端面中心点(车床)设为工件坐标原点的方法介绍。
将工件上其它点设为工件坐标系原点的对刀方法同本节方法类似。
下面具体说明车床对刀的方法。
点击菜单“视图/俯视图”或点击主菜单工具条上的按钮,使机床呈如图4-2-1-1所示的俯视图。
点击菜单“视图/局部放大”或点击主菜单工具条上的按钮,此时鼠标呈放大镜状,在机床视图处点击拖动鼠标,将需要局部放大的部分置于框中,如图4-2-1-2所示。
松开鼠标,此时机床视图如图4-2-1-3所示图4-2-1-1 图4-2-1-2图4-2-1-3 图4-2-1-4单击按钮,进入刀具补偿窗口,使用翻页按钮,或光标按钮,将光标移到序号101处。
点击操作面板中【手动方式】按钮,使屏幕显示“手动方式”状态下,将机床向X轴负方向移动,点击,使机床向Z轴负方向移动。
广力报表2012简要操作说明一.安装1.将光盘放入光驱,在弹出的安装界面上选“安装报表系统”,按照系统提示进行即可。
2.一般不需安装“安装数据驱动”一项,操作系统是win95和win98第一版的计算机需要进行。
3.如果计算机是第一次安装本软件,需要重启计算机才能正常使用。
二.打开软件1.点击桌面“广力报表2012”图标,在弹出的登录框中选择一个用户(密码均为空),2.注意报表年份应为“2012年”,点确定进入软件。
三.新建单位1.在主界面上,点击“单位”按钮,选择报表类别,添加填报单位和单位信息,然后“退出”。
2.导出单位列表:可以将单位名录转成Excel文件。
四.录改1.在主界面上,点“录改”,选中要编辑的报表、单位,确定后即可进入数据编辑界面,在相应表格填入数据即可。
2.在编辑数据时,可通过点击“单位”、“子表”来选择或编辑其它单位或报表的数据。
3.点击子表前的,可以查看当前表的填报说明。
4.有的单元格如果有数据,需要填写备注,详见表内的程序提示。
五.表内校验、审核1.填写数据后,按回车键软件即自动生成表内合计数,并对已录入的数据进行表内校验。
2.通过菜单设置\自动计算、自动校验,可打开或者关闭“自动计算或者自动校验”功能。
3.如果关闭自动计算、校验功能,可通过鼠标右健\“表内计算、表内校验”手动调用相应功能。
4.录入数据以后,选“操作”下的“表间校验”,可以对本表进行表内表间关系完全审核。
六.表间校验1.在主界面上,选“表间校验”,可选择报表、单位,进行表内表间平衡检查。
2.此功能用于批量审核“所选表、单位的全部审核关系”。
七.打印输出1.在编辑数据时,选“预览”,即可打印当前报表或将其输出为EXCEL文件。
2.在主界面上,选“打印”,可以批量打印或将所选报表输出为EXCEL文件。
八.上报\接收数据1.在主界面上,选“报盘”,可以将报表数据进行上报,按向导进行。
2.在主界面上,选“接收报送盘”,可以接收上报数据,按向导进行。
“广义表基本操作演示系统”的设计与实现
一.设计要求
1.问题描述
实现广义表基本操作的演示。
、
2.需求分析
用户从键盘输入描述广义表的字符串,系统实现创建广义表,求广义表的长度、深度,复制广义表,遍历广义表,娶广义表的表头、表尾等操作。
二.模块设计
1.广义表的存储结构
本系统采用广义表的扩展线性表存储结构,定义如下:
2.模块设计
本程序包含3个模块:主程序模块、广义表操作模块、串操作模块。
其调用关系如下图:
3.系统子程序及功能设计
本系统共设置20个子程序,各子程序的函数及功能说明如下。
以下编号(1)~(9)是串的基本操作:
以下编号(10)~(19)是广义表的基本操作:
4.函数主要调用关系图
5.广义表基本操作演示系统20个子程序之间的主要调用关系如下图所示。
图中数字是各函数的编号。
三.详细设计
1.数据类型定义
1)串类型定义如下
2)广义表的村存储结构
采用广义表的扩展线性链表存储表示3)函数类型定义如下:
Typedef int status;
2.系统主要子程序详细设计
1)主函数模块设计
主函数:
2)创建空的广义表
3)由串创建广义表
4)销毁广义表
5)广义表复制
6)求广义表的长度
7)求广义表的深度
8)取广义表的头
9)取广义表的尾10)遍历广义表
四.测试分析
系统运行后,显示操作。
“广义表基本操作演示系统”的设计与实现
一.设计要求
1.问题描述
实现广义表基本操作的演示。
、
2.需求分析
用户从键盘输入描述广义表的字符串,系统实现创建广义表,求广义表的长度、深度,复制广义表,遍历广义表,娶广义表的表头、表尾等操作。
二.模块设计
1.广义表的存储结构
本系统采用广义表的扩展线性表存储结构,定义如下:
2.模块设计
本程序包含3个模块:主程序模块、广义表操作模块、串操作模块。
其调用关系如下图:
3.系统子程序及功能设计
本系统共设置20个子程序,各子程序的函数及功能说明如下。
以下编号(1)~(9)是串的基本操作:
以下编号(10)~(19)是广义表的基本操作:
4.函数主要调用关系图
5.广义表基本操作演示系统20个子程序之间的主要调用关系如下图所示。
图中数字是各函数的编号。
三.详细设计
1.数据类型定义
1)串类型定义如下
2)广义表的村存储结构
采用广义表的扩展线性链表存储表示3)函数类型定义如下:
Typedef int status;
2.系统主要子程序详细设计
1)主函数模块设计
主函数:
2)创建空的广义表
3)由串创建广义表
4)销毁广义表
5)广义表复制
6)求广义表的长度
7)求广义表的深度
8)取广义表的头
9)取广义表的尾10)遍历广义表
四.测试分析
系统运行后,显示操作。