课程信息管理系统

合集下载

管理信息系统课程

管理信息系统课程
.
2 计算机网络技术基础
为了理解和掌握管理信息系统的 规划、分析与设计,甚至于管理信息 系统的实施及运行管理方面的方法和 技术,本章介绍了计算机网络及数据 库管理方面的基础知识。
.
2 计算机网络技术基础
2.1 计算机局域网 2.2 计算机网络的组成部分 2.3 远程连接 2.4 计算机网络协议及相关概念 2.5 Internet 2.6 Intranet
《管理信息系统》课程
总复习
.
管理信息系统
1.管理信息系统概论 2.计算机网络技术基础 3.企业计算模式 4.管理信息系统的系统规划 5.管理信息系统的系统分析 6.管理信息系统的系统设计 7.管理信息系统的系统实施 8.管理信息系统运行维护与评价 9.管理信息系统的项目管理
.
1 管理信息系统概论
.
第三章 复习(1)
(一)什么是企业计算模式?
计算机应用系统中数据与应用 (程序)的分布方式称为企业计算机 应用系统的计算模式,有时也称为企 业计算模式。
.
第三章 复习(2)
(二)三种企业计算模式:
(1)单主机计算模式 (2)客户/服务器(C/S)计算模式 (3)浏览器/服务器(B/S)计算模式
.
第三章 复习(3)
(1)单主机计算模式
(应用+ 数据)
(应用+ 数据) 主机
.
... 终端
第三章 复习(4)
(2)客户/服务器(C/S)计算模式
客户机
(应用)
服务器
(数据)
.
第三章 复习(5)
(2)客户/服务器(C/S)计算模式
浏览器
Web 服务器 (应用)
.
第二章 复习(5)

学生课程管理系统需求分析

学生课程管理系统需求分析

学生课程管理系统需求分析1. 引言学生课程管理系统是一种用于学校教育管理的软件系统,旨在帮助学校管理人员和教师高效地管理学生的课程信息。

本文对学生课程管理系统的需求进行分析,以确保系统能够满足用户的实际需求,提高学校教育管理的效率。

2. 用户需求分析2.1 学生学生是学生课程管理系统的主要用户之一,他们需要能够方便地查看课程表、选课信息和成绩等个人信息,并能够及时地与老师沟通交流。

2.2 教师教师需要能够发布课程信息、查看学生成绩、与学生进行在线交流等功能,以便更好地管理课堂教学。

2.3 管理员管理员需要对系统进行整体管理,包括用户权限管理、系统设置、数据统计等功能,以确保系统的稳定运行和数据安全。

3. 功能需求分析3.1 学生端功能•查看个人课程表•查看选课信息•查看成绩和考试安排•在线咨询老师3.2 教师端功能•发布课程信息•查看学生成绩•与学生进行在线交流•批改作业和考试3.3 管理员端功能•用户权限管理•数据统计和分析•系统设置和参数配置•数据备份与恢复4. 非功能需求分析4.1 安全性系统需要具有良好的安全性,保护用户的隐私信息不被泄露,确保系统的稳定和安全运行。

4.2 可靠性系统需要具有高可靠性,保证系统在高并发和故障情况下依然能够正常运行。

4.3 用户友好性系统需要具有良好的用户界面设计,简洁明了,易于操作,提升用户体验。

5. 总结本文对学生课程管理系统的需求进行了详细的分析,包括用户需求、功能需求和非功能需求等方面。

通过系统的设计和实现,能够更好地满足学校管理人员、教师和学生的需求,提高教育管理的效率和质量。

教务管理信息系统

教务管理信息系统

教务管理信息系统一、概述教务管理信息系统(Education ManagementInformation System,简称EMIS)是由计算机技术支持下的一种面向教育管理的信息化管理系统。

该系统主要实现高校、中小学等教育机构的各项管理活动,包括教学管理、学生管理、教师管理、课程管理、成绩管理、教学资源管理等。

该系统的建设,可以有效提高教育管理的效率、精度、可靠性和透明度,进一步促进教育行业的发展。

二、系统架构1. 系统总体架构EMIS的总体架构(图1)分为三个层次:客户端层、业务逻辑层和数据存储层。

客户端层主要是指教师、学生、教务管理员等通过浏览器等客户端软件对系统进行访问和使用。

业务逻辑层是系统的核心,主要判断并处理各类请求,调用数据存储层的数据进行操作。

数据存储层则是承载系统数据的数据库。

图1 EMIS总体架构2. 业务逻辑层(1)用户管理用户管理是EMIS的第一步,系统管理员可通过此模块增加、删除、修改学生、教师、辅导员等人员信息。

在此模块中,可以设置用户的权限,包括阅读和修改。

(2)课程管理课程管理是EMIS的重要功能之一。

通过此模块,教务管理员可以维护、创建和管理课程相关信息,包括开课时间、课程名称、授课教师、授课教室等等。

(3)学生信息管理学生信息管理包括学生档案、考试成绩、学分绩点等信息的管理和维护。

通过此模块,管理员可以对学生信息进行分类和筛选,查询和维护学生相关记录。

(4)教师信息管理教师信息管理包括教师档案、授课记录等信息的管理和维护。

管理员可以通过此模块维护教师的档案、课程安排、考试成绩以及授课记录等信息。

(5)考试成绩管理考试成绩管理一般用来管理学生的考试得分。

通过此模块,管理员可以查看某学期、某课程或某学生的考试成绩。

此外,管理员还可以进行统计分析。

(6)教学资源管理教学资源管理维护教材、参考书、案例等学习资源,其统计分析可以辅助教务管理员评估教学质量,审查教学计划和课程框架等。

管理信息系统课程设计

管理信息系统课程设计

管理信息系统课程设计一、教学目标本课程的教学目标是使学生掌握管理信息系统的基本概念、原理和技术,培养学生运用管理信息系统解决实际问题的能力。

具体目标如下:1.知识目标:–理解管理信息系统的定义、功能和分类;–掌握管理信息系统的基本组成部分和运作原理;–熟悉管理信息系统在不同行业和领域的应用案例;–了解管理信息系统的发展趋势和未来挑战。

2.技能目标:–能够运用管理信息系统分析和解决实际问题;–掌握管理信息系统的设计方法和工具;–具备管理信息系统项目管理和团队协作的能力;–学会对管理信息系统进行评估和优化。

3.情感态度价值观目标:–培养学生对管理信息系统的兴趣和热情;–增强学生运用管理信息系统解决实际问题的意识;–培养学生具备创新精神和团队合作精神;–引导学生关注管理信息系统在社会发展中的作用和责任。

二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.管理信息系统的基本概念:介绍管理信息系统的定义、功能和分类,使学生了解管理信息系统在企业和社会中的应用。

2.管理信息系统的组成和原理:讲解管理信息系统的基本组成部分(如数据、流程、等)和运作原理,让学生掌握管理信息系统的工作机制。

3.管理信息系统的应用案例:分析不同行业和领域的管理信息系统应用案例,让学生了解管理信息系统在不同场景下的实际应用。

4.管理信息系统的发展趋势:介绍管理信息系统的发展历程、现状和未来趋势,使学生关注管理信息系统的发展动态。

5.管理信息系统的设计和实施:讲解管理信息系统的设计方法、工具和实施步骤,培养学生具备实际操作能力。

6.管理信息系统项目管理和团队协作:教授项目管理方法、团队协作技巧,提高学生的团队协作能力和项目管理能力。

7.管理信息系统的评估和优化:介绍评估方法、优化策略,培养学生对管理信息系统的持续改进意识。

三、教学方法为了实现课程目标,我们将采用以下教学方法:1.讲授法:通过讲解、演示、案例分析等方式,使学生掌握管理信息系统的基本概念、原理和应用。

精品课程管理信息系统课程完整教案

精品课程管理信息系统课程完整教案

省级精品课程分课时教案作者原创·经验分享课程名称管理信息系统(48课时)任教对象大学本科使用教材《管理信息系统》,周山芙等编著,中国人民大学出版社管理信息系统课程教案第 1 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

管理信息系统课程教案第 2 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

第 3 次第 4 次管理信息系统课程教案第 5 次第 6 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

第7 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

管理信息系统课程教案第8 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

管理信息系统课程教案第9 次管理信息系统课程教案第10 次管理信息系统课程教案第11 次管理信息系统课程教案第12 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

管理信息系统课程教案第13 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

管理信息系统课程教案第14 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

第15 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

第16 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

管理信息系统课程教案第17 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

管理信息系统课程教案第18 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

第19 次填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

管理信息系统课程设计

管理信息系统课程设计

管理信息系统课程设计一、教学目标本课程的教学目标是使学生掌握管理信息系统的基本概念、原理和方法,培养学生运用管理信息系统解决实际问题的能力。

具体包括以下三个方面的目标:1.知识目标:学生需要理解并掌握管理信息系统的基本概念、组成部分、设计与实施方法等;了解管理信息系统在现代企业管理中的作用和应用。

2.技能目标:学生能够运用管理信息系统的方法和工具,分析和解决实际问题;具备管理信息系统项目的规划、设计和实施能力。

3.情感态度价值观目标:学生认识到管理信息系统对提高企业竞争力和效率的重要性,培养学生的责任感和使命感,激发学生对管理信息系统的兴趣和热情。

二、教学内容本课程的教学内容主要包括以下几个部分:1.管理信息系统的基本概念:管理信息系统的定义、发展历程、组成部分等。

2.管理信息系统的技术与方法:数据表示、数据结构、数据库设计、信息系统设计等。

3.管理信息系统的应用:企业资源计划(ERP)、客户关系管理(CRM)、供应链管理等。

4.管理信息系统的实施与评价:实施策略、项目管理、效益评价等。

5.管理信息系统的案例分析:分析实际案例,了解管理信息系统在企业中的应用和价值。

三、教学方法为了实现教学目标,本课程将采用以下几种教学方法:1.讲授法:通过讲解基本概念、原理和方法,使学生掌握管理信息系统的基本知识。

2.案例分析法:分析实际案例,让学生了解管理信息系统在企业中的应用和价值。

3.讨论法:学生进行小组讨论,培养学生的思考能力和团队协作精神。

4.实验法:让学生动手实践,掌握管理信息系统的设计和实施方法。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选择一本权威、实用的教材,作为学生学习的主要参考资料。

2.参考书:推荐一些相关书籍,拓展学生的知识面。

3.多媒体资料:制作课件、教案等多媒体资源,提高课堂教学效果。

4.实验设备:准备相应的实验设备,让学生能够动手实践,提高实际操作能力。

课程设计学生信息管理系统

课程设计学生信息管理系统

课程设计学生信息管理系统一、课程目标知识目标:1. 理解学生信息管理系统的基本概念、功能及作用;2. 掌握数据库的基本操作,如数据录入、查询、更新和删除;3. 学会运用编程语言(如Python)实现学生信息管理系统的基本功能;4. 了解信息系统的安全性和可靠性,提高信息保护意识。

技能目标:1. 能够运用所学知识设计并实现一个简单的学生信息管理系统;2. 培养分析问题、解决问题的能力,通过编程解决实际问题;3. 提高团队协作和沟通能力,通过项目实践共同完成任务;4. 掌握项目管理和时间规划,合理安排学习进度。

情感态度价值观目标:1. 培养学生对信息技术的兴趣和热情,提高学习积极性;2. 培养学生严谨、认真的工作态度,养成良好的编程习惯;3. 增强学生的信息安全意识,尊重个人隐私,树立正确的道德观念;4. 培养学生的团队精神,学会分享和合作,提高人际交往能力。

本课程针对初中年级学生,结合学科特点和教学要求,以实用性为导向,旨在让学生通过学习学生信息管理系统,掌握信息技术的基本知识和技能,同时培养其情感态度价值观。

课程目标具体、可衡量,便于后续教学设计和评估。

在教学过程中,教师需关注学生的个体差异,充分调动学生的积极性,引导他们主动参与课堂实践,提高课堂效果。

二、教学内容1. 学生信息管理系统概述- 了解信息系统的基本概念、功能及作用;- 掌握学生信息管理系统的基本模块和流程。

2. 数据库基础知识- 学习数据库的基本概念、数据模型;- 掌握SQL语言的基本操作,如插入、查询、更新和删除。

3. 编程语言应用- 学习Python编程基础,掌握基本语法和常用库;- 利用Python实现学生信息管理系统的功能。

4. 系统设计与实现- 分析学生信息管理系统的需求,进行系统设计;- 学习项目管理方法,制定项目计划,分工协作。

5. 系统测试与优化- 学习系统测试的基本方法,对实现的功能进行测试;- 根据测试结果,优化系统性能和用户体验。

教务信息管理系统

教务信息管理系统

教务信息管理系统在当今数字化的时代,教育领域也紧跟科技的步伐,不断引入各种信息化手段来提高管理效率和教学质量。

其中,教务信息管理系统作为学校管理的重要工具,发挥着不可或缺的作用。

教务信息管理系统,简单来说,就是一套用于学校教务管理工作的数字化解决方案。

它涵盖了从学生入学到毕业的整个过程,以及教师教学安排、课程设置、考试管理、成绩统计等诸多方面。

通过这个系统,学校能够实现教务工作的规范化、科学化和高效化。

对于学生而言,教务信息管理系统为他们提供了便捷的服务。

学生可以通过系统查询自己的课程安排、考试时间和地点、成绩等重要信息。

不再需要像过去那样,为了获取这些信息而在不同的办公室之间奔波,节省了时间和精力。

而且,系统还能够提供个性化的学习建议和课程推荐,帮助学生更好地规划自己的学业。

对于教师来说,这个系统也是一大助力。

教师可以利用它进行课程的安排和调整,方便地录入学生的成绩,查看学生的学习情况,以便更好地因材施教。

同时,系统也为教师之间的交流和合作提供了平台,促进教学资源的共享和教学方法的改进。

在课程管理方面,教务信息管理系统能够清晰地呈现每门课程的详细信息,包括课程简介、教学大纲、教材选用等。

学校可以根据实际情况,灵活地设置课程的开课时间、授课教师、授课地点等。

这不仅使得课程安排更加合理,也避免了因人为疏忽而导致的课程冲突等问题。

考试管理是教务工作中的一个重要环节。

通过教务信息管理系统,学校可以方便地安排考试时间、考场和监考人员。

学生可以在线报名参加考试,系统会自动进行资格审核。

考试结束后,教师可以在系统中录入成绩,系统会自动进行统计和分析,生成各种报表,为教学质量评估提供数据支持。

成绩管理也是系统的一个核心功能。

学生的每一次考试成绩都会被准确地记录在系统中,包括平时成绩、期中成绩、期末成绩等。

系统会按照设定的计算规则,自动计算出学生的总评成绩。

学生和家长可以随时查看成绩,了解学习的进展情况。

教师也可以通过成绩分析,发现教学中存在的问题,及时调整教学策略。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

package org.hxl.oracle.demo03;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Scanner;/** 课程信息管理系统,要求:* 1. 课程信息包括:Cno(课程号) ,Cname(课程名),period(课时数),term(上课学期), * property(课程性质)* 2.包括课程的增加,删除,修改* 查询(查询全部的课程信息,按关键字查询课程信息,按课程号查询课程信息)* 3.将所有的记录保存在oracle数据库中* *///vo类(与数据库中的一张表相对应,一个对象对应表中的一条记录,一个属性对应表中的一个字段)class Course implements Comparable<Course>{private int cno ; //课程号private String cname ; //课程名private int period ; //课时数private String term ; //上课学期private String property ; //课程性质public Course(){//无参构造函数}public Course(int cno,String cname,int period,String term,String property){o = cno ;ame = cname ;this.term = term ;this.period = period ;this.property = property ;}public void setCno(int cno){o = cno ;}public void setCname(String cname){ame = cname ;}public void setPeriod(int period){this.period = period ;}public void setTerm(String term){this.term = term ;}public void setProperty(String property){this.property = property ;}public int getCno(){return o ;}public String getCname(){return ame ;}public int getPeriod(){return this.period ;}public String getTerm(){return this.term ;}public String getProperty(){return this.property ;}@Overridepublic String toString(){return "课程号:" + this.getCno() + ",课程名:" + this.getCname() + ",课程的学时:" + this.getPeriod()+",上课学期:" + this.getTerm() + ",课程性质:" + this.getProperty();}@Overridepublic int compareTo(Course course) {if(o>o){return -1 ;}else if(o<o){return 1 ;}else{return 0 ;}}@Overridepublic int hashCode(){return o * super.hashCode() ;}@Overridepublic boolean equals(Object obj){if(obj==null){return false ;}if(this == obj){return true ;}if(!(obj instanceof Course)){return false ;}Course course = (Course)obj ;if(o==o){//课程号相同,则一定相同,课程号是唯一标识符return true ;}else{return false ;}}}//DatebaseConnection数据库连接与关闭class DatebaseConnection{//数据库驱动程序private final static String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;//数据库的连接地址private final static String DBURL = "jdbc:oracle:thin:@localhost:1521:MLDN" ;//数据库的用户名private final static String DBUER = "scott" ;//数据库的密码private final static String DBPASS = "tiger" ;//数据库的连接对象private Connection connection ;public DatebaseConnection() throws Exception{try{//1.加载驱动程序Class.forName(DBDRIVER) ;//2.建立数据库连接this.connection = DriverManager.getConnection(DBURL, DBUER, DBPASS) ;}catch(Exception e){throw e ; //将异常交给被调用处处理}}public Connection getConnection(){return this.connection ; //取得数据库连接对象的实例}public void close() throws Exception{try{if(this.connection!=null){ //关闭数据库连接对象this.connection.close() ;}}catch(Exception e){throw e ; //异常交给被调用处处理}}}interface ICourseDAO{/** 1.数据的增加操作,用于向数据库中添加一条课程记录* @param course:表示一个课程对象* @return boolean:是否添加成功* @throws Exception:异常交给被调用处处理* */public abstract boolean doCreate(Course course)throws Exception ;/** 2.数据的删除操作,用于删除数据库中的某条记录* @param cno:表示要删除的课程的课程号* @return boolean:删除是否成功* @throws Exception:异常交给被调用处处理* */public abstract boolean doRemove(int cno)throws Exception ;/** 3.数据的更新操作* @param cno:表示要更新的课程的课程号* @return boolean:更新是否成功* throws Exception:异常交给被调用处处理* */public abstract boolean doUpdate(int cno)throws Exception ;/** 4.查看数据库中的所有记录* @param void* @return List<Course>:将查询结果以链表的形式返回给被调用出* @throws Exception:异常交给被调用处处理* */public abstract List<Course> findAll()throws Exception ;/** 5.根据关键字查询* @param keyWord:查询的关键字* @return List<Course>:将查询的结果以链表的形式返回给被调用出* @throws Exception:异常交给被调用处处理* 函数的重载* */public abstract List<Course> findAll(String keyWord)throws Exception ;/** 6.根据课程号查询* @param cno:要查询的课程号* @return Course:将查询的结果返回给被调用处* @throws Exception:将异常抛出交给被调用处处理* */public abstract Course find(int cno)throws Exception ;/** 7.查询当前数据库中的记录数* @param void* @return int :将查询的记录数返回给调用处* @throws Exception:将异常抛出交给被调用处处理* */public abstract int getAllCount()throws Exception ;/** 8.得到根据关键字查询的记录数* @param keyWord:要查询的关键字* @return int : 将查询的记录数返回给被调用处* @throws Exception:将异常抛出交给被调用处处理* 函数的重载* */public abstract int getAllCount(String keyWord)throws Exception ;}//真是主题实现类,负责具体的操作class CourseDAOImpl implements ICourseDAO{private Connection conn ;private PreparedStatement pstmt ;public CourseDAOImpl(Connection conn){//接收外部的数据库连接对象完成数据库的连接this.conn = conn ;}@Overridepublic boolean doCreate(Course course) throws Exception {boolean flag = false ;String sql = "Insert into Course(Cno,Cname,period,term,property) Values(?,?,?,?,?)" ;this.pstmt = this.conn.prepareStatement(sql) ;this.pstmt.setInt(1, course.getCno()) ;this.pstmt.setString(2, course.getCname()) ;this.pstmt.setInt(3, course.getPeriod()) ;this.pstmt.setString(4, course.getTerm()) ;this.pstmt.setString(5, course.getProperty()) ;if(this.pstmt.executeUpdate()>0){flag = true ;}this.pstmt.close() ;return flag;}@Overridepublic boolean doRemove(int cno) throws Exception {boolean flag = false ;String sql = "Delete From Course Where Cno = ? " ;this.pstmt = this.conn.prepareStatement(sql) ;this.pstmt.setInt(1, cno) ;if(this.pstmt.executeUpdate()>0){flag = true ;}this.pstmt.close() ;return flag ;}@Overridepublic boolean doUpdate(int cno) throws Exception {boolean flag = false ;String sql = "Update Course Set Cname = ?,period = ?,term = ?,property = ? Where Cno = ?" ;this.pstmt = this.conn.prepareStatement(sql) ;System.out.println("输入你想要添加的课程的课程名:");String cname = new Scanner(System.in).next() ;System.out.println("输入你想要添加课程的学时:");int period = new Scanner(System.in).nextInt() ;System.out.println("输入你想要添加的课程的上课学期:");String term = new Scanner(System.in).next() ;System.out.println("请输入你想要添加的课程的课程性质:");String property = new Scanner(System.in).next() ;this.pstmt.setString(1, cname) ;this.pstmt.setInt(2, period) ;this.pstmt.setString(3, term) ;this.pstmt.setString(4, property) ;this.pstmt.setInt(5, cno) ;if(this.pstmt.executeUpdate()>0){flag = true ;}this.pstmt.close() ;return flag ;}@Overridepublic List<Course> findAll() throws Exception {List<Course> courses = new ArrayList<Course>() ;String sql = "Select Cno,Cname,period,term,property From Course" ;this.pstmt = this.conn.prepareStatement(sql) ;ResultSet rs = this.pstmt.executeQuery() ;while(rs.next()){Course course = new Course() ;course.setCno(rs.getInt(1)) ;course.setCname(rs.getString(2)) ;course.setPeriod(rs.getInt(3)) ;course.setTerm(rs.getString(4)) ;course.setProperty(rs.getString(5)) ;courses.add(course) ;}this.pstmt.close() ;return courses;}@Overridepublic List<Course> findAll(String keyWord) throws Exception {List<Course> courses = new ArrayList<Course>() ;String sql = "Select Cno,Cname,period,term,property From Course Where Cname like ?" +"OR term like ? OR property like ?" ;this.pstmt = this.conn.prepareStatement(sql) ;this.pstmt.setString(1, "%" + keyWord + "%") ;this.pstmt.setString(2, "%" + keyWord + "%") ;this.pstmt.setString(3, "%" + keyWord + "%") ;ResultSet rs = this.pstmt.executeQuery() ;while(rs.next()){Course course = new Course() ;course.setCno(rs.getInt(1)) ;course.setCname(rs.getString(2)) ;course.setPeriod(rs.getInt(3)) ;course.setTerm(rs.getString(4)) ;course.setProperty(rs.getString(5)) ;courses.add(course) ;}this.pstmt.close() ;return courses;}@Overridepublic Course find(int cno) throws Exception {Course course = new Course() ;String sql = "Select Cno,Cname,period,term,property From Course Where Cno = ?" ;this.pstmt = this.conn.prepareStatement(sql) ;this.pstmt.setInt(1, cno) ;ResultSet rs = this.pstmt.executeQuery() ;while(rs.next()){course.setCno(rs.getInt(1)) ;course.setCname(rs.getString(2)) ;course.setPeriod(rs.getInt(3)) ;course.setTerm(rs.getString(4)) ;course.setProperty(rs.getString(5)) ;}this.pstmt.close() ;return course ;}@Overridepublic int getAllCount() throws Exception {int count = 0 ;List<Course> courses = new ArrayList<Course>() ;String sql = "Select Cno,Cname,period,term,property From Course" ;this.pstmt = this.conn.prepareStatement(sql) ;ResultSet rs = this.pstmt.executeQuery() ;while(rs.next()){Course course = new Course() ;course.setCno(rs.getInt(1)) ;course.setCname(rs.getString(2)) ;course.setPeriod(rs.getInt(3)) ;course.setTerm(rs.getString(4)) ;course.setProperty(rs.getString(5)) ;courses.add(course) ;}count = courses.size() ;this.pstmt.close() ;return count;}@Overridepublic int getAllCount(String keyWord) throws Exception {int count = 0 ;List<Course> courses = new ArrayList<Course>() ;String sql = "Select Cno,Cname,period,term,property From Course Where Cname like ?" +"OR term like ? OR property like ?" ;this.pstmt = this.conn.prepareStatement(sql) ;this.pstmt.setString(1, "%" + keyWord + "%") ;this.pstmt.setString(2, "%" + keyWord + "%") ;this.pstmt.setString(3, "%" + keyWord + "%") ;ResultSet rs = this.pstmt.executeQuery() ;while(rs.next()){Course course = new Course() ;course.setCno(rs.getInt(1)) ;course.setCname(rs.getString(2)) ;course.setPeriod(rs.getInt(3)) ;course.setTerm(rs.getString(4)) ;course.setProperty(rs.getString(5)) ;courses.add(course) ;}count = courses.size() ;this.pstmt.close() ;return count ;}}//代理实现类,(帮助真是主题更好的完成操作,负责数据库的打开和关闭,并调用真实主题完成操作)class CourseDAOProxy implements ICourseDAO{private DatebaseConnection dbc = null ;private ICourseDAO dao ;public CourseDAOProxy() throws Exception{try {this.dbc = new DatebaseConnection() ;//为真实主体完成数据库的连接this.dao = new CourseDAOImpl(this.dbc.getConnection()) ;} catch (Exception e) {throw e ;}}public DatebaseConnection getDbc(){return this.dbc ;}@Overridepublic boolean doCreate(Course course) throws Exception {boolean flag = false ;try{if(this.dao.find(course.getCno()).getCname()==null){//要添加的课程号已经存在则不能添加//调用真是主题完成数据的增加操作flag = this.dao.doCreate(course) ;}}catch(Exception e){throw e ;}return flag ;}@Overridepublic boolean doRemove(int cno) throws Exception {boolean flag = false ;try{if(this.find(cno).getCname()!=null){ //要删除的课程的课程号存在,调用真实主题完成数据的删除操作flag = this.dao.doRemove(cno) ;}}catch(Exception e){throw e ;}return flag ;}@Overridepublic boolean doUpdate(int cno) throws Exception {boolean flag = false ;try{if(this.find(cno)!=null){//要更新的课程的课程好存在完成数据的更新操作flag = this.dao.doUpdate(cno) ;}}catch(Exception e){throw e ;}return flag ;}@Overridepublic List<Course> findAll() throws Exception {List<Course> courses = new ArrayList<Course>() ;try{courses = this.dao.findAll() ;}catch(Exception e){throw e ;}return courses;}@Overridepublic List<Course> findAll(String keyWord) throws Exception { List<Course> courses = new ArrayList<Course>() ;try{courses = this.dao.findAll(keyWord) ;}catch(Exception e){throw e ;}return courses;}@Overridepublic Course find(int cno) throws Exception {Course course = new Course() ;// Course course = null ;try{course = this.dao.find(cno) ;}catch(Exception e){throw e ;}return course;}@Overridepublic int getAllCount() throws Exception {int count = 0 ;try{count = this.dao.getAllCount() ;}catch(Exception e){throw e ;}return count;}@Overridepublic int getAllCount(String keyWord) throws Exception { int count = 0 ;try{count = this.dao.getAllCount(keyWord) ;}catch(Exception e){throw e ;}return count;}}//工厂类,解耦合class DAOFactory{//以接口为操作标注public static ICourseDAO getICourseDAOInstance() throws Exception{try{return new CourseDAOProxy() ;}catch(Exception e){throw e ;}}}//显示类,给出用户提示信息class Menu{public Menu(){//无参构造方法}public void disMenu(){System.out.println("==============欢迎光临本系统================");System.out.println("[1].增加数据");System.out.println("[2].删除数据");System.out.println("[3].修改数据");System.out.println("[4].按课程号查看数据");System.out.println("[5].按关键字查看所有数据");System.out.println("[6].显示所有数据");System.out.println("[7].显示所有的记录数");System.out.println("[8].按关键字查询得到记录数");System.out.println("[0].退出系统");System.out.println("按提示操作");}public void selectMenu() throws Exception{int select = 1 ;System.out.println("请输入你想要的服务类型:");select = new Scanner(System.in).nextInt() ; ;switch(select){case 1: this.doCreate() ; break ;case 2: this.doDelete() ; break ;case 3: this.doUpdate() ; break ;case 4: this.find() ; break ;case 5: this.findAll() ; break ;case 6: this.findall() ; break ;case 7: this.getallCount() ; break ;case 8: this.getAllCount() ; break ;case 0:{//退出时关闭数据库连接try {new CourseDAOProxy().getDbc().close() ;} catch (Exception e) {throw e ;}System.exit(1) ;break ; //退出系统}default:System.out.println("请选择正确的操作"); break;}}public void doUpdate() throws Exception {System.out.println("请输入你想要更新的课程号:");int cno = new Scanner(System.in).nextInt() ;try {if(DAOFactory.getICourseDAOInstance().doUpdate(cno)){System.out.println("更新成功!!!");}else{System.out.println("更新失败!!!");}} catch (Exception e) {throw e ;}}public void getallCount() throws Exception{int count = 0 ;try {count = DAOFactory.getICourseDAOInstance().getAllCount() ;} catch (Exception e) {throw e ;}System.out.println("当前数据库中的记录数为:" + count);}public void getAllCount() throws Exception{System.out.println("请输入你想要查询的关键字:");String keyWord = new Scanner(System.in).next() ;int count = 0 ;try {count = DAOFactory.getICourseDAOInstance().getAllCount(keyWord) ;} catch (Exception e) {throw e ;}System.out.println("当前数据库中满足条件的记录数为:" + count);}public void findall() throws Exception {List<Course> courses = new ArrayList<Course>() ;try {courses = DAOFactory.getICourseDAOInstance().findAll() ;} catch (Exception e) {throw e ;}Iterator<Course> iter = courses.iterator() ;while(iter.hasNext()){System.out.println(iter.next().toString());}}public void findAll() throws Exception {System.out.println("请输入你想要查询的关键字:");String keyWord = new Scanner(System.in).next() ;List<Course> courses = new ArrayList<Course>() ;try {courses = DAOFactory.getICourseDAOInstance().findAll(keyWord) ;} catch (Exception e) {throw e ;}Iterator<Course> iter = courses.iterator() ;while(iter.hasNext()){System.out.println(iter.next().toString());}}public void find() throws Exception {System.out.println("请输入你想要查询的课程号:");int cno = new Scanner(System.in).nextInt() ;Course course = new Course() ;try {course = DAOFactory.getICourseDAOInstance().find(cno) ;} catch (Exception e) {throw e ;}System.out.println(course);}public void doDelete() throws Exception {System.out.println("请输入你想要删除的课程号:");int cno = new Scanner(System.in).nextInt() ;try {if(DAOFactory.getICourseDAOInstance().doRemove(cno)){System.out.println("删除成功!!!");}else{System.out.println("没能正确删除!!!");}} catch (Exception e) {throw e ;}}public void doCreate() throws Exception {System.out.println("输入你想要添加课程的课程号:");int cno = new Scanner(System.in).nextInt() ;System.out.println("输入你想要添加的课程的课程名:");String cname = new Scanner(System.in).next() ;System.out.println("输入你想要添加课程的学时:");int period = new Scanner(System.in).nextInt() ;System.out.println("输入你想要添加的课程的上课学期:");String term = new Scanner(System.in).next() ;System.out.println("请输入你想要添加的课程的课程性质:");String property = new Scanner(System.in).next() ;Course course = new Course() ;course.setCno(cno) ;course.setCname(cname) ;course.setPeriod(period) ;course.setTerm(term) ;course.setProperty(property) ;try{if(DAOFactory.getICourseDAOInstance().doCreate(course)){System.out.println("添加成功!!!");}else{System.out.println("添加失败!!!");}}catch(Exception e){throw e ;}}}public class SystemCourseDemo01 {public static void main(String[] args){Menu menu = new Menu() ;while(true){menu.disMenu() ;try {menu.selectMenu() ;} catch (Exception e) {e.printStackTrace();}}}}。

相关文档
最新文档