云南大学软件学院数据库试验四实验4:数据查询
云南大学软件学院数据结构实验4

实验难度: A □ B □ C □序号学号姓名成绩指导教师(签名)学期:2017秋季学期任课教师:实验题目:组员及组长:承担工作:联系电话:电子邮件:完成提交时间:年月日一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析)首先输入迷宫数据,在计算机的屏幕上显示一个8行8列的矩阵表示迷宫。
矩阵中的每个数据或为通路(以0表示),或为墙(以1表示),所求路径必须是简单路径,即在求得的路径上不能重复出现同一道块。
假设以栈S记录“当前路径”,则栈顶中存放的是“当前路径上最后一个通道块”。
由此,“纳入路径”的操作为“当前位置入栈”;从当前路径删除前一通道块的操作为“出栈”。
若找到出口,则从栈中弹出数据,在屏幕上显示从入口到出口的路径坐标。
二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等)1、定义坐标(X,Y):struct Coor{int row;int column;int direction;};2、定义方向:struct Move{int row;int column;};3、定义/链表结点:struct LinkNode{Coor data;LinkNode *next;};4、定义栈:class stack{private:LinkNode *top;public:stack();~stack();void Push(Coor data);Coor Pop();Coor GetPop();void Clear();bool IsEmpty();};5.流程图:三、【实现(Implement)】(30%)(本部分应包括:抽象数据类型各操作的具体实现代码、关键操作的具体算法实现、函数实现,主程序实现等,并给出关键算法的时间复杂度分析。
最新云南大学 软件学院数据库试验5

云南大学软件学院实验报告课程:数据库概论任课教师:包崇明姓名:学号:专业:成绩:实验5 数据查询-基于CAP数据库完成教科书第三章如下习题(SQL语句及结果截屏):[3.2]b: select aid from AGENTS where [percent] >=all(select MAX([percent]) from AGENTS)截图:[3.5]:select aid,cid from AGENTS A,CUSTOMERS C where aid not in (select aid from ORDERS X where X.cid=C.cid and X.aid=a.aid) order by aid,cid截图:[3.8]a:注意:中文版教材翻译有误,应该是求每个顾客在他购买的所有产品中的最大花费值,参考英文原版select cid,pid,MAX(dollars)as MAXSPENTfrom ORDERSgroup by cid,pid,dollars截图:[3.8]b:select AVG (MAXSPENT) as AVERAGEfrom (select cid,pid,MAX(dollars) as MAXSPENTfrom ORDERSgroup by cid,pid,dollars)as x group by cid截图:[3.11]b:需要先求出按cid,pid分组的qty均值,并完整数据截图;其次,本题中最小qty均值修改为900select cid,pid,AVG(qty) as AVGQTYfrom ORDERSgroup by cid,pid,qty截图:select cid from(select cid,pid,AVG(qty) as AVGQTYfrom ORDERS group by cid,pid,qty)as x where AVGQTY > 900截图:[3.11]d: select aid from ORDERSwhere cid IN(select cidfrom CUSTOMERSwhere city = 'Duluth' or city = 'Kyoto')截图:[3.11]f: select pid from ORDERSwhere cid IN(select cidfrom CUSTOMERSwhere city = 'Dallas')截图:[3.11]h: delete from AGENTS where aname = 'Gray' 截图:INSERT INTO AGENTS(aid,aname,city,[percent]) values('a04','Gray','New york',6)截图:[3.11]j: update PRODUCTSset price = 1.1*pricewhere city = 'Duluth' or city = 'Dallas'截图:[3.11]k:select cid,sum(dollars) as totalDollars from ORDERS where aid = 'a04'group by cid截图:[3.11]l: select aid,[percent] from AGENTS a where not exists(select cid from CUSTOMERS cwhere city = 'Duluth' and not exists(select o.cid from ORDERS owhere o.cid = c.cid and a.aid = o.aid))order by [percent]截图:。
云南大学--软件学院--数据库实验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)向表中插入数据。
云南大学软件学院计算机网络原理实验四

实验四、web服务器套接字编程实验指导1.实验目的:编写一个WEB服务器程序,可以接受来自浏览器的访问,并传输页面(包含多个对象)到浏览器。
掌握Socket编程。
2.实验环境:连入局域网络的主机一台。
3.实验指导:超文本传输协议(HTTP)是位于TCP/IP 协议的应用层,是最广为人知的协议,也是互连网中最核心的协议之一。
HTTP协议是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。
一个完整的HTTP协议会话过程包括四个步骤:✧连接Web浏览器与Web服务器建立连接,打开一个称为Socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功;✧请求Web浏览器通过Socket向Web服务器提交请求。
HTTP的请求一般是GET或POST 命令(POST用于FORM参数的传递);✧应答Web浏览器提交请求后,通过HTTP协议传送给Web服务器。
Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面;✧关闭连接应答结束后Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web 服务器建立连接。
4.实验分析,回答下列问题。
运行课本中Webserver.java程序。
查找资料,写出程序源代码,并加上必要的注释。
如能改写该程序,附上修改后的源代码。
附上运行的截图。
代码及注释如下:import java.io.*;//引入Java输入输出包import .*; //引入Java网络包import java.util.*;//导入Java实用工具库class Webserver{public static void main(String arg[]) throws Exception{String requestMessageLine;String filename;//创建一个监听socketServerSocket listenSocket=new ServerSocket(6789);//等待客户机发起连接while(1==1){Socket connectionSocket=listenSocket.accept();//创建一个从socket中读文本行的流BufferedReader inFromClient=newBufferedReader(new InputStreamReader(connectionSocket.getInputStream ()));//创建一个向socket中写文本行的流DataOutputStream outToClient=newDataOutputStream(connectionSocket.getOutputStream());//读取客户机发送的一行文本requestMessageLine=inFromClient.readLine();//字段串解析StringTokenizer tokenizerLine=new StringTokenizer(requestMessageLin e);//如果客户端的请求方式为get方式if(tokenizerLine.nextToken().equals("GET")){filename=tokenizerLine.nextToken();//获得文件名if(filename.startsWith("/")==true)filename=filename.substring(1);//新建文件System.out.println("The request filename is:" + filename);//输出字符串,内容为客户端请求的文件名File file=new File(filename);int numOfBytes=(int)file.length();//新建文件输入流FileInputStream inFile=new FileInputStream(filename);byte[] fileInBytes=new byte[numOfBytes];//将文件流信息读入byte数组inFile.read(fileInBytes);// 服务端输出信息outToClient.writeBytes("HTTP/1.0 200 Document Follows\r\n"); //不同的文件类型所对应的头文件格式不同if(filename.endsWith(".jpg"))outToClient.writeBytes("Content-Type:image/jpeg\r\n");if(filename.endsWith(".gif"))outToClient.writeBytes("Content-Type:image/gif\r\n");outToClient.writeBytes("Content-Length:"+numOfBytes+"\r\n");outToClient.writeBytes("\r\n");outToClient.write(fileInBytes,0,numOfBytes);connectionSocket.close();}//错误的请求方式else System.out.println("Bad Resquest Message");}实验结果截图如下:实验四为JA V A的编程实验,实验代码已经提供,大家只需要读懂此程序,运行此程序查看结果,或做稍加修改就可以了。
云南大学软件学院报告

课程:数据结构实验学期: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%)主函数显示开始界面,选择相应的功能进行哈夫曼编码译码。
数据库实验报告

数据库设计实验报告学院: 计算机科学与软件学院班级:姓名:学号:实验一实验1.1 数据定义一、实验目的熟悉SQL的数据定义语言,能够熟练的使用SOL语句来创建和更改基本表,创建和取消索引。
二、实验内容本实验的主要内容包括:使用CREATE语句创建基本表。
更改基本表的定义,增加列,删除列,修改列的数据类型。
创建表的升降序索引、取消表、表的索引或表的约束。
三、习题(1)AGENTS(AID,ANAME,ITY,PERCEN).数据库表PRODUCTS(PID,PNAME)。
其中,CID,AID,PID分别是各表的主键,具有唯一性约束。
创建CUSTOMERS表:CREATE TABLE CUSTOMERS(CID INT NOT NULL,CNAME CHAR(8),CITY CHAR(8),DISCNT CHAR(8),PRIMARY KEY(CID))创建AGENTS表:CREATE TABLE AGENTS(AID INT NOT NULL,ANAME CHAR(8),CITY CHAR(8),PERCEN CHAR(8),PRIMARY KEY(AID))创建PRODUCTS表:CREATE TABLE PRODUCTS(PID INT NOT NULL,ANAME CHAR(8),PRIMARY KEY(PID))(2).创建数据库表ORDERS(ORDNA,MANTH,CID,AID,PID,QTY,DOLLARS).其中,ORDNA是主键,具有唯一性约束。
CID,AID,PID分别是外键引用自表CUSTOMERS,AGENTS,PRODUCTS.CREATE TABLE ORDERS(ORDNA INT NOT NULL,MONTH INT,CID INT,AID INT,PID INT,QTY CHAR(8),DOLLARS CHAR(8),PRIMARY KEY(ORDNA),FOREIGN KEY(CID)REFERENCES CUSTOMERS,FOREIGN KEY(AID)REFERENCES AGENTS,FOREIGN KEY(PID)REFERENCES PRODUCTS)(3).增加数据库表PRODUCTS三个属性列:CITY,QUANTITY,PRICE.ALTER TABLE PRODUCTS ADD CITY CHAR(8)ALTER TABLE PRODUCTS ADD QUANTITY CHAR(8)ALTER TABLE PRODUCTS ADD PRICE CHAR(8)(4).为以上四个表建立各自的按组建增序排列的索引CREATE INDEX XCNO ON CUSTOMERS(CID)CREATE INDEX XCNO ON AGENTS(AID)CREATE INDEX XCNO ON PRODUCTS(PID)CREATE INDEX XCNO ON ORDERS(ORDNA)(5) 取消(4)建立的四个索引DROP INDEX AGENTS.XCNODROP INDEX CUSTOMERS.XCNODROP INDEX PRODUCTS.XCNODROP INDEX ORDERS.XCNO实验1.2 数据查询一、实验目的:熟悉SQL语句的数据查询语言,能够使用SQL语句对数据库进行单表查询、链接查询、嵌套查询和统计查询。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
云南大学软件学院实验报告
课程:数据库原理与实用技术实验学期:2013-2014学年第二学期任课教师:薛岗、秦江龙专业:学号:2012112**** 姓名:成绩:
实验4 数据查询
一、实验目的
1理解T-SQL语言的使用。
2熟练掌握数据查询语句。
3掌握合计函数的使用。
二、实验内容
1、CAP数据库的查询(记录每个查询的SQL语句和查询结果)
(1)建立CAP数据库,输入C、A、P、O四张表;
1.录入customers
2.录入表AGENTS
3.录入表ORDERS
4.录入表products
(2)完成课后习题[3.2]b、[3.5]、[3.8]a,b、[3.11]b,f,j,l [3.2]b
[3.5]
另一种是[3.8]a
b、
[3.11]b,
f,
J
另一种是:
l
2、Employee数据库的查询(记录每个查询的SQL语句和查询结果)
(1)向表中插入数据。
insert into salary values('000001','2100','500','1','2600'); insert into salary values('000002','3000','600','1','3600'); insert into salary values('000003','2800','450','1','3250'); insert into salary values('000004','2500','340','1','2840'); insert into salary values('000005','3200','490','1','3690'); insert into salary values('000006','2700','600','1','3300'); insert into salary values('000007','4000','200','1','4200'); insert into salary values('000008','2800','350','1','3150'); insert into salary values('000009','2760','440','1','3200'); insert into salary values('000001','2400','600','2','3000'); insert into salary values('000002','2800','400','2','3200'); insert into salary values('000003','2860','350','2','3210'); insert into salary values('000004','2540','320','2','2860'); insert into salary values('000005','3200','480','2','3680'); insert into salary values('000006','2700','300','2','3000'); insert into salary values('000007','4000','250','2','4250'); insert into salary values('000008','2800','300','2','3100');
insert into salary values('000009','2760','480','2','3240'); insert into salary values('000001','2200','500','3','2700'); insert into salary values('000002','3100','400','3','3500'); insert into salary values('000003','2800','650','3','3450'); insert into salary values('000004','2500','540','3','3050'); insert into salary values('000005','3200','400','3','3600'); insert into salary values('000006','2700','680','3','3380'); insert into salary values('000007','4100','400','3','4500'); insert into salary values('000008','2000','330','3','2330'); insert into salary values('000009','2760','420','3','3180'); select *from salary
insert into department values('001','营销部');
insert into department values('002','财务部');
insert into department values('003','人事部');
insert into department values('004','采购部');
select * from department
(2)将职工编号为000006的员工3月份基本工资增加为3000,奖金增加到800。
(3)员工000009已经离开公司,将该员工的数据删除
(4)简单条件查询
查询person表中所有不重复的职称。
✓
✓查询具有高级职称的女员工信息
✓
✓查询职工姓名为黎明的员工数据
因为之前我们已经将编号00009即黎明的信息都删除了,所以库里没有了关于他的记录
✓查询各部门的实发工资总数
✓
(5)复杂条件查询
✓查询平均工资高于3000的部门名和对应的平均工资。
✓
✓查询1月份实发工资比平均实发工资高的员工姓名和实发工资额。
✓查询2月份实发工资比一月高的员工姓名。
利用sql语句将1,2,3月累积的员工的实发工资按降序排序。