云南大学--软件学院--数据库实验4
数据库实验四
数据库实验四在学习数据库的过程中,实验是帮助我们深入理解和掌握相关知识的重要环节。
本次数据库实验四主要围绕着数据库的查询、更新以及数据完整性等方面展开。
实验的目的是让我们通过实际操作,更加熟练地运用 SQL 语句来处理数据库中的数据,同时加深对数据库原理和概念的理解。
在实验开始之前,我们首先需要准备好相关的数据库环境。
这包括安装数据库管理系统,如 MySQL 或 SQL Server 等,并创建好实验所需的数据库和数据表。
本次实验中,我们创建了一个名为“students”的数据库表,用于存储学生的基本信息,如学号、姓名、年龄、性别和所在班级等。
同时,还创建了一个名为“courses”的表,用于存储课程的信息,包括课程编号、课程名称和授课教师等。
接下来,就是实验的核心部分——数据查询操作。
通过使用 SQL 的 SELECT 语句,我们可以从数据库中获取所需的数据。
例如,要查询所有年龄大于 20 岁的学生信息,可以使用以下语句:```sqlSELECT FROM students WHERE age > 20;```除了简单的条件查询,我们还学习了如何进行多表连接查询。
比如,要获取同时选修了“数据库原理”和“操作系统”两门课程的学生信息,就需要将“students”表、“courses”表以及选课关系表进行连接查询。
数据更新操作也是实验中的重要内容。
通过使用 UPDATE 语句,我们可以对数据库中的数据进行修改。
但在进行数据更新时,一定要谨慎操作,确保更新的结果符合预期,避免造成数据的错误或丢失。
例如,如果要将某个学生的年龄增加一岁,可以使用以下语句:```sqlUPDATE students SET age = age + 1 WHERE student_id ='_____';```在实验过程中,数据完整性的维护也是至关重要的。
我们通过设置主键、外键以及各种约束条件,来确保数据的准确性和一致性。
云南大学软件学院数据结构实验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%)(本部分应包括:抽象数据类型各操作的具体实现代码、关键操作的具体算法实现、函数实现,主程序实现等,并给出关键算法的时间复杂度分析。
云南大学软件学院综合技能实践-开发环境实验指导书
云南大学软件学院综合技能实践——《常用开发平台的安装和使用》实验指导书指导教师:梁宇蔡莉(注意:请先简要阅读实验指导书的要求再开始做实验)第一部分 JSP开发环境的搭建一、实验目的:1.掌握JSP开发环境搭建的具体步骤和操作方法。
2.掌握在JSP开发环境下创建一个简单JSP文件的方法。
3.掌握在JSP中创建虚拟目录的方法。
二、实验内容预习一、JSP概述JSP(Java Server Pages,Java服务器主页)技术为创建显示动态生成内容的Web页面提供了个简捷而快速的方法。
JSP技术的设计目的使得构造基于Web 的应用程序更加容易和快捷,这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。
JSP的明显优势如下:平台和服务器的独立性。
基于Java的JSP与平台无关,它可以使用任何web服务器(包括Apache、IIS和PWS)。
使用的脚本语言。
JSP使用Java作为它的脚本语言,其面向对象的编程思想较为优秀。
JSP跨平台的可重用性。
J3P组件(Enterprise JavaBeans,JavaBeans)都是跨平台可重用的。
EJB(Enterprise JavaBeans,企业级JavaBeans)组件可以访问传统的数据库,并能以分布式系统模式工作于UNIX 和Windows平台。
多样化和功能强大的开发工具支持。
JSP已经有了许多非常优秀的开发工具而是有许多可以免费获取,且其中行许多开发工具已经可以顺利地运行于多种平台之下。
二、建立JSP的运行环境由于JSP使用Java作为程序设计脚本语言,因此需要建立Java的运行环境。
编译和调试运行Java程序,需要安装JDK(Java Develop Kit,Java开发工具包)。
另外,JSP是基于Web的Java应用程序,因而它需要有特定的运行环境,即解释器。
由于Java语言是跨平台的,所以能解释Java语言的Web服务器与平台无关。
云南大学软件学院计算机网络原理实验四
实验四、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,下载区常用数据库的安装和调试文件夹下载相关软件。
云南大学设计模式实验报告4_命令模式
云南大学软件学院实验报告序号:姓名:学号:专业:软件工程日期:2015.12.21 成绩:实验四命令模式的运用一、实验目的:命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。
在熟悉命令模式相关理论知识的基础上,使用命令模式实现图片处理程序。
二、实验要求:使用命令模式实现图片处理程序,要求如下:1.图片处理程序要有3张图片。
2.每张图片至少有3种操作。
3.实现类似遥控器的菜单,动态的选择对图片进行的处理。
4.要有“撤消操作”,撤消操作要可以撤销至最后一步。
1、设计并绘制该程序的类图;2、依照设计的类图使用Java语言编写代码,并实现该程序;3、除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:a)控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;b)控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出;c)设计并实现用户UI,Client初始化测试环境,并根据用户在UI控件上的输入运算,运行结果文本输出;三、实验内容:实验类图:实验代码:1 DrawControl类public class DrawControl {ArrayList<DrawCommand> dcommand=new ArrayList<DrawCommand>();public void addCommand(DrawCommand dc){dcommand.add(dc);}public void removeCommand(DrawCommand dc){for(int i=0;i<dcommand.size();i++)if(dcommand.get(i).getClass().equals(getClass())){dcommand.remove(i);}}public void executeCommand(DrawCommand dc){for(int i=0;i<dcommand.size();i++)if(dcommand.get(i).getClass().equals(getClass())){dcommand.get(i).execute();}}public void undoCommand(DrawCommand dc){if (dcommand.size() > 1) {dcommand.get(dcommand.size() - 1).undo();dcommand.remove(dcommand.size() - 1);} elseSystem.out.println("Here is end, you can't undo");}}2 DrawCommand接口类package design4;interface DrawCommand {public void execute();public void undo();}3 Circular类public class Circular extends JPanel {Ellipse2D e =null;private int w,h;int f;public Circular(int w,int h){this.w=w;this.h=h;} //画圆型public void drawCircular(){e=new Ellipse2D.Double(w/2,h/4,50,50);f=1;repaint();} //画椭圆形public void drawEllipse(){e=new Ellipse2D.Double(w/2,h/4,20,70);f=1;repaint();} //画实心圆public void drawSolidRound(){f=2;e=new Ellipse2D.Double(w/2,h/4,50,50);repaint();}public void paintComponent(Graphics g){super.paintComponent(g);if(f==1){Graphics2D g2=(Graphics2D) g;g2.draw(e);}else{Graphics2D g2=(Graphics2D) g;//g2.draw(e);g2.setPaint(Color.RED);g2.fill(e);}}}4 Circular Command类package design4;public class CircularCommand implements DrawCommand{ Circular circular;public CircularCommand(Circular c){circular=c;}public void execute() {circular.drawCircular();}public void undo() {// TODO Auto-generated method stub}}5 DrawJFrampackage design4;import java.awt.Container;import java.awt.GridLayout;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;public class DrawJFram extends JFrame implements ActionListener{JComboBox comboBox,comboBox2,comboBox3;String[] str={"圆形","椭圆","实心圆"};String[] str2={"方形","正方形","长方形"};String[] str3={"三角形","等腰直角三角形","等边三角形"};public DrawJFram (){super(" ");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setcomputerWindow();}private void setcomputerWindow() {// TODO Auto-generated method stub Container ct=this.getContentPane();Container ct=this.getContentPane();ct.setLayout(new GridLayout(6,1));Panel p1=new Panel();p1.add(new JLabel("圆形:"));comboBox=new JComboBox(str);p1.add(comboBox);p1.add(new JLabel("方形:"));comboBox2=new JComboBox(str2);p1.add(comboBox2);p1.add(new JLabel("三角形:"));comboBox3=new JComboBox(str3);p1.add(comboBox3);comboBox.addActionListener(this);comboBox2.addActionListener(this);comboBox3.addActionListener(this);ct.add(p1,"North");}public void actionPerformed(ActionEvent e) {if(e.getSource().equals(comboBox)){if(comboBox.getSelectedItem().equals("圆形")){Circular circular=new Circular(100, 100);this.add(circular,"South");circular.drawCircular();this.setVisible(true);}else if(comboBox.getSelectedItem().equals("椭圆")){Circular circular=new Circular(30, 70);this.add(circular,"South");circular.drawEllipse();this.setVisible(true);}else if(comboBox.getSelectedItem().equals("实心圆")){Circular circular=new Circular(50, 50);this.add(circular,"South");circular.drawSolidRound();this.setVisible(true);}}else if(e.getSource().equals(comboBox2)){if(comboBox2.getSelectedItem().equals("方形")){Rectangle rectangle=new Rectangle(100, 100);this.add(rectangle,"South");rectangle.drawhighRectangle();this.setVisible(true);}else if(comboBox2.getSelectedItem().equals("长方形")){ Rectangle rectangle=new Rectangle(100, 100);this.add(rectangle,"South");rectangle.drawlongRectangle();this.setVisible(true);}else if(comboBox2.getSelectedItem().equals("正方形")){ Rectangle rectangle=new Rectangle(100, 100);this.add(rectangle,"South");rectangle.drawsquare();this.setVisible(true);}}else if(e.getSource().equals(comboBox3)){if(comboBox3.getSelectedItem().equals("三角形")){Triangle triangle=new Triangle(500, 10);this.add(triangle,"South");triangle.drawTriangle();this.setVisible(true);}else if(comboBox3.getSelectedItem().equals("等腰直角三角形")){ Triangle triangle=new Triangle(500, 30);this.add(triangle,"South");triangle.drawIsoscelesTriangle();this.setVisible(true);}else if(comboBox3.getSelectedItem().equals("等边三角形")){ Triangle triangle=new Triangle(500, 50);this.add(triangle);triangle.draweQuilateralTriangle();this.setVisible(true);}}}}6 pictureMainpackage design4;import java.awt.Dimension;import java.awt.Toolkit;public class pictureMain {public static void main(String[] args) {// TODO Auto-generated method stubToolkit kit=Toolkit.getDefaultToolkit();Dimension screenSize=kit.getScreenSize();int screenHeihgt=screenSize.height;int screenWidth=screenSize.width;DrawJFram drawJFram=new DrawJFram();drawJFram.setSize(screenWidth,screenHeihgt);drawJFram.setVisible(true);}}实验结果四、实验总结:我经过本次命令模式的实验,通过自己动手编代码,是自己理解命令模式机制,并且知道命令模式有以下的优点:适用性:想要实现回调函数功能,想要在不同的时刻指定、排列和执行请求,需要支持取消和改变日志操作;效果:命令模式将调用操作的对象与知道如何实现该操作的对象解耦,Command是头等的对象。
云南大学软件学院数据库实验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:。
云南大学软件学院数据结构实验
实验难度: 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’。
云南大学数据库期末大作业:数据库设计
云南大学软件学院实验报告课程:数据库原理与实用技术实验学期:任课教师:专业:学号:姓名:成绩:期末大作业: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图(标出各联系中实体的基数)。
云南大学软件学院数据结构实验
———————————————————————————————— 作者:
———————————————————————————————— 日期:
实验难度: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");
实验报告4
实验报告课程名称:高级语言程序设计实验四:选择结构程序设计班级:学生姓名:学号:专业:指导教师:学期:2011-2012学年上学期云南大学信息学院一、 实验目的1、掌握关系运算和逻辑运算2、掌握选择结构相关语句的使用3、训练所学知识的综合应用二、 知识要点1、关系运算及运算符2、逻辑运算及运算符3、选择结构相关语句if 、if-else 、if 嵌套、switch 等的意义、语法格式及使用4、容易混淆的“==”与“=”运算符三、 实验预习(要求做实验前完成)1、写出6种比较运算符:2、写出3种逻辑运算符:3、“a 和b 都是正数”的逻辑表达式是:4、“a 比b 大,或者c 比b 大” 的逻辑表达式是:5、“a 等于b ,但是c 不等于d ” 的逻辑表达式是:6、“y 大于等于x1且小于等于x2” 的逻辑表达式是:7、“x 不等于0” 的逻辑表达式是:四、 实验内容 (要求提供:① 算法描述或流程图 ② 源程序 )1、编程序,计算下面分段函数的值(if-else )⎪⎩⎪⎨⎧≥-<≤+<+=)15(102)150(53)0(10x x x x x x y2、编写程序,输入一个小写英文字母,如果它位于字母表的前半部分,输出它的后一个字母;位于后半部分时输出它的前一个字母(if-else )。
3、输入某学生的考试成绩等级A 、B 、C 、D (或a 、b 、c 、d ),要求按照等级输出对应的分数段。
A 级对应的分数段为85~100分;B 级对应分数段为70~84;C 级对应分数段为60~69;D 级对应分数段位60分以下(switch )。
4、输入某学生的考试成绩,如果在90分以上,输出“A ”;80~89分输出“B ”;70~79分输出“C ”;60~69分输出“D ”;60分以下则输出“E ”(if-else 或swiitch )。
五、实验结果(要求写出运行界面及输出的运行结果)六、实验小结。
数据库实验报告 (4)
一实验题目1.索引的建立和删除操作2.视图的创建、修改、更新和查询操作二实验目的1.掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。
2.掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。
三实验内容1.索引的建立和删除操作(1)在S表中,建立按照sno升序的惟一性索引snoIDX。
(2)在SC表中,建立按照学号升序和课程号降序的唯一性索引scIDX。
(3)在S表中,按照生日建立一个非聚簇索引birthdayIDX。
(4)在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。
(5)删除索引cnameIDX。
2.视图的创建、修改、更新和查询操作(1)建立一个关于所有女生信息的视图S_GIRL。
(2)将各系学生人数,平均年龄定义为视图V_NUM_A VG(3)建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。
(4)建立一个所有学生课程成绩的视图S_GRADE,包括基本学生信息,课程信息和成绩。
(5)在视图S_GRADE基础之上,建立一个两门课以上成绩不及格的学生情况视图FAIL_GRADE。
(6)建立一个至少选修了4门课及4门课以上的学生信息的视图SC_FOUR。
(7)修改视图S_GIRL,要求只显示1997年以前出生的女生信息。
(8)在视图FAIL_GRADE查询不及格超过2门课的学生信息。
(9)删除视图S_GRADE。
(10)通过视图S_GIRL,将“王丹”的名字修改为“汪丹”,并查询结果。
(11)通过视图S_GIRL,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,1996-8-8),并查询结果。
(12)通过视图S_GIRL,删除1995年出生的女生信息,并查询结果。
(13)通过视图S_GRADE,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。
(14)通过视图COMPUTE_A VG_GRADE,将“4121090301”学生的平均分改为90分,是否可以实现,请说明原因。
软件工程实验4
云南大学软件学院实验报告序号:实验老师:实验时间:实验名称:学号:姓名:实验目的1.掌握敏捷软件开发、极限编程、软件原型构造等快速软件开发方法2.掌握软件复用的基本概念和相关方法3.掌握设计模式在软件复用和快速软件开发过程中的基本应用方法4.掌握基于构件的软件工程方法实验内容通过查看资料,各小组在组长的带领下讨论下列问题,在归纳总结后以书面形式提交报告。
1.阐述敏捷软件开发、极限编程、软件原型构造方法的基本原理,并举例说明实际使用案例。
答:(1)敏捷开发:允许开发团队将主要精力集中在软件本身,而不是在设计和编码上,它普遍依赖于迭代方法来完成软件描述、开发和移交,主要用于支持业务应用的开发,这里的系统需求总是在开发过程中快速的变化的,软件开发人员通过此方法迅速开发完成和移交可用软件,如果客户提出了新的变化了的需求,软件开发人员就在下一个循环中实现。
(2)极限编程:最为人所熟知的敏捷方法,在极限编程中所有的需求都表示为脚本(称为用户情节),并直接实现为一系列任务,在写代码之前开发人员两两结对工作完成对每个任务的测试描述,并且在新的代码加入到系统中时,所有测试必须成功执行。
(3)软件原型构造方法:原型(Prototype)即把系统主要功能和接口通过快速开发制作为“软件样机”,以可视化的形式展现给用户,及时征求用户意见,从而明确无误地确定用户需求。
同时,原型也可用于征求内部意见,作为分析和设计的接口之一,可方便于沟通。
2.结合第14章内容,回答怎样用快速软件开发方法实现对气象台系统。
答:(1)如果采用敏捷软件开发方法,那么开发团队就需要根据迭代开发方法完成气象台系统的软件描述、开发,并移交给用户使用,并根据用户的反应和回馈,在下一次迭代过程中针对新的需求对系统实现做出改变。
(2)如果采用极限编程,由于极限编程最为人所熟知的敏捷方法,所以在系统的开发实现上它与敏捷软件开发方法是相似的,只是在需求表示方面,极限编程会将气象台系统的需求表示成用户情节,并将其实现为一系列任务。
实验四数字音频处理实验报告
实验四数字音频处理实验报告云南大学软件学院实验报告序号:姓名:学号:指导教师:刘春花,刘宇成绩:实验四数字音频处理一、实验目的1、熟悉并掌握MATLAB工具的使用;2、实现音频文件的生成、读取、播放和转换的基本操作。
二、实验环境MATLAB 6.5以上版本、WIN XP或WIN2000计算机三、实验内容1、用matlab 产生音乐。
在matlab命令窗口执行下列命令,并回答问题cf = 220;sf = 22050;d = 0.5;n = sf * d;t = (1:n)/sf;s0 = sin(2*pi*cf*t);sound(s0, sf);1)信号的频率是多少? 采样频率是多少?采样间隔是多少?一共有多少个采样点?声音有多少秒?频率:220 采样频率:22050 采样间隔: (1:n)/sf采样点: sin(2*pi*cf*t) 时长:0.5s2)请解释sound(s, sf)函数的参数和实现的功能。
如果把sound(s0,sf)改为sound(s0,2*sf)听起来会有什么不同,为什么?时间更短,因为频率发生改变,变成了原来的2倍3)执行sound1.m,听一听,能否在此程序基础上做修改,实现一小段音乐旋律,时间不少于10秒。
并保存为为wav文件。
2、1)读取wav 文件。
获取相应参数,填空执行语句:[B, fs, nbits]=wavread('C:\TEMP\hootie.wav'); % loads the clip size(B); % the size of Bsound(B,fs) % plays the sound.采样频率:44100采样位数:16采样通道数:2采样数据率:1411200采样时间:2)对wav文件做回声处理变换。
(对矩阵做变换)四、实验小结,总结实验中出现的问题和解决方法;通过此次实验你的收获;对本次实验有无改进的意见。
1.在实验过程中遇到的问题包括代码错误,无法读取保存wav文件,以及回音算法的应用。
云南大学软件学院数据库实验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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
云南大学软件学院实验报告课程:数据库原理与实用技术实验学期: 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)向表中插入数据。
use Employee1INSERT INTO department values('001','营销部');INSERT INTO department values('002','财务部');INSERT INTO department values('003','人事部');INSERT INTO department values('004','采购部');select*from departmentINSERT INTO person values('000001','田林','男','1982/4/7','初级','001');INSERT INTO person values('000002','郭达','男','1953/2/14','高级','001');INSERT INTO person values('000003','王林','女','1984/8/25','初级','002');INSERT INTO person values('000004','王辉','男','1984/5/11','初级','002'); INSERT INTO person values('000005','罗大右','男','1968/12/10','高级','002'); INSERT INTO person values('000006','蔡琴','女','1978/4/20','中级','003'); INSERT INTO person values('000007','李艳','女','1960/5/14','高级','001'); INSERT INTO person values('000008','刘德华','男','1971/2/19','高级','003'); INSERT INTO person values('000009','黎明','男','1973/10/9','中级','002'); select*from personINSERT INTO salary values('000001', 2100,500,1);INSERT INTO salary values('000002', 3000,600,1);INSERT INTO salary values('000003', 2800,450,1);INSERT INTO salary values('000004', 2500,340,1);INSERT INTO salary values('000005', 3200,490,1);INSERT INTO salary values('000006', 2700,600,1);INSERT INTO salary values('000007', 4000,200,1);INSERT INTO salary values('000008', 2800,350,1);INSERT INTO salary values('000009', 2760,440,1);INSERT INTO salary values('000001', 2400,600,2);INSERT INTO salary values('000002', 2800,400,2);INSERT INTO salary values('000003', 2860,350,2);INSERT INTO salary values('000004', 2540,320,2);INSERT INTO salary values('000005', 3200,480,2);INSERT INTO salary values('000006', 2700,300,2);INSERT INTO salary values('000007', 4000,250,2);INSERT INTO salary values('000008', 2800,300,2);INSERT INTO salary values('000009', 2760,480,2);INSERT INTO salary values('000001', 2200,500,3);INSERT INTO salary values('000002', 3100,400,3);INSERT INTO salary values('000003', 2800,650,3);INSERT INTO salary values('000004', 2500,540,3);INSERT INTO salary values('000005', 3200,400,3);INSERT INTO salary values('000006', 2700,660,3);INSERT INTO salary values('000007', 4100,400,3);INSERT INTO salary values('000008', 2000,330,3);INSERT INTO salary values('000009', 2760,420,3);select*from salary图表 13 表的内容图表 14 修改Fact的值(2)将职工编号为000006的员工3月份基本工资增加为3000,奖金增加到800。