读者信息管理共包括两部分,读者信息添加和读者信息查询与修改,在读者信息添加里要正确输入读者的八项信息,并且读者编号唯一,不能重复。

数据库的读者如下:

添加读者过程如下:

数据库读者信息添加:

2、读者信息查询与修改:开始表格里将会列出所有的读者信息,可以根据不同的方式进行查找,有读者编号,姓名,类别,系部等,单击表格中的内容时下方的文本框将会自动填满,然后可以修改读者的信息,由于读者编号是唯一的,所以无法修改。其他的任何信息都可以修改,修改成功之后上方的表格将会刷新,显示修改后的结果。

读者信息添加源代码如下:AddReader.java

package pdsu.bbm.view;import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import pdsu.bbm.dao.Dao;
import pdsu.bbm.dao.ReaderDao;
import pdsu.bbm.dao.ReaderTypeDao;
import pdsu.bbm.model.Reader;
import pdsu.bbm.model.ReaderType;
public class AddReader extends JFrame implements ActionListener{private JPanel contentPane;private JTextField textField;private JTextField textField_1;private JLabel label_1;private JLabel lbll;private JLabel label_2;private JLabel label_3;private JTextField textField_2;private JTextField textField_3;private JLabel label_4;private JRadioButton radioButton,radioButton_1;private JTextField textField_4;private JLabel label_5;private JTextField textField_5;JComboBox comboBox_1;JPanel centerpPanel;JButton button1,button2;Image icon = new ImageIcon("image/icon.png").getImage();public static void main(String[] args) {new AddReader();}public AddReader() {setTitle("添加读者信息");setSize(555, 333);setIconImage(icon);setLocationRelativeTo(null);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);centerpPanel=new JPanel();centerpPanel.setLayout(null);JLabel label1 = new JLabel("编  号:");label1.setFont(new Font("宋体", Font.PLAIN, 20));label1.setBounds(50, 26, 116, 42);centerpPanel.add(label1);textField = new JTextField();textField.setBounds(122, 35, 120, 30);centerpPanel.add(textField);textField.setColumns(10);JLabel label = new JLabel("姓  名:");label.setFont(new Font("宋体", Font.PLAIN, 20));label.setBounds(292, 30, 116, 35);centerpPanel.add(label);textField_1 = new JTextField();textField_1.setBounds(362, 35, 120, 30);centerpPanel.add(textField_1);textField_1.setColumns(10);label_1 = new JLabel("类  别:");label_1.setFont(new Font("宋体", Font.PLAIN, 20));label_1.setBounds(50, 78, 154, 50);centerpPanel.add(label_1);lbll = new JLabel("性  别:");lbll.setFont(new Font("宋体", Font.PLAIN, 20));lbll.setBounds(292, 78, 70, 50);centerpPanel.add(lbll);label_2 = new JLabel("年  龄:");label_2.setFont(new Font("宋体", Font.PLAIN, 20));label_2.setBounds(50, 130, 154, 50);centerpPanel.add(label_2);label_3 = new JLabel("电  话:");label_3.setFont(new Font("宋体", Font.PLAIN, 20));label_3.setBounds(292, 130, 137, 50);centerpPanel.add(label_3);textField_2 = new JTextField();textField_2.setColumns(10);textField_2.setBounds(122, 138, 120, 30);centerpPanel.add(textField_2);textField_3 = new JTextField();textField_3.setColumns(10);textField_3.setBounds(362, 138, 120, 30);centerpPanel.add(textField_3);label_4 = new JLabel("所在系:");label_4.setFont(new Font("宋体", Font.PLAIN, 20));label_4.setBounds(50, 178, 131, 50);centerpPanel.add(label_4);textField_4 = new JTextField();textField_4.setColumns(10);textField_4.setBounds(122, 190, 120, 30);centerpPanel.add(textField_4);label_5 = new JLabel("注册日期:");label_5.setFont(new Font("宋体", Font.PLAIN, 20));label_5.setBounds(271, 178, 137, 50);centerpPanel.add(label_5);textField_5 = new JTextField();textField_5.setColumns(10);textField_5.setBounds(362, 190, 120, 30);centerpPanel.add(textField_5);List<ReaderType> rs = ReaderTypeDao.selectReaderType();Iterator<ReaderType> iterator = rs.iterator();String[] AllTypeName = new String[rs.size()];int i = 0;while (iterator.hasNext()) {String typename = iterator.next().getTypename();AllTypeName[i] = typename;i++;}comboBox_1 = new JComboBox<String>(AllTypeName);comboBox_1.setFont(new Font("宋体", Font.PLAIN, 16));comboBox_1.setBounds(122, 84, 120, 30);comboBox_1.addActionListener(this);centerpPanel.add(comboBox_1);JPanel panel = new JPanel();panel.setBounds(362, 85, 120, 30);centerpPanel.add(panel);panel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));getContentPane().add(centerpPanel,BorderLayout.CENTER);radioButton = new JRadioButton("男");radioButton.setFont(new Font("宋体", Font.PLAIN, 16));panel.add(radioButton);radioButton_1 = new JRadioButton("女");radioButton_1.setFont(new Font("宋体", Font.PLAIN, 16));panel.add(radioButton_1);ButtonGroup group=new ButtonGroup();group.add(radioButton);group.add(radioButton_1);JPanel panel2=new JPanel();panel2.setLayout(new FlowLayout());button1=new JButton("添加");button1.setFont(new Font("宋体", Font.PLAIN, 20));button1.addActionListener(this);button2=new JButton("关闭");button2.setFont(new Font("宋体", Font.PLAIN, 20));button2.addActionListener(this);panel2.add(button1);panel2.add(button2);add(panel2,BorderLayout.SOUTH);setVisible(true);}public void actionPerformed(ActionEvent e) {Reader reader=new Reader();if(e.getSource()==button2){dispose();new MainWindow();}if(e.getSource()==button1){String bianhao=textField.getText().trim();String name =textField_1.getText().trim();String typename=comboBox_1.getSelectedItem()+"";String date=textField_5.getText().trim();String sex;if(radioButton.isSelected()){sex="男";}else sex="女";String phone=textField_3.getText().trim();String dept=textField_4.getText().trim();String age=textField_2.getText();Date regdate=null;try {regdate=Dao.getStringToDate(date);} catch (Exception e1) {e1.printStackTrace();}if(regdate==null) return;int m=0;reader.setReaderid(bianhao);reader.setName(name);reader.setTypename(typename);List<ReaderType> list=ReaderTypeDao.selectReaderType(typename);Iterator<ReaderType> iterator=list.iterator();while (iterator.hasNext()) {m=iterator.next().getId();}reader.setType(m);reader.setSex(sex);reader.setPhone(phone);reader.setDept(dept);reader.setRegDate(regdate);if(bianhao.equals("")||name.equals("")||sex.equals("")||age.equals("")||phone.equals("")||dept.equals("")||date.equals("")){JOptionPane.showMessageDialog(this,"请输入正确的信息");return;}else if(ReaderDao.selectReaderById2(bianhao)!=null){JOptionPane.showMessageDialog(this,"该编号已存在");System.out.println(ReaderDao.insertReader(reader));return;}else if(!age.equals("")){try {reader.setAge(Integer.parseInt(age));} catch (NumberFormatException e1) {e1.printStackTrace();}if(ReaderDao.insertReader(reader)!=0){JOptionPane.showMessageDialog(this,"添加成功");}else {JOptionPane.showMessageDialog(this,"添加失败");}}}}
}

读者信息查询与修改源代码如下:ReaderSelectAndUpdate.java

package pdsu.bbm.view;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import pdsu.bbm.dao.Dao;
import pdsu.bbm.dao.ReaderDao;
import pdsu.bbm.dao.ReaderTypeDao;
import pdsu.bbm.model.Reader;
import pdsu.bbm.model.ReaderType;public class ReaderSelectAndUpdate extends JFrame implements ActionListener,MouseListener {// 上部组件private JPanel selectJP;// 上部组建(北)private JPanel select_conditionJP;private JButton selectJB;private JComboBox conditionJCB;private JTextField select_conditionJTF;// 上部组件(中)private JTable jtable;private String[] title = { "编号", "类型", "姓名", "年龄", "性别", "电话", "系部", "注册日期" };private JPanel select_resultJP;private JScrollPane jscrollPane;// 中部组件private JPanel updateJP, sexJP;private JRadioButton JRB1, JRB2;private ButtonGroup buttonGroup = new ButtonGroup();private JLabel IDJL, typeJL, readerNameJL, sexJL, phoneJL, deptJL, ageJL,regJL;private JTextField IDJTF, readerNameJTF, phoneJTF, deptJTF, ageJTF, regJTF;private JComboBox readertypeJCB;// 底部组件private JPanel buttonJP;private JButton updateJB, closeJB;Image icon = new ImageIcon("image/icon.png").getImage();public ReaderSelectAndUpdate() {setBounds(200, 200, 555, 500);setLocationRelativeTo(null);setTitle("读者信息查询与修改");setIconImage(icon);// 读者信息查询面板设计selectJP = new JPanel();selectJP.setLayout(new BorderLayout());// 查询条件面板// 查询条件下拉列表框select_conditionJP = new JPanel();conditionJCB = new JComboBox();String[] array = { "读者编号", "姓名", "类型", "系部","所有"};for (int i = 0; i < array.length; i++) {conditionJCB.addItem(array[i]);conditionJCB.setFont(new Font("宋体", Font.PLAIN, 16));}conditionJCB.addActionListener(this);select_conditionJP.add(conditionJCB);// 查询条件文本框select_conditionJTF = new JTextField();select_conditionJTF.setColumns(20);select_conditionJP.add(select_conditionJTF);// 查询条件按钮selectJB = new JButton("查询");selectJB.setFont(new Font("宋体", Font.PLAIN, 20));selectJB.addActionListener(this);select_conditionJP.add(selectJB);selectJP.add(select_conditionJP, BorderLayout.NORTH);// 查询结果面板select_resultJP = new JPanel();jscrollPane = new JScrollPane();jscrollPane.setPreferredSize(new Dimension(400, 200));// 查询读者信息并生成初始表格// Object[][] data = getSelect(ReaderDao.selectReader());List<Reader> list = ReaderDao.selectReader();jtable = new JTable(getSelect(list), title);jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jtable.addMouseListener(this);jscrollPane.setViewportView(jtable);select_resultJP.add(jscrollPane);selectJP.add(select_resultJP, BorderLayout.CENTER);// 读者信息修改面板设计updateJP = new JPanel();updateJP.setBorder(new EmptyBorder(5, 10, 5, 10));GridLayout gridLayout = new GridLayout(4, 4);gridLayout.setVgap(10);gridLayout.setHgap(10);updateJP.setLayout(gridLayout);IDJL = new JLabel("编  号:");IDJL.setFont(new Font("宋体", Font.PLAIN, 20));IDJL.setHorizontalAlignment(SwingConstants.CENTER);updateJP.add(IDJL);IDJTF = new JTextField();IDJTF.setEditable(false);updateJP.add(IDJTF);readerNameJL = new JLabel("姓  名:");readerNameJL.setFont(new Font("宋体", Font.PLAIN, 20));readerNameJL.setHorizontalAlignment(SwingConstants.CENTER);updateJP.add(readerNameJL);readerNameJTF = new JTextField();updateJP.add(readerNameJTF);typeJL = new JLabel("类  别:");typeJL.setFont(new Font("宋体", Font.PLAIN, 20));typeJL.setHorizontalAlignment(SwingConstants.CENTER);updateJP.add(typeJL);// 下拉列表List<ReaderType> rs = ReaderTypeDao.selectReaderType();Iterator<ReaderType> iterator = rs.iterator();String[] AllTypeName = new String[rs.size()];int i = 0;while (iterator.hasNext()) {String typename = iterator.next().getTypename();AllTypeName[i] = typename;i++;}readertypeJCB = new JComboBox(AllTypeName);readertypeJCB.setFont(new Font("宋体", Font.PLAIN, 20));// Iterator<ReaderType> it =// ReaderTypeDao.selectReaderType().iterator();// while(it.hasNext()){z// ReaderType rt = it.next();// readertypeJCB.addItem(rt.getName());// }updateJP.add(readertypeJCB);sexJL = new JLabel("性  别:");sexJL.setFont(new Font("宋体", Font.PLAIN, 20));sexJL.setHorizontalAlignment(SwingConstants.CENTER);updateJP.add(sexJL);sexJP = new JPanel();final FlowLayout flowLayout = new FlowLayout();flowLayout.setHgap(0);flowLayout.setVgap(0);sexJP.setLayout(flowLayout);JRB1 = new JRadioButton();sexJP.add(JRB1);JRB1.setSelected(true);buttonGroup.add(JRB1);JRB1.setText("男");JRB1.setFont(new Font("宋体", Font.PLAIN, 20));JRB2 = new JRadioButton();sexJP.add(JRB2);buttonGroup.add(JRB2);JRB2.setText("女");JRB2.setFont(new Font("宋体", Font.PLAIN, 20));updateJP.add(sexJP);ageJL = new JLabel("年  龄:");ageJL.setFont(new Font("宋体", Font.PLAIN, 20));ageJL.setHorizontalAlignment(SwingConstants.CENTER);updateJP.add(ageJL);ageJTF = new JTextField(50);updateJP.add(ageJTF);phoneJL = new JLabel("电  话:");phoneJL.setFont(new Font("宋体", Font.PLAIN, 20));phoneJL.setHorizontalAlignment(SwingConstants.CENTER);updateJP.add(phoneJL);phoneJTF = new JTextField();updateJP.add(phoneJTF);deptJL = new JLabel("所在部门:");deptJL.setFont(new Font("宋体", Font.PLAIN, 20));deptJL.setHorizontalAlignment(SwingConstants.CENTER);updateJP.add(deptJL);deptJTF = new JTextField();updateJP.add(deptJTF);regJL = new JLabel("注册日期:");regJL.setFont(new Font("宋体", Font.PLAIN, 20));regJL.setHorizontalAlignment(SwingConstants.CENTER);updateJP.add(regJL);regJTF = new JTextField();updateJP.add(regJTF);// 登录取消按钮面板设计buttonJP = new JPanel();// 修改按钮面板updateJB = new JButton("修改");updateJB.addActionListener(this);updateJB.setFont(new Font("宋体", Font.PLAIN, 20));closeJB = new JButton("关闭");closeJB.addActionListener(this);closeJB.setFont(new Font("宋体", Font.PLAIN, 20));buttonJP.add(updateJB);buttonJP.add(closeJB);this.add(selectJP, BorderLayout.NORTH);this.add(updateJP, BorderLayout.CENTER);this.add(buttonJP, BorderLayout.SOUTH);this.setVisible(true);// 设置窗体显示,否则不显示。setResizable(false);// 取消最大化}public static void main(String[] args) {new ReaderSelectAndUpdate();}private Object[][] getSelect(List<Reader> list) {Object[][] data = new Object[list.size()][title.length];for (int i = 0; i < list.size(); i++) {Reader reader = list.get(i);data[i][0] = reader.getReaderid().trim();data[i][1] = reader.getTypename();data[i][2] = reader.getName().trim();data[i][3] = reader.getAge();data[i][4] = reader.getSex().trim();data[i][5] = reader.getPhone().trim();data[i][6] = reader.getDept().trim();data[i][7] = reader.getRegDate();}return data;}public void actionPerformed(ActionEvent e) {if (e.getSource() == selectJB) {String type = (String) conditionJCB.getSelectedItem();String find = select_conditionJTF.getText();if (type.equals("读者编号")) {if (select_conditionJTF.getText().equals("")) JOptionPane.showMessageDialog(this, "请输入查询条件");List<Reader> list = ReaderDao.selectReaderById(find);jtable = new JTable(getSelect(list), title);jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jscrollPane.setViewportView(jtable);jtable.addMouseListener(this);}else if (type.equals("姓名")) {if (select_conditionJTF.getText().equals("")) JOptionPane.showMessageDialog(this, "请输入查询条件");List<Reader> list = ReaderDao.selectReaderByName(find);jtable = new JTable(getSelect(list), title);jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jscrollPane.setViewportView(jtable);jtable.addMouseListener(this);}else if (type.equals("类型")) {if (select_conditionJTF.getText().equals("")) JOptionPane.showMessageDialog(this, "请输入查询条件");List<Reader> list = ReaderDao.selectReaderByType(find);jtable = new JTable(getSelect(list), title);jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jscrollPane.setViewportView(jtable);jtable.addMouseListener(this);}else if (type.equals("系部")) {if (select_conditionJTF.getText().equals("")) JOptionPane.showMessageDialog(this, "请输入查询条件");List<Reader> list = ReaderDao.selectReaderByDept(find);jtable = new JTable(getSelect(list), title);jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jscrollPane.setViewportView(jtable);jtable.addMouseListener(this);}else if (type.equals("所有")) {List<Reader> list = ReaderDao.selectReader();jtable = new JTable(getSelect(list), title);jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jscrollPane.setViewportView(jtable);jtable.addMouseListener(this);}}if (e.getSource() == updateJB) {String id = IDJTF.getText();String name = readerNameJTF.getText();String typename = (String) readertypeJCB.getSelectedItem();String sex;if (JRB1.isSelected()) {sex = "男";} elsesex = "女";String ageStr = ageJTF.getText().trim();int age=0;try {age = Integer.parseInt(ageStr);} catch (NumberFormatException e1) {e1.printStackTrace();}String phone = phoneJTF.getText();String dept = deptJTF.getText();String regDateStr = regJTF.getText();Date regDate = null;SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Date dt=new Date();try {regDate=sdf.parse(regDateStr);} catch (ParseException a) {JOptionPane.showMessageDialog(this, "请输入正确的日期格式!格式如2016-01-01");regJTF.setText("");}if (regDate == null)return;int m = 0;// 封装对象Reader reader = new Reader();reader.setReaderid(id);reader.setName(name);reader.setTypename(typename);reader.setAge(age);reader.setRegDate(regDate);List<ReaderType> list = ReaderTypeDao.selectReaderType(typename);Iterator<ReaderType> iterator = list.iterator();while (iterator.hasNext()) {m = iterator.next().getId();}reader.setType(m);reader.setSex(sex);reader.setPhone(phone);reader.setDept(dept);int result = ReaderDao.updateReader(reader);if (result!=0) {JOptionPane.showMessageDialog(this, "修改成功!");} else {JOptionPane.showMessageDialog(this, "修改失败!");}List<Reader> list1 = ReaderDao.selectReader();Object[][] data = getSelect(list1);jtable = new JTable(data, title);jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jscrollPane.setViewportView(jtable);jtable.addMouseListener(new MouseListener() {public void mouseReleased(MouseEvent e) {if (e.getSource() == jtable) {int row = jtable.getSelectedRow();String id = (String) jtable.getValueAt(row, 0);String typename = jtable.getValueAt(row, 1) + "";String name = (String) jtable.getValueAt(row, 2);String age = jtable.getValueAt(row, 3) + "";String sex = ((String) jtable.getValueAt(row, 4)).trim();String phone = (String) jtable.getValueAt(row, 5);String dept = (String) jtable.getValueAt(row, 6);Date regDate = (Date) jtable.getValueAt(row, 7);String regdatestr = Dao.getDateToString(regDate);IDJTF.setText(id);readerNameJTF.setText(name);phoneJTF.setText(phone);ageJTF.setText(age);deptJTF.setText(dept);regJTF.setText(regdatestr);readertypeJCB.setSelectedItem(typename);if (sex.equals("男")) {JRB1.setSelected(true);} elseJRB2.setSelected(true);}}public void mousePressed(MouseEvent arg0) {}public void mouseExited(MouseEvent arg0) {}public void mouseEntered(MouseEvent arg0) {}public void mouseClicked(MouseEvent arg0) {}});}if(e.getSource()==closeJB){dispose();new MainWindow();}}public void mouseClicked(MouseEvent e) {if (e.getSource() == jtable) {int row = jtable.getSelectedRow();String id = (String) jtable.getValueAt(row, 0);String typename = jtable.getValueAt(row, 1) + "";String name = (String) jtable.getValueAt(row, 2);String age = jtable.getValueAt(row, 3) + "";String sex = ((String) jtable.getValueAt(row, 4)).trim();String phone = (String) jtable.getValueAt(row, 5);String dept = (String) jtable.getValueAt(row, 6);Date regDate = (Date) jtable.getValueAt(row, 7);String regdatestr = Dao.getDateToString(regDate);IDJTF.setText(id);readerNameJTF.setText(name);phoneJTF.setText(phone);ageJTF.setText(age);deptJTF.setText(dept);regJTF.setText(regdatestr);readertypeJCB.setSelectedItem(typename);if (sex.equals("男")) {JRB1.setSelected(true);} elseJRB2.setSelected(true);IDJTF.setEditable(false);}}public void mouseEntered(MouseEvent arg0) {}public void mouseExited(MouseEvent arg0) {}public void mousePressed(MouseEvent arg0) {}public void mouseReleased(MouseEvent arg0) {}}

图书管理系统之读者信息管理实现相关推荐

  1. 图书管理系统测试报告--信息管理功能篇

    目录 1.功能测试 (1)测试用例 (2)测试数据 (3)测试过程及结果截图 2.自动化测试 1.功能测试 (1)测试用例 学生管理 .点击新增,是否出现新增学生信息弹框 .必填项学生姓名为空,是否会 ...

  2. 图书管理系统 (大一小白级别)

    对于我们大一的新生来说写一个管理类程序确实很难,但是这个"难"不再"思维",而在"综合".你如果坚持把这个管理系统写完你就会发现他不难都是基 ...

  3. 基于SpringBoot的社区小型图书管理系统的设计与实现

    作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导. ...

  4. java用spring图书管理系统_基于Java + SpringMVC的图书管理系统

    需求分析 基于Java+SpringMVC的图书管理系统, 实现读者和管理员登陆,图书的增删改查,读者的增删改查,借还图书,密码修改,卡号挂失,超期提醒等功能 本站提供了其他类型的 图书管理系统源代码 ...

  5. 基于python/django的图书管理系统

    摘  要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准 ...

  6. UML对基于B/S模式的图书管理系统的分析与设计

    [导读]对基于B/S模式下的图书管理系统进行分析,运用UML的静态和动态模型图,对系统的分析结果进行可视化建模,并对系统模型图进行概括性论证. 1 前言 使用计算机软件对图书进行管理,是计算机应用的一 ...

  7. 图书管理系统jsp代码_【程序源代码】使用Java开发的图书管理系统

    关键字:java 管理系统  正文 | 内容 01 - [概述] 使用Java开发的图书管理系统,读者可以注册登录,登录时会判断账号类型再分别跳到各自对应的页面,读者可以查找,借阅,还书,查看历史借阅 ...

  8. 用python3做一个图书管理系统(图形用户界面:tkinter)

    kongzhi.py#主控模块from socket import * from tkinter import * from ts_denglu import *s = socket() s.sets ...

  9. 图书管理系统 主要功能:图书借阅归还、图书管理、读者管理等,星光图书管理系统

    图书管理系统 主要功能:图书借阅归还.图书管理.读者管理等,星光图书管理系统 主要技术:C#.Winform.三层架构.sql server数据库的增删改查. 源码特点:代码完整规范,详细注释,功能较 ...

最新文章

  1. 机器学习萌新必备的三种优化算法 | 选型指南
  2. Redis 新特性篇:多线程模型解读
  3. 知识图谱和图分析与可视化
  4. C/C++输入输出函数(I/O)总结
  5. 1320A. Journey Planning
  6. [转载] Python高级变量(列表、元组、字典、字符串、公共方法)
  7. git 怎么备份本地分支_git 入门教程之协同开发
  8. Android Xml布局常见问题总结
  9. 离线地图下载及地图瓦片制作
  10. PayPal个人账户不能提现了吗?怎么解决?
  11. 使用Draw免费在线作图
  12. 青出于蓝而胜于蓝 — Vue.js对Angular.js的那些进步
  13. 推荐六本前端开发必看的书籍
  14. STM32CUBE——使用DWT提供毫秒延迟
  15. 对list的一些常用操作
  16. APP 应用内活动运营,有哪些活动形式?
  17. 诠释绿色科技 Laedana荣获2022国际CMF设计奖
  18. js jquery新窗口打开的几种方式
  19. 数据结构可视化工具cs.usf.edu
  20. jquery-editable-select使用 绑定动态数据

热门文章

  1. Android 面试题收集
  2. 分贝,功率,功率谱,功率谱密度,信噪比
  3. 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化
  4. Hive练习题之列转行
  5. Mybatis plus 之 QueryWrapper、LambdaQueryWrapper、LambdaQueryChainWrapper
  6. matlab中elevation函数功能,Matlab的Demcmap的Python等价物(elevation+/appropriate colormap)...
  7. 医学影像数据集和其他数据集们
  8. Python 08-文件读写
  9. android获取系统使用的字体,android - 我如何获取已安装的Android系统字体列表并将其应用于自定义键盘 - 堆栈内存溢出...
  10. gradle-6.3-all 快速下载