精华内容
下载资源
问答
  • 实验四oracle数据库对象.docx
    2021-05-08 18:24:14

    41528d3028836879cd698677c3999917.gif实验四oracle数据库对象.docx

    实验四ORACLE数据库对象一、实验目的了解ORACLE的表、视图、索引、序列、同义词的基本概念和基本用法。二、实验内容和步骤1、查看用户具有的对象和可访问的对象(操作结果截图填入空白处)以SCOTT连接数据库。(1)查看用户模式中各种类型的对象数量SELECTOBJECT_TYPE,COUNTFROMUSER_OBJECTSGROUPBYOBJECT_TYPE(2)确定用户模式有权访问的对象总数SELECTOBJECT_TYPE,COUNTFROMALL_OBJECTSGROUPBYOBJECT_TYPE(3)确定谁拥有用户能够看见的对象SELECTDISTINCTOWNERFROMALL_OBJECTS2、创建基本表(填入代码)创建上图基本表KHB,要求表创建在表空间USER_DATA3、创建临时表(填入代码)(1)创建一个基于会话的临时表。A创建临时表TMP_KHB_1(与KHB同结构)B插入一条记录KHBH’00000001’,KHMC’AAA’C以SCOTT用户启动第2个SQLPLUS会话;D在第2个会话中查询TMP_KHB_1;(操作代码及操作结果截图)观察是否可以看见第1个会话插入的数据,为什么不能,因为基于会话的临时表只对当前会话可见。每个会话只能查看和修改自己的数据。E插入一条记录KHBH’00000002’,KHMC’BBB’F在第1个会话中查看第2个会话的数据;(操作代码及操作结果截图)观察是否可以看见第2个会话插入的数据,为什么不能,因为基于会话的临时表只对当前会话可见。每个会话只能查看和修改自己的数据。G在第1个会话中,将表截断;H在第2个会话中,观察表中是否仍然存在记录;(操作代码及操作结果截图)表中是否仍然存在记录为什么是,因为基于会话的临时表只对当前会话可见。每个会话只能查看和修改自己的数据。(2)创建一个基于事务的临时表A创建临时表TMP_KHB_2(与KHB同结构)B插入一条记录KHBH’00000001’,KHMC’AAA’C查询TMP_KHB_2;(操作代码及操作结果截图)D事务提交COMMITE再次查询TMP_KHB_2;(操作代码及操作结果截图)是否能查询到数据为什么不能,因为基于事务的临时表中的数据仅在事物过程中有效,当事物提交后,临时表的暂时段将被自动截断4、创建分区表(填入代码)(1)创建范围分区A创建范围分区表RANGE_TESTRANGE_TESTT_IDNUMBERPRIMARYKEY,ITEM_IDNUMBER8NOTNULL,ITEM_DESCRIPTIONVARCHAR2300分区字段为T_ID,以值2000SELECTENAME,SALFROMEMPWHERETRUNCSAL20008、创建序列(填入代码)(1)创建一个表CREATETABLETMP_SQIDINTNULL,T_NAMEVARCHAR20(2)创建一个序列,初始值1,增量1,无最大值,序列不循环。(3)插入数据INSERTINTOTMP_SQID,T_NAMUESSEQ_TESTNEXTVAL,’AAA’INSERTINTOTMP_SQID,T_NAMUESSEQ_TESTNEXTVAL,’BBB’(4)建立触发器,当有数据插入表TMP_SQ时,使用ORACLE序列为其插入递增的主键值。CREATETRIGGERTRG_TESTBEFOREINSERTONTMP_SQFOREACHROWBEGINSELECTSEQ_TESTNEXTVALINTONEWIDFROMDUALEND(5)删除数据T_NAME’BBB’(6)插入新数据T_NAME’CCC’(7)显示当前表中数据(操作代码及操作结果截图)9、创建同义词(填入代码)(1)公有同义词A以SYSTEM用户连接数据库B创建EMP表的公有同义词EC以SCOTT连接数据库D访问同义词E(操作代码及操作结果截图)SCOTT用户能访问SYSTEM用户创建的公共同义词E吗______可以_____________(2)私有同义词A以SYSTEM用户连接数据库CONNSYTEM/TOORB创建DEPT表的私有同义词D_SCREATESYNONYMD_SFORSCOTTDEPTC以SCOTT用户连接数据库CONNSCOTT/TIGERD访问同义词D_S(操作代码及操作结果截图)SCOTT用户能访问SYSTEM用户创建的私有同义词D_S吗__不能________三、实验思考1、两个表经常进行连接操作,为了提高连接的效率,可以对这两个表建立什么结构2、序列的作用序列生成了,怎么使用呢当你需要一个自动增长的ID或别的什么主键的时候,你可以用一个序列来解决问题。3、位图索引能加快检索的原因索引就是通过事先排好序,从而在查找时可以应用二分查找等高效率的算法。一般的顺序查找,复杂度为ON,而二分查找复杂度为OLOG2N。当N很大时,二者的效率相差及其悬殊。

    更多相关内容
  • 实验题目、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)、实验调试与结果分析、实验小结、建议和体会】 实验1.有如下的程序: (1)这个程序在编译时会出现错误...
  • 根据陕西科技大学实验指导书写的代码,其实也不确定是否正确,就是好多啊,期待完善 也希望能够多多关注,多多提意见,谢谢
  • 创建一个网页 Default.aspx 用户输入姓名年龄如图 2 所示单击确定按钮后页面跳 转到 Welcome.aspx 并显示用户刚才输入的信息 如图 3 所示 要求只能采用 Response 和 Request 对象 页面跳转采用 GE
  • 一、实验内容XP基础XP核心实践相关工具二、实验要求1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》课程2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行...

    一、实验内容

    XP基础

    XP核心实践

    相关工具

    二、实验要求

    1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》课程

    2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导

    3.严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

    三、实验步骤

    1. 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。

    public class CodeStandard {

    public static void main(String [] args){

    StringBuffer buffer = new StringBuffer();

    buffer.append('S');

    buffer.append("tringBuffer");

    System.out.println(buffer.charAt(1));

    System.out.println(buffer.capacity());

    System.out.println(buffer.indexOf("tring"));

    System.out.println("buffer = " + buffer.toString());

    if(buffer.capacity()<20)

    buffer.append("1234567");

    for(int i=0; i

    System.out.println(buffer.charAt(i));

    }

    }

    152002c0926c7078f67094de2edc88c2.png

    2. 在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。

    b21914baa3409477d3baa406f86ad401.png

    3. 完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

    502e4aab1b4925509999efcf6cdd7b83.png

    4. 以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。提交学习成果码云链接和代表性成果截图,要有学号水印。

    ae6692f03951de99eb90a31da0060809.png

    四、实验过程中遇到的问题

    五、实验体会与总结

    java的反转课堂结束了,但是java实验还是依然的灵活,让我们可以在课下使用课余时间来学习完成,这仍然是其他实验课没法比拟的,因此我们需要把握住这种学习的机会,将java课学好,让学习的过程更有意义。

    步骤

    耗时

    百分比

    需求分析

    10分钟

    20%

    设计

    10分钟

    20%

    代码实现

    20分钟

    40%

    测试

    5分钟

    10%

    分析总结

    5分钟

    10%

    展开全文
  • 一、实验目的及要求 内容: (1)定义一个具体的类(如Point类),该类应包含构造函数、析构函数; (2)定义一个组合类(如Line类),该组合类应该含有(1)中所定义的基本类内嵌对象,定义该组合类的构造及析构...

    以前的博客:
    C++ 构造函数+析构函数+函数参数的传递
    C++ 模块累积的理解

    一、实验目的及要求

    内容:
    (1)定义一个具体的类(如Point类),该类应包含构造函数、析构函数;
    (2)定义一个组合类(如Line类),该组合类应该含有(1)中所定义的基本类内嵌对象,定义该组合类的构造及析构函数;
    (3)利用所定义的组合类实现一定的具体功能。
    要求:
    1)掌握对象与类的基本概念、定义与使用;
    (2)构造函数、析构函数的定义与使用;
    (3)组合类的用法;
    (4)记录并分析实验结果,撰写实验报告。

    二、实验过程及实验结果分析

    1.模块的引入:
    万物皆模块。对于模块没有一个明确的定义,可以把一个int变量看成是一个模块,可以把一个for语句看成是一个模块,也可以把一个函数看成是一个模块。

    2.复杂模块类、对象:
    在C++中,引入了类对象,可以把类对象看成是一个模块。
    (1)类的语法描述和抽象意义
    从信息封装和屏蔽角度来说,类模块的成员分为内部成员和对外接口;从数据操作角度来说,类的成员分为数据成员和函数成员,后者即操作数据的成员。
    (2)类的对外可见性
    由模块定义了对外展示哪些接口。
    必须满足:仅对外公开接口,但是模块内部的所有元素都是相互可见的。
    (3)存储
    在C语言里,结构体也相当于一个模块,先来回顾一下结构体的存储:结构体所占用的内存等于其各部分子元素变量的空间之和。
    我们可以拓展到类和对象,对于数据成员来说,他的存储和结构体的存储类似;对于函数成员来说,类仅仅是给函数提供了一个作用域。
    需要注意的是,两成员的地位平等,均可以通过对象名,成员名调用。
    (4)构造
    一个模块,由要素集合和关联关系组成。对于一个int变量,我们可以直接进行赋值,赋值可以看成是已经构造好然后只需要组装。
    对于类和对象来说,由于构造规则复杂且不同,必须要有构造函数,构造函数的语法是与类同名。
    构造函数可以分为默认构造函数,无参构造函数,有参构造函数,拷贝构造函数,
    对于这四类函数的区分可以结合函数重载进行理解。
    (5)析构
    C语言里的局部变量在使用完毕后要释放内存空间,而模块使用后也要把申请的资源释放掉,但是不能单纯的释放空间来达到限制模块的作用域的目的,这就需要析构函数把模块申请的资源释放掉。
    (6)类与对象的函数参数传递
    先来回想一下函数调用的过程:1.记录返回地址 2.为被调函数的执行分配资源,创造运行条件3.将控制交给被调函数执行。
    函数在进行参数传递时,有两种方式,传值调用和传引用调用,这两种方式的区别就在于第二步资源的分配。前者会为实参数据在被调函数内部生成数据副本,后者是直接操作主调函数被的原始数据。
    也就是说,对于类模块的参数传递中的传值方式,将会把主调函数中的实参转化为被调函数空间里的形参。
    对于普通的变量(相当于C语言中的局部变量),这一过程仅仅是申请空间后进行赋值,执行完毕后系统会释放其内存,这也就保证了他的作用域。
    而对于有自己的元素组成和构造方式的模块来说,仅仅是单纯的申请空间是无法生成新的模块的,这就需要用拷贝构造函数用实参生成形参。在执行完毕后,也不能单纯的释放空间来达到限制模块的作用域的目的,这就需要析构函数把模块申请的资源释放掉。
    对于参数传引用的方式,仅仅是对同一个数据模块,在主调函数里是一个名字,在被调函数里是一个名字,相当于一个人的大名和小名~在这种方式下,无论是简单的变量,还是复杂的类对象,处理和理解都是一样的。
    实验代码:

    #include <iostream>
    using namespace std;
    class Point{///定义一个类对象相当于一个模块
    	private:
    		int x,y;///类对象的数据成员,对外不可见
    	public:///类对象的对外接口
        ///构造函数:与类同名,初始化对象的数据成员,使得小模块形成完整模块
    		Point(int px,int py):x(px),y(py){
    		  cout<<"普通构造函数生成"<<this<<endl;;
    		  ShowPoint();
    		}
        ///拷贝构造函数:完成完整模块之间的复制
    		Point(Point& p):x(p.x),y(p.y){
    		  cout<<"拷贝构造函数生成"<<this<<endl;
    		  ShowPoint();
    		}
        ///显示函数
    		void ShowPoint(){ cout<<"("<<x<<","<<y<<")"<<this<<endl;}
        ///析构函数:在类前面加~,释放模块申请的资源
    		~Point(){cout<<"析构函数调用"<<this<<endl;}
    };
    ///void ShowPointInfo(Point p) 传值调用:为实参数据在被调函数内部生成数据副本
    ///void ShowPointInfo(Point& p) 传引用调用:直接操作主调函数被的原始数据
    void ShowPointInfo(Point p){
    	cout<<"ShowPointInfo begin"<<endl;
    	p.ShowPoint() ;
        cout<<"ShowPointInfo end"<<endl;
    }
    ///传值调用需要用拷贝构造函数用实参生成形参,在执行完毕后,需要析构函数把模块申请的资源释放掉
    int main(){
    	Point pa(3,4);
    	ShowPointInfo(pa);
        cout<<endl;
    	return 0;
    }
    

    运行结果:
    在这里插入图片描述

    过程分析:
    首先调用构造函数对类对象的数据成员进行初始化,构造出类对象A
    然后在函数传值调用时调用拷贝构造函数将主调函数里的实参转为被调函数里的形参
    这一过程是生成了一个新的类对象B
    被调函数执行完毕后,类对象B被析构,返回主调函数
    主调函数执行完毕,类对象A被析构,程序结束

    3.组合类
    即模块累积。
    通俗的解释就是在构造时元素构成小模块,小模块构成大模块。
    析构的过程正好相反,大模块析构后小模块被暴露,小模块再被析构
    要注意:先构造的后析构
    实验代码:

    #include <bits/stdc++.h>
    using namespace std;
    class Point{///定义一个类对象相当于一个模块
    	private:
    		int x,y;///类对象的数据成员,对外不可见
    	public:///类对象的对外接口
        ///构造函数:与类同名,初始化对象的数据成员,使得小模块形成完整模块
    		Point(int px,int py):x(px),y(py){
    		  cout<<"普通构造函数生成"<<this<<endl;;
    		  ShowPoint();
    		}
        ///拷贝构造函数:完成完整模块之间的复制
    		Point(Point& p):x(p.x),y(p.y){
    		  cout<<"拷贝构造函数生成"<<this<<endl;
    		  ShowPoint();
    		}
    		void ShowPoint(){ cout<<"("<<x<<","<<y<<")"<<this<<endl;}
            int getx(){return x;}
            int gety(){return y;}
    		~Point(){cout<<"析构函数调用"<<this<<endl;}
    };
    class Line{
        private:
            Point p1;
            Point p2;
            double len;
        public:
        ///pa->xp1 pb->xp2 拷贝构造函数
        ///xp1->p1 xp2->p2 拷贝构造函数
            /*Line(Point xp1,Point xp2):p1(xp1),p2(xp2){///构造函数
                cout<<"Line的构造函数"<<this<<endl;
            };
            Line(Line &L):p1(L.p1),p2(L.p2){
                cout<<"Line的拷贝构造函数"<<this<<endl;
            }*/
            Line(Point xp1,Point xp2);
            Line(Line &L);
            ~Line(){cout<<"Line的析构函数"<<this<<endl;}
            double getlen() {return len;}
    
    };
    ///::预作用符 表示Line属于Line类
    ///内联函数:class内必须声明才能使用
    Line::Line(Point xp1,Point xp2):p1(xp1),p2(xp2){
         cout<<"Line的构造函数"<<this<<endl;
         double x=p1.getx()-p2.getx();
         double y=p1.gety()-p2.gety();
         len=sqrt(x*x+y*y);
    }
    ///p1(L.p1)调用Point的拷贝构造函数
    Line::Line(Line &L):p1(L.p1),p2(L.p2){
        cout<<"Line的拷贝构造函数"<<this<<endl;
    }
    void ShowPointInfo(Point p){
    	cout<<"ShowPointInfo begin"<<endl;
    	p.ShowPoint() ;
        cout<<"ShowPointInfo end"<<endl;
    }
    ///加Line的拷贝构造函数L2(L1)
    int main(){
    	/*Point pa(3,4);
    	ShowPointInfo(pa);
        cout<<endl;*/
        Point pa(3,4);
        Point pb(10,9);
    
        Line L1(pa,pb);
        cout<<"L2***********"<<endl;
        Line L2(L1);
        /*cout<<"L1 start point:";
        pa.ShowPoint();
        puts("");
    
        cout<<"L1 end point:";
        pb.ShowPoint();
        puts("");
    
        cout<<"The lengh of L1 is:"<<L1.getlen()<<endl;*/
    	return 0;
    }
    

    以下结合this指针分析程序执行过程
    运行结果:
    普通构造函数生成0x6dfec8 ->根据参数构造pa
    (3,4)0x6dfec8
    普通构造函数生成0x6dfec0 ->根据参数构造pb
    (10,9)0x6dfec0
    拷贝构造函数生成0x6dfed0 ->根据pb生成xp2
    (10,9)0x6dfed0
    拷贝构造函数生成0x6dfed8 ->根据pa生成xp1
    (3,4)0x6dfed8
    拷贝构造函数生成0x6dfea8 ->根据xp1生成p1
    (3,4)0x6dfea8
    拷贝构造函数生成0x6dfeb0 ->根据xp2生成p2
    (10,9)0x6dfeb0
    Line的构造函数0x6dfea8 ->构造出L1
    析构函数调用0x6dfed8 ->L1构造完成,xp1析构
    析构函数调用0x6dfed0 ->xp2析构
    L2*********** ->以下为L2的拷贝构造
    拷贝构造函数生成0x6dfe90 ->根据L1.p1构造L2的p1
    (3,4)0x6dfe90
    拷贝构造函数生成0x6dfe98 ->根据L1.p2构造L2的p2
    (10,9)0x6dfe98
    Line的拷贝构造函数0x6dfe90 ->L2拷贝构造成功
    Line的析构函数0x6dfe90 ->L2析构
    析构函数调用0x6dfe98 ->L2.p2析构
    析构函数调用0x6dfe90 ->L2.p1析构
    Line的析构函数0x6dfea8 ->L1析构
    析构函数调用0x6dfeb0 ->L1.p2析构
    析构函数调用0x6dfea8 ->L1.p1析构
    析构函数调用0x6dfec0 ->pa析构
    析构函数调用0x6dfec8 ->pb析构

    终于完成了整理笔记的心愿?

    展开全文
  • 实验二:JSP内置对象实验报告

    千次阅读 2020-10-16 12:37:56
    一、实验目的 通过编程和上机实验理解 JSP各个页面之间的响应和传递的过程。并且能够熟练的掌握JSP的内置对象的属性和方法,并能灵活运用。 二、实验要求 1. 基础练习:内置对象常用方法的使用。 2. 编写获取...

    一、实验目的

    通过编程和上机实验理解 JSP各个页面之间的响应和传递的过程。并且能够熟练的掌握JSP的内置对象的属性和方法,并能灵活运用。 
    

    二、实验要求

    1. 基础练习:内置对象常用方法的使用。
    2. 编写获取表单数据。
    3. 按照下列要求实现简单注册、登录程序。

    截图:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    代码

    注册页面 index.jsp
    
    <%@ page language="java" contentType="text/html;charSet=utf-8" pageEncoding="utf-8"%>
    <!DOCTYPE HTML>
    <html>
    <head>
     <meta charset="utf-8">
    <title>用户注册页面</title>
    </head>
    <body>
    <h2><font color="#844220">用户注册</font></h2>
    欢迎你成为本网站的会员,请在下面表单填写注册信息
    <fieldset>
    <legend><h4 style="background:#844220"><font color="#ffffff"> 创建新账户</font></h4></legend>
       <form action="register.jsp" method="post">
          <table>
             <tr>
               <td>用户名</td>
               <td><input type="text" name="user" value="输入用户名"/></td>
             </tr>
             <tr>
               <td>密码</td>
               <td><input type="password" name="pwd" /></td>
             </tr>
             <tr>
               <td>确认密码</td>
               <td><input type="password" name="repwd"/></td>
             </tr>
             <tr>
               <td>电子邮件</td>
               <td><input type="text" name="Email" /></td>
             </tr>
             <tr>
               <td>电话</td>
               <td><input type="text" name="phone" /></td>
             </tr>
             <tr>
               <td>地址</td>
               <td><input type="text" name="address" /></td>
             </tr>
             <tr>
               <td><input type="submit" value="注册"/></td>
               <td><input type="reset"  value="重置" /></td>
             </tr>
             
          </table>
       </form></fieldset>
      </body>
      </html>
    
    
    信息显示页面 register
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>register success</title>
    </head>
    <body>
    <h2><font color="#844220">注册信息</font></h2>
    <form action="login.jsp">
    <fieldset>
    	<legend><h4 style="background:#844220"><font color="#ffffff"> 用户注册信息</font></h4></legend>
    	<table>
    	<h4>
    	<%
    	request.setCharacterEncoding("utf-8");
    		//获取注册的user
    		String user=request.getParameter("user"); 
    		//把user用以"user"为关键字存储到session对象中
    		session.setAttribute("user", user);			
    		//获取注册的password
    		String password=request.getParameter("pwd");	
    		//把password用以"password"为关键字存储到session对象中
    		session.setAttribute("password",password);		
    		//确认密码	
    		String repassword=request.getParameter("repwd");	
    		//邮箱
    		String email=request.getParameter("Email");		
    		//手机
    		String phone=request.getParameter("phone");
    		//地址
    		String address=request.getParameter("address");		
    		//输出信息
    		//判断两次密码是否相同,相同即注册成功
    		if(password.equals(repassword)){
    		out.println("用户名:"+user+"<br>");
    		out.println("密码:"+password+"<br>");
    		out.println("电子邮件:"+email+"<br>");
    		out.println("电话:"+phone+"<br>");
    		out.println("地址:"+address+"<br>");
    		out.println("<br><br><input type='submit' value='去登陆'>");
    		}
    		//不同则返回注册页面
    		else{
    			out.println("两次密码不一致!2秒后返回注册页面重新注册!");
    			out.println("<br><input type='button' value='确认'>");
    			response.setHeader("refresh", "2;url=index.jsp");
    		}		
    	%>
    	</h4>	
    	</table>
    </fieldset>
    </form>
    </body>
    </html>
    
    登录界面 login.jsp
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>登录页面</title>
    </head>
    <body>
    <h2><font color="#844220">我的账户</font></h2>
    请登录
    <form action="check.jsp">
    <fieldset>
    <legend><h4 style="background:#844220"><font color="#ffffff"> 登录</font></h4></legend>
    <table>
    		<tr>
    		<td>用户名:</td>
    		<td><input type="text" name="user1"></td>
    		</tr>
    		<tr>
    		<td>密码:</td>
    		<td><input type="password" name="pwd"></td>
    		</tr>
    		<tr>
    		<td colspan="5" align="right"><input type="submit" value="login"></td>
    		</tr>
    </table>
    </fieldset>
    </form>
    </body>
    </html>
    
    检查登录页面check.jsp
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>welcome</title>
    </head>
    <body>
    <%	
    	//注册的用户名
    	String username=(String)session.getAttribute("user");
    	//登录的用户名
    	String user1=request.getParameter("user1");
    	//注册用户名对应的密码
    	String password=(String)session.getAttribute("password");
    	//登录用户名对应的密码
    	String pwd=request.getParameter("pwd");
    	//判断该用户是否已注册
    	if(username==null||password==null){
    		out.println("该用户未注册!");
    	}else if(!(username.equals(user1)||password.equals(pwd))){
    		out.println("该用户未注册!");
    	}
    	//判断注册和登录的用户名和密码是否一致
    	else if(username.equals(user1)&&password.equals(pwd)){
    		out.println("欢迎您成功登陆!");
    	}
    	//失败
    	else{
    		out.println("账号或密码错误!2秒后返回登录页面!");
    		response.setHeader("refresh", "3;url=login.jsp");
    	}		
    %>
    </body>
    </html>
    
    展开全文
  • 实验二 类与对象 1.实验目的 掌握如何使用类来创建、封装对象; 掌握如何定义和构造一个类; 掌握方法重载与多态; 掌握对象的组合、参数传值的方法; 理解并掌握类变量与实例变量、以及类方法与实例方法的区别。 2....
  • 简单记录几种用于确定控制对象模型的实验方法: 时域测定法 时域测定法是在被测系统或对象在输入端施加阶跃或者冲激信号,测量输出量的时间响应曲线,在对时间响应曲线进行分析;确定被测对象的传递函数(一般是近似...
  • JAVA 面向对象程序设计一、实验目的和要求二、实验内容程序设计题阅读程序题三、实验心得 一、实验目的和要求 掌握类、对象、方法、继承、接口的编程技术; 要求至少完成实验内容题的70%。(分工合作)   二、...
  • 本文针对以位置不确定移动对象为查询点的Skyline查询进行研究,首先,定义了查询点移动时各对象间支配概率,提出了支配概率和Skyline概率的微元计算方法.在此基础上,提出一种面向不确定移动对象进行连续概率Skyline查询...
  • 实验二JSP的内置对象

    2020-10-24 19:57:57
    @TOC实验二 JSP的内置对象 一、实验目的 通过编程和上机实验理解 JSP各个页面之间的响应和传递的过程。并且能够熟练的掌握JSP的内置对象的属性和方法,并能灵活运用。 二、实验要求 1. 基础练习:内置对象常用方法...
  • 软件工程实验三:面向对象建模

    千次阅读 2020-12-31 16:19:01
    1、掌握面向对象方法学、面向对象的概念以及面向对象程序设计。 2、掌握面向对象建模的方法的应用以及面向对象程序设计。 二、实验要求 用面向对象建模方法对某一定货系统建立对象模型,用面向对象设计方法设计定货...
  • 在此基础上,设计了对网络受限的不确定移动对象进行连续概率Skyline查询的动态增量算法U-CPSQRN。该算法通过对event的跟踪计算实现了对p-Skyline的连续更新操作,减少了算法的查找和计算开销。实验结果显示了算法的...
  • 1、了解基于UML的面向对象分析与设计方法 2、掌握用例图的绘制、用例规约(文档)的编制 3、掌握类图、活动图、状态图、时序图的绘制方法
  • 实验对象随机分组程序

    千次阅读 2016-12-12 19:31:47
    实验对象随机分组程序实验室小鼠随机方法老师上统计课的时候讲了实验室对实验小鼠进行随机分组的方法。 统计学随机分组
  • 【基础训练 1】循序渐进了解对象知识。 【目标】了解对象对象引用的关系 (1) 构建 Point 类 (2) 创建对象。 当我们直接调用对象的时候会输出 类名@对象的哈希码 (3) 编写一个 toString()方法 增加了一...
  • 中间件技术 实验3分布式对象CORBA的开发 实验任务 利用Java提供的对CORBA的支持编写一个简单... 确定应用对象定义它们在IDL中的接口 根据CORBA IDL语法编写.idl接口文件 2.将IDL定义编译成Java的存根和骨架 使用Java I
  • Java面向对象编程 实验报告

    万次阅读 2018-06-19 21:08:58
    一、实验目的: 1. 理解 Java 语言是如何体现面向对象编程基本思想的;2. 掌握类的声明以及对象的创建;3. 了解类的成员变量和成员方法的特性以及类的构造方法的使用。 二、实验环境: 一台配置有java环境,装有...
  • 掌握Powerdesigner中状态图和时序图建模的基本工具和操作方法;从实验四所确定的用例图中任意选取2到3个用例进行动态建模,并根据建模成果对类图进行设计完善。要求至少建立2个时序图。
  • JAVA实验3 java面向对象

    千次阅读 2018-06-08 21:22:58
    桂 林 理 工 大 学实 验 报 告班级 软件16-1班 学号 3162052051116 姓名 张识虔 同组实验者 实验名称 java面向对象 日期 2018年 06 月07 日 一、 实验目的: 1. 理解 Java 语言是如何体现面向对象编程...
  • 实验1-问题陈述、词汇表(带领域类图)问题陈述词汇表领域类图 问题陈述 背景: 随着中国的经济和科学技术的不断发展,越来越多的人开始拥有了个人计算机和智能手机。与此同时,人们也对购物的有了新的需求,渴望...
  • 在Debug过程中,想要在main函数中通过输入坐标数目num来产生分支,定义定义对象时调用不同的构建函数来确定是默认的2还是其他的坐标数,但编译后报错,“x”未声明标识符,查了相关资料仍然没有解决这个问题。...
  • 实验十MySQL过程式数据库对象一、实验内容:1、 存储过程的创建和调用2、 存储函数的创建和调用3、 触发器的创建和触发4、 事件的创建和修改一、实验项目:员工管理数据库用于企业管理的员工管理数据库,数据库名为...
  • 图书管理系统实验报告-面向对象的分析与设计

    万次阅读 多人点赞 2020-07-05 11:47:17
    图书管理系统实验报告-面向对象的分析与设计 背景、意义;需求分析;用例分析、类图、顺序图、通信图、活动图 1.研究背景及意义 图书馆是一所学校或是一座城市的一个文化标志,可以为学生以及社会上的各界人士提供...
  • 面向对象分析与设计,在线购物系统实验三 分析类描述: 类名TemporaryUser 整体说明 在本系统没有注册账号的用户 由客户、商家泛化出来的实体,拥有这两者的共同属性和操作的一般用户。 属性说明: (private,...
  • 【Java】《面向对象与多线程综合实验》报告

    千次阅读 多人点赞 2018-04-10 22:42:49
    说明:这是武汉理工大学计算机学院【面向对象与多线程综合实验】课程的实验报告 >>点击查看WUTer计算机专业实验汇总 谨记:纸上得来终觉浅,绝知此事要躬行。 《面向对象与多线程综合实验》报告 1...
  • 被动对象,涉及的对象有:ATM用户,ATM维护用户 ATM 维护人员 主动对象,涉及的对象有:ATM机   3)对象接收/发送消息的描述 (1)存款 消息名称 ...
  • 2、确定项目的 DAO 模型,开发相应类,在该类中实现增删改查的相应操 作。3、编写公共的数据库连接类 DBCon 类,在 DAO 中使用 DBCon 提供的数 据库连接。 4、编写控制器类 Servlet,在其中加入对 DAO 对象的调用,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 117,072
精华内容 46,828
关键字:

如何确定实验对象