图书信息管理java语言实现代码[Java代码]
龚超 2018-07-18 来源 : 阅读 340 评论 0

摘要:本文主要向大家介绍了图书信息管理java语言实现代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了图书信息管理java语言实现代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

图书信息管理与读者信息管理相似,共包括两部分,图书添加和图书查询与修改,图书信息添加要求正确输入图书的八项信息,并且ISBN编号唯一,实现过程中要将ISBN作为主键。下面看实现过程:

数据库中书籍:


添加书籍过程:


数据库内容增加:



图书的查询与修改:查询过程可以根据不同的条件查询,如ISBN,作者,出版社,图书名称等,默认将所有图书全部显示在列表中,输入查询条件后再表格中显示查询结果。

本模块用到标签面板,可以很方便的查询所需要的信息。修改过程输入ISBN编号后按回车键将在下方显示所有的图书信息,然后修改图书信息后所有内容就会更新。

图书查询:


图书信息修改:


添加图书源代码如下:AddBook.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.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.JTextField;

import pdsu.bbm.dao.BookDao;

import pdsu.bbm.dao.BookTypeDao;

import pdsu.bbm.model.Book;

import pdsu.bbm.model.BookType;

public class AddBook extends JFrame implements ActionListener {


private JPanel contentPane;

private JLabel label_1;

private JLabel lbll;

private JLabel label_2;

private JLabel label_3;

private JLabel label_4;

private JLabel label_5;

JPanel centerpPanel;

JButton button1, button2, button3;

private JComboBox comboBox_1;

Image icon = new ImageIcon("image/icon.png").getImage();

private JTextField ISBNfiled;

private JTextField publishField;

private JTextField publishDateField;

private JTextField publishTime;

private JTextField unitPriceField;

private JTextField bookNameField;

private JTextField authorFiled;

public static void main(String[] args) {

new AddBook();

}

public AddBook() {

setTitle("添加图书信息");

setSize(555, 333);

setIconImage(icon);

setLocationRelativeTo(null);


setTitle("添加图书信息");

setSize(555, 334);

setLocationRelativeTo(null);

setVisible(true);

centerpPanel = new JPanel();

centerpPanel.setLayout(null);

JLabel label1 = new JLabel("ISBN:");

label1.setFont(new Font("宋体", Font.PLAIN, 20));

label1.setBounds(71, 26, 95, 42);

centerpPanel.add(label1);


ISBNfiled = new JTextField();

ISBNfiled.setBounds(120, 30, 110, 30);

centerpPanel.add(ISBNfiled);

ISBNfiled.setColumns(10);


JLabel label = new JLabel("类 别:");

label.setFont(new Font("宋体", Font.PLAIN, 20));

label.setBounds(306, 30, 116, 35);

centerpPanel.add(label);


label_1 = new JLabel("书 名:");

label_1.setFont(new Font("宋体", Font.PLAIN, 20));

label_1.setBounds(50, 75, 154, 50);

centerpPanel.add(label_1);


lbll = new JLabel("作 者:");

lbll.setFont(new Font("宋体", Font.PLAIN, 20));

lbll.setBounds(306, 75, 137, 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(285, 135, 137, 50);

centerpPanel.add(label_3);


publishField = new JTextField();

publishField.setColumns(10);

publishField.setBounds(120, 143, 110, 30);

centerpPanel.add(publishField);


publishDateField = new JTextField();

publishDateField.setColumns(10);

publishDateField.setBounds(380, 143, 120, 30);

centerpPanel.add(publishDateField);


label_4 = new JLabel("印刷次数:");

label_4.setFont(new Font("宋体", Font.PLAIN, 20));

label_4.setBounds(28, 190, 154, 50);

centerpPanel.add(label_4);


publishTime = new JTextField();

publishTime.setColumns(10);

publishTime.setBounds(120, 203, 110, 30);

centerpPanel.add(publishTime);


label_5 = new JLabel("单 价:");

label_5.setFont(new Font("宋体", Font.PLAIN, 20));

label_5.setBounds(305, 194, 84, 42);

centerpPanel.add(label_5);


unitPriceField = new JTextField();

unitPriceField.setColumns(10);

unitPriceField.setBounds(380, 203, 120, 30);

centerpPanel.add(unitPriceField);

getContentPane().add(centerpPanel, BorderLayout.CENTER);


bookNameField = new JTextField();

bookNameField.setColumns(10);

bookNameField.setBounds(120, 86, 110, 30);

centerpPanel.add(bookNameField);


authorFiled = new JTextField();

authorFiled.setColumns(10);

authorFiled.setBounds(380, 86, 120, 30);

centerpPanel.add(authorFiled);


Listrs = BookTypeDao.selectBookType();

Iteratoriterator = 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(AllTypeName);

comboBox_1.setBounds(380, 30, 120, 30);

comboBox_1.setFont(new Font("宋体", Font.PLAIN, 16));


centerpPanel.add(comboBox_1);

ButtonGroup group = new ButtonGroup();

JPanel panel2 = new JPanel();

panel2.setLayout(new FlowLayout());

button1 = new JButton("添加");

button1.setFont(new Font("宋体", Font.PLAIN, 20));


button2 = new JButton("关闭");

button2.setFont(new Font("宋体", Font.PLAIN, 20));

button3 = new JButton("重置");

button3.setFont(new Font("宋体", Font.PLAIN, 20));


panel2.add(button1);

panel2.add(button3);

panel2.add(button2);

button1.addActionListener(this);

button2.addActionListener(this);

button3.addActionListener(this);

getContentPane().add(panel2, BorderLayout.SOUTH);


setVisible(true);

}


@SuppressWarnings("unused")

public void actionPerformed(ActionEvent e) {

if (e.getSource() == button1) {

String Isbn = ISBNfiled.getText().toString();


String bookname = bookNameField.getText();

String author = authorFiled.getText();

String selectType = comboBox_1.getSelectedItem().toString();

String publish = publishField.getText();

String publishdate = publishDateField.getText();

String time = publishTime.getText().trim();

String price = unitPriceField.getText().trim();


if (Isbn.equals("") || bookname.equals("") || author.equals("")

|| selectType.equals("") || publish.equals("")

|| publishdate.equals("") || time.equals("")

|| price.equals("")) {

JOptionPane.showMessageDialog(this, "请输入完整信息");

return;

} else {

BookType bt = new BookType();

Book book = new Book();

book.setISBN(Isbn);

book.setBookname(bookname);

book.setAuthor(author);

bt.setTypename(selectType);

int m = 0;

Listlist = BookTypeDao

.selectIdByTypename(selectType);

Iteratorite = list.iterator();

while (ite.hasNext()) {

m = ite.next().getId();

}

book.setTypeid(m + "");

book.setPublish(publish);

try {

book.setPublishtime(Integer.parseInt(time));

book.setUnitprice(Integer.parseInt(price));

} catch (NumberFormatException e1) {

e1.printStackTrace();

}


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date regDate = null;

try {

regDate =sdf.parse(publishdate);

} catch (ParseException e1) {

JOptionPane.showMessageDialog(this, "请输入正确的日期");

publishDateField.setText("");

}


book.setPublishdate(regDate);

if(regDate==null) return;


if (BookDao.selectBookByISBN(Isbn) != null) {

JOptionPane.showMessageDialog(this, "该ISBN编号已存在");

return;

} else if (BookDao.insertBook(book) != 0) {

JOptionPane.showMessageDialog(this, "添加成功");

} else

JOptionPane.showMessageDialog(this, "添加失败");

}

}

if (e.getSource() == button3) {

ISBNfiled.setText("");

bookNameField.setText("");

authorFiled.setText("");

publishField.setText("");

publishDateField.setText("");

publishTime.setText("");

unitPriceField.setText("");

}

if (e.getSource() == button2) {

dispose();

new MainWindow();


}

}


}



复制代码

图书查询与修改源代码:BookSelectandModify.java


package pdsu.bbm.view;


import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Image;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.Iterator;

import java.util.List;

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.JScrollPane;

import javax.swing.JTabbedPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

import javax.swing.table.TableModel;

import pdsu.bbm.dao.BookDao;

import pdsu.bbm.dao.BookTypeDao;

import pdsu.bbm.model.Book;

import pdsu.bbm.model.BookType;


public class BookSelectandModify extends JFrame implements ActionListener {

// 设置序列号

private static final long serialVersionUID = 1L;

private JTabbedPane jtabbedPane; // 标签面板

// selectJP查询面板 select_conditionJP下拉列表面板 select_resultJP结果按钮面板updateJP修改面板

// updateJP修改面板,bookJP中间面板 buttonJP2按钮面板

private JPanel selectJP, select_conditionJP, select_resultJP, buttonJP1,

bookJP, updateJP, buttonJP2;//

private JTextField selectJTF, ISBNJTF, booknameJTF, authorJTF,

printtimeJTF, publishJTF, publishdateJTF, unitpriceJTF;

private JLabel ISBNJL, booknameJL, authorJL, categoryJL, printtimeJL,

publishJL, publishdateJL, unitpriceJL;

// 重点!

private JTable jtable;// 定义表格

private JComboBox choiceJCB, booktypeJCB;

private JScrollPane jscrollPane;

private JButton selectJB, exitJB, updateJB, resetJB;// 查询按钮,退出按钮,修改按钮,关闭按钮

private TableModel getSelect;

private String[] title = { "ISBN", "图书序列", "图书名称", "作者", " 出版社 ",

"出版日期", "印刷次数", "单价" };

Image icon = new ImageIcon("image/icon.png").getImage();


public BookSelectandModify() {

super();

setIconImage(icon);

setTitle("图书查询与修改");

setBounds(100, 100, 555, 400);

setLocationRelativeTo(null);

// JTabbedPane选项卡

jtabbedPane = new JTabbedPane();

add(jtabbedPane);

selectJP = new JPanel();

selectJP.setLayout(new BorderLayout());

jtabbedPane.add("图书信息查询", selectJP);


// 查询条件面板

select_conditionJP = new JPanel();

choiceJCB = new JComboBox();

String array[] = { "ISBN", "图书名称", "图书序列", "作者", "出版社","所有" };// 设置为一维数组

for (int i = 0; i < array.length; i++) {

choiceJCB.addItem(array[i]);

}

select_conditionJP.add(choiceJCB);

selectJTF = new JTextField(20);

select_conditionJP.add(selectJTF);

selectJP.add(select_conditionJP, BorderLayout.NORTH);

// 查询结果面板

select_resultJP = new JPanel();

BookDao dao = new BookDao();

Listlist = dao.selectBook();

jtable = new JTable(getSelect(list), title);


// !设置表格大小不变

jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

// !设置列宽

jtable.getColumnModel().getColumn(4).setPreferredWidth(175);

jscrollPane = new JScrollPane(jtable);// 把表格加入滚动面板

// 显示滚动面板边框

jscrollPane.setPreferredSize(new Dimension(450, 170));

select_resultJP.add(jscrollPane);

selectJP.add(select_resultJP, BorderLayout.CENTER);

// 查询按钮面板

buttonJP1 = new JPanel();

selectJB = new JButton("查询");

selectJB.setFont(new Font("宋体", Font.PLAIN, 20));


selectJB.addActionListener(this);

buttonJP1.add(selectJB);

exitJB = new JButton("退出");

exitJB.setFont(new Font("宋体", Font.PLAIN, 20));

exitJB.addActionListener(this);

buttonJP1.add(exitJB);

selectJP.add(buttonJP1, BorderLayout.SOUTH);

// 信息修改页面

updateJP = new JPanel();

updateJP.setLayout(new BorderLayout());

jtabbedPane.addTab("图书信息修改", updateJP);

bookJP = new JPanel();

final GridLayout gridLayout = new GridLayout(8, 2);

// 设置边框间的距离

gridLayout.setVgap(8);

gridLayout.setHgap(8);

bookJP.setLayout(gridLayout);

ISBNJL = new JLabel("ISBN:");

ISBNJL.setFont(new Font("宋体",Font.PLAIN,20));

ISBNJL.setHorizontalAlignment(SwingConstants.CENTER);

bookJP.add(ISBNJL);

ISBNJTF = new JTextField(20);

ISBNJTF.addActionListener(this);

bookJP.add(ISBNJTF);

categoryJL = new JLabel("类 别:");

categoryJL.setFont(new Font("宋体",Font.PLAIN,20));

categoryJL.setHorizontalAlignment(SwingConstants.CENTER);

bookJP.add(categoryJL);

// 下拉列表

Listlist1 = BookTypeDao.selectBookType();

Iteratorit = list1.iterator();

String ty[] = new String[list1.size()];

int i = 0;

booktypeJCB = new JComboBox();

while (it.hasNext()) {

ty[i] = it.next().getTypename();

booktypeJCB.addItem(ty[i]);

i++;

}


bookJP.add(booktypeJCB);


booknameJL = new JLabel("书 名:");

booknameJL.setFont(new Font("宋体",Font.PLAIN,20));

booknameJL.setHorizontalAlignment(SwingConstants.CENTER);

bookJP.add(booknameJL);

booknameJTF = new JTextField();

booknameJTF.setColumns(20);

bookJP.add(booknameJTF);


authorJL = new JLabel("作 者:");

authorJL.setFont(new Font("宋体",Font.PLAIN,20));

authorJL.setHorizontalAlignment(SwingConstants.CENTER);

bookJP.add(authorJL);

authorJTF = new JTextField();

authorJTF.setColumns(20);

bookJP.add(authorJTF);


publishJL = new JLabel("出版社:");

publishJL.setFont(new Font("宋体",Font.PLAIN,20));

publishJL.setHorizontalAlignment(SwingConstants.CENTER);

bookJP.add(publishJL);

publishJTF = new JTextField();

bookJP.add(publishJTF);


publishdateJL = new JLabel("出版日期:");

publishdateJL.setFont(new Font("宋体",Font.PLAIN,20));

publishdateJL.setHorizontalAlignment(SwingConstants.CENTER);

bookJP.add(publishdateJL);

publishdateJTF = new JTextField();

publishdateJTF.setHorizontalAlignment(SwingConstants.LEFT);

bookJP.add(publishdateJTF);


printtimeJL = new JLabel("印刷次数:");

printtimeJL.setFont(new Font("宋体",Font.PLAIN,20));

printtimeJL.setHorizontalAlignment(SwingConstants.CENTER);

bookJP.add(printtimeJL);

printtimeJTF = new JTextField();

bookJP.add(printtimeJTF);


unitpriceJL = new JLabel("单 价:");

unitpriceJL.setFont(new Font("宋体",Font.PLAIN,20));

unitpriceJL.setHorizontalAlignment(SwingConstants.CENTER);

bookJP.add(unitpriceJL);

unitpriceJTF = new JTextField();

bookJP.add(unitpriceJTF);

// 按钮面板

// 按钮面板设计

buttonJP2 = new JPanel();

updateJB = new JButton("修改");

updateJB.setFont(new Font("宋体", Font.PLAIN, 20));


updateJB.addActionListener(this);

resetJB = new JButton("关闭");

resetJB.setFont(new Font("宋体", Font.PLAIN, 20));


resetJB.addActionListener(this);

buttonJP2.add(updateJB);

buttonJP2.add(resetJB);

updateJP.add(bookJP, BorderLayout.CENTER);

updateJP.add(buttonJP2, BorderLayout.SOUTH);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}


// 将查询表格加入面板

private Object[][] getSelect(Listlist) {

// TODO Auto-generated method stub

Object[][] objects = new Object[list.size()][title.length];

for (int i = 0; i < list.size(); i++) {

Book book = list.get(i);

objects[i][0] = book.getISBN();

objects[i][1] = book.getTypeid();// 图书序列

objects[i][2] = book.getBookname();// 图书名称

objects[i][3] = book.getAuthor();// 图书作者

objects[i][4] = book.getPublish();// 出版社

objects[i][5] = book.getPublishdate();// 出版日期

objects[i][6] = book.getPublishtime();// 印刷次数

objects[i][7] = book.getUnitprice();// 单价

}


return objects;


}

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getSource()==ISBNJTF){

String isbn=ISBNJTF.getText();

String typename=null;

String id=BookDao.selectBookByISBN(isbn).getTypeid();


typename=BookTypeDao.selectById(id);

System.out.println(typename);

booktypeJCB.setSelectedItem(typename);

booknameJTF.setText(BookDao.selectBookByISBN(isbn).getBookname());

authorJTF.setText(BookDao.selectBookByISBN(isbn).getAuthor());

publishJTF.setText(BookDao.selectBookByISBN(isbn).getPublish());

publishdateJTF.setText(BookDao.selectBookByISBN(isbn).getPublishdate()+"");

printtimeJTF.setText(BookDao.selectBookByISBN(isbn).getPublishtime()+"");

unitpriceJTF.setText(BookDao.selectBookByISBN(isbn).getUnitprice()+"");


}

if (e.getSource() == selectJB) {// 按照ISBN编码查找

int r = choiceJCB.getSelectedIndex();

if (r == 0) {

String name = selectJTF.getText().trim();

// 强制转换为线性表类型

Listlist = new ArrayList();

Book book = BookDao.selectBookByISBN(name);

if (book == null) {

JOptionPane.showMessageDialog(this, "该编码不存在!");

} else {

list.add(book);

Object[][] data = getSelect(list);

jtable = new JTable(data, title);

jtable.getColumnModel().getColumn(4).setPreferredWidth(175);

jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


jscrollPane.setViewportView(jtable);


}

}


if (r == 1) {// 根据图书名称查询信息

String name = selectJTF.getText().toString();

Listlist = BookDao.selectBookByName(name);

// 判断线性表是否为空

if (list == null || list.size() == 0) {

JOptionPane.showMessageDialog(this, "该图书不存在!");

} else {

Object[][] data = getSelect(list);

jtable = new JTable(data, title);

tianjia();

}

}

if (r == 2) {// 根据图书序列查询信息

String name = selectJTF.getText().toString();

Listlist = BookDao.selectBookByType(name);

// 判断线性表是否为空

if (list == null || list.size() == 0) {

JOptionPane.showMessageDialog(this, "该图书不存在!");

} else {

Object[][] data = getSelect(list);

jtable = new JTable(data, title);

tianjia();

}

}

if (r == 3) { // 根据作者进行查找

String name = selectJTF.getText().toString();

// 根据作者进行查找

Listlist = BookDao.selectBookByAuthor(name);

// 判断线性表是否为空

if (list == null || list.size() == 0) {

JOptionPane.showMessageDialog(this, "该图书不存在!");

} else {

Object[][] data = getSelect(list);

jtable = new JTable(data, title);

tianjia();

}

}

if (r == 4) {// 根据出版社进行查找

String name = selectJTF.getText().toString();

Listlist = BookDao.selectBookByPublish(name);

if (list == null || list.size() == 0) {

JOptionPane.showMessageDialog(this, "该图书不存在!");

} else {

Object[][] data = getSelect(list);

jtable = new JTable(data, title);

tianjia();


}

}

if(r==5){

Listlist =BookDao.selectBook();

}

}

if (e.getSource() == updateJB) {

String ISBN = ISBNJTF.getText().trim();

String typename = ((String) booktypeJCB.getSelectedItem()).trim();

String id = BookTypeDao.selectByTypename(typename);

String bookname = booknameJTF.getText();

String author = authorJTF.getText();

String publish = publishJTF.getText();

String publishdate = publishdateJTF.getText();


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date regDate = null;

try {

regDate = sdf.parse(publishdate);

} catch (Exception e2) {

e2.printStackTrace();

JOptionPane.showMessageDialog(this, "请输入正确的日期格式!");

}

if (regDate == null)

return;

int publishtime = Integer.parseInt(printtimeJTF.getText());

int unitprice = Integer.parseInt(unitpriceJTF.getText());

// 封装对象

Book book = new Book();

book.setISBN(ISBN);

book.setTypeid(id);

book.setBookname(bookname);

book.setAuthor(author);

book.setPublish(publish);

book.setPublishdate(regDate);

book.setPublishtime(publishtime);

book.setUnitprice(unitprice);

book.setTypename(typename);

int result = BookDao.update(book);

Listlist2 = new ArrayList();

list2.add(book);


// System.out.println(list2);


if (result == 1) {

JOptionPane.showMessageDialog(this, "修改成功!");

BookDao bk=new BookDao();

Listlist =bk.selectBook();

jtable =new JTable(getSelect(list),title);

tianjia();


} else {

JOptionPane.showMessageDialog(this, "修改失败!");

}

}

if (e.getSource() == resetJB) {

dispose();

new MainWindow();

}

if (e.getSource() == exitJB) {

dispose();

new MainWindow();

}

}


private void tianjia() {

jtable.getColumnModel().getColumn(4).setPreferredWidth(175);

jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


jscrollPane.setViewportView(jtable);


}


public static void main(String[] args) {

new BookSelectandModify();


}

}

复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助

希望对JAVA有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言JAVA频道!

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

擅长针对企业软件开发的产品设计及开发的细节与流程设计课程内容。座右铭:大道至简!

  • 370
    文章
  • 5792
    人气
  • 94%
    受欢迎度

已有17人表明态度,94%喜欢该老师!

进入TA的空间
名师指导直通车
  • 资料索取
    资料索取
  • 答疑解惑
    答疑解惑
  • 技术交流
    技术交流
  • 职业测评
    职业测评
  • 面试技巧
    面试技巧
  • 高薪秘笈
    高薪秘笈
TA的其他文章 更多>>
WEB前端必须会的基本知识题目
经验技巧 92% 的用户喜欢
Java语言中四种遍历List的方法总结(推荐)
经验技巧 89% 的用户喜欢
Java语言之SHA-256加密的两种实现方法详解
经验技巧 83% 的用户喜欢
Java语言里Hashmap序列化的一个坑
经验技巧 100% 的用户喜欢
WEB前端之webpack+nodejs+npm构建前端项目
经验技巧 100% 的用户喜欢
其他海同名师 更多>>
刘新华
刘新华 联系TA
实力型。激情饱满,对专业充满热情
吴翠红
吴翠红 联系TA
独创“教、学、练、测”循环教学模式
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
黄泽民
黄泽民 联系TA
擅长javase核心技术
程钢
程钢 联系TA
擅长大型企业商业网站开发和管理
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

免费获取海同IT培训资料
验证码手机号,获得海同独家IT培训资料
获取验证码
提交

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    ICP许可  沪B2-20190160

站长统计