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

合集下载

云南大学软件学院数据结构实验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

云南大学软件学院实验报告课程:数据库概论任课教师:包崇明姓名:学号:专业:成绩:实验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

云南大学--软件学院--数据库实验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语句对数据库进行单表查询、链接查询、嵌套查询和统计查询。

云南大学 软件学院 C语言 所有实验代码.

云南大学  软件学院  C语言    所有实验代码.

第二次试验///第三次试验=====================程序============================#include<stdio.h>int main(){/*十进制*/printf("%d\n",3+4*6);printf("%d\n",3*4/6+6);printf("%d\n",2*3/12*8/4);printf("%d\n",10*(1+7*3));printf("%d\n", 20-2/6+3);printf("%d\n", 20-2/(6+3));printf("%d\n", (20-2)/6+3);printf("%d\n", (20-2)/(6+3));/*9-16显示为小数,保留小数2位,宽度为8*/printf("%8.2f\n",3.0+4.0*6.0);printf("%8.2f\n",3.0*4.0/6.0+6.0);printf("%8.2f\n",2.0*3.0/12.0*8.0/4.0);printf("%8.2f\n",10.0*(1.0+7.0*3.0));printf("%8.2f\n",20.0-2.0/6.0+3.0);printf("%8.2f\n",20.0-2.0/(6.0+3.0));printf("%8.2f\n",(20.0-2.0)/6.0+3.0);printf("%8.2f\n",(20.0-2.0)/(6.0+3.0));/*17-20显示为字符*/printf("%c\n", 'm' - 5);printf("%c\n", 'm' + 5);printf("%c\n", 'G' + 6);printf("%c\n", 'G' - 6);/*21-23显示为十进制整数*/printf("%d\n", 'b' - 'a');printf("%d\n", 'g' - 'a' + 1);printf("%d\n", 'g' - 'a' + 1);}=======================运行结果=====================================================================程序========================== #include<stdio.h>int main (){float Cel,Fah;printf("print a Fah number:");scanf("%f",&Fah);Cel=5.0/9.0*(Fah-32);printf("The Cel number is%f\n",Cel);printf("print a Cel number:");scanf("%f",&Cel);Fah=32+9.0*Cel/5.0;printf("The Fah number is:%f \n",Fah);return 0;}============================运行结果=========================************************************(1)程序**********************************#include<stdio.h>int main(){int num1,num2,num3,max,min;printf("please input three numbers:\n");scanf("%d %d %d",&num1,&num2,&num3);max=(num1>num2)?num1:num2;min=(num1<=num2)?num1:num2;max=(num3>max)?num3:max;min=(num3<min)?num3:min;printf("max = %d min = %d",max,min);return 0;}**************************************运行结果***********************************************************************(2)程序********************************* #include <stdio.h>int main(){int a;float profit,income;printf("Please input the profit:");scanf("%f",&profit);a=(profit-1)/100000;switch(a){case 0:income=profit/10;break;case 1:income=(profit-100000)*0.075+10000;break;case 2:case 3:income=(profit-200000)*0.05+10000+7500;break;case 4:case 5:income=(profit-400000)*0.03+10000+7500+10000;break;case 6:case 7:case 8:case 9:income=(profit-600000)*0.01+10000+7500+10000+6000;break;case 10:income=(profit-1000000)*0.01+10000+7500+10000+6000+6000;}printf("奖金数值为:%f\n",income);return 0;}************************************运行结果******************************************************************(3)程序**************************** /*百马百担问题*/#include <stdio.h>int main (){int A,B,C;printf("百马百担的解为:\n");printf("大中小 \n");for (A = 0; A <= 33; A++){for (B = 0; B <= 50; B++){C = 100 - A - B;if (3*A + 2*B + C/2.0 == 100)printf("%-2d %-2d %-2d \n",A,B,C);}}return 0;}********************************运行结果*************************************************************(4)程序****************************************************************(5)程序**********************************//关于菱形的第一种算法//#include <stdio.h>int main(){int i,j,k;printf("请输入最长行的数字,为奇数k:");scanf("%d",&k) ;for (i=1;i<=k;i++){for(j=1;j<=k;j++){if((j+i)>=(k+1)/2+1&&(i+j)<=(k+1)*3/2-1&&i-j<=(k+3)/2-2& &j-i<=(k+3)/2-2)printf(" *");elseprintf(" ");}printf("\n");}return 0;}//第二种算法///#include <stdio.h>int main(){int K,X,C,N;printf("num=");scanf("%d",&N);for(C=1;C<=(N+1)/2;C++){for(K=1;K<=(N+1)/2-C;K++)printf(" ");for(X=1;X<=2*C-1;X++)printf(" *");printf("\n");}for(C=(N+3)/2;C<=N;C++){for(K=1;K<=C-(N+1)/2;K++)printf(" ");for(X=1;X<=2*N+1-2*C;X++)printf(" *");printf("\n");}}************************运行结果***************************************第5/6次试验*********************************(1)程序*********************************** 第7次试验**********************************(1)程序********************************** #include <stdio.h>int main(){int i,j,n;printf("input a number");scanf("%d",&n);int a[n][n];printf("\n");for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for (i=2;i<n;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<n;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}*********************************************运行结果*********************************************************************(2)程序**************************** 方法一:#include <stdio.h>int main (){int i;int fb[12]={1,1};for(i=2;i<12;i++){fb[i]=fb[i-1]+fb[i-2];printf("第%d个月共有兔子%d只\n",i+1,fb[i]*2);}return 0;}*****************************运行结果*********************************************************************************方法二:#include <stdio.h>int main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f1+f2;}return 0;}************************************运行结果******************************************************************(3)程序**************************************** #include<stdio.h>#define num 10int num1(int [],int);int num2(int [],int);int main(){void sort1 (int num1[],int n);void sort2 (int num2[],int n);int a[num], c[num],i,moves,j;printf("enter array here:\n");for(i=0;i<10;i++){j=i;scanf("%d",&a[i]);c[j]=a[i];}printf("the sorted array :\n");sort1(a,num);printf("the sorted array :\n");sort2(c,num);return 0;}void sort1(int num1[],int n){int i,j,temp,b;for(i=0;i<n-1;i++){for(j=1;j<n;j++){if(num1[j]<num1[j-1]){temp=num1[j];num1[j]=num1[j-1];num1[j-1]=temp;}}for(b=0;b<n;b++)printf("%5d",num1[b]);printf("\n");}}void sort2(int num2[],int n){int i,j,min,minidx,temp,b;for(i = 0;i<n-1;i++){min = num2[i];minidx = i;for(j = i+1;j<n;j++){if (num2[j]<min){min = num2[j];minidx = j;}} for(b=0;b<n;b++)printf("%5d",num2[b]);printf("\n");if (min < num2[i]){temp = num2[i];num2[i] = min ;num2[minidx] = temp;}}}******************************运行结果***********************************************************************(4)程序************************************* #include <stdio.h>#define N 10int brnarysearch(int [],int,int);int main(){int nums[N]={1,5,8,9,12,23,45,56,67,99};int item,location;printf("Enter the item you are searching for");scanf("%d",&item);location=brnarysearch(nums,N,item);if(location > -1)printf("The item was found at index location %d\n",location);elseprintf("The item was not found in the list\n");return 0;}#define Ture 1#define False 0int brnarysearch(int list[],int size,int key){int index,found,left,right,midpt;index=-1;found=False;left=0;right=size-1;while ( left <= right && !found){midpt = (int) ((left+right)/2);if (key== list[midpt]){found=Ture;index=midpt;}else if (key > list[midpt])left=midpt + 1;elseright= midpt - 1;}return (index);}**************************************运行结果*********************************第10次试验***********************************程序**************************************** #include<stdio.h>int main(){int a=0,i,k;int b[31];printf("请输入一个十进制数:\n");scanf("%d",&i);while(i!=0){k=i%2;b[a++]=k;i=i/2;}printf("转为二进制数为:\n");while(a>0){printf("%d",b[--a]);}printf("\n");return 0;}***********************************运行结果************************************第9次试验*****************************程序**********************************************#include <stdio.h>#include <stdlib.h>int main(){char name[5][30];int i;int grade[15],num[5];float ave[5];printf("请输入学号、3学科成绩, 姓名,:\n");for(i=0;i<5;i++){scanf("%d",&num[i]);scanf("%d%d%d",&grade[i*3],&grade[i*3+1],&grade[i*3+2]);ave[i]=(grade[i*3]+grade[i*3+1]+grade[i*3+2])/3.0;gets(name[i]);}for(i=0;i<5;i++)printf(" %d %-10s %d %d %d %5.2f\n",num[i],name[i],grade[i*3],grade[i*3+1],gr ade[i*3+2],ave[i]);FILE *outFile;outFile=fopen("C://stud.txt","w");fprintf(outFile," 学号姓名成绩1 成绩2 成绩3 平均成绩\n ");for(i=0;i<5;i++)fprintf(outFile," %d %-10s %5d %5d %5d %5.2f\n",num[i],name[i],grade[i* 3],grade[i*3+1],grade[i*3+2],ave[i]);fclose(outFile);return 0;}***********************************运行结果***********************************第10次试验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’。

云南大学软件学院数据结构实验

云南大学软件学院数据结构实验
云南大学软件学院数据结构实验
———————————————————————————————— 作者:
———————————————————————————————— 日期:
实验难度: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");

云南大学数据库期末大作业:数据库设计

云南大学数据库期末大作业:数据库设计

云南大学软件学院实验报告课程:数据库原理与实用技术实验学期:任课教师:专业:学号:姓名:成绩:期末大作业:Electronic Ventor 数据库设计一、实验目的(1)掌握数据库设计的基本方法(2)掌握各种数据库对象的设计方法(3)熟练掌握DBA必须具备的技能二、实验内容1、根据项目的应用和项目的需求说明文档,进行详细的需求分析,给出需求分析的结果。

(1)客户可以在网站上注册,注册的客户要提供客户的姓名、电话、地址,以方便售后和联系,姓名即作为用户名,和密码一起用于注册和登录,客户编号可唯一识别用户,卡号可网上支付。

其中地址、电话以方便联系和寄货;(2)网站管理员可以登记各种商品,供客户查询,订购。

登记商品时要提供商品的名称、价格,商店中现有商品量,商品编号可唯一识别商品;(3)类别表示商品所属类别,类别编号可唯一识别类别,其中包含了,商品类别名称和制造厂商,可以对商品进行分类售卖;(4)客户可以在网上下订单,也可以到实体店购物,其在订单上所选择的支付方式不同(信用卡、借记卡、现金,现金代表实体店购物),网站管理员可以查看订单,并及时将订单的处理情况更新(比如货物已寄出的信息,订单状态:0:未处理,1:已处理,2:已发货);订单编号可唯一识别订单,订单中包含订单产生时间,订单状态,支付方式和支付总额;(5)实体商店有自己的店名,卖多种商品,每个商店都有固定的地址,顾客可以到店中买商品,(注:在实体店中购买商品的顾客一律将顾客名默认为佚名),当商店中的库存量小于10时会有提醒到仓库中拿货;(6)配送单中包含查询号可唯一识别配送单,配送人,联系方式;(7)仓库中仓库编号可唯一识别仓库,其中每个仓库都有区号,代表其地址。

(8)各实体间关系1)一个客户可以购买多种商品,一种商品可以被多个客户购买;2)一个商品属于且仅属于一种类别,一种类别的商品可以包含多个商品或没有;3)一种商品放在多个商店中销售,一个商店至少销售一种或销售多种商品;4)一个订单对应一个客户,一个客户对应多个订单;5)一个订单对应至少有一件商品或多件,一个商品对应多个订单;6)一个订单可以有一个商品配送单7)一个仓库可以存放多种商品,一种商品可以存放在一个仓库;2、数据库逻辑设计:用文字简要描述实体之间的联系,画出E-R图(标出各联系中实体的基数)。

软件工程实验4

软件工程实验4

云南大学软件学院实验报告序号:实验老师:实验时间:实验名称:学号:姓名:实验目的1.掌握敏捷软件开发、极限编程、软件原型构造等快速软件开发方法2.掌握软件复用的基本概念和相关方法3.掌握设计模式在软件复用和快速软件开发过程中的基本应用方法4.掌握基于构件的软件工程方法实验内容通过查看资料,各小组在组长的带领下讨论下列问题,在归纳总结后以书面形式提交报告。

1.阐述敏捷软件开发、极限编程、软件原型构造方法的基本原理,并举例说明实际使用案例。

答:(1)敏捷开发:允许开发团队将主要精力集中在软件本身,而不是在设计和编码上,它普遍依赖于迭代方法来完成软件描述、开发和移交,主要用于支持业务应用的开发,这里的系统需求总是在开发过程中快速的变化的,软件开发人员通过此方法迅速开发完成和移交可用软件,如果客户提出了新的变化了的需求,软件开发人员就在下一个循环中实现。

(2)极限编程:最为人所熟知的敏捷方法,在极限编程中所有的需求都表示为脚本(称为用户情节),并直接实现为一系列任务,在写代码之前开发人员两两结对工作完成对每个任务的测试描述,并且在新的代码加入到系统中时,所有测试必须成功执行。

(3)软件原型构造方法:原型(Prototype)即把系统主要功能和接口通过快速开发制作为“软件样机”,以可视化的形式展现给用户,及时征求用户意见,从而明确无误地确定用户需求。

同时,原型也可用于征求内部意见,作为分析和设计的接口之一,可方便于沟通。

2.结合第14章内容,回答怎样用快速软件开发方法实现对气象台系统。

答:(1)如果采用敏捷软件开发方法,那么开发团队就需要根据迭代开发方法完成气象台系统的软件描述、开发,并移交给用户使用,并根据用户的反应和回馈,在下一次迭代过程中针对新的需求对系统实现做出改变。

(2)如果采用极限编程,由于极限编程最为人所熟知的敏捷方法,所以在系统的开发实现上它与敏捷软件开发方法是相似的,只是在需求表示方面,极限编程会将气象台系统的需求表示成用户情节,并将其实现为一系列任务。

云南大学汇编运算器实验参考答案

云南大学汇编运算器实验参考答案

硬件实验要求
1、每次硬件实验前必须先预习,实验时请带好硬件实验的
指导书;
2、每次的实验报告都要求手工填写,打印的报告无效,每
次硬件实验开始时请打印好空白的实验报告模板(见第
4页)。

3、实验报告要填写的内容请看各次的实验报告填写要求;
4、每次实验结束后请把实验箱电源线交到讲台处;
5、实验报告提交时间是下次实验课时间,提交时请区分实
验课的选课教师,提交到硬件实验室1429。

硬件实验报告填写内容
实验六运算器实验
1.按实验指导书完成开关控制操作方式的实验内容;
2.画出实验连线图;
3.根据实验步骤,分析总结各步骤设置和控制;
4.实验数据记录
注:填写实验验证过的功能即可
(请自行转化为二进制表示十六进制,可能部分存在错误,自行对照公式表验算。

)
5.实验小结
2.
3.(1) 三态门74244作为输出缓冲器由ALU-G信号控制,ALU-G 为“0”时,三态门开通,此时其输出等于其输入;ALU-G 为“1”时,三态门关闭,此时其输出呈高阻。

(2)本实验中ALU-G和C-G不能同时为0,否则造成总线冲突,损坏芯片!故每次实验时应时刻保持只有一路与总线相通。

(3)按一下脉冲源及时序电路的“单脉冲”按钮,给暂存器LT1(U27,74LS273)送时钟,上升沿有效,把数据存在LT2中
5. (1)掌握运算器的组成及工作原理;
(2)了解4位函数发生器74181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程;
(3)验证带进位控制的74181的功能
(公式请参照运算器实验指导书)
指导教师 (签名):。

实验1实验报告(熟悉实验环境)

实验1实验报告(熟悉实验环境)

实验1实验报告(熟悉实验环境)云南⼤学软件学院实验报告课程:数据库概论实验任课教师:何婧、⾦鑫、秦江龙专业:学号:姓名:成绩:实验1 熟悉实验环境1.安装SQL Server 2008系统(请同学实验课后⾃⼰练习)。

2.找到“SQL Server配置管理器”,查看已经启动了哪些SQL Server服务。

已经启动的服务有: SQL Server(MSSQLSERVER)、SQL Server Browser 、SQLServer(SQLEXPRESS) 。

在服务上点击右键可查看其属性,其中服务类型为“SQL Server”的服务对MicrosoftSQL Server 数据库引擎提供⽀持,必须启动它。

你所启动的SQL Server数据库引擎服务名称是 SQL Server(MSSQLSERVER) 启动SQL Server数据库引擎服务后如何停⽌它:在服务上点击右键,选择停⽌。

3.使⽤“SQL Server Management Studio”(1)了解SQL Server Management Studio的界⾯、菜单结构以及各项功能;SQL Server提供两种⾝份认证⽅式,分别是Windows ⾝份验证和SQL Server ⾝份验证,配置中采⽤的⾝份验证是什么⽅式:Windows ⾝份验证登录的服务器类型为“数据库引擎”,即我们在“SQL Server配置管理器”启动的数据库引擎服务,配置中数据库服务器名称是: DESKTOP-C9RJ11U\SQLEXPRESS (2)通过对象资源管理器了解“数据库服务器”管理的内容及属性配置;你所使⽤的SQL Server服务器管理的数据库的默认数据存储位置是:C:\ProgramFile(x86)\MicrosoftSQLServer\140\Tools\Binn\ManagementStudio默认⽇志存储位置是:__C:\Program Files (x86)\Microsoft SQL Server\(3) 进⼊master数据库。

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

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

云南大学软件学院实验报告课程:数据库原理与实用技术实验学期:2012-2013学年第二学期任课教师:薛岗实验4 数据查询一、实验目的1理解T-SQL语言的使用。

2熟练掌握数据查询语句。

3掌握合计函数的使用。

二、实验内容D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA一、CAP数据库的查询(记录每个查询的SQL语句和查询结果)1建立CAP数据库,输入C、A、P、O四张表;2完成课后习题[3.2]b、[3.5]、[3.8]a,b、[3.11]b,f,j,l(1)答:建好数据库及其表后如下所示(1)输入表1CUSTOMERS得:(2)得:(3)insert into ORDERS values ('1011','jan','c001','a01','p01','1000','450.00'); insert into ORDERS values ('1012','jan','c001','a01','p01','1000','450.00'); insert into ORDERS values ('1019','feb','c001','a02','p02','400','180.00'); insert into ORDERS values ('1017','jan','c001','a06','p03','600','540.00'); insert into ORDERS values ('1018','jan','c001','a03','p04','600','540.00'); insert into ORDERS values ('1023','mar','c001','a04','p05','500','450.00'); insert into ORDERS values ('1022','mar','c001','a05','p06','400','720.00'); insert into ORDERS values ('1013','jan','c002','a03','p03','1000','880.00'); insert into ORDERS values ('1026','may','c002','a05','p03','800','704.00'); insert into ORDERS values ('1015','jan','c003','a03','p05','1200','1104.00'); insert into ORDERS values ('1014','jan','c003','a03','p05','1200','1104.00'); insert into ORDERS values ('1021','feb','c004','a06','p01','1000','460.00'); insert into ORDERS values ('1016','jan','c006','a01','p01','1000','500.00'); insert into ORDERS values ('1020','feb','c006','a03','p07','600','600.00'); insert into ORDERS values ('1024','mar','c006','a06','p01','800','400.00');得(4)insert into PROUDCTS values('p01','comb','Dallas','111400','0.50');insert into PROUDCTS values('p02','brush','Newark','203000','0.50');insert into PROUDCTS values('p03','razor','Duluth','150600','1.00');insert into PROUDCTS values('p04','pen','Duluth','125300','1.00');insert into PROUDCTS values('p05','pencil','Dallas','221400','1.00');insert into PROUDCTS values('p06','folder','Dallas','123100','2.00');insert into PROUDCTS values('p07','case','Newark','100500','1.00');得:2完成课后习题[3.2]b、[3.5]、[3.8]a,b、[3.11]b,f,j,l3.2b:语句:select aid from AGENTS where[[percent]=(select max([[percent])fromAGENTS);结果为:3.5:(1)原语句1:select aid,aid from CUSTOMERS c,agents awhere not exists(select*from orders xwhere x.cid=c.cid and x.aid=a.aid);(2)另一种改法,语句2:select cid,aid from CUSTOMERS c,agents awhere cid not in(select cid from orders xwhere x.cid=c.cid and x.aid=a.aid)and aid not in(select aid from orders xwhere x.cid=c.cid and x.aid=a.aid);对应结果如下:结果1:结果2:3.8:(a)语句:select cid,MAX(dollars)as maxspent from orders group by cid;结果:(b)语句:select avg(a.maxspent)as average from (select cid,MAX(dollars)asmaxspent from orders group by cid)a; 结果:3.11:(b)语句:select cid,avg(qty)as average from orders group by cid,pid havingavg(qty)>=300;结果: C(f)语句:select distinct pid from orders o,customers c where c.cid=o.cid andc.city='Dallas',结果:(i)语句:update AGENTS set[[percent]=[[percent]*1.1 where aid='a04';(j)语句1:update proudcts set price=price*1.1 where city='Duluth'orcity='Dallas'select*from proudcts;语句2:update proudcts set price=price/1.1 where city='Duluth'or city='Dallas' select*from proudcts;结果:结果1结果22、Employee数据库的查询(记录每个查询的SQL语句和查询结果)(1)向表中插入数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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月累积的员工的实发工资按降序排序。

相关文档
最新文档