ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:154.50KB ,
资源ID:933384      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-933384.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机科学与技术学院报告.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

计算机科学与技术学院报告.DOC

1、计算机科学与技术学院实验报告实验题目: 实验 2.2 学号:200805130095日期:2011/4/23 班级: 08 电商 姓名:孟然Email:实验目的:利用上一个实验所学知识,基于 corba 技术开发一个考试查询系统,要求: 建立一个数据库,包括学生基本信息表(考试证号,姓名) ,考试成绩表(考试证号,科目号,成绩),考试科目表(考试科目号,科目名称) 服务器提供:a) 查询服务:允许用户通过考试证号查询所有科目成绩,或通过考试证号+科目名称查询某一科目成绩b) 录入服务:允许管理员对数据库录入考生信息,及其考试成绩 客户可:a) 录入:与服务器端录入服务对应b) 查询:与服务器端

2、查询服务对应硬件环境:机房电脑软件环境:JDK1.3+VisiBroker5.1实验步骤:(一) 编写 Student.idl 并进行编译,命令为 idl2javaStudent.idl / 学生管理系统的对象接口定义module Student interface DataManager/通过考试证号查询所有科目成绩 返回考试证号、姓名、科目名称、成绩string lookup_1(in string stu_id);/通过考试证号+科目名称查询某一科目成绩string lookup_2(in string stu_id, in string course_name);/管理考生信息-录入s

3、tring delStudent(in string stu_id);/管理考生成绩-录入;编译完毕以后,VisiBroker 会生成一个 Student 文件夹,内部包含了与 Student 接口相关的各类。其中,真正与成绩查询和数据录入相关的类是 DataManager 类,它分装了 8 个方法,这些方法均与成绩查询和数据录入相关。(二) 编写 DBConnect.java。该类主要负责与数据库的交互,其中的两个方法 executeQuery(String sql)和executeUpdate(String sql)负责执行 SQL 语句。import java.sql.*;public

4、class DBConnectprivate String url = “jdbc:odbc:chang“;private Connection conn = null;private Statement stmt = null;public DBConnect() try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“);conn = DriverManager.getConnection(url,“sa“,“);stmt = conn.createStatement(); catch (Exception e) System.err.print(“

5、Error“ + e.getMessage();public ResultSet executeQuery(String sql) ResultSet rs = null;try rs = stmt.executeQuery(sql); catch (SQLException e) System.err.print(“Error“ + e.getMessage();return rs;public int executeUpdate(String sql) int update = 0;try update = stmt.executeUpdate(sql);mit(); catch (SQL

6、Exception e) System.err.print(“Error“ + e.getMessage();return update;public void close() try stmt.close();conn.close(); catch (SQLException e) System.err.print(“Error“ + e.getMessage();(三) 编写 DataManagerImpl.java。 该类是最为重要的一个类,他的主要功能是实现 Datamanager 中的所有方法,由于具体代码很多,只列举其中之一。 public String lookup_2(Stri

7、ng stu_id, String course_name) String result = “;ResultSet rs = null;try /第一步:查询学号为 stu_id 的学生是否存在。String sql = “SELECT 姓名 FROM 学生 WHERE 考试证号=“+ stu_id + “;String stu_name = null;rs = db.executeQuery(sql);if (rs.next() stu_name = rs.getString(“姓名“); else result = “Sorry,I cant find “ + stu_id;return

8、 result;/第二步:查询科目名称为 course_name 的科目是否存在。sql = “SELECT 考试科目号 FROM 考试科目 WHERE 科目名称=“ + course_name + “;String cou_id = null;rs = db.executeQuery(sql);if (rs.next() cou_id = rs.getString(“考试科目号“); else result = “Sorry,I cant find “ + course_name;return result;/第三步:成绩查询sql = “SELECT 成绩 FROM 考试成绩 WHERE

9、考试证号=“ + stu_id + “ AND 考试科目号 =“ +cou_id + “;String score = null;rs = db.executeQuery(sql);if (rs.next() score = rs.getString(“成绩“); else result = “Sorry,student “ + stu_id +“do not have achievemet about “ + course_name;return result;/第四步:输出result = stu_name + “ “ + course_name + “ “ + score; catch

10、(Exception e) e.printStackTrace();return result;(四) 编写 Server.java 并进行编译,命令为 vbjc Server.java该方法的主要作用是实例化一个 DataManagerImpl 对象,并将改对象放入 POA 上,等待客户端通过 ORG 对其进行调用。import org.omg.PortableServer.*;public class Serverpublic static void main(String args)try org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(ar

11、gs, null);POA rootPOA = POAHelper.narrow(orb.resolve_initial_references(“RootPOA“);org.omg.CORBA.Policy policies =rootPOA.create_lifespan_policy(LifespanPolicyValue.PERSISTENT);POA myPOA = rootPOA.create_POA(“DataManagerPOA“,rootPOA.the_POAManager(), policies);DataManagerImpl managerServant =new Dat

12、aManagerImpl();myPOA.activate_object_with_id(“DataManager“.getBytes(), managerServant);rootPOA.the_POAManager().activate();System.out.println(“DataManager 已就绪 .n“);orb.run(); catch(Exception exc) exc.printStackTrace();(五) 编写 Client.java 并编译, Client 的作用主要是从 ORG 上取得 DataManagerImpl 对象,并调用其中的方法,以便对数据库进

13、行操作。 import java.io.*;public class Client public static void main(String args) try org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);/ 利用 POA 全称与对象标识 “BankManager“查找帐户管理员Student.DataManager manager = Student.DataManagerHelper.bind(orb,“/DataManagerPOA“, “DataManager“.getBytes();BufferedRead

14、er reader = new BufferedReader(new InputStreamReader(System.in);String answer = null;while (true) System.out.println(“请选择您要进行的操作: A-查询操作 B-录入考生信息 C-录入考试成绩 D-退出“);answer = reader.readLine();if (answer.equals(“A“) | answer.equals(“a“) System.out.println(“请选择您要进行的查询方式 “);System.out.println(“ 1-通过考试证号查询

15、所有科目成绩“);System.out.println(“ 2-通过考试证号+科目名称查询某一科目成绩“);answer = reader.readLine();if (answer.equals(“1“) System.out.print(“请输入您想要查找的学生的考试证号:“);answer = reader.readLine();System.out.println(manager.lookup_1(answer); else System.out.print(“请输入您想要查找的学生的考试证号:“);String stu_id = reader.readLine();System.ou

16、t.print(“请输入科目名称:“);String course_name = reader.readLine();System.out.println(manager.lookup_2(stu_id, course_name); else if (answer.equals(“B“) | answer.equals(“b“) System.out.println(“ 请选择您要进行的操作 1-添加 2-删除 3-修改“);answer = reader.readLine();if (answer.equals(“1“) System.out.print(“ 添加:请输入你要添加的学生的准考

17、证号:“);String stu_id = reader.readLine();System.out.print(“ 添加:请输入你要添加的学生的姓名:“);String stu_name = reader.readLine();System.out.println(manager.addStudent(stu_id, stu_name); else if (answer.equals(“2“) System.out.print(“ 删除:请输入你要删除的学生的准考证号:“);answer = reader.readLine();System.out.println(manager.delSt

18、udent(answer); else System.out.print(“ 修改:请输入你要修改的学生的准考证号:“);String stu_id = reader.readLine();System.out.print(“ 修改:请输入修改后的学生的姓名:“);String stu_name = reader.readLine();System.out.println(manager.modifyStudent(stu_id,stu_name); else if (answer.equals(“C“) | answer.equals(“c“) System.out.println(“ 请选

19、择您要进行的操作 1-添加 2-删除 3-修改“);answer = reader.readLine();if (answer.equals(“1“) System.out.print(“ 添加:请输入考试证号:“);String stu_name = reader.readLine();System.out.print(“ 添加:请输入科目名称:“);String course_name = reader.readLine();System.out.print(“ 添加:请输入科目成绩:“);String result = reader.readLine();System.out.print

20、ln(manager.addResult(stu_name,course_name, Double.parseDouble(result); else if (answer.equals(“2“) System.out.print(“ 删除:其输入考试证号 :“);String stu_name = reader.readLine();System.out.print(“ 删除:其输入科目名称 :“);String course_name = reader.readLine();System.out.println(manager.delResult(stu_name,course_name)

21、; else System.out.print(“ 修改:其输入考试证号 :“);String stu_name = reader.readLine();System.out.print(“ 修改:其输入科目名称 :“);String course_name = reader.readLine();System.out.print(“ :其输入新的科目成绩 :“);String result = reader.readLine();System.out.println(manager.modifyResult(stu_name,course_name,Double.parseDouble(result); else break; catch (Exception e) System.out.println(“错误:“ + e.toString();(六) 运行智能代理,命令为 osagent(七) 运行 Server, 命令为 start vbj Server(八) 运行 Client, 命令为 vbj Client(九) 根据客户端的要求进行操作即可结论分析与体会:Corba 属于一种比较老的技术,环境配置和运行过程都很麻烦。花费时间的地方不在编程而在配置环境。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。