JAVA课程设计文件管理系统

合集下载

学生管理系统JAVA课课程设计

学生管理系统JAVA课课程设计

学生管理系统JAVA课课程设计一、教学目标本课程的目标是让学生掌握学生管理系统的Java编程知识,能够运用Java语言实现一个简单的学生管理系统。

具体目标如下:1.知识目标:–理解Java语言的基本语法和数据结构。

–掌握Java中的控制结构和面向对象编程思想。

–了解Java中的文件操作和数据库连接。

2.技能目标:–能够使用Java编写简单的程序,实现学生的增删改查功能。

–能够使用Java连接数据库,实现对学生信息的持久化存储。

–能够使用Java的文件操作,读写学生数据。

3.情感态度价值观目标:–培养学生的编程兴趣,提高学生解决问题的能力。

–培养学生团队协作的精神,提高学生的沟通表达能力。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.Java语言基础:包括基本语法、数据类型、变量、运算符等。

2.控制结构:包括条件语句、循环语句等。

3.面向对象编程:包括类、对象、继承、多态等。

4.文件操作:包括文件的读写、文件管理等。

5.数据库连接:包括JDBC的概念、数据库的连接与操作等。

6.学生管理系统的设计与实现:包括系统需求分析、系统设计、功能实现等。

三、教学方法为了达到课程目标,本课程将采用以下几种教学方法:1.讲授法:用于讲解Java语言基础、控制结构、面向对象编程等理论知识。

2.案例分析法:通过分析实际案例,让学生理解并掌握文件操作和数据库连接的方法。

3.实验法:让学生动手编写代码,实现学生管理系统,提高学生的实际操作能力。

4.小组讨论法:分组让学生讨论问题,培养学生的团队协作和沟通能力。

四、教学资源为了支持课程的顺利进行,我们将准备以下教学资源:1.教材:《Java编程思想》等。

2.参考书:《Java核心技术》、《Java Web开发》等。

3.多媒体资料:教学PPT、视频教程等。

4.实验设备:计算机、网络环境、数据库服务器等。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。

课程信息管理系统java课程设计

课程信息管理系统java课程设计

课程信息管理系统java课程设计一、课程目标知识目标:1. 学生能够掌握Java语言基础,包括数据类型、控制结构、类与对象等;2. 学生能够理解课程信息管理系统的功能需求,掌握系统设计的基本原理;3. 学生能够运用所学知识,实现课程信息管理系统的基本功能模块。

技能目标:1. 学生能够运用Java语言编写程序,实现课程信息管理系统的功能;2. 学生能够运用面向对象编程思想,进行系统设计和模块划分;3. 学生能够运用调试工具,调试并优化自己的程序。

情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情;2. 学生在团队协作中,学会沟通、分享和承担责任;3. 学生能够认识到编程在生活中的应用,提高对信息技术的认识。

课程性质:本课程为实践性较强的学科,要求学生结合所学理论知识,动手实践,培养编程能力和实际应用能力。

学生特点:学生处于高年级阶段,具有一定的Java编程基础,对面向对象编程有一定的了解,具备一定的自主学习能力。

教学要求:结合课程性质、学生特点,注重理论与实践相结合,培养学生的编程能力和实际应用能力。

通过课程学习,使学生能够独立完成课程信息管理系统的设计与实现。

同时,关注学生的情感态度价值观培养,提高学生的团队协作能力和信息技术素养。

将课程目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. Java语言基础回顾:数据类型、控制结构、数组、类与对象等基本概念;2. 面向对象编程:封装、继承、多态等核心概念,以及设计模式初步了解;3. 课程信息管理系统需求分析:梳理系统功能,明确模块划分;4. 数据库基础:SQL语句编写,数据库连接与操作;5. Java图形用户界面(GUI)设计:Swing组件的使用,界面布局与美化;6. 课程信息管理系统的设计与实现:- 系统架构设计:分层设计,模块划分;- 功能模块开发:课程信息添加、修改、删除、查询等;- 系统测试与优化:测试用例设计,性能优化;7. 项目实践与团队协作:分组进行项目实践,培养学生的团队协作能力。

Java课程设计---教职工档案管理系统

Java课程设计---教职工档案管理系统

关键算法实现
数据结构选择:使用数组或链表来存储教职工信息,以便快速访问。 查询算法:实现高效的查询算法,如二分查找,以便快速查找特定教职工的信息。 排序算法:使用快速排序或归并排序对教职工信息进行排序,以便按照特定顺序显示信息。 插入和删除算法:实现插入和删除教职工信息的算法,以确保数据结构的稳定性和可靠性。
操作系统:使用 Linux系统,提 供安全、稳定的 运行环境。
数据库:选择 MySQL数据库, 确保数据存储的 安全性和可靠性。
部署方式:采用 Docker容器化 部署,实现快速 部署和容器管理。
系统维护
数据库备份与恢复 系统升级与补丁安装 故障诊断与排除 定期检查与维护
系统升级与优化
升级方式:手动升 级和自动升级
数据需求分析
教职工信息:姓 名、性别、年龄、 学历、职称等
部门信息:部门 名称、部门负责 人、联系电话等
岗位信息:岗位 名称、岗位职责、 任职条件等
工资信息:基本 工资、绩效工资、 津贴等
系统设计
章节副标题
系统架构设计
架构概述:描述 系统的整体架构 和主要组件
数据库设计:介 绍数据库表结构、 关系等
系统开发的目标 和意义
系统涉及的主要 业务和功能
系统与其他系统 的关系
系统目标
实现教职工档案 的录入、存储和 检索功能
提供方便快捷的 档案查询服务
保证数据的安全 性和保密性
提高档案管理工 作的效率和规范 性
系统功能
教职工信息录入 教职工信息查询 教职工信息修改 教职工信息删除
系统需求分析
章节副标题
数据安全性:设 置用户权限和数 据加密入框,以 及登录和取消
按钮
主界面:显示 教职工的姓名、 性别、年龄、 学历、职称等

《JAVA程序设计》课程设计大作业-Java学生管理系统

《JAVA程序设计》课程设计大作业-Java学生管理系统

《JAVA程序设计》课程设计大作业-Java学生管理系统山东理工大学计算机学院题目: Java学生管理系统班级姓名学号2011 年 12 月 6 日目录摘要.................................................................................3 第一章设计简介及设计方案 (4)1.1 系统功能分析 (4)1.2 系统功能模块设计 (4)1.3 数据库功能分析 (4)1.4 数据库需求分析.........................................................5 第二章详细设计 (6)2.1 数据库设计 (6)2 详细编程…………………………………………………………8 2.第三章设计结果及分析 (12)3.1 设计结果 (12)3.2 设计结果分析.........................................................19 总结..............................................................................17 参考文献 (17)2摘要随着计算机技术的飞速发展,当今社会正快速向信息化社会前进。

而如今学校的规模不断扩大,学生数量急剧加,有关学生的各种信息量也成倍增长,面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。

通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工用量。

此次设计我们使用JAVA编程,实现了学生信息管理系统的过程。

本系统采用Sun公司的j2sdk1.4.2_04和SQL SERVER 2000数据库管理系统作为开发工具,通过对学生信息管理系统进行可行性分析、需求分析和设计逐步将一个学生信息管理系统的开发过程呈现出来。

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

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

java课程设计学生信息管理系统一、教学目标本节课的教学目标是使学生掌握Java编程语言的基本语法和编程技巧,能够运用Java语言实现简单的学生信息管理系统。

具体目标如下:1.知识目标:–掌握Java语言的基本语法和数据结构;–理解面向对象编程的基本概念和方法;–了解学生信息管理系统的功能和结构。

2.技能目标:–能够使用Java语言编写简单的程序;–能够运用面向对象编程方法设计和实现学生信息管理系统;–能够对程序进行调试和优化。

3.情感态度价值观目标:–培养学生的编程兴趣和自主学习能力;–培养学生解决问题的能力和团队合作精神;–使学生认识到计算机技术在现实生活中的重要性和应用价值。

二、教学内容本节课的教学内容主要包括以下几个部分:1.Java语言的基本语法和数据结构;2.面向对象编程的基本概念和方法;3.学生信息管理系统的功能和结构;4.学生信息管理系统的实现和优化。

具体安排如下:1.第1-2课时:讲解Java语言的基本语法和数据结构;2.第3-4课时:讲解面向对象编程的基本概念和方法;3.第5-6课时:介绍学生信息管理系统的功能和结构;4.第7-8课时:引导学生实现和优化学生信息管理系统。

三、教学方法本节课采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解Java语言的基本语法和数据结构,面向对象编程的基本概念和方法;2.案例分析法:分析实际的学生信息管理系统的案例,使学生更好地理解理论知识;3.实验法:引导学生动手实现和优化学生信息管理系统,提高学生的实际编程能力。

四、教学资源本节课所需的教学资源包括:1.教材:Java编程语言相关教材;2.参考书:面向对象编程相关参考书;3.多媒体资料:讲解Java语言和面向对象编程的PPT;4.实验设备:计算机和网络设备,以便进行编程实践。

五、教学评估本节课的教学评估将采用多元化评价方式,以全面、客观、公正地评估学生的学习成果。

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

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

学生信息管理系统课程设计 java一、课程目标知识目标:1. 让学生理解学生信息管理系统的基本概念,掌握Java语言实现该系统的核心知识,包括类的定义、对象的使用、集合框架等。

2. 使学生掌握如何使用Java编写数据库连接程序,实现对数据库的增、删、改、查等基本操作。

3. 帮助学生了解Java GUI编程,能够使用Swing组件设计出友好的用户界面。

技能目标:1. 培养学生运用Java语言设计并实现学生信息管理系统,提高编程实践能力。

2. 培养学生分析问题、解决问题的能力,能够根据需求独立完成系统功能模块的设计与实现。

3. 培养学生具备一定的项目开发经验,能够进行团队合作,分工协作完成项目。

情感态度价值观目标:1. 激发学生对Java编程的兴趣,培养其主动学习的习惯,提高学习积极性。

2. 培养学生具备良好的编程习惯,注重代码规范,提高代码质量。

3. 培养学生的团队协作意识,使其认识到团队协作的重要性,学会与他人共同解决问题。

课程性质:本课程为实践性较强的Java语言课程,以项目驱动的方式进行教学,旨在提高学生的编程能力、项目开发能力和团队协作能力。

学生特点:学生已具备一定的Java基础,具有一定的编程能力,但缺乏实际项目经验和团队协作能力。

教学要求:结合学生特点,注重实践操作,引导学生主动参与,充分调动学生的积极性,培养其编程实践和团队协作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. Java基础回顾:包括类与对象、继承与多态、集合框架等基础知识,对应教材第一章至第四章。

- 类与对象:定义类、创建对象、封装、构造方法等。

- 继承与多态:继承的概念、方法重写、多态性等。

- 集合框架:常用集合类、迭代器、泛型等。

2. 数据库连接与操作:学习JDBC技术,实现与数据库的连接、数据查询、插入、删除和修改操作,对应教材第五章。

- JDBC概念与使用:理解JDBC的作用,掌握JDBC API的使用。

基于javaee的毕业设计管理系统设计与实现

基于javaee的毕业设计管理系统设计与实现

基于JavaEE的毕业设计管理系统设计与实现目录1.毕业设计管理系统的介绍2.系统需求分析3.设计与数据库模型4.前后端架构设计5.技术选型与实现6.系统测试与部署7.总结与展望1. 毕业设计管理系统的介绍毕业设计管理系统是为了提升大学毕业设计流程管理效率而开发的一种信息化管理工具。

该系统可以帮助学校、教师和学生更好地进行毕业设计选题、指导、评审和查重等相关工作,从而更好地完成毕业设计任务。

2. 系统需求分析在进行系统设计前,我们首先需要对系统的需求进行分析。

系统需求分析主要包括对用户需求和功能需求的梳理和整理。

用户需求包括学校、教师和学生的需求,功能需求包括系统所需实现的各项功能。

3. 设计与数据库模型系统设计是在需求分析的基础上进行的,主要包括系统的架构设计和数据库模型设计。

系统的架构设计包括前后端的分层结构、模块设计和系统接口设计等。

数据库模型设计则是根据系统功能和需求,设计出合理的数据库表结构以及表之间的关系。

4. 前后端架构设计在进行毕业设计管理系统的前后端架构设计时,应该遵循分层开发的原则。

前端主要负责用户界面的展示和用户交互逻辑的处理,而后端则负责数据的处理和业务逻辑的实现。

前后端之间的通信可以通过RESTful API来实现。

5. 技术选型与实现在选择技术栈时,可以考虑使用JavaEE作为后端开发语言,并选择一种适合的框架来加快开发速度。

可以使用Spring Boot作为后端框架,通过集成Spring框架来简化开发。

前端可以使用Vue.js等流行的前端框架来实现用户界面的开发。

6. 系统测试与部署在完成系统开发后,需要进行系统测试和部署。

系统测试主要包括单元测试、集成测试和系统测试等,以保证系统的质量和稳定性。

部署阶段则需要将系统部署到服务器上,并进行相关配置,以确保系统可以正常运行。

7. 总结与展望在完成毕业设计管理系统的设计和实现后,我们可以进行一次总结和展望。

总结可以回顾整个系统开发过程中的经验和教训,展望可以对系统的未来发展进行一些思考和规划,以不断提升系统的功能和性能。

JAVA课程设计报告,基于mysql的学生信息管理系统

JAVA课程设计报告,基于mysql的学生信息管理系统

总结16一、课题介绍课题介绍 ...................................... ...................................... 3二、目的和要求目的和要求 ................................... ................................... 3三、任务计划任务计划 ...................................... .. (3)需求分析需求分析 (5)一、学生管理系统的发展现状学生管理系统的发展现状 ................................ ................................ 5二、系统功能分析系统功能分析 ................................... .. (5)三、系统结构框图系统结构框图 ................................... .. (5)数据库设计.........................................创建数据表的结构创建数据表的结构 ................................. (7)各表功能及其关系各表功能及其关系 ................................. (7)系统模块功能的实现与界面设计 (8)一、系统主要模块系统主要模块 ................................... ................................... 8二、欢迎界面欢迎界面 ..................................... ..................................... 9三、主菜单界面主菜单界面 ............................ ............................ 错误!未定义书签。

java课程设计(班级管理系统)

java课程设计(班级管理系统)

Java课程设计------简单的班级管理系统一:需求分析1.功能需求1).能够实现对班级学生基本资料的录入,包括学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等。

2).能够实现对学生基本资料的修改。

3).根据学号对学生资料进行查询。

4).能够删除某些学生的资料。

二:总体设计本班级管理系统共有6个java源文件。

类之间的主要关系如下图所示:各主类的主要作用如下:1).StudentManager.java该java文件的类负责创建班级学生管理系统的主窗口。

该类包含main方法,程序从该类开始执行。

2).StudentStituation.java该文件的类负责创建班级学生管理系统的学生信息录入界面。

3).ModifySituation.java该文件的类负责创建班级学生管理系统的学生基本信息修改界面。

4).Inquest.java该文件的类负责创建班级学生管理系统的学生基本信息查询界面。

5).Delete.java该文件的类负责创建班级学生管理系统的学生信息删除界面。

6).Student.java负责创建存放学生信息的对象。

三:详细设计1.主类StudentManager.java1).成员变量主要成员变量2).方法主要方法3).代码StudentManager.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class StudentManager extends JFrame implements ActionListener {StudentSituation 基本信息录入=null;ModifySituation 基本信息修改=null;Inquest 基本信息查询=null;Delete 基本信息删除=null;JMenuBar bar;JMenu fileMenu;JMenuItem 录入,修改,查询,删除,退出;Container con=null;Hashtable 基本信息=null;File file=null;CardLayout card=null;JLabel label;JPanel pCenter;public StudentManager(){setTitle("欢迎进入班级管理系统");录入=new JMenuItem("录入学生基本信息");修改=new JMenuItem("修改学生基本信息");查询=new JMenuItem("查询学生基本信息");删除=new JMenuItem("删除学生基本信息");退出=new JMenuItem("退出本系统");退出.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event) {System.exit(0);}});bar=new JMenuBar();fileMenu=new JMenu("菜单选项");fileMenu.add(录入);fileMenu.addSeparator();fileMenu.add(修改);fileMenu.addSeparator();fileMenu.add(查询);fileMenu.addSeparator();fileMenu.add(删除);fileMenu.addSeparator();fileMenu.addSeparator();fileMenu.add(退出);bar.add(fileMenu);setJMenuBar(bar);label=new JLabel("欢迎进入班级管理系统!",label.CENTER); label.setFont(new Font("隶书",Font.BOLD,30));label.setForeground(Color.blue);基本信息=new Hashtable();录入.addActionListener(this);修改.addActionListener(this);查询.addActionListener(this);删除.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();pCenter.setLayout(card);file=new File("学生基本信息.txt");if(!file.exists()){try{FileOutputStream out=new FileOutputStream(file); ObjectOutputStreamobjectOut=new ObjectOutputStream(out);objectOut.writeObject(基本信息);objectOut.close();out.close();}catch(IOException e){}}基本信息录入=new StudentSituation(file);基本信息修改=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=new Delete(file);pCenter.add("欢迎语界面",label);pCenter.add("录入界面",基本信息录入);pCenter.add("修改界面",基本信息修改);pCenter.add("删除界面",基本信息删除);con.add(pCenter,BorderLayout.CENTER);con.validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) {System.exit(0);}});setVisible(true);setBounds(100,50,420,380);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==录入){card.show(pCenter,"录入界面");}else if(e.getSource()==修改){card.show(pCenter,"修改界面");}else if(e.getSource()==查询){基本信息查询.setVisible(true);}else if(e.getSource()==删除){card.show(pCenter,"删除界面");}}public static void main(String args[]){new StudentManager();}}2.录入界面1).成员变量主要成员变量属性2).方法3).代码StudentSituation.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class StudentSituation extends JPanel implements ActionListener {Hashtable 基本信息表=null;JTextField 学号,姓名,所学专业,家庭住址,出生;JRadioButton 男,女;Student 学生=null;ButtonGroup group=null;JButton 录入,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public StudentSituation(File file){this.file=file;学号=new JTextField(10);姓名=new JTextField(10);所学专业=new JTextField(10);家庭住址=new JTextField(10);出生=new JTextField(10);group=new ButtonGroup();男=new JRadioButton("男",true);女=new JRadioButton("女",false);group.add(男);group.add(女);录入=new JButton("录入");重置=new JButton("重置");录入.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox(); box1.add(new JLabel("学号:",JLabel.CENTER));box1.add(学号);Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox(); box4.add(new JLabel("所学专业:",JLabel.CENTER)); box4.add(所学专业);Box box5=Box.createHorizontalBox(); box5.add(new JLabel("家庭住址:",JLabel.CENTER)); box5.add(家庭住址);Box box6=Box.createHorizontalBox(); box6.add(new JLabel("出生:",JLabel.CENTER));box6.add(出生);Box boxH=Box.createVerticalBox(); boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(录入);pSouth.add(重置);add(pSouth,BorderLayout.SOUTH);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==录入){String number="";number=学号.getText();if(number.length()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){String warning="该生基本信息已存在,请到修改页面修改!"; JOptionPane.showMessageDialog(this,warning,警告",JOptionPane.WARNING_MESSAGE);}else{String m="基本信息将被录入!";intok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,RMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){String name=姓名.getText();String discipling=所学专业.getText();String grade=家庭住址.getText();String borth=出生.getText();String sex=null;if(男.isSelected()){sex=男.getText();}else{sex=女.getText();}学生=new Student();学生.setNumber(number);学生.setName(name);学生.setDiscipling(discipling);学生.setGrade(grade);学生.setBorth(borth);学生.setSex(sex);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,学生);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();学号.setText(null);姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);}catch(Exception ee){System.out.println(ee);}}}}else{String warning="必须要输入学号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}if(e.getSource()==重置){学号.setText(null);姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);}}}3.查询界面1).成员变量主要成员变量属性2).方法主要方法3).代码Inquest.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListener {Hashtable 基本信息表=null;JTextField 学号,姓名,所学专业,家庭住址,出生; JRadioButton 男,女;JButton 查询;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;File file=null;public Inquest(JFrame f,File file){super(f,"查询对话框",false); this.file=file;学号=new JTextField(10);查询=new JButton("查询");学号.addActionListener(this);查询.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);所学专业=new JTextField(10);所学专业.setEditable(false);家庭住址=new JTextField(10);家庭住址.setEditable(false);出生=new JTextField(10);出生.setEditable(false);男=new JRadioButton("男",false);女=new JRadioButton("女",false);group=new ButtonGroup();group.add(男);group.add(女);Box box1=Box.createHorizontalBox();box1.add(new JLabel("输入要查询的学号:",JLabel.CENTER)); box1.add(学号);box1.add(查询);Box box2=Box.createHorizontalBox();box2.add(new JLabel("姓名:",JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel("性别:",JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel("所学专业:",JLabel.CENTER));box4.add(所学专业);Box box5=Box.createHorizontalBox();box5.add(new JLabel("家庭住址:",JLabel.CENTER));box5.add(家庭住址);Box box6=Box.createHorizontalBox();box6.add(new JLabel("出生:",JLabel.CENTER));box6.add(出生);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);Container con=getContentPane();con.add(pCenter,BorderLayout.CENTER);con.validate();setVisible(false);setBounds(100,200,360,270);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) {setVisible(false);}});}public void actionPerformed(ActionEvent e){姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);if(e.getSource()==查询||e.getSource()==学号){String number="";number=学号.getText();if(number.length()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject(); inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){Student stu=(Student)基本信息表.get(number);姓名.setText(stu.getName());所学专业.setText(stu.getDisciping());家庭住址.setText(stu.getGrade());出生.setText(stu.getBorth());if(stu.getSex().equals("男")){男.setSelected(true);}else{女.setSelected(true);}}else{String warning="该学号不存在!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}else{String warning="必须要输入学号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}}}3.修改界面1).成员变量主要成员变量2).方法主要方法3).代码ModifySituation.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class ModifySituation extends JPanel implements ActionListener {Hashtable 基本信息表=null;JTextField 学号,姓名,所学专业,家庭住址,出生;JRadioButton 男,女;ButtonGroup group=null;JButton 开始修改,录入修改,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public ModifySituation(File file){this.file=file;学号=new JTextField(10);姓名=new JTextField(10);所学专业=new JTextField(10);家庭住址=new JTextField(10);出生=new JTextField(10);group=new ButtonGroup();男=new JRadioButton("男",true);女=new JRadioButton("女",false);group.add(男);group.add(女);开始修改=new JButton("开始修改");录入修改=new JButton("录入修改");录入修改.setEnabled(false);重置=new JButton("重置");学号.addActionListener(this);开始修改.addActionListener(this);录入修改.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel("输入要修改信息的学号:",JLabel.CENTER));box1.add(学号);box1.add(开始修改);Box box2=Box.createHorizontalBox();box2.add(new JLabel("(新)姓名:",JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel("(新)性别:",JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel("(新)所学专业:",JLabel.CENTER)); box4.add(所学专业);Box box5=Box.createHorizontalBox();box5.add(new JLabel("(新)家庭住址:",JLabel.CENTER)); box5.add(家庭住址);Box box6=Box.createHorizontalBox();box6.add(new JLabel("(新)出生:",JLabel.CENTER));box6.add(出生);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(录入修改);pSouth.add(重置);add(pSouth,BorderLayout.SOUTH);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==开始修改||e.getSource()==学号){String number="";number=学号.getText();if(number.length()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){录入修改.setEnabled(true);Student stu=(Student)基本信息表.get(number);姓名.setText(stu.getName());所学专业.setText(stu.getDisciping());家庭住址.setText(stu.getGrade());出生.setText(stu.getBorth());if(stu.getSex().equals("男")){男.setSelected(true);}else{女.setSelected(true);}}else{录入修改.setEnabled(false);String warning="该学号不存在!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);学号.setText(null);姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);}}else{录入修改.setEnabled(false);String warning="必须要输入学号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);学号.setText(null);姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);}}else if(e.getSource()==录入修改){String number="";number=学号.getText();if(number.length()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){String question="该生基本信息已存在,您想修改他(她)的基本信息吗?"; JOptionPane.showMessageDialog(this,question,"警告",JOptionPane.QUESTION_MESSAGE);String m="基本信息将被修改!";int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,RMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){String name=姓名.getText();String discipling=所学专业.getText();String grade=家庭住址.getText();String borth=出生.getText();String sex=null;if(男.isSelected()){sex=男.getText();}else{sex=女.getText();}Student 学生=new Student();学生.setNumber(number);学生.setName(name);学生.setDiscipling(discipling);学生.setGrade(grade);学生.setBorth(borth);学生.setSex(sex);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,学生);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();学号.setText(null);姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);}catch(Exception ee){System.out.println(ee);}录入修改.setEnabled(false);}else if(ok==JOptionPane.NO_OPTION){录入修改.setEnabled(true);}}else{String warning="该学号没有基本信息,不能修改!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);录入修改.setEnabled(false);}}else{String warning="必须要输入学号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);录入修改.setEnabled(false);}}if(e.getSource()==重置){学号.setText(null);姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);}}}4.删除界面1).成员变量主要成员变量2).方法主要方法3).代码Delete.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener{Hashtable 基本信息表=null;JTextField 学号,姓名,所学专业,家庭住址,出生;JRadioButton 男,女;JButton 删除;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null; public Delete(File file){this.file=file;学号=new JTextField(10);删除=new JButton("删除");学号.addActionListener(this);删除.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);所学专业=new JTextField(10);所学专业.setEditable(false);家庭住址=new JTextField(10);家庭住址.setEditable(false);出生=new JTextField(10);出生.setEditable(false);男=new JRadioButton("男",false);女=new JRadioButton("女",false);group=new ButtonGroup();group.add(男);group.add(女);Box box1=Box.createHorizontalBox();box1.add(new JLabel("输入要删除的学号:",JLabel.CENTER)); box1.add(学号);box1.add(删除);Box box2=Box.createHorizontalBox();box2.add(new JLabel("姓名:",JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel("性别:",JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel("所学专业:",JLabel.CENTER));box4.add(所学专业);Box box5=Box.createHorizontalBox();box5.add(new JLabel("家庭住址:",JLabel.CENTER));box5.add(家庭住址);Box box6=Box.createHorizontalBox();box6.add(new JLabel("出生:",JLabel.CENTER));box6.add(出生);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==删除||e.getSource()==学号){String number="";number=学号.getText();if(number.length()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject(); inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){Student stu=(Student)基本信息表.get(number);姓名.setText(stu.getName());所学专业.setText(stu.getDisciping());家庭住址.setText(stu.getGrade());出生.setText(stu.getBorth());if(stu.getSex().equals("男")){男.setSelected(true);}else{女.setSelected(true);}String m="确定要删除该学号及全部信息吗?";int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTIONJOptionPane.QUESTION_MESSAGE);if(ok==JOptionPane.YES_OPTION){基本信息表.remove(number);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();学号.setText(null);姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);}catch(Exception ee){System.out.println(ee);}}else if(ok==JOptionPane.NO_OPTION){学号.setText(null);姓名.setText(null);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);}}else{String warning="该学号不存在!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}else{String warning="必须要输入学号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}}}5.学生对象1).成员变量主要成员变量2). 方法3).代码Student.javapublic class Student implements java.io.Serializable{String number,name,discipling,grade,borth,sex;public Student(){}public void setNumber(String number){this.number=number;}public String getNumber(){return number;}public void setName(String name){=name;}public String getName(){return name;}public void setDiscipling(String discipling) {this.discipling=discipling;}public String getDisciping(){return discipling;}public void setGrade(String grade){this.grade=grade;}public String getGrade(){return grade;}public void setBorth(String borth){this.borth=borth;}public String getBorth(){return borth;}public void setSex(String sex){this.sex=sex;}public String getSex(){return sex;}}四:测试结果及问题分析本程序为一简单的班级管理系统,功能比较单一,但是基本功能还是实现了,能够对学生基本资料的录入,修改,删除以及查询。

基于javaEE技术的课程设计管理系统设计与实现-毕业设计(含源文件)

基于javaEE技术的课程设计管理系统设计与实现-毕业设计(含源文件)

目录1 绪论 (1)1.1 提出和现状 (1)1.2 产生和环境 (1)2 可行性分析 (2)2。

1 项目意义 (2)2。

2 项目需求 (2)2。

2.1 业务问题 (2)2。

2.2 问题分析 (2)2.2。

3 问题解决 (3)2.2.4 角色用例 (3)2。

2 主要功能 (3)3 项目规划 (4)3。

1 项目总体周期 (4)3.2 项目组织结构 (4)3。

3 项目管理 (4)4 需求分析 (5)4。

1 外围接口 (5)4。

2 业务模型 (6)4.3 整体要求 (6)4。

4 概要设计 (7)4.4。

1 课题管理模型范围 (8)4。

5 用例图 (9)5 系统设计 (11)5.1 开发技术 (11)5。

1。

1 开发环境 (11)5。

1.2 J2EE开发框架简介 (11)5。

1.3 JSP,Myeclipse简介 (12)5。

1.4 SQL Sever简介 (12)5.1.5 Tomcat服务器简介 (12)5.2 数据库设计 (13)5.3 系统框架设计 (14)6 编码实现 (16)6。

1 前台设计 (16)6。

2 数据库连接 (18)6。

3 数据处理 (20)7 总结 (22)参考文献 (23)致谢 (24)1 绪论1。

1 提出和现状在我国高校实践教学改革的形势下,课程实践教学前景广阔。

在国外,有些高校已经具有了根据本校实际教学情况而自己开发的实训教学平台,或者购买专业商家开发的相类似软件。

而国内高校针对软件教学,实训教学平台建设相对起步较晚,一些相关教学软件并不完善,而且需要花大价钱购买,因此,开发适合本校、本专业自己的实训教学平台是非常有必要的[1]。

该项目是中北大学软件学院根据发展的长远战略,并围绕软件学院实训基地建设的要求,体现“面向未来”的设计思想,建设一个行业示范、大方合理、有现代感、功能完备、安全可靠、可持续发展、设施先进、绿色环保、投资合理的现代化实训示范基地,以培养规范化的、适合工程化项目的、具备专业技术技能的实用型人才为目标,实现测评、人才培养、企业扶植等功能.切实为中北大学软件学院发展提供一个高品质的运行环境,为学生实习提供方便、快捷、舒适的学习环境,并为管理人员提供安全、高效的管理手段。

操作系统文件管理系统 课程设计

操作系统文件管理系统 课程设计

操作系统文件管理系统课程设计
操作系统文件管理系统课程设计一般包括以下内容:
1. 基本概念和原理:介绍文件管理系统的基本概念和原理,包括文件、目录、文件系统、文件操作等。

2. 设计需求分析:明确设计需求,包括基本功能、用户需求、性能要求等。

3. 文件存储结构的设计:设计文件存储结构,包括文件分配方式、文件存储结构、文件目录结构、文件保护等。

4. 文件操作的实现:实现文件的创建、打开、读写、删除等基本操作,以及文件的复制、移动、重命名等高级操作。

5. 目录管理的实现:实现目录的创建、删除、重命名等操作,以及目录的遍历和搜索等功能。

6. 文件系统的实现:实现文件系统的格式化、挂载、卸载等操作,以及文件系统的安全性和可靠性保障。

7. 用户界面的设计:设计用户界面,包括命令行界面和图形界面,以方便用户进行文件管理操作。

8. 系统测试和调试:对系统进行测试和调试,包括单元测试、集成测试、性能测试等,以确保系统的稳定性和可靠性。

9. 报告撰写和展示:根据课程设计的要求,编写设计报告和展示文稿,介绍系统的设计思路、实现方法和成果。

以上是一个基本的操作系统文件管理系统课程设计的内容,具体可以根据教师的要求和课程的安排进行适当调整和扩展。

java员工管理系统课程设计

java员工管理系统课程设计

java员工管理系统课程设计一、课程目标知识目标:1. 让学生掌握Java面向对象编程的基本概念,包括类、对象、封装、继承和多态。

2. 使学生了解Java集合框架,并能运用ArrayList、HashMap等集合存储和管理数据。

3. 帮助学生掌握Java异常处理机制,提高程序的健壮性。

4. 让学生掌握Java Swing图形用户界面编程,实现员工管理系统的基本界面。

技能目标:1. 培养学生运用Java编写面向对象程序的能力,能够独立设计和实现小型管理系统。

2. 培养学生分析问题、解决问题的能力,能够根据需求进行系统设计和功能划分。

3. 培养学生使用Java集合框架进行数据处理的能力,能够实现数据的增删改查功能。

4. 培养学生运用Java异常处理提高程序健壮性的能力。

5. 培养学生运用Java Swing设计美观、易用的图形用户界面的能力。

情感态度价值观目标:1. 激发学生对Java编程的兴趣,培养其主动学习和探究的精神。

2. 培养学生良好的编程习惯,注重代码规范和程序优化。

3. 培养学生的团队协作意识,学会与他人共同分析和解决问题。

4. 培养学生的创新意识,敢于尝试新技术和新方法,提高解决问题的能力。

本课程针对高中年级学生,结合Java员工管理系统项目,注重实用性,旨在让学生在实际项目中掌握Java编程的基本知识和技能,同时培养其情感态度价值观,为后续学习打下坚实基础。

课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果,并为后续的教学设计和评估提供依据。

二、教学内容1. Java面向对象基础:包括类与对象的概念、构造方法、封装、继承和多态。

- 教材章节:第2章 面向对象基础- 内容安排:2课时2. Java集合框架:介绍ArrayList、HashMap等集合的使用,以及集合的增删改查操作。

- 教材章节:第6章 集合框架- 内容安排:3课时3. Java异常处理:异常的概念、分类、try-catch语句、finally块和自定义异常。

java信息管理系统课程设计

java信息管理系统课程设计

java信息管理系统课程设计一、课程目标知识目标:1. 理解Java语言在信息管理系统中的应用,掌握Java基础语法和数据结构;2. 学会使用Java编写简单的信息管理系统功能,如用户登录、数据增删改查等;3. 了解数据库连接和SQL语句在Java中的应用,能够实现简单的数据库操作。

技能目标:1. 能够运用所学知识,设计并实现一个简单的信息管理系统;2. 掌握Java编程规范,养成良好的编程习惯,提高代码质量;3. 学会使用调试工具和技巧,解决编程过程中遇到的问题。

情感态度价值观目标:1. 培养学生对信息管理系统的兴趣,激发学习主动性和积极性;2. 培养学生的团队协作能力,学会与他人共同解决问题;3. 增强学生的自信心,让他们认识到自己在编程方面的潜力。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握Java语言在信息管理系统中的应用;2. 学生特点:学生具备一定的Java基础,对编程有一定兴趣,但实践经验和团队协作能力有待提高;3. 教学要求:注重理论与实践相结合,充分调动学生的积极性,培养学生的实际操作能力和团队协作能力。

1. 独立设计并实现一个简单的信息管理系统;2. 掌握Java编程规范,编写高质量的代码;3. 学会与他人合作,共同解决编程过程中遇到的问题;4. 提高自身在编程方面的自信心和兴趣。

二、教学内容1. Java基础语法回顾:变量、数据类型、运算符、控制流程(条件语句、循环语句)等;2. 面向对象编程:类与对象、封装、继承、多态等;3. 常用数据结构:数组、集合(List、Set、Map)等;4. 异常处理:try-catch-finally结构,自定义异常等;5. 文件操作:文件的读取与写入,文件的随机访问等;6. 数据库连接:JDBC概述,数据库连接与操作,SQL语句执行等;7. 信息管理系统功能实现:用户登录、数据增删改查等;8. 项目实践:分组进行项目设计,实现一个简单的信息管理系统。

Java面向对象程序设计课程设计--学生信息管理系统程序设计

Java面向对象程序设计课程设计--学生信息管理系统程序设计

课程实践任务书信息技术的快速发展的同时也带来了社会各个行业的发展。

它的发展已经深入到社会的各个角落。

作为社会发展的前沿技术,各行各业只要对其合理的进行运用,必将会带来巨大的便捷。

成功的运用信息技术将为各类学校学生信息管理带来无限便利。

作为计算机应用的一部分,使用学生信息管理系统对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,大地提高学生档案管理的效率。

本文介绍了系统开发的全过程。

该系统以Windows为操作平台,Java为开发语言,Access为数据库,Eclipse为开发工具,使用JDBC技术进行连接,实现了在可视化的基础上,利用数据库进行后台管理。

系统由学生和老师基本信息添加、学生和老师基本信息查询、学生和老师基本信息删除、学生和老师基本信息修改及退出系统等功能模块组成,基本功能较全面。

用户界面友好、清晰、操作简便,易学易用;系统可读性好,易于维护、更新,安全性较好。

采用传统下拉菜单功能选择,方便、快捷、一目了然,并且在一个窗体中进行操作,可视化强。

采用链入数据库进行存储,可动态进行查看、操作,这样的系统可修改性较强。

关键字:面向对象;Eclipse;JDBC1 前言 (1)1.1 课题简介 (1)1.2 设计目的 (1)2 需求分析 (2)2.1业务需求分析 (2)2.2功能需求分析 (2)2.2.1 学生信息 (2)2.2.2 教师信息 (2)2.2.3 成绩管理 (3)3 数据库设计 (4)3.1 Java连接数据库 (4)3.1.1 关系数据库概述 (4)3.1.2 通过JDBC访问数据库 (4)3.2 数据库与基本表设计 (4)4 系统设计与实施 (7)4.1 Eclipse Java Neon 3 (7)4.2 结构设计 (7)4.3 文件组织结构 (7)4.4 登录模块 (8)4.4.1 设计构想 (8)4.4.2 实现登录模块 (8)4.5 学生信息模块 (11)4.5.1 设计构想 (11)4.5.2 实现学生信息模块主界面 (11)4.5.3添加信息 (12)4.5.4 删除信息 (14)4.5.5修改信息 (15)4.5.6 基本信息查询 (17)4.5.7 成绩查询 (19)4.5.8 退出系统 (21)4.6 教师信息模块 (22)结束语 (26)参考文献 (27)附录A............................................. 错误!未定义书签。

学生选课管理系统java课程设计

学生选课管理系统java课程设计

学生选课管理系统java课程设计一、教学目标本课程的目标是让学生掌握学生选课管理系统Java的设计与实现。

知识目标包括了解Java语言的基本语法、面向对象编程思想、常用数据结构等;技能目标包括能够使用Java语言独立完成一个小型项目的设计与实现;情感态度价值观目标包括培养学生的团队合作意识、解决问题的能力以及创新精神。

二、教学内容教学内容主要包括Java语言的基本语法、面向对象编程、常用数据结构、Java集合框架、文件操作、网络编程等。

具体到教材,我们将按照《Java编程思想》这本书的章节顺序进行授课,每个章节都会结合实际的案例进行讲解。

三、教学方法为了激发学生的学习兴趣和主动性,我们将采用多种教学方法。

包括讲授法、讨论法、案例分析法和实验法。

在讲授基本知识的同时,通过讨论法引导学生主动思考问题,通过案例分析法让学生深入了解实际应用,通过实验法让学生亲手实践,巩固所学知识。

四、教学资源我们将选择合适的教材、参考书、多媒体资料和实验设备。

教材方面,以《Java编程思想》为主,辅以其他相关教材;参考书方面,推荐学生阅读《Effective Java》等进阶书籍;多媒体资料方面,我们会提供相关的教学视频、PPT等;实验设备方面,确保每个学生都能有足够的机器进行实践操作。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

平时表现主要评估学生在课堂上的参与度、讨论的积极性等;作业方面,将布置Java编程相关的练习题,以巩固所学知识;考试方面,包括期中和期末两次考试,主要考察学生对Java语言和编程思想的掌握程度。

评估方式将客观、公正,全面反映学生的学习成果。

六、教学安排本课程的教学进度共分为16周,每周2课时。

教学时间安排在上课日,具体时间为上午第1-2节课。

教学地点为教室。

教学安排合理、紧凑,确保在有限的时间内完成教学任务。

同时,教学安排还考虑学生的实际情况和需要,如学生的作息时间、兴趣爱好等。

七、差异化教学根据学生的不同学习风格、兴趣和能力水平,我们将设计差异化的教学活动和评估方式。

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

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

JAVA课程设计学生信息管理系统代码某Tochangethitemplate,chooeTool|Template某andopenthetemplateintheeditor.某/packagetudentinfo;importjava.awt.某;importjava某.wing.某;importjava.awt.event.某;importjava.awt.某;importjava.awt.event.某;importjava.util.某;importjava某.wing.border.某;importjava某.wing.JOptionPane;importjava某.wing.JLabel;importjava某.wing.JPanel;importjava某.wing.table.DefaultTableModel; importjava某.wing.table.TableColumn;importjava.ql.某;importjava.awt.GridLayout;//网格式布局//导入javar需要的jar包publicclaStudentInfo{publicStudentInfo()//构造方法{}publictaticvoidmain(String[]arg){//TODOcodeapplicationlogichereloginFramelf=newloginFrame();//加载窗体lf.etViible(true);//设置窗体可见lf.addWindowLitener(newWindowAdapter()//添加窗口监听以接受关闭事件{publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);}});}}//学生成绩管理系统界面clamainFramee某tendJFrameimplementActionLitener{MenuBarmyMenuBar=newMenuBar();//菜单MenuItemmiNew,miOpen,miSave,miSaveA,miE某it;MenuItemmiAdd,miEdit,miDel,miFind,miShow,miUer,miAbout;public JTabletable=newJTable();//表格publicDefaultTableModelmm;//表格模型publicmainFrame(){myMenuFile=newMenu("文件");miNew=newMenuItem("新建");miOpen=newMenuItem("打开");miSave=newMenuItem("保存");miE某it=newMenuItem("退出");//miNew.enable(fale);//miOpen.enable(fale);//miSave.enable(fa le);//myMenuFile.add(miNew);//myMenuFile.add(miOpen);//myMenuFil e.add(miSave);myMenuFile.add(miE某it);myMenuEdit=newMenu("数据编辑");miFind=newMenuItem("查找数据");miAdd=newMenuItem("添加数据");miEdit=newMenuItem("修改数据");miDel=newMenuItem("删除数据");miShow=newMenuItem("全部显示");myMenuEdit.add(miFind);myMenuEdit.add(miAdd);myMenuEdit.add(m iEdit);myMenuEdit.add(miDel);myMenuEdit.add(miShow);myMenuUer=ne wMenu("用户管理");miUer=newMenuItem("编辑用户");myMenuUer.add(miUer);myMenuAbout=newMenu("关于我");miAbout=newMenuItem("我的信息");myMenuAbout.add(miAbout);myMenuBar.add(myMenuFile);myMenuBar.add(myMenuEdit);myMenuBar.add(myMenuUer);myMenuBar.add(myMenuAbout);String[]col={"学号","姓名","性别","班级","专业","大学语文","大学英语","高等数学"};//创建属性列名table.etModel(mm);JScrollPanetableScrollPane=newJScrollPane( table);//设置滚动条thi.etMenuBar(myMenuBar);thi.add(tableScrollPane);miE某it.addActionLitener(thi);//为各按钮注册事件监听器对象miFind.addActionLitener(thi);miAdd.addActionLitener(thi);miEdit. addActionLitener(thi);miDel.addActionLitener(thi);miShow.addActi onLitener(thi);miUer.addActionLitener(thi);miAbout.addActionLite ner(thi);}publicvoidfrehTable(Stringql){myConnectionconn=newmyCo nnection();//获得数据库连接ReultSetr;//保存查询返回结果对象r=conn.getReult(ql);if(r!=null){try{mm.etRowCount(0);table.etMod el(mm);while(r.ne某t()){String学号=r.getString("学号");String姓名=r.getString("姓名");String性别=r.getString("性别");String班级=r.getString("班级");String专业=r.getString("专业");String大学语文=r.getString("大学语文");String大学英语=r.getString("大学英语");String高等数学=r.getString("高等数学");String[]cloumn={学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学};mm.addRow(cloumn);}//table.clearSelection();table.etModel(mm );}catch(E某ceptione){}}}//捕获异常publicvoidactionPerformed(ActionEvente)//重载动作事件接口中的方法{//退出if(e.getSource()==miE某it){Sytem.e 某it(0);//查找}eleif(e.getSource()==miFind){findFrameff=newfindFrame(thi);ff .etViible(true);//添加}eleif(e.getSource()==miAdd){addFrameaf=newaddFrame(thi);af.et Viible(true);//修改}eleif(e.getSource()==miEdit){if(table.getSelectedRow()==-1){JOptionPane.howMeageDialog(null,"请选择你要修改的内容","温馨提示",RMATION_MESSAGE);//弹窗提示}{editFrameef=neweditFrame(thi);ef.学号.etTe某t((String)table.getValueAt(table.getSelectedRow(),0));ef.姓名.etTe某t((String)table.getValueAt(table.getSelectedRow(),1));ef.性别.etTe某t((String)table.getValueAt(table.getSelectedRow(),2));ef.班级.etTe某t((String)table.getValueAt(table.getSelectedRow(),3));ef.专业.etTe某t((String)table.getValueAt(table.getSelectedRow(),4));ef.大学语文.etTe某t((String)table.getValueAt(table.getSelectedRow(),5));ef.大学英语.etTe某t((String)table.getValueAt(table.getSelectedRow(),6));ef.高等数学.etTe某t((String)table.getValueAt(table.getSelectedRow(),7));ef.etViibl e(true);thi.frehTable("elect某from学生成绩表");//刷新表格}//删除eleif(e.getSource()==miDel){if(table.getSelectedRow()==-1){JOptionPane.howMeageDialog(null,"请选择你要删除的行","温馨提示",RMATION_MESSAGE);}ele{Stringql="deletefrom学生成绩表where学号='"+table.getValueAt(table.getSelectedRow(),0)+"'";//JOptionPane.howMeageDialog(null,ql,"温馨提示",RMATION_MESSAGE);myConnectionconn=newmyConnection();if(conn.e某ecuteSql(ql)){JOptionPane.howMeageDialog(null,"成功删除","温馨提示",RMATION_MESSAGE);thi.frehTable("elect某from学生成绩表");ele{JOptionPane.howMeageDialog(null,"未知错误","删除失败",RMATION_MESSAGE);}}//显示}eleif(e.getSource()==miShow){//JOptionPane.howMeageDialog(null,"未知错误","删除失败",RMATION_MESSAGE);thi.frehTable("elect某from学生成绩表");//编辑用户}eleif(e.getSource()==miUer){uerFrameuf=newuerFrame();uf.etViible(true);//作业说明}eleif(e.getSource()==miAbout){aboutFrameaf=newaboutFrame();af.etViible(true);}}}clamyConnection{ReultSetre;Stringtrurl="jdbc:odbc:driver={MicrooftAcceDriver(某.mdb)};D BQ=学生管理数据库.mdb";//Stringtrurl="jdbc:odbc:driver={MicrooftAcceDriver(某.mdb)} ;DBQ=学生管理数据库.mdb";//Stringtrurl="jdbc:odbc:cah";//cah为数据源名称publicmyConnection(){}publicReultSetgetReult(Stringql){try{Cla.forName("un.jdbc.odbc.JdbcOdbcDriver");Connectionconn=DriverManager.getConnection(trurl);Statementtmt=conn.createStatement(ReultSet.TYPE_SCROLL_SENSITIVE,Reul tSet.CONCUR_UPDATABLE);ReultSetre=tmt.e某ecuteQuery(ql);returnre;}catch(E某ceptione){e.printStackTrace();//异常处理returnnull;}}publicbooleane某ecuteSql(Stringql){try{Cla.forName("un.jdbc.odbc.JdbcOdbcDriver"); Connectionconn=DriverManager.getConnection(trurl); Statementtmt=conn.createStatement();tmt.e某ecuteUpdate(ql);mit();returntrue;}catch(E某ceptione){e.printStackTrace();returnfale;}}}claaddFramee某tendJDialogimplementActionLitener {publictaticfinalintWIDTH=400;publictaticfinalintHEIGHT=400;JLabel学号1,姓名1,性别1,班级1,专业1,大学语文1,大学英语1,高等数学1;JTe某tField学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学;JButtonb;JPanelp;mainFramemf;publicaddFrame(mainFramemmf){etT itle("添加学生成绩");etSize(WIDTH,HEIGHT);etLocation(120,180);ContainercontentPane =getContentPane();//创建一个容器对象contentPane.etLayout(newFlowLayout());//流式布局学号1=newJLabel("学号");姓名1=newJLabel("姓名");性别1=newJLabel("性别");班级1=newJLabel("班级");专业1=newJLabel("专业");大学语文1=newJLabel("大学语文");大学英语1=newJLabel("大学英语");高等数学1=newJLabel("高等数学");学号=newJTe某tField(5);姓名=newJTe某tField(5);性别=newJTe某tField(5);班级=newJTe某tField(5);专业=newJTe某tField(5);大学语文=newJTe某tField(5);大学英语=newJTe 某tField(10);高等数学=newJTe某tField(10);b=newJButton("确定");p=newJPanel();p.etLayout(newGridLayout(10,2,5,5));//表格布局p.add(学号1);p.add(学号);p.add(姓名1);p.add(姓名);p.add(性别1);p.add(性别);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(大学语文1);p.add(大学语文);p.add(大学英语1);p.add(大学英语);p.add(高等数学1);p.add(高等数学);p.add(newLabel(""));p.add(newLabel(""));p.add(b);contentPane .add(p);//添加按钮监听器b.addActionLitener(thi);mf=mmf;}publicvoidactionPerformed(ActionEvente){if(学号.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入学号","温馨提示",RMATION_MESSAGE);}eleif(姓名.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入姓名","温馨提示",RMATION_MESSAGE);}eleif(大学语文.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入大学语文","温馨提示",RMATION_MESSAGE);}ele{Stringql="elect某from学生成绩表where学号='"+学号.getTe某t()+"'";myConnectionconn=newmyConnection();ReultSetr;r=conn.getReult (ql);try{//Sytem.out.println(r.getRow());if(r.ne某t()){ JOptionPane.howMeageDialog(null,"此学号已经存在","温馨提示",RMATION_MESSAGE);误信息}//添加学生的时候,发现数据库已经有了,提示你学号已经存在,报错ele{ql="inertinto学生成绩表value('"+学号.getTe某t()+"','"+姓名.getTe某t()+"','"+性别.getTe某t()+"','"+班级.getTe某t()+"','"+专业.getTe某t()+"','"+大学语文.getTe某t()+"','"+大学英语.getTe某t()+"','"+高等数学.getTe某t()+"')";//实行数据库插入的语句if(conn.e某ecuteSql(ql))//插入语句{JOptionPane.howMeageDialog(null,"添加成功","温馨提示",RMATION_MESSAGE);}ele{mf.frehTable("elect某from学生成绩表");学号.etTe某t("");姓名.etTe某t("");性别.etTe某t("");班级.etTe某t("");专业.etTe某t("");大学语文.etTe某t("");大学英语.etTe某t("");高等数学.etTe某t("");JOptionPane.howMeageDialog(null,"添加失败","温馨提示",RMATION_MESSAGE);}//插入失败}}catch(E某ceptioner){Sytem.out.println(er.toString());}}}}claeditFramee某tendJDialogimplementActionLitener{publictaticfinalintWIDTH=400;publictaticfinalintHEIGHT=400;JLabel学号1,姓名1,性别1,班级1,专业1,大学语文1,大学英语1,高等数学1;JTe某tField学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学;JButtonb;JPanelp;mainFramemf;publiceditFrame(mainFramemmf){et Title("修改学生信息");etSize(WIDTH,HEIGHT);etLocation(120,180);ContainercontentPane =getContentPane();contentPane.etLayout(newFlowLayout());学号1=newJLabel("学号");姓名1=newJLabel("姓名");性别1=newJLabel("性别");班级1=newJLabel("班级");专业1=newJLabel("专业");大学语文1=newJLabel("大学语文");大学英语1=newJLabel("大学英语");高等数学1=newJLabel("高等数学");学号=newJTe某tField(5);姓名=newJTe某tField(5);性别=newJTe某tField(5);班级=newJTe某tField(5);专业=newJTe某tField(5);大学语文=newJTe某tField(5);大学英语=newJTe 某tField(10);高等数学=newJTe某tField(10);学号.etEnabled(fale);b=newJButton("确定");p=newJPanel();p.etLayout(newGridLayout(10,2,5,5));p.add(学号1);p.add(学号);p.add(姓名1);p.add(姓名);p.add(性别);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(大学语文1);p.add(大学语文);p.add(大学英语1);p.add(大学英语);p.add(高等数学1);p.add(高等数学);p.add(newLabel(""));p.add(newLabel(""));p.add(b);contentPane .add(p);//添加按钮监听器b.addActionLitener(thi);mf=mmf;}//这是画界面publicvoidactionPerformed(ActionEvente){if(学号.getTe某t().toString().equal(""))//判断{JOptionPane.howMeageDialog(null,"请输入学号","温馨提示",RMATION_MESSAGE);//弹出的小窗口提示}eleif(姓名.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入姓名","温馨提示",RMATION_MESSAGE);}eleif(大学语文.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入大学语文","温馨提示",RMATION_MESSAGE);}ele{Stringql="update学生成绩表et姓名='"+姓名.getTe某t()+"',性别='"+性别.getTe某t()+"',班级='"+班级.getTe某t()+"',专业='"+专业.getTe某t()+"',大学语文='"+大学语文.getTe某t()+"',大学英语='"+大学英语.getTe某t()+"',高等数学='"+高等数学.getTe某t()+"'where学号='"+学号.getTe某t()+"'";myConnectionconn=newmyConnection();//打开数据库的连接try{//JOptionPane.howMeageDialog(null,ql,"温馨提示",RMATION_MESSAGE);if(conn.e某ecuteSql(ql))//执行ql语句,弹出窗口,查询学生表刷新table{JOptionPane.howMeageDialog(null,"修改成功","温馨提示",RMATION_MESSAGE);mf.frehTable("elect某from学生成绩表");thi.dipoe();//关闭当前窗体对象,隐藏}ele{JOptionPane.howMeageDialog(null,"修改失败","温馨提示",RMATION_MESSAGE);}}catch(E某ceptioner){er.printStackTrace();}}}}clafindFramee某tendJDialogimplementActionLitener{mainFramemf;JPanelp;JTe某tFieldt;JButtonb;JButtonfAll;Stringql="elect某fromtudent";String[]colStr={"学号","姓名","性别","班级","专业","大学语文","大学英语","高等数学"};publicfindFrame(mainFramemmf) {mf=mmf;p=newJPanel();t=newJTe某tField(10);b=newJButton("查找");fAll=newJButton("全部显示");b.addActionLitener(thi);fAll.addActionLitener(thi);p.add(newJLabel("选择"));p.add(c);p.add(newJLabel("查找内容"));p.add(t);p.add(b);p.add(fAll);thi.add(p);thi.etTitle("查找");thi.etSize(450,80);}publicvoidactionPerformed(ActionEvente){//查找if(e.getSource()==b){StringelectStr=c.getSelectedItem().toString(); if(electStr=="大学英语"){ql="elect某from学生成绩表"+t.getTe某t().toString();}ele{ql="elect某from学生成绩表'"+t.getTe某t().toString()+"'";}mf.frehTable(ql);//全部显示}if(e.getSource()==fAll){ql="elect某from学生成绩表";mf.frehTable(ql);}//监听程序,选择查成绩,最后是重新刷新table }}claaboutFramee某tendJDialog//关于我的信息{aboutFrame(){JPanelp1=newJPanel();where"+electStr+"where"+electStr+"== clauerFramee某tendJFrameimplementActionLitener//用户密码{JTe某tFielduer,pa;JButtonadd,del;JTablet;JPanelp1,p2,p3,p4,p5;DefaultTableModelm;publicuerFrame(){p1=newJPanel();p2=newJPanel();p3=newJPanel();p4=newJPanel();p5=newJPanel();uer=newJTe某tField(8);pa=newJTe某tField(8);add=newJButton("添加");del=newJButton("删除");String[]col={"用户名","密码"};m=newDefaultTableModel(col,0);t=newJTable();t.etModel(m);JScr ollPanep=newJScrollPane(t);p1.add(newJLabel("用户名"));p1.add(uer);p1.add(newJLabel("密码"));p1.add(pa);p1.add(add);p2.add(p);p3.add(del);add.addActionLi tener(thi);del.addActionLitener(thi);myConnectionconn=newmyConne ction();ReultSetr;r=conn.getReult("elect某from管理员");//开始时连接数据库,查询数据,返回结果集,if(r!=null){//把查询结果放到table里面try{//m.etRowCount(0);//table.etModel(mm);while(r.ne某t()){String用户名=r.getString("用户名");String密码=r.getString("密码");String[]cloumn={用户名,密码};m.addRow(cloumn);}t.etModel(m);}catch(E某ceptione){Sytem.out.println(e.toString());}}thi.add(p1,BorderLay out.NORTH);thi.add(p2,BorderLayout.CENTER);thi.add(p3,BorderLayo ut.SOUTH);thi.add(p4,BorderLayout.WEST);thi.add(p5,BorderLayout. EAST);thi.etTitle("用户管理");thi.etSize(600,400);}publicvoidactionPerformed(ActionEvente){ //用户添加if(e.getSource()==add){if(uer.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入用户名","温馨提示",RMATION_MESSAGE);eleif(pa.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入密码","温馨提示",RMATION_MESSAGE);}elemyConnectionconn=newmyConnection();ReultSetr;try{r=conn.getReult("elect某from管理员where用户名='"+uer.getTe某t().toString()+"'");if(r.ne某t()){JOptionPane.howMeageDialog(null,"此用户已经存在","温馨提示",RMATION_MESSAGE);}ele{if(conn.e某ecuteSql("inertinto管value('"+uer.getTe某t().toString()+"','"+pa.getTe某t().toString()+"')"))String[]newUer={uer.getTe某t(),pa.getTe某t()};m.addRow(newUer);t.etModel(m);理员JOptionPane.howMeageDialog(null,"添加成功","温馨提示",RMATION_MESSAGE);}ele{JOptionPane.howMeageDialog(null,"添加失败","温馨提示",RMATION_MESSAGE);}}}catch(E某ceptioner){Sytem.out.println(er.toString());}}//删除}eleif(e.getSource()==del){if(t.getSelectedRow()==-1){JOptionPane.howMeageDialog(null,"请选择你要删除的行","温馨提示",RMATION_MESSAGE);}ele{=",Stringql="deletefrom管理员where用户名'"+t.getValueAt(t.getSelectedRow(),0)+"'";//JOptionPane.howMeage Dialog(null,ql,"温馨提示RMATION_MESSAGE);myConnectionconn=newmyConnection();if(conn.e某ecuteSql(ql)){m.removeRow(t.getSelectedRow());t.etModel(m);//t.removeRowSelectionInterval();JOptionPane.howMeageDialog(null,"成功删除","温馨提示",RMATION_MESSAGE);}ele{JOptionPane.howMeageDialog(null,"未知错误","删除失败",RMATION_MESSAGE);}}}}}claloginFramee某tendJDialogimplementActionLitener//登陆{JPanelp;JTe某tFielduer,pa;JButtonlogin,cancel;publicloginFrame(){p=newJPanel();uer=newJTe某tField(10);pa=newJTe某tField(10);login=newJButton("登录");cancel=newJButton("退出");uer.etTe某t("");pa.etTe某t("");login.addActionLitener(thi);cancel.addActionLitener(thi);p.add(newJLabel("账号"));p.add(uer);p.add(newJLabel("密码"));p.add(pa);p.add(login);p.add(cancel);thi.add(p);thi.etTitle("学生成绩管理系统");JLabelimg=newJLabel(newImageIcon("1.jpg"));p.add(img);thi.etSize(700,600);}publicvoidactionPerformed(ActionEvente){//查找if(e.getSource()==login){if(uer.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入用户名","温馨提示",RMATION_MESSAGE);}eleif(pa.getTe某t().toString().equal("")){JOptionPane.howMeageDialog(null,"请输入密码","温馨提示",RMATION_MESSAGE);}ele{myConnectionconn=newmyConnection();ReultSetr;Stringql="elect某from管理员where用户名='"+uer.getTe某t().toString()+"'and密码='"+pa.getTe某t().toString()+"'";try{r=conn.getReult(ql);if(r.ne某t()){thi.dipoe();//JOptionPane.howMeageDialog(null,"此用户已经存在","温馨提示",RMATION_MESSAGE);ql="elect某from学生成绩表";mainFramemf=newmainFrame();mf.etTitle("学生成绩管理系统");mf.etSize(600,486);mf.frehTable(ql);mf.etViible(true);mf.addWindowLitener(newWindowAdapter(){publicvoidwindowCloing(WindowEvente){Sytem.e某it(0);}});}ele{JOptionPane.howMeageDialog(null,"用户名或密码错误","登录失败",RMATION_MESSAGE);}}catch(E某ceptioner){Sytem.out.println(er.toString());}}}}//全部显示}if(e.getSource()==cancel){Sytem.e某it(0);}。

Javaweb课程设计管理系统

Javaweb课程设计管理系统

Javaweb课程设计管理系统一、教学目标本课程旨在让学生掌握Javaweb课程设计管理系统的基本原理和技能,能够独立完成Javaweb应用的开发和部署。

通过本课程的学习,学生将掌握Javaweb的基本概念、技术原理和实际应用,培养学生的实际动手能力和解决问题的能力。

具体来说,知识目标包括:1.掌握Javaweb的基本概念和技术原理。

2.熟悉Javaweb开发工具和环境。

3.理解Javaweb应用的运行机制。

技能目标包括:1.能够独立配置和部署Javaweb开发环境。

2.能够使用Javaweb技术开发简单的应用系统。

3.能够分析和解决Javaweb开发过程中的问题。

情感态度价值观目标包括:1.培养学生的团队合作意识和沟通能力。

2.培养学生的问题解决能力和创新精神。

3.培养学生的自主学习和持续学习的意识。

二、教学内容本课程的教学内容主要包括Javaweb的基本概念、技术原理和实际应用。

具体安排如下:1.Javaweb基本概念:介绍Javaweb的定义、特点和应用场景。

2.Javaweb技术原理:讲解Javaweb技术的原理和运行机制,包括服务器端的处理流程、客户端的请求处理等。

3.Javaweb开发工具和环境:介绍常用的Javaweb开发工具和环境,如Eclipse、Tomcat等,并讲解如何配置和部署开发环境。

4.Javaweb应用开发:讲解如何使用Javaweb技术开发简单的应用系统,包括页面设计、业务逻辑处理和数据持久化等。

5.Javaweb应用部署:讲解如何将Javaweb应用部署到服务器上,并介绍常用的部署方式和配置方法。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过讲解和演示,向学生传授Javaweb的基本概念和技术原理。

2.讨论法:学生进行小组讨论,促进学生之间的交流和合作,培养学生的团队合作意识和沟通能力。

Java+Mysql课程设计 图书管理系统 实验报告 需求报告说明书 软件工程

Java+Mysql课程设计 图书管理系统 实验报告 需求报告说明书 软件工程

Java+Mysql课程设计图书管理系统实验报告需求报告说明书软件工程自查报告。

课程名称,Java+Mysql课程设计。

课程性质,软件工程。

课程内容,图书管理系统。

一、需求报告说明书。

在本次课程设计中,我负责设计和实现图书管理系统的需求报告说明书。

在编
写需求报告说明书的过程中,我首先对图书管理系统的功能进行了分析和整理,明确了系统需要实现的基本功能和扩展功能。

其次,我根据用户的需求和系统的特点,设计了系统的用例图和用例描述,明确了系统各个功能模块的具体功能和交互流程。

最后,我对系统的非功能性需求进行了详细的描述,包括性能、安全性、可靠性等方面的要求。

通过编写需求报告说明书,我深入理解了图书管理系统的需求和设计思路,为后续的系统设计和实现奠定了基础。

二、实验报告。

在课程设计的实验阶段,我负责实现图书管理系统的后端功能,包括数据库设计、数据表的创建和管理、后台接口的设计和实现等工作。

在实验过程中,我充分运用了Java和Mysql的知识,熟练掌握了数据库的设计和管理技术,实现了系统
的数据存储和管理功能。

同时,我还结合软件工程的理论知识,采用了模块化和面向对象的设计思想,使系统的代码结构清晰、易于维护和扩展。

通过实验报告的编写,我总结了系统的设计思路、实现过程和遇到的问题,对系统的优化和改进提出了建设性的意见和建议。

通过本次课程设计,我不仅深入学习了Java和Mysql的知识,还加深了对软件工程理论的理解和应用。

我相信这次课程设计的经历将对我的未来学习和工作产生积极的影响。

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

文件管理器一、设计任务与目标录中某个文件进行浏览。

1用于打开所选中该目录中的文件。

2*3压缩到指定的目录中。

二、方案设计与论证对于题目的要求1),使用布局管理器可以设计两个文本区。

对于题目要求2JTextField文本框组件可以实现。

对于题目要求3JButton按钮组件实现。

运用Java Swing高级组件中的JTree GUI件浏览器的编制。

Javax.swing.JTree比如Windows文件管理器中的文件列表就是有树状结构实现的。

本题设计要求就是Windows文件管理器的工作。

点做添置画叶的操作。

树中最基本的对象是节点。

使用JTree1234567expansion linstener8tree-will-expand listener利用JTree Jtree 垂直显示它的数据。

树中node root node以设置改变默认显示方式。

一个节点可以拥有孩子也可以不拥有任何子孙。

我们branch nodes leaf nodestree expansion 或者tree-will-expand 事件可以检测分支节点的展开状态。

www.docin.co一、全部源程序清单package jluzh.fileViewer;import java.awt.*;import java.awt.event.*;import java.io.*;import java.text.DateFormat;import javax.swing.*;import javax.swing.tree.*;import javax.swing.event.*;public class FileViewer extends JFrame implements ActionListener {/*** FileView程序的主窗口*/private static final long serialVersionUID = 1L; //Eclipse自动生成的序列化版本id号private JTree m_tree; //文件夹树private DefaultTreeModel m_model; //默认树显示模式private JTextArea m_rightTextArea; //右边的文本显示区域private JTextField m_PathDisplay; //底部的路径显示区域private JButton m_openBtn; //打开文件按钮private JButton m_compressBtn; //压缩文件按钮private JButton m_refreshBtn; //刷新按钮private JButton m_aboutBtn;private String m_szFileExcutePath; //文件打开绝对路径public FileViewer(){super("FileViewer"); //设置窗口标题this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //在关闭窗口时候结束程序////*************************************************************************** *********// 初始化成员变量////*************************************************************************** *********/*其中m_tree的初始化在《构造系统目录树》中*//*其中m_model的初始化在《构造系统目录树》中*/m_rightTextArea = new JTextArea();m_rightTextArea.setEditable(false); //右面文本显示区域不可写m_PathDisplay = new JTextField();m_PathDisplay.setEditable(false); //下面路径显示区域不可写//初始化按钮并添加事件响应m_openBtn = new JButton("打开文件----利用系统关联打开文件");m_openBtn.addActionListener(this);m_compressBtn = new JButton("压缩----配置winrar成功时可用");m_compressBtn.addActionListener(this);m_refreshBtn = new JButton("刷新");m_refreshBtn.addActionListener(this);m_aboutBtn = new JButton("关于FileViewer");m_aboutBtn.addActionListener(this);m_szFileExcutePath = null; //初始化文件打开路径////*************************************************************************** *********// 构造系统目录树利用树自带的TreeExpansionListener对树进行Expansion和Selection响应处理////*************************************************************************** *********DefaultMutableTreeNode top; //树形目录的根节点DefaultMutableTreeNode node; //系统的盘符的节点File[] roots = File.listRoots(); //列出可用的文件系统盘符数组//构造根节点,后面加空格为了增大左面板初始面积top = new DefaultMutableTreeNode("我的电脑");//top的孩子节点里for (int k=0; k<roots.length; k++){node = new DefaultMutableTreeNode(new FileNode(roots[k]));top.add(node);node.add( new DefaultMutableTreeNode(new Boolean(true)));//true,使成为能扩展状态}m_model = new DefaultTreeModel(top); //设置默认模式根节点为topm_tree = new JTree(m_model); //按m_model模式构造文件树m_tree.putClientProperty("JTree.lineStyle", "Angled"); //设置客户区样式m_tree.addTreeExpansionListener(new DirExpansionListener()); //设置树展开事件响应处理m_tree.addTreeSelectionListener(new DirSelectionListener()); //设置树选择事件响应处理m_tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); //设置选择模式为单选m_tree.setEditable(false); //设置树为不可编辑////*************************************************************************** *********// 对窗口的界面进行处理////*************************************************************************** *********JPanel leftPanel = new JPanel(); //左边区域的pane的设置leftPanel.setLayout(new BorderLayout());JScrollPane scroll_tree = new JScrollPane(m_tree); //给树形区域添加滚动条leftPanel.add(scroll_tree, BorderLayout.CENTER); //加入文件树到左区域leftPanel.add(m_refreshBtn, BorderLayout.SOUTH); //添加刷新按钮leftPanel.add(m_aboutBtn, BorderLayout.NORTH); //添加关于按钮JPanel ringhtPanel = new JPanel(); //右边区域的pane的设置ringhtPanel.setBackground(Color.WHITE);ringhtPanel.setLayout(new BorderLayout());JScrollPane scroll_text = new JScrollPane(m_rightTextArea); //给本文区域添加滚动条ringhtPanel.add(scroll_text, BorderLayout.CENTER); //加入文本显示到右区域ringhtPanel.add(m_openBtn, BorderLayout.NORTH); //加入打开按钮ringhtPanel.add(m_compressBtn, BorderLayout.SOUTH); //加入压缩按钮JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,leftPanel,ringhtPanel); //垂直分割左右pane getContentPane().add(split,BorderLayout.CENTER); //分割pane置中getContentPane().add(m_PathDisplay, BorderLayout.SOUTH); //路径显示置于底部setSize(800, 600); //设置窗口大小setLocation(200, 100); //设置位置setVisible(true); //显示窗口}@Override// /////////////////////////////////// 通用事件处理// /////////////////////////////////public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource() == this.m_openBtn) //打开文件{if(this.m_szFileExcutePath == null){JOptionPane.showMessageDialog(null,"","警告", JOptionPane.WARNING_MESSAGE);return;}try {Runtime.getRuntime().exec("cmd /c start"+this.m_szFileExcutePath);} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}if(e.getSource() == this.m_compressBtn) //压缩文件{if(m_szFileExcutePath == null){JOptionPane.showMessageDialog(null,"盘符、文件夹等没有系","警告", JOptionPane.WARNING_MESSAGE);}else{new Compress(m_szFileExcutePath);}}if(e.getSource() == this.m_refreshBtn) //刷新文件夹树{DefaultMutableTreeNode top; //树形目录的根节点DefaultMutableTreeNode node; //系统的盘符的节点File[] roots = File.listRoots(); //列出可用的文件系统盘符数组//构造根节点,后面加空格为了增大左面板初始面积top = new DefaultMutableTreeNode("我的电脑");//top的孩子节点里for (int k=0; k<roots.length; k++){node = new DefaultMutableTreeNode(new FileNode(roots[k]));top.add(node);node.add( new DefaultMutableTreeNode(new Boolean(true)));//true,使成为能扩展状态}m_model = new DefaultTreeModel(top); //重新构造树形模式m_tree.setModel(m_model);m_szFileExcutePath = null; //清空当前路径m_PathDisplay.setText(null); //清空路径显示框m_rightTextArea.setText(null); //清空右方文本区域}if(e.getSource() == this.m_aboutBtn) //关于窗口{JOptionPane.showMessageDialog(null,"","关于FileViewer", JOptionPane.DEFAULT_OPTION);}}/* ********************************************************* * 用于响应树节点展开事件* 内部事件响应类*/class DirExpansionListener implements TreeExpansionListener{//树展开事件public void treeExpanded(TreeExpansionEvent event){// TODO Auto-generated method stubfinal DefaultMutableTreeNode node = getTreeNode(event.getPath()); //要展开的树节点final FileNode fnode = getFileNode(node);//转换为要展开的文件节点//多线程BFS遍历生成所有子节点Thread runner = new Thread(){public void run(){if (fnode != null && fnode.expand(node)) //{Runnable runnable = new Runnable(){public void run(){m_model.reload(node); //在模式里刷新本子树}};SwingUtilities.invokeLater(runnable); //把runnable加入到线程队列}}};runner.start();}//public void treeCollapsed(TreeExpansionEvent event){// TODO Auto-generated method stub}}/* ********************************************************** 用于响应树节点选中事件* 内部事件响应类*/class DirSelectionListenerimplements TreeSelectionListener{public void valueChanged(TreeSelectionEvent event){DefaultMutableTreeNode node = getTreeNode(event.getPath()); //选中的树节点FileNode fnode = getFileNode(node); //转换为选中的文件节点if (fnode != null) //判断选中的是否为有效文件节点{m_PathDisplay.setText(fnode.getFile().getAbsolutePath()); //在底部显示绝对路径File f = fnode.getFile();long len = f.length();String f_Attribute = "\n"; //文件的属性字符串if(f.isFile()) f_Attribute += " "+ f.getName()+ "\n";else f_Attribute += " "+ f.getName() + "\n";f_Attribute += " "+ f.getPath() + "\n";if(f.isFile()){f_Attribute += " "+ len + " 字节\n";DateFormat df = DateFormat.getDateInstance();//创建时间格式对象f_Attribute += " " +df.format(stModified()) + "\n";if(f.canRead()) f_Attribute += " " + "可读";else f_Attribute += " " + "不可读";if(f.canWrite()) f_Attribute += "可写" + "\n";else f_Attribute += "不可写" + "\n";FileReader fr = null;try {fr = new FileReader(f.getPath());} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}BufferedReader br = new BufferedReader(fr);String s = null;f_Attribute += "\n (能正常读取txt等文本格式文件前17)";for(int i=0; i<17; i++){try {s = br.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(s == null) break;f_Attribute += "\n" + s;}f_Attribute +="\n";try {fr.close(); //关闭文件} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(f.isFile()) m_szFileExcutePath = f.getPath();else m_szFileExcutePath = null;m_rightTextArea.setText(f_Attribute); //设置到右边属性页面}else m_PathDisplay.setText("");}}// /////////////////////////////////////////////// 通过树路径获取树节点// ////////////////////////////////////////////// DefaultMutableTreeNode getTreeNode(TreePath path){return (DefaultMutableTreeNode)(path.getLastPathComponent());}// ////////////////////////////////////////////////// 根据树节点获取相应的文件节点// ///////////////////////////////////////////////FileNode getFileNode(DefaultMutableTreeNode node){if (node == null)return null; //没有节点Object obj = node.getUserObject();if (obj instanceof FileNode)return (FileNode)obj; //判断获取节点是否在文件节点集中else return null;}// /////////////////////////////////////////////// 入口// /////////////////////////////////////////////public static void main(String argv[]){new FileViewer(); //创建软件窗口对象/**///初始化压缩环境try { //配置压缩环境1Runtime.getRuntime().exec("cmd /c mkdir c:\\WinRAR");} catch (IOException e2) {// TODO Auto-generated catch block}try { //配置压缩环境2Runtime.getRuntime().exec("cmd /c copy " +System.getProperty("user.dir")+"\\rar.exe c:\\WinRAR\\rar.exe");} catch (IOException e2) {// TODO Auto-generated catch blockJOptionPane.showMessageDialog(null,"","警告", JOptionPane.WARNING_MESSAGE);return;}JOptionPane.showMessageDialog(null,"配置winrar","提示", JOptionPane.WARNING_MESSAGE);}}package jluzh.fileViewer;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.io.IOException;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JRadioButton;import javax.swing.JTextField;public class Compress extends JFrame implements ActionListener, ItemListener {private String m_FilePath; //要压缩的文件路径private String m_CompressToPath; //压缩到的文件路径private JRadioButton sourcePathRB, objectPathRB; //单选按钮private JTextField object_Text; //目标路径输入框private JButton m_okBtn; //压缩文件按钮private JButton m_cancelBtn; //取消按钮public Compress(String FilePath){super("文件压缩"); //设置窗口标题this.setSize(420, 160);this.setLocation(400, 300);this.setVisible(true);////*************************************************************************** *********// 初始化成员变量////*************************************************************************** *********this.m_FilePath = FilePath; //获取要压缩的文件路径this.m_CompressToPath = null;sourcePathRB = new JRadioButton("与源文件在同一个根目录",true);objectPathRB = new JRadioButton("自定义绝对路径",false);/*其中object_Text在完成目标路径字符串转换后再初始化*/m_okBtn = new JButton("压缩");m_cancelBtn = new JButton("取消");////*************************************************************************** *********// 对窗口的界面进行处理////*************************************************************************** *********JLabel lab1 = new JLabel("");JLabel lab2 = new JLabel("");JTextField source_Text = new JTextField(m_FilePath,31);//rarint index = m_FilePath.indexOf(".", 2);if(index == -1) m_CompressToPath = m_FilePath + ".rar";else m_CompressToPath = m_FilePath.substring(0, index) + ".rar";object_Text = new JTextField(m_CompressToPath,36); //初始化目标路径输入getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT)); getContentPane().add(lab1);source_Text.setEditable(false); //设置源文件框不可写getContentPane().add(source_Text);getContentPane().add(lab2);getContentPane().add(sourcePathRB);getContentPane().add(objectPathRB);getContentPane().add(object_Text);object_Text.setEditable(false); //设置目标文件框不可写getContentPane().add(m_okBtn);getContentPane().add(m_cancelBtn);sourcePathRB.addItemListener(this); //单选框设置事件响应并添加到同一组objectPathRB.addItemListener(this);ButtonGroup btnGroup = new ButtonGroup();btnGroup.add(sourcePathRB);btnGroup.add(objectPathRB);m_okBtn.addActionListener(this);m_cancelBtn.addActionListener(this);}@Override// /////////////////////////////////// 通用事件处理// /////////////////////////////////public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource() == m_okBtn) //进行文件压缩{try {Runtime.getRuntime().exec("c:\\WinRAR\\rar.exe a " +object_Text.getText() + " " +m_FilePath);} catch (IOException e1) {// TODO Auto-generated catch block//e1.printStackTrace();JOptionPane.showMessageDialog(null,"找不到c:/WinRAR/rar.exe!\n请安装WINRAR到c:/WinRAR下\n或拷贝rar.exe到c:/WinRAR下","警告", JOptionPane.WARNING_MESSAGE);return;JOptionPane.showMessageDialog(null,"压缩成功至" + object_Text.getText() + "\n请刷新后查看......","提示", JOptionPane.WARNING_MESSAGE);this.setVisible(false);}if(e.getSource() == m_cancelBtn) //取消{this.setVisible(false);}}@Override// /////////////////////////////////// item事件处理// /////////////////////////////////public void itemStateChanged(ItemEvent e) {// TODO Auto-generated method stubif(e.getSource() == sourcePathRB){this.object_Text.setEditable(false); //设置目标文件框不可写return;}if(e.getSource() == objectPathRB){object_Text.setEditable(true); //设置目标文件框不可写return;}}}package jluzh.fileViewer;import java.io.File;import java.util.Vector;import javax.swing.JOptionPane;import javax.swing.tree.DefaultMutableTreeNode;public class FileNode{/*** 文件节点类*/private File m_file; //文件对象public FileNode(File file){m_file = file;}// ///////////////////////////// 返回文件对象// //////////////////////////public File getFile(){return m_file;}// //////////////////////////// 重写toString// //////////////////////////public String toString(){return m_file.getName().length() > 0 ? m_file.getName() :m_file.getPath();}// //////////////////////////// 返回此节点的第一个子节点是否存在// //////////////////////////public boolean expand(DefaultMutableTreeNode parent){DefaultMutableTreeNode firstChild = (DefaultMutableTreeNode)parent.getFirstChild();if (firstChild == null)return false;Object obj = firstChild.getUserObject(); //返回此节点的用户对象if (!(obj instanceof Boolean))return false; //节点已经被扩展了parent.removeAllChildren(); //释放子节点File[] files = listFiles(); //获得本对象的文件列表数组if (files == null) return true; //节点本身是一个并没有展开的文件夹Vector v = new Vector(); //自增长数组v//**//vfor (int k=0; k<files.length; k++) //遍历文件数组{File f = files[k];FileNode newNode = new FileNode(f);//*//遍历自增长数组v v添加到vboolean isAdded = false; //设置添加标记falsefor (int i=0; i<v.size(); i++) //遍历自增长数组{FileNode nd = (FileNode)v.elementAt(i);if (pareTo(nd) < 0) //比较在v中获取的节点{v.insertElementAt(nd, i);isAdded = true;break;}}if (!isAdded)v.addElement(newNode); //我那件数组元素加入v}//**//遍历字增长数组v树根for (int i=0; i<v.size(); i++){FileNode fnd = (FileNode)v.elementAt(i);DefaultMutableTreeNode node = new DefaultMutableTreeNode(fnd);parent.add(node);if (fnd.hasSubDirs()){node.add(new DefaultMutableTreeNode( new Boolean(true) )); //确认为新子树根}}return true;}// //////////////////////////// 判断是否有子目录// //////////////////////////public boolean hasSubDirs(){File[] files = listFiles();if (files == null)return false;else return true;}// //////////////////////////// 比较文件节点是否相同// //////////////////////////public int compareTo(FileNode toCompare){returnm_file.getName().compareToIgnoreCase(toCompare.m_file.getName() ); }// //////////////////////////// 返回本节点的文件列表数组// //////////////////////////protected File[] listFiles(){if (!m_file.isDirectory()) return null; //返回空try{return m_file.listFiles(); //返回一个文件列表数组}catch (Exception ex){JOptionPane.showMessageDialog(null,"读取文件错误"+m_file.getAbsolutePath(),"警告", JOptionPane.WARNING_MESSAGE);return null;}}}二、程序运行的测试与分析六、结论与心得了自己对Java Swing思考勤动手的好习惯。

相关文档
最新文档