版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 登录/注册(RLogin,userbean)修改个人信息(personInfo,personBean)查看我借的书(mybook,lookMybook)增加图书(bookAdd,bookbean)修改图书信息(bookEdit,bookbean)删除图书(bookDel,bookbean)添加成员(memberAdd,memberBean)删除成员(memberDelete,memberBean)图书借阅(bookLend,bookbean)图书归还(bookReturn,bookbean)图书查询(booksearch,bookbean)组员分工:刘会敏:图书管理(增,删,查询,修改图书信
2、息)方法 及部分页面, 链接数据库(DatabaseConn2) 宁俊明:主界面(bookMain),登录注册界面面板(RLogin), 修改个人信息,添加、删除成员方法王盛开:登录注册方法(userbean),查看我借的书页面,添加删除成员页面,添加删除图书页面图书中心退出 系统操作 主面板bookMain个人信息管理管理图书及成员(当用户类型为管理员时显示此组件)项目下的包及类:数据库bookcollection表book(bookID设置为自增)表user表userbook管理图书及成员图书中心退出系统操作个人中心主页面:8删除成员7添加成员设置变量:username,sex,passw
3、ord,userID,userType,department,major向user表插入数据所在院系专业学号密码我是:本科生 研究生 教师6修改图书信息5删除图书4增加图书9.修改个人资料只向管理员显示,判断用户是否为管理员(session)1.查询图书2.借书3.还书姓名:1,2,3,4,5,6对book表进行操作;9 对user表进行操作;10对userbook表进行操作;效果均为点击后出现新的页面验证用户名,密码(from user)注册姓名登录密码:注册:登录:登录/注册:(注册后直接登录,跳转到主页面)10.我所借的书登录注册页面:package bookDB;import java
4、.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class RLogin extends JFrame implements ActionListener/Container c; String sex;int type;/ 创建登录组件 JLabel jlabel0 = new JLabel("登录:");JLabel jLabel1 = new JLabel("学号(或职工号):"); J
5、Label jLabel2 = new JLabel("密码:");JTextField userID1 = new JTextField(10); JTextField password1 = new JTextField(10);JButton btn_ok1 = new JButton(); / 创建登录确定按钮/ 创建注册组件 JLabel jlabel00 = new JLabel("注册:");JLabel jLabel3 = new JLabel("姓名:"); JLabel jLabel4 = new JLabel(&
6、quot;性别:"); JLabel jLabel5 = new JLabel("密码:"); JLabel jLabel6 = new JLabel("学号(或职工号):"); JLabel jLabel7 = new JLabel("院系:"); JLabel jLabel8 = new JLabel("专业:");JLabel jLabel9 = new JLabel("用户类别:");JTextField name = new JTextField(10);JTextField
7、 password2 = new JTextField(10);JTextField ID2 = new JTextField(10);JTextField department = new JTextField(10);JTextField major = new JTextField(10);JRadioButton rb1; / 单选按钮,用于设定性别JRadioButton rb2;/用户类型选择JButton btn_ok2 = new JButton(); / 创建注册确定按钮/ 构造函数public RLogin() super("登录/注册:"); / 调用
8、 JFrame的构造函数String sex = "男", "女" ;String type = "本科生", "研究生", "老师"JPanel panel1 = new JPanel(new FlowLayout();/ 使用JPanel类创建面板,该类是JComponent类的子类,后者又扩展Container/每个JPanel都是一个Container,因此,可以向JPanel添加包括面板在内的组件/this.setBackground(Color.YELLOW);this.add(pa
9、nel1);this.add(panel1, BorderLayout.NORTH); / JFrame类的默认布局管理器为BorderLayout,此处将panel1设置在面板的北侧。/ 在panel1面板上添加标签panel1.add(jlabel0);panel1.add(jLabel1);panel1.add(userID1);panel1.add(jLabel2);panel1.add(password1);btn_ok1 = new JButton("确定");btn_ok1.addActionListener(this);panel1.add(btn_ok1)
10、;JPanel panel2 = new JPanel(new FlowLayout();this.add(panel2);this.add(panel2, BorderLayout.CENTER); / JFrame类的默认布局管理器为BorderLayout,此处将panel2设置在面板的南侧。/ 在panel2面板上添加组件panel2.add(jlabel00);panel2.add(jLabel3);panel2.add(name);panel2.add(jLabel4);/创建ButtonGroup的对象,用于维护单选按钮的逻辑关系ButtonGroup bg1 = new But
11、tonGroup();rb1 = new JRadioButtonsex.length;/ 单选按钮for (int i = 0; i < 2; i+) / rb1i = new JRadioButton(sexi);bg1.add(rb1i);/ 管理单选按钮panel2.add(rb1i); / 将单选按钮添加到面panel2.add(jLabel5);panel2.add(password2);panel2.add(jLabel6);panel2.add(ID2);panel2.add(jLabel7);panel2.add(department);panel2.add(jLabe
12、l8);panel2.add(major);panel2.add(jLabel9);/创建ButtonGroup的对象,用于维护单选按钮的逻辑关系ButtonGroup bg2 = new ButtonGroup();rb2 = new JRadioButtontype.length;/ 单选按钮for (int j = 0; j < 3; j+) / rb2j = new JRadioButton(typej);bg2.add(rb2j);/ 管理单选按钮,只能选一个panel2.add(rb2j); / 将单选按钮添加到面btn_ok2 = new JButton("确定&
13、quot;);btn_ok2.addActionListener(this);panel2.add(btn_ok2);public static void main(String args) RLogin app = new RLogin();app.setSize(600, 200); / 设置窗口大小app.setVisible(true); / 设置窗口可见app.setDefaultCloseOperation(EXIT_ON_CLOSE); / end main methodOverridepublic void actionPerformed(ActionEvent e) / TO
14、DO Auto-generated method stub/String sex, type;/ 用户点击登录确定按钮if (e.getSource() = btn_ok1) userbean rs = new userbean(); /System.out.println(userID1.getText() + password1.getText();rs.login(userID1.getText(), password1.getText(); this.dispose();/ 用户点击注册确定按钮if (e.getSource() = btn_ok2) / 获取用户选择的性别并存入sex
15、中for (int m = 0; m < rb1.length; m+)if (rb1m.isSelected()sex = rb1m.getText();/ 获取用户选择的类别并存入type中for (int n = 0; n < rb2.length; n+)if (rb2n.isSelected()type = n+1;userbean rs = new userbean(); rs.register (name.getText(), sex, password2.getText(), ID2.getText(), department.getText(),major.get
16、Text(), type); this.dispose(); / end actionPrform method / end systemLogin method登录注册方法:package bookDB;import java.sql.ResultSet;import java.sql.SQLException;import javax.swing.JOptionPane;public class userbean boolean boolLogin=false;/用户登录之后为true,没登录状态下为falseString sql;String userID;static String l
17、oginID;/ 定义登录后的IDstatic int usertype;String username;String password;String sex;String department;String major;int userType;int canBorrow;ResultSet rs = null;/*注册*public void register(String username,String sex,String password,String userID,String department,String major,int type)DatabaseConn2 DB =
18、new DatabaseConn2(); this.username = username;this.userID = userID;this.sex = sex;this.department = department;this.major = major;/添加图书时,剩余馆藏量=馆藏量if(username.equals("")|userID.equals("")|sex.equals("")|department.equals("")|major.equals("") /提示完善图书信息
19、JOptionPane.showMessageDialog(null,"请完善信息","错误",JOptionPane.ERROR_MESSAGE); return; else/int type = Integer.parseInt(userType);/转换用户类型为int型sql = "insert into user(userName,sex,password,userID,department,major,userType)"+ " values('"+username+"',
20、39;"+sex+"','"+password+"','"+userID+"','"+department+"','"+major+"',"+type+")" try DB.executeUpdate(sql); /更新语句 JOptionPane.showMessageDialog(null,"注册成功!您可返回登录"); /提示添加成功/ bookMain main =n
21、ew bookMain(); RLogin login = new RLogin(); login.pack(); login.setVisible(true); catch (Exception e) System.out.println(e); JOptionPane.showMessageDialog(null,"保存失败!","错误",JOptionPane.ERROR_MESSAGE); finally DB.close(); /*登录*public void login(String userId, String password1)Data
22、baseConn2 DB = new DatabaseConn2();this.userID = userId;this.password = password1;if(userID.equals("") | password.equals("")JOptionPane.showMessageDialog(null,"请填写完整登录信息!","错误",JOptionPane.ERROR_MESSAGE); return; elsesql = "select * from user where userID
23、 = '"+ userID +"'"rs = DB.executeQuery(sql);try if(rs.next()System.out.println(rs.getString("password");if(rs.getString("password").equals(password) )JOptionPane.showMessageDialog(null,"登录成功!");bookMain main = new bookMain();/登录成功后显示登录页面main.pack(
24、); main.setVisible(true);/HttpSession session = request.getSession(true);/session.removeAttribute(logid);/session.setAttribute(logid,userID);loginID = userID;/获取登录后的用户ID/获取用户类型usertype =Integer.parseInt(rs.getString("userType");System.out.println(usertype+"t"+rs.getString("u
25、serType");elseSystem.out.println("你好"); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();主页面:package bookDB;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class RLogin extends JFrame imple
26、ments ActionListener/Container c; String sex;int type;/ 创建登录组件 JLabel jlabel0 = new JLabel("登录:");JLabel jLabel1 = new JLabel("学号(或职工号):"); JLabel jLabel2 = new JLabel("密码:");JTextField userID1 = new JTextField(10); JTextField password1 = new JTextField(10);JButton btn_
27、ok1 = new JButton(); / 创建登录确定按钮/ 创建注册组件 JLabel jlabel00 = new JLabel("注册:");JLabel jLabel3 = new JLabel("姓名:"); JLabel jLabel4 = new JLabel("性别:"); JLabel jLabel5 = new JLabel("密码:"); JLabel jLabel6 = new JLabel("学号(或职工号):"); JLabel jLabel7 = new JLa
28、bel("院系:"); JLabel jLabel8 = new JLabel("专业:");JLabel jLabel9 = new JLabel("用户类别:");JTextField name = new JTextField(10);JTextField password2 = new JTextField(10);JTextField ID2 = new JTextField(10);JTextField department = new JTextField(10);JTextField major = new JText
29、Field(10);JRadioButton rb1; / 单选按钮,用于设定性别JRadioButton rb2;/用户类型选择JButton btn_ok2 = new JButton(); / 创建注册确定按钮/ 构造函数public RLogin() super("登录/注册:"); / 调用 JFrame的构造函数String sex = "男", "女" ;String type = "本科生", "研究生", "老师"JPanel panel1 = new JP
30、anel(new FlowLayout();/ 使用JPanel类创建面板,该类是JComponent类的子类,后者又扩展Container/每个JPanel都是一个Container,因此,可以向JPanel添加包括面板在内的组件/this.setBackground(Color.YELLOW);this.add(panel1);this.add(panel1, BorderLayout.NORTH); / JFrame类的默认布局管理器为BorderLayout,此处将panel1设置在面板的北侧。/ 在panel1面板上添加标签panel1.add(jlabel0);panel1.add
31、(jLabel1);panel1.add(userID1);panel1.add(jLabel2);panel1.add(password1);btn_ok1 = new JButton("确定");btn_ok1.addActionListener(this);panel1.add(btn_ok1);JPanel panel2 = new JPanel(new FlowLayout();this.add(panel2);this.add(panel2, BorderLayout.CENTER); / JFrame类的默认布局管理器为BorderLayout,此处将pane
32、l2设置在面板的南侧。/ 在panel2面板上添加组件panel2.add(jlabel00);panel2.add(jLabel3);panel2.add(name);panel2.add(jLabel4);/创建ButtonGroup的对象,用于维护单选按钮的逻辑关系ButtonGroup bg1 = new ButtonGroup();rb1 = new JRadioButtonsex.length;/ 单选按钮for (int i = 0; i < 2; i+) / rb1i = new JRadioButton(sexi);bg1.add(rb1i);/ 管理单选按钮panel
33、2.add(rb1i); / 将单选按钮添加到面panel2.add(jLabel5);panel2.add(password2);panel2.add(jLabel6);panel2.add(ID2);panel2.add(jLabel7);panel2.add(department);panel2.add(jLabel8);panel2.add(major);panel2.add(jLabel9);/创建ButtonGroup的对象,用于维护单选按钮的逻辑关系ButtonGroup bg2 = new ButtonGroup();rb2 = new JRadioButtontype.len
34、gth;/ 单选按钮for (int j = 0; j < 3; j+) / rb2j = new JRadioButton(typej);bg2.add(rb2j);/ 管理单选按钮,只能选一个panel2.add(rb2j); / 将单选按钮添加到面btn_ok2 = new JButton("确定");btn_ok2.addActionListener(this);panel2.add(btn_ok2);public static void main(String args) RLogin app = new RLogin();app.setSize(600,
35、200); / 设置窗口大小app.setVisible(true); / 设置窗口可见app.setDefaultCloseOperation(EXIT_ON_CLOSE); / end main methodOverridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub/String sex, type;/ 用户点击登录确定按钮if (e.getSource() = btn_ok1) userbean rs = new userbean(); /System.out.println(u
36、serID1.getText() + password1.getText();rs.login(userID1.getText(), password1.getText(); this.dispose();/ 用户点击注册确定按钮if (e.getSource() = btn_ok2) / 获取用户选择的性别并存入sex中for (int m = 0; m < rb1.length; m+)if (rb1m.isSelected()sex = rb1m.getText();/ 获取用户选择的类别并存入type中for (int n = 0; n < rb2.length; n+)i
37、f (rb2n.isSelected()type = n+1;userbean rs = new userbean(); rs.register (name.getText(), sex, password2.getText(), ID2.getText(), department.getText(),major.getText(), type); this.dispose(); / end actionPrform method / end systemLogin method添加图书:package bookDB;import java.awt.*; import java.awt.eve
38、nt.*;import javax.swing.*;public class bookAdd extends JFrame implements ActionListener/监听机制 Container c; JLabel jLabel1 = new JLabel("图书名");/JLable存放文本或图像 JLabel jLabel2 = new JLabel("数量"); JLabel jLabel3 = new JLabel("作者"); JLabel jLabel4 = new JLabel("出版社")
39、; JTextField bookname = new JTextField(10); /JTextField获取图书名JTextField number = new JTextField(10); JTextField author = new JTextField(10); JTextField press = new JTextField(10); JButton addconfirm = new JButton();/JButton按钮 public bookAdd() this.setTitle("增加图书信息"); this.setResizable(true)
40、; /setResizable(true)窗口大小可调节,false不可调节 tryInit();catch (Exception e)/获取异常e.printStackTrace(); public void Init() throws Exception /初始化函数this.setSize(300,500); /设置大小c = this.getContentPane(); /获取内容面板,所有显示在窗口的控件都添加在这个面板上c.setLayout(new FlowLayout(); /布局管理器setLayout() c.add(jLabel1); /向面板添加文字“图书ID:” c.
41、add(bookname); /向面板添加图书名输入框 c.add(jLabel2); /添加图书数量 c.add(number); /向面板添加图书数量输入框c.add(jLabel3); /添加作者 c.add(author);/添加作者输入框 c.add(jLabel4);/添加出版社c.add(press);/添加出版社输入框addconfirm.setText("确认增加"); /设置按钮上的字 addconfirm.setFont(new Font("Dialog",0,12);/设置按钮上字体 c.add(addconfirm); /添加按
42、钮 addconfirm.addActionListener(this); /对按钮添加事件监听 public void actionPerformed(ActionEvent e) Object obj = e.getSource();/获得事件监听对象 if(obj = addconfirm) bookBean rs = new bookBean(); int num = Integer.parseInt(number.getText();/将获取的图书数量由String类型转化为整型rs.bookAdd(bookname.getText(),num,author.getText(),pr
43、ess.getText(); this.dispose(); /关闭窗口,并释放窗体资源 修改图书信息:package bookDB;import java.awt.*; import java.awt.event.*; import javax.swing.*; public class bookEdit extends JFrame implements ActionListener Container c; JLabel jLabel1 = new JLabel("图书ID:");JLabel jLabel2 = new JLabel("图书名:"
44、); JLabel jLabel3 = new JLabel("作者:"); JLabel jLabel4 = new JLabel("出版社:"); JLabel jLabel5 = new JLabel("馆藏量:");JLabel jLabel6 = new JLabel("剩余馆藏量:");JLabel jLabel7 = new JLabel("当前预约人数:");JTextField bookID = new JTextField(10);JTextField bookname= n
45、ew JTextField(10);JTextField author = new JTextField(10); JTextField press = new JTextField(10);JTextField number = new JTextField(10); JTextField lastNumber = new JTextField(10);JTextField apointment = new JTextField(10);JButton editconfirm = new JButton(); public bookEdit() this.setTitle("修改图
46、书信息"); this.setResizable(true); tryInit();catch (Exception e)e.printStackTrace(); /设置居中 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation(int)(screenSize.width - 400)/2,(int)(screenSize.height - 300)/2 +45); public void Init() throws Exception this.setSize(600
47、,500); c = this.getContentPane(); c.setLayout(new FlowLayout(); c.add(jLabel1); bookID.setText(null); c.add(bookID); c.add(jLabel2); bookname.setText(null); c.add(bookname);c.add(jLabel3); author.setText(null); c.add(author); c.add(jLabel4); press.setText(null); c.add(press); c.add(jLabel5); number.
48、setText(null); c.add(number);c.add(jLabel6);lastNumber.setText(null); c.add(lastNumber);c.add(jLabel7);apointment.setText(null); c.add(apointment); /更改信息的组件添加完毕editconfirm.setText("确认修改"); c.add(editconfirm); editconfirm.addActionListener(this); /添加事件监听 public void actionPerformed(ActionEv
49、ent e) Object obj = e.getSource(); if(obj = editconfirm) bookBean rs = new bookBean();rs.bookModify(bookID.getText(),bookname.getText(),author.getText(),press.getText(),number.getText(),lastNumber.getText(),apointment.getText(); this.dispose(); 借阅图书:package bookDB;import java.awt.*;import java.awt.e
50、vent.*;import javax.swing.*; public class bookLend extends JFrame implements ActionListener Container c; JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JTextField bookname = new JTextField(10); JTextField bookID = new JTextF
51、ield(10);JTextField username= new JTextField(10);JTextField userID = new JTextField(10);JButton bookconfirm = new JButton(); public bookLend() this.setTitle("借阅图书"); this.setResizable(true); tryInit();catch (Exception e)e.printStackTrace(); /设置居中 Dimension screenSize = Toolkit.getDefaultTo
52、olkit().getScreenSize(); this.setLocation(int)(screenSize.width - 400)/2,(int)(screenSize.height - 300)/2 +45); public void Init() throws Exception this.setSize(600,500); c = this.getContentPane();c.setLayout(new FlowLayout();jLabel1.setText("借阅图书名: "); c.add(jLabel1); bookname.setText(null); c.add(bookname); jLabel2.setText("借阅图书ID: "); c.add(jLa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年共青科技职业学院单招职业适应性测试题库带答案详解(完整版)
- 2025-2026学年点翻串翻教学设计
- 2025-2026学年运动闯关教案
- 2025-2026学年游戏的拼音教学设计
- 山东协和学院《农业机械化管理学》2024-2025学年第二学期期末试卷
- 潍坊工程职业学院《模拟系统集成》2024-2025学年第二学期期末试卷
- 嵩山少林武术职业学院《通信系统仿真》2024-2025学年第二学期期末试卷
- 2026年南阳科技职业学院单招职业倾向性测试题库附答案详解(能力提升)
- 云南商务职业学院《合唱指挥1》2024-2025学年第二学期期末试卷
- 清华大学《环境法学》2024-2025学年第二学期期末试卷
- 消防工程施工设备及检测仪器配置计划
- 有机化合物概述
- 2025新修订版《英语课程标准》学习心得体会
- 工程质量监理精细化管理实施细则
- 【真题】2024年常州市中考英语试卷(含答案解析)
- 统编版小学语文四年级下册9 短诗三首 (教学设计)
- 《Android应用开发技术》课程教学标准(含课程思政)
- 多联机空调维保方案
- 费斯汀格法则原文
- 商丘市梁园区农业农村局商丘市梁园区乡村振兴农村环境综合整治项目(双八镇)环境影响报告
- 导地线的展放
评论
0/150
提交评论