江苏开放大学软件设计模式与体系结构综合大作业

  • 作业要求:

    请下载附件文档,根据作业要求完成项目的设计、实现及调试,并提交作业报告。

    【注意】请务必先下载附件中的实验报告模板文档,填写作业答案,否则无效!!!

    9-3-2 综合大作业(报告模板).doc

    下载

    综合大作业

    结合第八单元的材料二:DAO设计模式和之前的体系结构知识,本综合作业具体要求如下:

    1、根据实验操作指引,完成程序的正确运行。

    1.1 安装MySQL数据库

    具体教程请参考:https://blog.csdn.net/bobo553443/article/details/81383194。这里不再详述。安装过程中需要设置数据库密码,请牢记。

    1.2 打开安装的MySQLworkbench

    看到如下界面,点击菜单项Database:

    在弹出菜单中,选择“Connect to Database”,打开如下界面,填入安装时设置的密码,进行数据库连接:

    如果连接成功,会出现如下界面:

    此时请将如下数据库脚本代码,拷贝至查询区域,并点击运行:

    /*=============删除数据库=============*/

    DROP DATABASE IF EXISTS sms;

    /*=============创建数据库=============*/

    CREATE DATABASE sms;

    /*=============使用数据库=============*/

    USE sms;

    /*=============删除数据库表===========*/

    DROP TABLE IF EXISTS user;

    /*=============创建数据库表===========*/

    CREATE TABLE login(

    id int NOT NULL primary key auto_increment,

    username VARCHAR(30) NOT NULL,

    password VARCHAR(32) NOT NULL

    );

     

    INSERT INTO login( username, password)VALUES(‘admin’, ‘123456’);

    如下图所示:

    此时,刷新左侧下方SCHEMAS区域,会看到刚建立的数据库sms。

    展开sms数据库,就会看到我们刚建立的数据表user,里面有我们刚添加的数据。

    2. 下载MySQL驱动Jar包。

    打开网页https://downloads.mysql.com/archives/c-j/。Operating System 选择“Platform Independent”,然后点击第二个进行下载,如下图所示。

    下载后,解压缩,里面的“mysql-connector-java-8.0.25.jar”,就是我们需要的MySQL数据库驱动。

    3. 导入Jar包(IDEA或者Eclipse皆可,这里以IDEA编程环境为例)。

    首先,打开IDEA编辑环境,创建一个Java项目,名为Login,如下图:

    新建一个文件夹,名为“lib”,然后将我们刚下载的jar包拷贝到lib文件夹中,如下图:

    点击上方菜单“File”,里面选择“Project Structure”,如下图所示:

    得到界面如下:

    在弹出的界面中,选择第一个选项:

    然后找到jar包,点击“OK”,就可以使用该Jar包了,如下图:

    4. 运行程序。

    首先右键点击src,创建一个package,名为“project”,然后创建一个类,名为“LoginDialog”,如下图:

    将上面的代码全部删除,然后将下面的代码拷贝进来。

    package project;

    import javax.swing.*;

    import java.awt.event.*;

    import java.sql.*;

    public class LoginDialog extends JDialog{

    private JPanel contentPane;

    private JButton buttonOK;

    private JButton buttonCancel;

    private JLabel lblUserName;

    private JLabel lblPassword;

    private JTextField tfPassword;

    private JTextField tfUserName;

    public LoginDialog() {

    this.setSize(500, 450);

    contentPane = new JPanel();

    contentPane.setLayout(null);

    lblUserName = new JLabel(“用户名:”);

    lblUserName.setSize(50, 40);

    lblUserName.setLocation(50, 50);

    tfUserName = new JTextField();

    tfUserName.setSize(250, 40);

    tfUserName.setLocation(150, 50);

    lblPassword = new JLabel(“密码:”);

    lblPassword.setSize(50, 40);

    lblPassword.setLocation(50, 150);

    tfPassword = new JPasswordField();

    tfPassword.setSize(250, 40);

    tfPassword.setLocation(150, 150);

    buttonOK = new JButton(“登录”);

    buttonOK.setSize(80, 40);

    buttonOK.setLocation(130, 250);

    buttonCancel = new JButton(“取消”);

    buttonCancel.setSize(80, 40);

    buttonCancel.setLocation(280, 250);

    contentPane.add(lblUserName);

    contentPane.add(tfUserName);

    contentPane.add(lblPassword);

    contentPane.add(tfPassword);

    contentPane.add(buttonOK);

    contentPane.add(buttonCancel);

    setContentPane(contentPane);

    setModal(true);

    getRootPane().setDefaultButton(buttonOK);

    buttonOK.addActionListener(new ActionListener() {

    @Override

    public void actionPerformed(ActionEvent e) {

    onOK();

    }

    });

    buttonCancel.addActionListener(new ActionListener() {

    @Override

    public void actionPerformed(ActionEvent e) {

    onCancel();

    }

    });

    // call onCancel() when cross is clicked

    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

    addWindowListener(new WindowAdapter() {

    @Override

    public void windowClosing(WindowEvent e) {

    onCancel();

    }

    });

    }

    private void onOK() {

    Connection conn = getConnection();

    String username = tfUserName.getText();

    String password = tfPassword.getText();

    String result = login(conn, username, password);

    JOptionPane.showMessageDialog(null, result);

    }

    private void onCancel() {

    dispose();

    }

    private Connection getConnection() {

    Connection connection = null;

    try {

    Class.forName(“com.mysql.cj.jdbc.Driver”); // 加载驱动程序

    connection = DriverManager.getConnection(

    “jdbc:mysql://localhost:3306/sms”,

    “root”, “Succld3388”); // 取得数据库连接

    } catch (SQLException | ClassNotFoundException e) {

    e.printStackTrace();

    }

    return connection;

    }

    /**

    * 具体操作方法:查询

    */

    public String login(Connection conn, String userName, String password){

    String result = null;

    try{

    String sql = “SELECT username, password FROM login WHERE username = ?”;

    PreparedStatement pstmt = null; //定义数据库操作对象

    pstmt = conn.prepareStatement(sql); // 实例化操作

    pstmt.setString(1, userName); // 设置用户名称

    ResultSet rs = pstmt.executeQuery(); // 取得查询结果

    if(rs.next()){

    String pass = rs.getString(2);

    if (pass.equals(password)){

    result = “登录成功”;

    }else{

    result = “密码错误”;

    }

    }else{

    result = “用户名不正确”;

    }

    }catch(Exception e){

    result = “数据库错误”;

    }

    return result;

    }

    public static void main(String[] args) {

    LoginDialog dialog = new LoginDialog();

    dialog.setLocationRelativeTo(null);

    dialog.setVisible(true);

    System.exit(0);

    }

    }

    运行程序,会看到如下登录界面:

    接着,就可以使用各种用户名和密码进行测试,只有输入正确的用户名和密码,才会显示“登录成功”,如下图:

    5. 运行成功后,请完成以下要求:

    (1)所有的工作都在LoginDialog类中进行,请分析是否符合我们的设计原则。

    (2)结合第八单元的DAO设计模式材料,请重新使用DAO设计模式重构上面的代码,完成同样的功能。其中,可以创建必要的包,并必须包含如下类:

    数据库连接: xxx.dbc.DatabaseConnection

    DAO接口: xxx.dao.IXxxDAO

    DAO接口真实实现类:xxx.dao.impl.XxxDAOImpl

    DAO接口代理实现类:xxx.dao.proxy.XxxDAOProxy(使用代理模式)

    VO类: xxx.vo.Xxx, VO命名要与表的命名一致

    工厂类:xxx.factory.DAOFactory(必须使用工厂方法模式和单例模式)

    (3)使用包图把该程序的体系结构表达出来。

资源下载
下载价格10
点点赞赏,手留余香 给TA打赏

评论0

请先
  • 游客 下载了资源 2023年上半年教师资格证考试《初中音乐》题(解析)
  • u******* 购买了资源 某工程,施工合同中约定:工期19周;钢筋混凝土基础工程量增加超出15%时,结算时对超出部分按原价的90%调整单价。经总监理工程师批准的施工总进度计划如下图所示,其中A、C工作为钢筋混凝土基础工程,B、G工作为片石混凝土基础工程,D、E、F、H、I工作为设备安装工程,K、L、J、N工作为设备调试工作。
  • 游客 投稿收入增加1块钱
  • u******* 购买了资源 2007年8月13日,湖南省湘西自治州凤凰县正在建设的堤溪沱江大桥发生坍塌事故,造成64人死亡22人受伤,直接经济损失3974.7万元。 (一)事故原因和性质 1.直接原因。 由于大桥主拱圈砌筑材料未满足规范和设计要求,拱桥上部构造施工工序不合理,主拱圈砌筑质量差,降低了拱圈砌体的整体性和强度,随着拱上荷载的不断增加,造成1号孔主拱圈靠近0号桥台一侧约3~4m宽范围内,即2号腹拱下的拱脚区段砌体强度达到破坏极限而坍塌,受连拱效应影响,整个大桥迅速坍塌。 2.间接原因。 ①施工单位项目经理部擅自变更原主拱圈施工方案,现场管理混乱,违规乱用料石,主拱圈施工不符合规范要求,在主拱圈未达到设计强度的情况下就开始落架施工作业。②建设单位项目管理混乱,对发现的施工质量问题未认真督促施工单位整改,未经设计单位同意擅自与施工单位变更原主拱圈设计施工方案,盲目倒排工期赶进度,越权指挥,甚至要求监理不要上桥检查。③监理单位未能制止施工单位擅自变更原主拱圈施工方案,对发现的主拱圈施工质量问题督促整改不力,在主拱圈砌筑完成但强度资料尚未测出的情况下即签字验收合格。 3.事故性质: 这是一起生产安全责任事故。 (二)对事故责任人员及责任单位的处理 1.移送司法机关处理人员。移送司法机关处理人员共13人。其中:监理公司现场监理处副处长兼现场监理余xx,涉嫌工程重大安全事故罪;现场监理处处长李xx,涉嫌工程重大安全事故罪。 2.给予党纪、政纪处分人员。给予党纪、政纪处分人员共19人。其中:监理公司党支部书记、副经理续xx,对事故发生负有重要领导责任,给予行政记大过、党内警告处分;监理公司总工汤x,对事故发生负有主要领导责任,给予行政撤职、党内严重警告处分。 3.对事故有关人员的处理…… 4.对事故有关单位的处理。……暂扣监理有限公司“工程监理证书”等有关证照。 (三)中央电视台专访的专家视点 沱江大桥突然坍塌存在以下几个问题: 1.为了州庆缩短大桥养护期。沱江大桥施工工期过紧,施工中变更了主拱圈砌筑的程序,拱架拆卸过早。据了解,主拱圈的养护期是28天,第19天开始卸架,养护期不够,比规定少了9天。因为养护期减短,大桥拱圈承载能力减弱。 2.桥下地质复杂,桥墩严重裂缝。施工中就已经发现桥墩的地质构造比较复杂,而且还发现0号桥墩下面有严重裂隙。施工中虽然对此处进行了一些处理,但现在看来,没有从根本上解决问题。大桥垮塌的方向从0号桥墩开始,像积木一样顺一个方向垮塌。 3.所用沙石含土量过高。主拱圈砌筑质量有问题。砌筑要使用料石,但事故后发现,塌下来的主拱圈中还有片石;砌筑的砂浆不饱满,有空隙、空洞;沙石含泥量比较高,影响混凝土的黏结力。 4.工程层层分包,质量管理混乱。质量管理方面存在问题。施工中有工程变更,却没有及时告知监理单位;监理单位发现了问题,没有及时向上级部门反映;工程分包单位多,层层分包。 问题: 1.上述案例中,监理工程师巡视发现施工单位未按主拱圈施工方案施工时,该如何处理? 2.安全监理工作中,监理工程师该如何检查分包单位? 3.事故发生后,监理工程师应做哪些工作? 问题: 1.上述案例中,监理工程师巡视发现施工单位未按主拱圈施工方案施工时,该如何处理? 2.安全监理工作中,监理工程师该如何检查分包单位? 3.事故发生后,监理工程师应做哪些工作?
  • 游客 投稿收入增加1块钱
  • u******* 登录了本站
  • 游客 投稿收入增加1块钱
  • u******* 购买了资源 由某企业承建的某多功能现代化商务综合大厦,地上46层,地下3层,全现浇钢筋混凝土框架-剪力墙结构,主体结构采用泵送混凝土等新技术。建筑物周边都十分接近规划红线,周边建筑及地下管线对因工程基坑开挖引起地层变形移动影响十分敏感,且基坑北面临近地铁。该工程地下室基坑开挖深度较大,为确保基坑开挖安全编制了专项施工方案,并由安全总监签字确认后实施。该地下室位于总厚达40m多的淤泥质土之中,根据本工程的特点,经多方案比较,决定基坑围护结构采用80cm厚的地下连续墙,而支护结构则为五道钢筋混凝土水平支撑的总体方案。经验算,可以满足结构变形和稳定要求,确保地下室开挖施工不致于影响地铁的正常运行、周边道路、建筑物及各种地下管线的正常使用。在工程施工中发生如下事件: 事件一:本工程地下水位较高,约为-0.5m,开挖范围位于淤泥质土体内,含水量大,施工必须事前采取降水措施,因基坑围护是采用地下连续墙,具有较好的挡水和抗渗性能。结合实际情况,决定采用轻型井点降水并编制了降水施工方案。 事件二:根据地质勘察资料、上部结构形式、荷载和施工条件等情况,基础施工采用人工挖孔扩底灌注桩与平板式筏形基础,板厚2m,桩基承台连同地下室的筏形基础同时展开施工。基础底板厚2m,桩基承台厚1.8m,混凝土强度等级C40,抗渗等级P8。由于承台和筏板混凝土浇筑量大,在开始阶段施工中出现了少许裂缝。为确保施工质量,项目部制定了以下控制裂缝的措施: (1)优先选用低水化热的普通硅酸盐水泥拌制混凝土,并适当加入木质素磺酸钙减水剂。 (2)在保证混凝土设计强度等级的前提下,适当提高水灰比,减少水泥用量。 (3)降低混凝土的浇筑温度,控制混凝土内外温差在30℃以内。 (4)分层分块逐步浇筑,加强养护,及时对混凝土进行覆盖保温、保湿材料。 (5)预埋冷却管,通入循环水将混凝土内部降温。 事件三:在进行办公楼大厅顶盖模板支架预应力混凝土空心板现场浇筑施工时,发生模板支撑体系坍塌事故,造成6人死亡、12人受伤。经有关部门调查,造成事故主要原因是模板支架搭设质量不符合要求;现场搭设模板支架中使用的部分钢管材料存在质量缺陷;施工现场管理存在严重问题。事后,建设行政主管部门对该施工企业作了相应的行政处罚,公安机关依法对有关责任单位的涉案人员追究刑事责任。 问题 (1)结合事件一说明井点降水施工方案的内容主要包括哪些? (2)请指出本案例中有哪些不妥之处,并说明理由。 (3)分析说明事件二承台和筏板混凝土浇筑中出现裂缝的主要原因是什么? (4)事件三工程事故可定为几级重大事故?请说明理由。 (5)事件三事故类型是什么?
  • u******* 登录了本站
  • 游客 投稿收入增加1块钱
  • u******* 购买了资源 某监理单位对实施监理的某跨越大江大河的桥梁施工工程的动力供应、施工照明、安全防护设备、施工场地空间条件以及交通运输和道路条件在施工前进行了检查。 承包单位因条件限制,不能建立试验室,则委托某一具有相应资质的专门试验室作为本工程施工用试验室。监理工程师经检查同意使用该试验室。 施工中由于某爆破作业比较危险,承包单位为了保证本单位从事爆破作业人员的生命安全,决定从劳工市场雇佣三名无爆破作业上岗证人员去实施爆破作业。 问题: 1.监理单位对动力供应、施工照明、安全防护设备、施工场地空间条件以及交通运输和道路条件的检查,是对环境状态的哪个方面的控制,环境状态的控制还包括哪几项内容? 2.对本案例中使用的大型临时设备在使用前,该如何办理相关手续才准投入使用? 3.监理工程师对委托的试验室进行资质审查时,承包单位应向项目监理机构提交什么文件,该文件应列出的内容有哪些? 4.对于爆破作业,承包单位的做法是否正确,为什么?
  • 游客 投稿收入增加1块钱
  • u******* 购买了资源 某监理单位对实施监理的某跨越大江大河的桥梁施工工程的动力供应、施工照明、安全防护设备、施工场地空间条件以及交通运输和道路条件在施工前进行了检查。 承包单位因条件限制,不能建立试验室,则委托某一具有相应资质的专门试验室作为本工程施工用试验室。监理工程师经检查同意使用该试验室。 施工中由于某爆破作业比较危险,承包单位为了保证本单位从事爆破作业人员的生命安全,决定从劳工市场雇佣三名无爆破作业上岗证人员去实施爆破作业。 问题: 1.监理单位对动力供应、施工照明、安全防护设备、施工场地空间条件以及交通运输和道路条件的检查,是对环境状态的哪个方面的控制,环境状态的控制还包括哪几项内容? 2.对本案例中使用的大型临时设备在使用前,该如何办理相关手续才准投入使用? 3.监理工程师对委托的试验室进行资质审查时,承包单位应向项目监理机构提交什么文件,该文件应列出的内容有哪些? 4.对于爆破作业,承包单位的做法是否正确,为什么?
  • 游客 下载了资源 2020下半年教师资格证考试《高中英语学科知识与教学能力》真题(含答案解析)
  • 游客 下载了资源 2021年公务员多省联考《申论》题(海南县级卷)及参考答案
  • 游客 下载了资源 2021年公务员多省联考《申论》题(海南县级卷)及参考答案
点击浏览器地址栏的⭐图标收藏本页
需要托管,代写作业,论文扫码加微信
显示验证码

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录