云南大学软件学院数据结构实验1精编版
云南大学--软件学院--数据库实验4
云南大学软件学院实验报告课程:数据库原理与实用技术实验学期: 2012-2013学年第二学期任课教师:专业:学号:姓名:成绩:实验4 数据查询一、实验目的理解T-SQL语言的使用;熟练掌握数据查询语句;掌握合计函数的使用。
二、实验内容1、CAP数据库的查询(记录每个查询的SQL语句和查询结果)(1)建立CAP数据库,输入C、A、P、O四张表;图表 1 创建cap数据库图表 2创建四个表图表 3向表中插入数据图表 4表的内容(2)完成课后习题[3.2]b、[3.5]、[3.8]a,b、[3.11]b,f,j,l[3.2] (b)Retrieve aid values of agents who receive the maximum percent commission.图表 5最高佣金百分率[3.5] Consider the problem to find all (cid, aid) pairs where the customer does not place an order through the agent. This can be accomplished with the Select statementselect cid, aidfrom customers c. agents awhere not exists(select * from orders x where x.cid = c.cid and x.aid =a.aid) ;Is it possible to achieve this result using the NOT IN predicate in place of the NOT EXISTS predicate with a single Subquery? With more than one Subquery? Explain your answer and demonstrate any equivalent form by execution.图表 6 3.5 not in[3.8](a) Write a Select statement with no WHERE clause to retrieve all customer cids and the maximum money each spends on any product. Label the columns of the resulting table: eid, MAXSPENT.图表 7 3.8(b) Write a query to retrieve the AVERAGE value (over all customers) of the MAXSPENT of query (a)图表 8 3.8(b)[3.11] (b) We say that a customer x orders a product y in an average quantity A if A is avg(qty) for all orders rows with cid = x and pid = y. Is it possible in a single SQL statement to retrieve cid values of customers who order all the products that they receive in average quantities (by product) of at least 300?图表 9 3.11 (b)(f) Get pid values of products that are ordered by all customers in Dallas.图表 10 3.11 (f)(j) Use a single Update statement to raise the prices of all products warehoused in Duluth or Dallas by 10%. Then restore the original values byrerunning the procedure that you originally used to create and load the products table.图表 11 3.11 (j)(l) Write an SQL query to get aid and percent values of agents who take orders from all customers who live in Duluth. The aid values should be reported in order by decreasing percent. (Note that if percent is not retrieved in the select list, we cannot order by these values.)图表 12 3.11 (i)2、Employee数据库的查询(记录每个查询的SQL语句和查询结果)(1)向表中插入数据。
云南大学软件学院数据结构实验1
实验难度: A □ B □ C □学期:2017秋季学期任课教师: 刘宇实验题目:组员及组长:承担工作:联系电话:电子邮件:完成提交时间:2017年10月24日一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析)实验要求制作一个复数计算器,要求能进行实数和虚数的混合运算,首先要解决的问题是复数的四则运算,确保运算正确无误。
然后要解决的就是分离复数这个问题。
分离复数最简单的方法就是输入复数的时候分别输入实部虚部,然后打印。
但这过于简单,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。
用到的数学知识:复数四则运算,与或非运算,进行分支判断;程序设计知识:目标分析->设计算法->程序编写->后期调试。
二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等)抽象数据类型的定义:typedef struct Complex //构造复数结构Complex{float real; //定义实部为realfloat imag; //定义虚部为imag}Complex;基本操作:功能一可以字符串形式输入一个复数,用数组的方法从字符串中分离出实部和虚部;功能二可以对输入的两个复数进行简单的加减乘除的四则运算。
模块:加法函数:Complex Add(Complex z1, Complex z2)减法函数:Complex Sub(Complex z1, Complex z2)乘法函数:Complex Mul(Complex z1, Complex z2)除法函数:Complex Div(Complex z1, Complex z2)打印函数:void print_Complex(Complex z)分离实部函数:float Getreal(Complex z)分离虚部函数:float Getimag(Complex z)分离函数:void spread_Complex()算法伪码描述(分离函数):输入一个复数字符串;实部标志为flag1,虚部标志为flag2,得到flag1和flag2的取值,判断该复数是否是完整的复数,或是纯实数、纯虚数;用符号来判断一个完整的复数的实部虚部,如果判断出字符串中接收到了‘+’或者‘-’,则符号前面的算实部,将符号舍去,后面的即为虚部,直到遇上‘i’。
云南大学软件学院数据结构实验二实验报告——多项式计算器
云南大学软件学院数据结构实验报告2010秋季学期(本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)学号:姓名:专业:指导老师:实验难度A□B□ C □承担任务(难度为C时填写)指导教师评分(签名)【实验题目】实验2. 线性表及其应用【问题描述】用C或C++语言设计并实现一个一元稀疏多项式的简单计算器。
【基本要求】一元稀疏多项式简单计算器的基本功能是:1、输入并建立多项式2、输出多项式,序列按指数降序排列3、多项式A(x)和B(x)相加,并建立多项式A(x)+B(x)4、多项式A(x)和B(x)相减,并建立多项式A(x)-B(x)5、给定 x 的值,计算多项式6、多项式A(x)和B(x)相乘,建立多项式A(x)*B(x) (* 选做,作为难度B的操作)【CDIO项目要求】1、有完整的CDIO四个阶段描述2、有友好美观的操作界面3、有软件使用说明或帮助文档4、项目成员分工明确,团结协作【实现提示】一、【实验构思(Conceive)】(10%)本实验通过C语言实现了多项式加法、减法、乘法、多项式求导、多项式积分的功能。
利用了冒泡排序的算法作为排序的核心算法。
运用了高等数学中多项式的求导积分的知识。
二、【实验设计(Design)】(15%)本程序定义了抽象数据结构listnode,用于存储多项式的系数和指数并存储指向下一个listnode的指针来构成链表。
本程序包含如下*个函数:Main函数:调用input函数—>调用bubble_sort函数—>调用operplus函数—>调用oper_minus函数—>调用oper_mul函数—>调用oper_dy函数—>调用oper_jifen 函数。
Oper_plus函数:将两个链表的相应项系数相加,指数不同项不操作,存入新链表,再调用排序算法,使之为降序排列。
Oper_minus函数:将两个链表的相应项系数相减,指数不同项不操作,存入新链表,再调用排序算法,使之为降序排列。
云南大学软件学院报告
课程:数据结构实验学期:2014-2015学年第一学期任课教师:专业:信息安全学号:姓名:成绩:实验5 图基础实验一、实验目的1.掌握图的存储结构及其遍历。
二、实验软硬件环境(CPU、OS、IDE):三、实验任务(要求写出核心代码,并对运行结果截图)1)使用邻接矩阵和邻接表储表示分别实现如下给定的图1、图2、图3所示图的物理存储结构。
2)在1)所建立的图形存储结构上分别实现深度优先搜索遍历和广度优先搜索遍历,并给出遍历结果(序列)。
图3 有向图实验代码:#include<stdio.h>#include<stdlib.h>#define MAXVEX 20#define OK 1#define ERROR 0#define OVERFLOW -1#define INFINITY 65535#define QueueSize 20 //队列中最大元素个数typedef int QElemType; //队列的元素的类型typedef int VertexType;typedef int EdgeType;typedef enum{False,True}Boolean; //Boolean是布尔类型,其值是ture或false Boolean visited[MAXVEX]; //访问标志的数组。
typedef struct{VertexType vexs[MAXVEX];EdgeType arc[MAXVEX][MAXVEX];int numVertexes,numEdges;} MGraph; //邻接矩阵。
typedef struct EdgeNode //边表结点。
{int adjvex;struct EdgeNode *next;}EdgeNode;typedef struct VertexNode //顶点表结点。
{int data;EdgeNode *firstedge;}VertexNode,AdjList[MAXVEX];typedef struct{AdjList adjlist;int numVertexes,numEdges; //图中当前顶点数边数。
云南大学软件学院综合技能实践-数据库实验指导书
云南大学软件学院综合技能实践——《常用数据库系统的安装和调试》实验指导书第一部分MySQL数据库的安装和使用一、实验目的:1.掌握MySQL数据库环境搭建的具体步骤和操作方法。
2.掌握启动和运行MySQL的方法。
3.掌握使用SQL语句创建数据库、表及向表中插入记录的方法。
二、实验内容预习一、MySQL概述MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。
MySQL AB是由多名MySQL开发人创办的一家商业公司。
它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。
数据库是数据的结构化集合。
它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。
要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。
计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。
关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。
这样就增加了速度并提高了灵活性。
MySQL的SQL指得是“结构化查询语言”。
SQL是用于访问数据库的最常用标准化语言,它是由ANSI/ISO SQL标准定义的。
SQL标准自1986年以来不断演化发展,有数种版本。
在本手册中,“SQL-92”指得是1992年发布的标准,“SQL:1999”指得是1999年发布的标准,“SQL:2003”指得是标准的当前版本。
我们采用术语“SQL标准”标示SQL标准的当前版本。
二、MySQL的安装MySQL是一个开源的用于数据库管理的软件。
可以到MySQL的主页上进行下载,地址为。
登录学院ftp://172.25.10.20/(内网)或者ftp://113.55.4.20(外网) 用户名:zhuyp_std, 密码:std,下载区常用数据库的安装和调试文件夹下载相关软件。
云南大学软件学院数据结构实验报告五
云南大学软件学院数据结构实验报告(本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □学期:2012秋季学期任课教师:实验题目: 树及其应用小组长:联系电话:完成提交时间:2012年12月10日云南大学软件学院2012学年秋季学期《数据结构实验》成绩考核表学号: 20111120 姓名:本人承担角色:小组长综合得分:(满分100分)指导教师:年月日(注:此表在难度为C时使用,每个成员一份。
)云南大学软件学院2012学年秋季学期《数据结构实验》成绩考核表学号: 20111120 姓名:人承担角色:组员综合得分:(满分100分)指导教师:年月日(注:此表在难度为C时使用,每个成员一份。
)一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)本实验要求设计一个哈夫曼编码译码器,要求通过统计一段电文中的各字符频率编写哈夫曼码并进行翻译。
首先要解决如何进行哈夫曼编码,然后设计对电文进行编码,最后还有有译码过程。
本程序使用二叉树进行哈夫曼编码,使用文本文档保存电文处理。
利用程序设计的相关知识:贯彻设计程序所必需的五大步骤,目标分析->设计算法->程序编写->后期调试->售后服务的流程完成这个项目。
利用算法设计相关知识:该算法具有有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出、正确性、可读性、健壮性的特性。
离散数学相关知识:正确合理使用与或非之间的关系,进行程序分支判断,保证程序正常进行,以及二叉树的使用。
二、【实验设计(Design)】(20%)本次实验使用C进行编写,自定义函数7个:void SortHufmtree(hufmtree *tree){//将哈夫曼树n个叶子结点由大到小排序Codetype* HuffmanCode(hufmtree *tree){//哈弗曼编码的生成hufmtree* BuildHuffmanTree(hufmtree *tree){//构建叶子结点已初始化的哈夫曼树hufmtree* CreateHuffmanTreeFromSourceFile(){//通过解析源文件建立哈夫曼树hufmtree* Encoding(hufmtree *tree){//对源文件进行编码并保存hufmtree* Decoding(hufmtree *tree)//对存有编码的源文件进行译码并保存主函数为功能选择界面三、【实现描述(Implement)】(30%)主函数显示开始界面,选择相应的功能进行哈夫曼编码译码。
云南大学 软件学院 数据库实验3
云南大学软件学院实验报告课程:数据库原理与实用技术实验学期:2011-2012学年第二学期任课教师:专业:学号:姓名:成绩:实验3使用SQL语句创建并管理数据库、数据表一、实验目的掌握查询分析器的使用方法。
掌握T-SQL语句的基本使用。
熟练掌握DDL语句。
熟练掌握DML(Insert, Delete, Update)语句。
二、实验内容1、用T-SQL语句创建并管理数据库“Employee数据库”,数据库要求见实验二。
记录创建数据库的SQL语句。
2、修改数据库:将“Employee数据库”的数据库最大容量更改为无限制(UNLIMITED),然后将“Employee数据库”的日志文件增长方式改为2MB。
记录SQL语句。
3、用T-SQL语句在“Employee数据库”创建数据表,数据表的结构见实验二。
记录创建表的SQL 语句。
4、修改表结构:将雇员信息表person中,Prof的字段长度改为15。
记录SQL语句。
5、向表中添加记录,使用Insert Into 语句分别向四张表中添加符合表结构属性的数据记录,要求每张表至少4条记录,并显示所添加的记录数据。
6、向雇员信息表person中添加记录完成如下操作:(1)、修改表中记录:将“王辉”的部门修改为“003”;(2)、删除记录:删除表中性别为“女”的员工记录;(3)、删除表:将“person”从“Employee数据库”中删除。
三、思考题如数据库表中存在如下记录:表person中的数据现执行:DELETE FROM department WHERE Depton=“001”,执行结果如何?为什么?。
云南大学软件学院数据结构实验报告六
云南大学软件学院数据结构实验报告(本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度:A□ B □ C ■序号学号姓名成绩12指导教师:(签名)学期:2012秋季学期任课教师:实验题目: 图及其应用小组长:联系电话:电子邮件:完成提交时间:2012年12月 20日云南大学软件学院2012学年秋季学期《数据结构实验》成绩考核表学号:姓名:本人承担角色:小组长综合得分:(满分100分)指导教师:年月日学号:姓名:本人承担角色:组员综合得分:(满分100分)指导教师:年月日(注:此表在难度为C时使用,每个成员一份。
)一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)本实验要求设计一个校园导游系统,要求通过图这一数据结构计算两点之间的最短距离,实现校园导航功能。
首先要收集校园景点信息和景点之间的距离信息,然后利用图存储校园景点信息和景点之间的距离信息,最后使用Dijkstra算法计算最短路径。
离散数学相关知识:正确合理使用与或非之间的关系,进行程序分支判断,保证程序正常进行,以及图的使用。
二、【实验设计(Design)】(20%)本次实验使用C进行编写,自定义函数2个:void init_graph(graph *g)//图的初始化函数void shortest_path(graph *g,int s, int t,int n)//求最短路径的算法主函数为功能选择界面三、【实现描述(Implement)】(30%)主函数显示开始界面,选择相应的功能求最短路径。
人性化设计:1.在输入出现错误时例如功能选择错误时,程序会给出友好的提示;2. 界面友好,容易上手。
四、【代码】(10%)#include<iostream>#include<stdio.h>#include<stdlib.h>#include<windows.h>#define INFINITY 9999 //最大距离#define MAX_NODES 30 //最大结点数int dist[MAX_NODES][MAX_NODES]; //dist[i][j]表示i、j连线的权重int path[MAX_NODES];using namespace std;typedef struct VertexType{char* sight; //景点名称//char* info; //景点描述}VertexType; //定义顶点的类型typedef struct{int vexnum;VertexType vex[MAX_NODES];}graph;void init_graph(graph *g){int a,x,y=0;g->vexnum = 27;g->vex[0].sight="云大西二门";g->vex[1].sight="百家道";g->vex[2].sight="文典广场";g->vex[3].sight="云大会堂";g->vex[4].sight="中山邦翰楼";g->vex[5].sight="仰止楼";g->vex[6].sight="桦苑";g->vex[7].sight="楠苑";g->vex[8].sight="格物楼";g->vex[9].sight="楠苑体育场";g->vex[10].sight="知味堂";g->vex[11].sight="楠苑超市";g->vex[12].sight="综合服务楼";g->vex[13].sight="楸苑";g->vex[14].sight="力行楼";g->vex[15].sight="软件楼";g->vex[16].sight="校医院";g->vex[17].sight="明远楼";g->vex[18].sight="至公大道";g->vex[19].sight="行政办公楼";g->vex[20].sight="云大北门";g->vex[21].sight="文汇楼";g->vex[22].sight="余味堂";g->vex[23].sight="梓苑超市";g->vex[24].sight="梓苑";g->vex[25].sight="钟楼";g->vex[26].sight="校车乘车点";for(x=0;x<g->vexnum;x++)for(y=0;y<g->vexnum;y++)dist[x][y]=INFINITY;//下边是可直接到达的景点间的距离,由于两个景点间距离是互相的,所以要对图中对称的边同时赋值 dist[0][1]=dist[1][0]=10;dist[1][2]=dist[2][1]=20;dist[2][3]=dist[3][2]=20;dist[1][4]=dist[4][1]=50;dist[4][5]=dist[5][4]=200;dist[4][6]=dist[6][4]=130;dist[5][7]=dist[7][5]=600;dist[5][8]=dist[8][5]=800;dist[5][9]=dist[9][5]=600;dist[7][8]=dist[8][7]=100;dist[7][9]=dist[9][7]=600;dist[7][10]=dist[10][7]=150;dist[7][11]=dist[11][7]=110;dist[7][12]=dist[12][7]=100;dist[8][12]=dist[12][8]=80;dist[9][11]=dist[11][9]=700;dist[10][11]=dist[11][10]=5;dist[10][12]=dist[12][10]=50;dist[10][13]=dist[13][10]=150;dist[12][13]=dist[13][12]=100;dist[12][26]=dist[26][12]=20;dist[13][14]=dist[14][13]=200;dist[13][15]=dist[15][13]=250;dist[13][16]=dist[16][13]=700;dist[13][26]=dist[26][13]=100;dist[14][15]=dist[15][14]=20;dist[14][16]=dist[16][14]=500;dist[14][17]=dist[17][14]=1500;dist[16][17]=dist[17][16]=1300;dist[17][18]=dist[18][17]=50;dist[17][25]=dist[25][17]=300;dist[18][19]=dist[19][18]=30;dist[19][20]=dist[20][19]=100;dist[20][21]=dist[21][20]=950;dist[20][22]=dist[22][20]=900;dist[21][22]=dist[22][21]=150;dist[21][24]=dist[24][21]=110;dist[21][25]=dist[25][21]=750;dist[22][23]=dist[23][22]=40;dist[22][24]=dist[24][22]=120;dist[23][24]=dist[24][23]=60;dist[24][1]=dist[1][24]=300;}void shortest_path(graph *g,int s, int t,int n){struct state{int predecessor; //前驱节点int length; //到起始点的距离int label;}state[MAX_NODES];int i,k,min,mypath[MAX_NODES];struct state * p;for(p=&state[0]; p<&state[n]; p++){p->predecessor = -1;p->length = INFINITY;p->label = 0;}state[t].length = 0;state[t].label = 1;k = t; //当前工作结点do{for(i=0; i<n; i++){if(dist[k][i]!=0 && state[i].label==0){if(state[k].length+dist[k][i]<state[i].length){state[i].length = state[k].length+dist[k][i]; state[i].predecessor = k;}}}k=0;min=INFINITY;for(i=0; i<n; i++){if(state[i].label==0 && state[i].length<min){k=i;min=state[i].length;}}state[k].label = 1;}while(k!=s);i=0;k=s;do{path[i] = k;k = state[k].predecessor;mypath[i]=path[i];i++;}while(k>=0);for(i--;i>0;i--){printf("%s->",g->vex[mypath[i]].sight);}printf("%s\n",g->vex[mypath[i]].sight);printf("\n距离为%d m\n",min);}int main(){int m,s,e,c;graph g;g.vexnum = 27;init_graph(&g);printf("\n===========================================================\n");printf("\n 呈贡云南大学校园导游 \n");printf("\n\n");//打印景点列表for(m=0;m<g.vexnum;m++){printf("\t%2d:%s\t\t",m,g.vex[m].sight);if(++m<27&&m!=7)printf("\t%2d:%s\t\n",m,g.vex[m].sight);else if(m==7)printf("\t %d:%s\t\n",m,g.vex[m].sight);elseprintf("\n");}printf("\n===========================================================\n");printf("\n\t■■■■■■■■■■■■■■■■■\n");printf("\t■ ■\n");printf("\t■ 1、查询景点路径■\n");printf("\t■ ■\n");printf("\t■ 0、退出■\n");printf("\t■ ■\n");printf("\t■■■■■■■■■■■■■■■■■\n");while(1){printf("\n===========================================================\n");printf("\n请输入您的选择:");scanf("%d",&c);while(!(c==0||c==1)){printf("\n输入非法,请重新选择:\n");scanf("%d",&c);}switch(c){case 0:exit(0);case 1:printf("\n输入出发点与结束点:");scanf("%d %d",&s,&e);while(s<0||s>26||e<0||e>26||s==e){printf("\n输入非法,请重新选择:");scanf("%d %d",&s,&e);}printf("\n从“ %s ”到“ %s ”的最短路径为\n\n",g.vex[s].sight,g.vex[e].sight); shortest_path(&g,e,s,g.vexnum);break;}//switch}//whilereturn 0;}。
软件工程实验1.云大
云南大学软件学院实验报告课程名称:软件工程学期:2009年秋季学期指导老师:学号:姓名:班级:软件工程日期:成绩:实验一软件工程基础【实验目的和要求】1了解软件工程基本概念2掌握软件生命周期3掌握各种软件过程模型4掌握项目管理基本活动和过程5掌握软件伦理相关概念[实验内容]1什么是软件工程?Software engineering is the application of a systematic, disciplined(守规则的), quantifiable(定量的) approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.(^ a b SWEBOK executive editors, Alain Abran, James W. Moore ;editors, Pierre Bourque, Robert Dupuis. (2004). Pierre Bourque and Robert Dupuis. ed. Guide to the Software Engineering Body of Knowledge - 2004 Version. IEEE Computer Society. p. 1-1. ISBN 0-7695-2330-7..)Software engineering is an engineering discipline that is concerned with all aspects of software production.(Ian Sommerville ,Software Engineering, 8th edition, p6)2什么是软件过程?A software process is a set of activities whose goal is thedevelopment or evolution of software product.(Ian Sommerville ,Software Engineering, 8th edition, p8)A software process is defined as a set of interrelatedactivities.An activity transforms inputs into outputs. An activityunder a process is a set of cohesive内聚的 tasks. A task is expressed in the form of action.(ISO/IEC 12207)Software Process is Software too.( Osterweil 1997)A software development process is a structure imposed on the development of a software product. Synonyms也就是说include software life cycle and software process.(From Wikipedia, the free encyclopedia)3什么是软件过程模型,具体包含哪些?Software process model is a simplified representation of a software process that present one view of that precess.(Ian Sommerville ,Software Engineering, 8th edition, p8)Software process model is an abstract representation of a software process.Software process description is a detailed represention of a software process.(Tong Li, An Approach to Modelling Software Evolution Process,p10)The software process models include the informal, the semi-formal and the formal models. (Tong Li, An Approach to Modelling Software Evolution Process,p111)Idiographic Software process models :The waterfall modelEvolutionary developmentComponent-based software engineering4软件工程成本包含那几部分?Roughly development costs ,testing costs.But distribution of costs depends on the development model that is used.For example:Waterfall model:Specification, Design, Development, Integration and testing.Iterative development:Specification, Iterative development, System testing.Component-based software engineering:Specification, Development, Integration and testing.For long-lifetime systems:System development, System evolution. 5软件伦理包含哪些内容。
云南大学软件学院数据结构实验
实验难度: A □ B □ C □学期:2017秋季学期任课教师: 刘宇实验题目:组员及组长:承担工作:联系电话:电子邮件:完成提交时间:2017年10月24日一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析)实验要求制作一个复数计算器,要求能进行实数和虚数的混合运算,首先要解决的问题是复数的四则运算,确保运算正确无误。
然后要解决的就是分离复数这个问题。
分离复数最简单的方法就是输入复数的时候分别输入实部虚部,然后打印。
但这过于简单,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。
用到的数学知识:复数四则运算,与或非运算,进行分支判断;程序设计知识:目标分析->设计算法->程序编写->后期调试。
二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等)抽象数据类型的定义:typedef struct Complex //构造复数结构Complex{float real; //定义实部为realfloat imag; //定义虚部为imag}Complex;基本操作:功能一可以字符串形式输入一个复数,用数组的方法从字符串中分离出实部和虚部;功能二可以对输入的两个复数进行简单的加减乘除的四则运算。
模块:加法函数:Complex Add(Complex z1, Complex z2)减法函数:Complex Sub(Complex z1, Complex z2)乘法函数:Complex Mul(Complex z1, Complex z2)除法函数:Complex Div(Complex z1, Complex z2)打印函数:void print_Complex(Complex z)分离实部函数:float Getreal(Complex z)分离虚部函数:float Getimag(Complex z)分离函数:void spread_Complex()算法伪码描述(分离函数):输入一个复数字符串;实部标志为flag1,虚部标志为flag2,得到flag1和flag2的取值,判断该复数是否是完整的复数,或是纯实数、纯虚数;用符号来判断一个完整的复数的实部虚部,如果判断出字符串中接收到了‘+’或者‘-’,则符号前面的算实部,将符号舍去,后面的即为虚部,直到遇上‘i’。
云南大学软件学院数据结构实验
———————————————————————————————— 作者:
———————————————————————————————— 日期:
实验难度:A□B □ C □
序号
学号
姓名
成绩
指导教师
(签名)
学 期:2017秋季学期
任课教师:ﻩ刘宇
实验题目:
组员及组长:
承担工作:
ﻩﻩﻩz.real=(z1.real*z2.real-z1.imag*z2.imag)/(z1.real*z1.real-z1.imag*z1.imag);
ﻩz.imag = (z1.imag*z2.real-z1.real*z2.imag)/(z1.real*z1.real-z1.imag*z1.imag);
用到的数学知识:复数四则运算,与或非运算,进行分支判断;
程序设计知识:目标分析->设计算法->程序编写->后期调试。
二、【实验设计(Design)】(20%)
(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等)
ﻩ{
ﻩﻩif(fushu[k]=='+'||fushu[k] =='-')//判断是否为完整复数
ﻩﻩflag1++;
ﻩﻩﻩelseif(fushu[k]=='i')/*判断是否为纯实数*/
ﻩﻩflag2++;
}
ﻩif(flag2 > 1)
{
ﻩﻩprintf("ERROR!");
ﻩﻩsystem("pause");
云南大学软件学院汇编语言实验报告二
五、练习
1. 传送指令
1)用A命令在内存100H处键入下列内容:
MOV AX,1234
MOV BX,5678
XCHG AX,BX
MOV AH,35
MOV AL,48
MOV DX,75AB
XCHG AX,DX
2)用U命令检查键入的程序并记录,特别注意左边的机器码。
3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。
并注意标志位有无变化。
2. 改变标志寄存器psw中AF标志的状态(0——1或1——0),其余位保持不变。
3. 设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址
300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。
在DEBUG状态下使用A命令送入下面程序,并用单步T命令执行的方法,分析每条指令源地址的形成过程?当数据传送每完成一次,试分析AX寄存器中的内容是什么?
程序清单如下:
MOV AX,BX
MOV AX,0304H
MOV AX,[0304H]
MOV AX,[BX]
MOV AX,0001[BX]
MOV AX,[BX][SI]
HLT
4. 使用标志位传送指令,编程序段将标志位寄存器的低八位的值存入内存单元DS:1000H中或堆栈中,然后将标志位寄存器的低八位置位为10101010。
数据结构实验一(完整版)
数据结构实验一:线性表实验报告#include <string.h>#include <ctype.h>#include <malloc.h> // malloc()等#include <limits.h> // INT_MAX等#include <stdio.h> // EOF(=^Z或F6),NULL#include <stdlib.h> // atoi()#include <io.h> // eof()#include <math.h> // floor(),ceil(),abs()#include <process.h> // exi t()#include <iostream.h> // cout,cin// 函数结果状态代码#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1// #define OVERFLOW -2 因为在math.h中已定义OVERFLOW的值为3,故去掉此行typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等typedef int Boolean; // Boolean是布尔类型,其值是TRUE或FALSEtypedef int ElemType;#define LIST_INIT_SIZE 10 // 线性表存储空间的初始分配量#define LISTINCREMENT 2 // 线性表存储空间的分配增量struct SqListElemType *elem; // 存储空间基址int length; // 当前长度int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位)};/**********************************************************/ /* 顺序表示的线性表的基本操作(12个) *//**********************************************************/ Status InitList(SqList &L){ // 操作结果:构造一个空的顺序线性表---------------1L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW); // 存储分配失败L.length=0; // 空表长度为0L.listsize=LIST_INIT_SIZE; // 初始存储容量return OK;}Status DestroyList(SqList &L){ // 初始条件:顺序线性表L已存在。
多媒体数据库设计实验1
实验报告序号:实验老师:李震雄课程名称:多媒体数据库系统设计实验名称:熟悉实验环境学号:20091120261 姓名:郭娟1. 熟悉实验环境:相关软件安装检查、实验环境配置及熟悉。
2. 通过了解一些有代表性和发展潜力的信息检索系统或项目,并且阐述这些系统或项目的主要特点和优势,使我们了解到更多相关系统的背景,从而可以更进一步的熟悉实验环境。
以下为所选的5种检索系统:序号系统名称开发单位1 AltaVista Photo finder Alta Vista (developed at DEC Research Lab)2 C‐bird Simon Fraser University, Burnaby, B.C,Canada3 Blob‐word UC‐Berkeley4 CBVQ Columbia University, NY5 Virage Virage Inc.下面分别阐述每个所选信息检索项目的特点和优势:1. AltaVista Photo finder特点:大部分网页的作者利用ALT属性的<图片>标签提供一个简短的准确的文字描述的图形的内容,有利于在网上冲浪的人以形象加载关机。
AltaVista使用机器人”vscooter”指引ALT文本、图像描述。
它会出现一些重量并给出了附近的图像文本页面。
优势:如果你是一个内容制作者,关心保护您的版权作品,可以通过电子邮件到AltaVista申述。
AltaVista确实提供了几种方法可以脱离他们的索引。
责任不应在其权益受到侵害采取行动,应该在使用AltaVista时遵守法律。
综合分析:概况ALTAVISTA检索服务是目前世界上最优秀的搜索引擎,每天访问它的次数超过1亿次。
在信息检索中它可以搜索WWW上的Web页、新闻、讨论、产品、图形、声频或视频等资料。
其特点是搜索速度很快,同时由于它维护了一个含时间变量的数据库,从而保证所查询的信息实时更新,检索到的信息也很准确。
云南大学软件学院数据库实验7:DB2_Customization
云南大学软件学院实验报告课程:数据库原理与实用技术实验学期:2011-2012学年第二学期任课教师:专业:学号:姓名:成绩:Exercise 1_DB2 Customization Section 2 - Creating a New User ID1. Use the User Manager application to create your new user ID called inst1. Answer:1) create your new user ID called inst1.(用户名:inst1全名:inst1 Instance SysAdmin描述:System Administrator for INST1 Instance密码:inst1用户组:Administrators)右击计算机,选择管理,.2)更改inst1的账户类型在控制面板里,. Section 4 - Creating the Instance1. Open up a DB2 Command Window and issue the following command: db2ilist Record the output:Answer:在开始菜单里找到IBM的DB2,打开命令行工具输入db2ilist,查看主机的实例得:2. For your lab environment, you will create another instance called INST1. (创建称为inst1 的新实例)Answer:在命令窗口中输入如下命令:1)输入db2icrt inst1,创建称为inst1 的新实例2)查看你所创建的新实例inst1输入db2ilist后显示:3. Reissue the command to list your instances. Now which instances are listed?Answer:实例有:inst1 和DB2,Section 5 - Creating the DB2 System Administrator Group(建立DB2 系统管理员用户组)按以下要求建立DB2 系统管理员用户组adm1(adm1 应小写而且),并且使inst1 和db2admin成为该组成员组名:adm1描述:inst1 Instance SysAdmin Group可以桌面上,右击“计算机”,选择“管理”,右如下界面创建新组adm1(adm1 应小写而且),并且使inst1 和db2admin成为该组成员,同样,先建adm1再按照要求添加那2个用户,就可以了结果:Section 6 - Setting the Environment1. Perform the following tasks to check your DB2 environment variables.What is the DB2INSTANCE (default instance) Value in System Variables?Answer:做如下的选择Change the system variable value of DB2INSTANCE to INST1.所以,没有包含X:\SQLLIB\BIN2. Do the following to verify your DB2 environment variables are correct. Answer:选择开始菜单—>程序—>附件—>命令提示符;输入: set | more3. Check the values of your registry variables(注册变量表) (hint: use db2set on aDB2 Command Window).在DB2的命令窗口中What is the value for your DB2 Administration Server?Answer:4. What is your system name?Answer:Section 7 - Exploring and Setting Database Manager Configuration Parameters4. Record the following values:(打开控制中心,按照要求去找)a. Does the AUTHENTICATION parameter have a value (look under theAdministration)? What is the purpose of this parameter? What are the possible values for this parameter?answer:b. Does the SYSADM_GROUP parameter have a value (look underAdministration)? What is the value of this parameter? What is the hint associated with it?answer:c. What is the value of NODETYPE (look under Environment) answer:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验难度: A □ B □ C □学期:2017秋季学期任课教师: 刘宇实验题目:组员及组长:承担工作:联系电话:电子邮件:完成提交时间:2017年10月24日一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析)实验要求制作一个复数计算器,要求能进行实数和虚数的混合运算,首先要解决的问题是复数的四则运算,确保运算正确无误。
然后要解决的就是分离复数这个问题。
分离复数最简单的方法就是输入复数的时候分别输入实部虚部,然后打印。
但这过于简单,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。
用到的数学知识:复数四则运算,与或非运算,进行分支判断;程序设计知识:目标分析->设计算法->程序编写->后期调试。
二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等)抽象数据类型的定义:typedef struct Complex //构造复数结构Complex{float real; //定义实部为realfloat imag; //定义虚部为imag}Complex;基本操作:功能一可以字符串形式输入一个复数,用数组的方法从字符串中分离出实部和虚部;功能二可以对输入的两个复数进行简单的加减乘除的四则运算。
模块:加法函数:Complex Add(Complex z1, Complex z2)减法函数:Complex Sub(Complex z1, Complex z2)乘法函数:Complex Mul(Complex z1, Complex z2)除法函数:Complex Div(Complex z1, Complex z2)打印函数:void print_Complex(Complex z)分离实部函数:float Getreal(Complex z)分离虚部函数:float Getimag(Complex z)分离函数:void spread_Complex()算法伪码描述(分离函数):输入一个复数字符串;实部标志为flag1,虚部标志为flag2,得到flag1和flag2的取值,判断该复数是否是完整的复数,或是纯实数、纯虚数;用符号来判断一个完整的复数的实部虚部,如果判断出字符串中接收到了‘+’或者‘-’,则符号前面的算实部,将符号舍去,后面的即为虚部,直到遇上‘i’。
程序流程图:三、【实现(Implement)】(30%)(本部分应包括:抽象数据类型各操作的具体实现代码、关键操作的具体算法实现、函数实现,主程序实现等,并给出关键算法的时间复杂度分析。
如有界面则需包括界面的关键实现方法等。
)主程序实现:打印功能选择的DOS窗口界面,输入功能选择,选择功能一调用复数分离函数,选择功能二则输入两个复数的实部和虚部,选择运算,+则调用加法函数,-号调用减法函数,*号调用乘法函数,/号调用除法函数,否则错误提示。
各主要函数实现:1.加法函数:z.real = z1.real + z2.real;z.imag = z1.imag + z2.imag;2.减法函数:z.real = z1.real - z2.real;z.imag = z1.imag - z2.imag;3.乘法函数:z.real = z1.real * z2.real+z1.imag*z2.imag;z.imag = z1.real * z2.imag+z1.imag*z2.real;4.除法函数:if( z2.real == 0 && z2.imag == 0) {printf("ERROR! z2 is 0!\n");//判断除数是否为零system("pause");exit(0);}elsez.real = (z1.real*z2.real-z1.imag*z2.imag)/(z1.real*z1.real-z1.imag*z1.imag);z.imag = (z1.imag*z2.real-z1.real*z2.imag)/(z1.real*z1.real-z1.imag*z1.imag); 5.分离函数:void spread_Complex(){char fushu[20] = { '\0' }, real[10] = { '\0' }, imag[10] = { '\0' };int i = 0, j = 0, n = 0, k = 0, flag1 = 0, flag2 = 0;printf("请输入一个复数字符串:");getchar();gets(fushu);while (fushu[n] == ' '){n++;}if (fushu[n] >= '0' && fushu[n] <= '9' || fushu[n] == '-' || fushu[n] == '+'){real[i] = fushu[n]; /*把第一个字符处理掉*/i++;n++;for (k = i; k<20; k++){if (fushu[k] == '+' || fushu[k] == '-')//判断是否为完整复数flag1++;else if (fushu[k] == 'i') /*判断是否为纯实数*/flag2++;}if (flag2 > 1){printf("ERROR!");system("pause");exit(0);}else if (flag2 == 0) /*判断为纯实数*/{printf("该复数实部为%s\n", fushu);printf("该复数虚部为0\n");system("pause");exit(0);}else if (flag1 == 0) /*判断为纯虚数*/{imag[j] = real[0];j++;for (; fushu[n] != 'i'; j++){if (fushu[n]>'0' && fushu[n] <= '9' || fushu[n] == '.' || fushu[n] == ' '){if (fushu[n] == ' '){n++;j--;continue;}imag[j] = fushu[n];n++;}else{printf("\nERROR!\n");system("pause");exit(0);}}imag[j] = 'i';printf("该复数实部为0\n");printf("该复数虚部为%s\n", imag);system("pause");exit(0);}if (flag1 == 1) //判断为完整复数{for (; fushu[n] != '+' && fushu[n] != '-'; i++){if (fushu[n]>'0' && fushu[n] <= '9' || fushu[n] == '.' || fushu[n] == ' '){if (fushu[n] == ' '){n++;i--;continue;}real[i] = fushu[n];n++;}else{printf("\nERROR!\n");system("pause");exit(0);}}if (fushu[n] == '-') /*负号算在虚部*/{imag[j] = fushu[n];j++;n++;}else if (fushu[n] == '+') /*加号舍去*/{n++;}for (; fushu[n] != 'i'; j++){if (fushu[n]>'0' && fushu[n] <= '9' || fushu[n] == '.' || fushu[n] == ' '){if (fushu[n] == ' '){n++;j--;continue;}imag[j] = fushu[n];n++;}else{printf("\nERROR!\n");system("pause");exit(0);}}imag[j] = 'i';printf("该复数实部为%s\n", real);printf("该复数虚部为%s\n", imag);system("pause");exit(0);}printf("ERROR!\n");system("pause");exit(0);}printf("ERROR!\n");system("pause");exit(0);}时间复杂度分析:四、【测试结果(Testing)】(10%)(本部分应包括:对实验的测试结果,应具体列出每次测试所输入的数据以及输出的数据,并对测试结果进行分析,可附截图)程序初始界面:第一个功能实现:第二个功能实现(输入的第一个复数均是9-4i;第二个复数均是-1-3i):加法:减法:乘法:除法:五、【实验总结】(10%)(本部分应包括:自己在实验中完成的任务,及存在的问题,所完成实验过程中的具体经验总结、心得)本次试验中,起初是直接使用输入复数的时候分别输入实部虚部,然后打印,以此来分离复数,但考虑到这样做非常简单,所以后面做了修改,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。