JAVA课设:电子英汉词典

电子英汉词典功能概述

整体要求:用图形用户界面实现,能够编辑词典库中的信息,能够实现英译汉,汉译英。(要考虑一词多义)
具体实现:1、用图形用户界面实现;2、能够实现英译汉,汉译英并且考虑一词多义;3、能过编辑词典库中的信息(添加单词、删除单词、修改单词、复制单词到词库(当前词库、牛津英汉词典、新建词库)、移动单词到词库(当前词库、牛津英汉词典、新建词库));4、文件编辑(新建词库、删除当前词库、将词库备份到文件,移动单词到词库)

代码链接:https://pan.baidu.com/s/1F7dEBfny5aAU_AKpLpwCiA
提取码:3pxo

代码截图

1、词典主界面

2、翻译单词检验

3、编辑单词

4、功能概述

核心代码

1、系统主界面

package main;import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.util.Vector;import javax.swing.JComboBox;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.ImageIcon;import dictionary.DicLib;
import file_operation.FileFrame;
import file_operation.LoadProcess;
import library_operation.DropFrame;
import library_operation.NewFrame;
import word_operation.AddFrame;
import word_operation.DeleteFrame;
import word_operation.EditFrame;/*** 主界面是JFrame的子类,实现了DocumentListener, ListSelectionListener, ActionListener,* ItemListener, MouseListener, Runnable接口* * **/
@SuppressWarnings({ "rawtypes", "unchecked" })
public class MainFrame extends JFrameimplements DocumentListener, ListSelectionListener, ActionListener, ItemListener, MouseListener, Runnable {private static final long serialVersionUID = 776572726716394096L;private Vector<DicLib> dicLibs = new Vector<DicLib>(); // 存储词库的向量private DicLib currentDicLib = new DicLib("当前词库");; // 指向当前词库private JMenuBar menuBar; // 菜单栏// 文件、编辑顶层菜单,弹出式菜单的子菜单,移动复制实时更新菜单// 弹出式菜单的子菜单结构与编辑菜单完全相同private CloneableMenu fileMenu, editMenu, forPopupMenu, activeMenu[];private JPopupMenu listMenu; // 弹出式菜单private JComboBox libCombo = new JComboBox(); // 显示所有词库// private JTextField showText; // 显示释义private JEditorPane showText; // 显示释义private JScrollPane showPane; // showText的容器,含有垂直滚动条private JTextField wordSeeked; // 查询单词用的文本框private JList wordList = new JList(currentDicLib); // 显示当前词库的单词列表private JScrollPane wordPane; // wordList的容器,含有垂直滚动条public MainFrame() throws IOException {super("英汉双译词典");//插入图片ImageIcon icon1=new ImageIcon("src/images/1.jpg" );//添加JLabel 放置图片JLabel label1=new JLabel(icon1);//设置label的位置、大小,label大小为图片的大小label1.setBounds(0,0,icon1.getIconWidth(),icon1.getIconHeight());super.getLayeredPane().add(label1,new Integer(Integer.MIN_VALUE));JPanel panel =new JPanel();//panelTop,顶层容器JPanel panelTop=new JPanel();panelTop=(JPanel)super.getContentPane();//panel和panelTop设置透明panelTop.setOpaque(false);panel.setOpaque(false);//添加panel,设置大小,可视super.add(panel);super.setSize(800, 600);super.setVisible(true);setLayout(null);setSize(800, 600);setVisible(true);setResizable(false);setLocationRelativeTo(null);setJMenuBar(createMenuBar());getContentPane().add(createLibCombo());getContentPane().add(createShowPane());getContentPane().add(createWordSeeked());getContentPane().add(createWordPane());getContentPane().add(createPopupMenu());createDefaultDicLib();}public DicLib getCurrentDicLib() {return currentDicLib;}public void setCurrentDicLib(DicLib currentDicLib) {this.currentDicLib = currentDicLib;}public Vector<DicLib> getDicLibs() {return dicLibs;}public void setDicLibs(Vector<DicLib> dicLibs) {this.dicLibs = dicLibs;}public JComboBox getLibCombo() {return libCombo;}public void setLibCombo(JComboBox libCombo) {this.libCombo = libCombo;}public JList getWordList() {return wordList;}public void setWordList(JList wordList) {this.wordList = wordList;}/*** 创建默认词库* * @throws IOException*/private void createDefaultDicLib() throws IOException {// currentDicLib.add(new Word("student", "学生"));// currentDicLib.add(new Word("computer", "计算机"));dicLibs.add(currentDicLib);listMenu.setEnabled(false);libCombo.setEnabled(false);wordSeeked.setEnabled(false);fileMenu.setEnabled(false);editMenu.setEnabled(false);Thread t = new Thread(this); // 开辟一个线程,用于载入默认词库t.start();}private JMenuBar createMenuBar() {menuBar = new JMenuBar();fileMenu = new CloneableMenu("文件(F)", this);fileMenu.setMnemonic(KeyEvent.VK_F);createOneMenuItem("新建词库(N)", KeyEvent.VK_N, fileMenu);createOneMenuItem("删除当前词库(D)", KeyEvent.VK_D, fileMenu);fileMenu.addSeparator();createOneMenuItem("将词库备份到文件(B)", KeyEvent.VK_B, fileMenu);createOneMenuItem("从文件中还原词库(R)", KeyEvent.VK_R, fileMenu);menuBar.add(fileMenu);editMenu = new CloneableMenu("编辑(E)", this);editMenu.setMnemonic(KeyEvent.VK_E);createOneMenuItem("添加单词(A)", KeyEvent.VK_A, editMenu);createOneMenuItem("删除单词(D)", KeyEvent.VK_D, editMenu);createOneMenuItem("修改单词(M)", KeyEvent.VK_M, editMenu);editMenu.addSeparator();activeMenu = new CloneableMenu[2];activeMenu[0] = createOneSubMenu("复制单词到词库(C)", KeyEvent.VK_C, editMenu);activeMenu[1] = createOneSubMenu("移动单词到词库(M)", KeyEvent.VK_M, editMenu);createActiveMenuItem();menuBar.add(editMenu);return menuBar;}private JPopupMenu createPopupMenu() {listMenu = new JPopupMenu();return listMenu;}/*** 简便书写,创建一个菜单项* * @param label 菜单项标签字符串* @param mnemonic 访问键* @param menu 被加入的菜单* @return*/private JMenuItem createOneMenuItem(String label, int mnemonic, JMenu menu) {JMenuItem menuItem = new JMenuItem(label);menuItem.setMnemonic(mnemonic);menuItem.addActionListener(this);menu.add(menuItem);return menuItem;}/*** 简便书写,创建一个子菜单* * @param label 子菜单标签字符串* @param mnemonic 访问键* @param menu 被加入的菜单* @return*/private CloneableMenu createOneSubMenu(String label, int mnemonic, JMenu menu) {CloneableMenu subMenu = new CloneableMenu(label, this);if (mnemonic != -1)subMenu.setMnemonic(mnemonic);menu.add(subMenu);return subMenu;}private JComboBox createLibCombo() {libCombo = new JComboBox();for (DicLib d : dicLibs) {libCombo.addItem(d.getName());}libCombo.setBounds(1, 0, 250, 20);libCombo.addItemListener(this);return libCombo;}private JScrollPane createShowPane() {// showText = new JTextArea();showText = new JEditorPane();showText.setContentType("text/html");showText.setEditable(false);showPane = new JScrollPane(showText);showPane.setBounds(255, 0, getContentPane().getWidth() - 255, getContentPane().getHeight());return showPane;}private JTextField createWordSeeked() {wordSeeked = new JTextField();wordSeeked.setBounds(1, 27, 250, 20);wordSeeked.getDocument().addDocumentListener(this);return wordSeeked;}private JScrollPane createWordPane() {wordList = new JList(currentDicLib);wordList.addListSelectionListener(this);wordList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);wordList.addMouseListener(this);wordPane = new JScrollPane(wordList);wordPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);wordPane.setBounds(1, 52, 250, getContentPane().getHeight() - 52);return wordPane;}/*** 创建复制、移动单词的实时更新菜单项*/public void createActiveMenuItem() {for (int i = 0; i < activeMenu.length; i++) {activeMenu[i].removeAll();for (DicLib d : dicLibs) {if (!currentDicLib.equals(d)) {JMenuItem menuTemp = createOneMenuItem(d.getName(), -1, activeMenu[i]);menuTemp.addActionListener(new MyAction(this, menuTemp, i == 0 ? false : true));}}if (dicLibs.size() != 1)activeMenu[i].addSeparator();JMenuItem menuTemp = createOneMenuItem("新建词库(N)", KeyEvent.VK_N, activeMenu[i]);menuTemp.addActionListener(new MyAction(this, menuTemp, i == 0 ? false : true));}}/*** 刷新主界面*/public void receiveMessage() {wordList.setListData(currentDicLib);for (DicLib d : dicLibs) {boolean existFlag = false;for (int j = 0; j < libCombo.getItemCount(); j++) {if (((String) libCombo.getItemAt(j)).equals(d.getName())) {existFlag = true;break;}}if (!existFlag)libCombo.addItem(d.getName());}createActiveMenuItem();}@Override/*** 重写ListSelectionListener的valueChanged(ListSelectionEvent* arg0)的方法,用于在showText中显示已选中单词的释义*/public void valueChanged(ListSelectionEvent arg0) {// TODO Auto-generated method stubif (wordList.getSelectedIndex() != -1) {showText.setText(currentDicLib.get(wordList.getSelectedIndex()).getMeaning());showText.setCaretPosition(0); // 将滚动条置于最上方}}/** 响应wordSeeked的事件,将单词定位到查询的单词*/private void seek() {int index = currentDicLib.index(wordSeeked.getText());if (index != -1) {wordList.setSelectedIndex(index);wordList.ensureIndexIsVisible(currentDicLib.size() - 1);wordList.ensureIndexIsVisible(index); // 滚动滚动条,保证用户可以看到当前单词}}@Override/** 重写DocumentListener的changedUpdate(DocumentEvent arg0)方法,用于将单词定位到查询的单词*/public void changedUpdate(DocumentEvent arg0) {// TODO Auto-generated method stubseek();}/** 重写DocumentListener的insertUpdate(DocumentEvent arg0)方法,用于将单词定位到查询的单词*/@Overridepublic void insertUpdate(DocumentEvent arg0) {// TODO Auto-generated method stubseek();}/** 重写DocumentListener的removeUpdate(DocumentEvent arg0)方法,用于将单词定位到查询的单词*/@Overridepublic void removeUpdate(DocumentEvent arg0) {// TODO Auto-generated method stubseek();}/** 响应按钮,菜单项时间*/@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stub// 添加、删除、修改单词if ("添加单词(A)".equals(arg0.getActionCommand())) {new AddFrame(this).setVisible(true);}if ("删除单词(D)".equals(arg0.getActionCommand())) {if (wordList.getSelectedIndex() != -1) {new DeleteFrame(this).setVisible(true);} else { // 没有单词选中new MessageFrame("提示", "请先选中要删除的单词!").setVisible(true);}}if ("修改单词(M)".equals(arg0.getActionCommand())) {if (wordList.getSelectedIndex() != -1) {new EditFrame(this).setVisible(true);} else { // 没有单词选中new MessageFrame("提示", "请先选中要修改的单词!").setVisible(true);}}if ("新建词库(N)".equals(arg0.getActionCommand())) {new NewFrame(this).setVisible(true);}if ("删除当前词库(D)".equals(arg0.getActionCommand())) {new DropFrame(this).setVisible(true);}if ("从文件中还原词库(R)".equals(arg0.getActionCommand())) {new FileFrame(this, false).setVisible(true);}if ("将词库备份到文件(B)".equals(arg0.getActionCommand())) {new FileFrame(this, true).setVisible(true);}}/** 改变当前词库*/@Overridepublic void itemStateChanged(ItemEvent arg0) {// TODO Auto-generated method stubint index = libCombo.getSelectedIndex();if (index != -1) {currentDicLib = dicLibs.get(index);}receiveMessage();}/** 响应单词列表的右击事件*/@Overridepublic void mouseClicked(MouseEvent arg0) {// TODO Auto-generated method stubif (arg0.getButton() == MouseEvent.BUTTON3) {int index = wordList.locationToIndex(arg0.getPoint());wordList.setSelectedIndex(index);forPopupMenu = editMenu.clone();listMenu.removeAll();listMenu.add(forPopupMenu);listMenu.show(arg0.getComponent(), arg0.getX(), arg0.getY());}}@Overridepublic void mouseEntered(MouseEvent arg0) {}public void mouseExited(MouseEvent arg0) {}public void mousePressed(MouseEvent arg0) {}public void mouseReleased(MouseEvent arg0) {}/** 载入默认词库的线程*/@Overridepublic void run() {// TODO Auto-generated method stubtry {showText.setText("正在载入牛津英汉简明词典...");dicLibs.add(LoadProcess.readDic("res/e2c.dcl"));showText.setText("正在载入牛津汉英简明词典...");Thread.sleep(1000);dicLibs.add(LoadProcess.readDic("res/c2e.dcl"));receiveMessage();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}showText.setText("已完成!");listMenu.setEnabled(true);wordSeeked.setEnabled(true);libCombo.setEnabled(true);fileMenu.setEnabled(true);editMenu.setEnabled(true);}/** 主方法*/public static void main(String args[]) throws IOException {MainFrame.setDefaultLookAndFeelDecorated(true);new MainFrame().setDefaultCloseOperation(EXIT_ON_CLOSE);}
}

2、词库类代码

package dictionary;import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Vector;/*** 词库类* **/
public class DicLib extends Vector<Word> { // 词库类是Vector<Word>的子类private static final long serialVersionUID = -2809128821012099186L;private String name;/*** 默认构造方法, 默认词库名为"New Dictionary Library"*/public DicLib() {name = "New Dictionary Library";}public DicLib(String name) {this.name = name;}public DicLib(Collection<? extends Word> c, String name) {super(c);this.name = name;}public DicLib(int initialCapacity, String name) {super(initialCapacity);this.name = name;}public DicLib(int initialCapacity, int capacityIncrement, String name) {super(initialCapacity, capacityIncrement);this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}/*** 获取以bar开头的第一个单词* * @param bar 单词首字母* @return 单词在词库中的位置,未找到返回-1*/public int index(String bar) {for (int i = 0; i < size(); i++) {if (get(i).getOrigin().startsWith(bar)) { // 判断单词是否以bar开头return i;}}return -1;}/*** 对词库进行排序* * @param isDesc 当isDesc为真时,降序排序;反之升序*/public void sort(boolean isDesc) {if (isDesc) {Comparator<Word> comp = Collections.reverseOrder();Collections.sort(this, comp);} else {Collections.sort(this);}}public String toString() {return name;}
}

3、单词类代码

package dictionary;/*** 单词类* **/
public class Word implements Comparable<Word> { // 实现Comparable接口,方便排序private String origin; // 单词private String meaning; // 释义public Word() {origin = "";meaning = "";}public Word(String origin, String meaning) {this.origin = origin;this.meaning = meaning;}public String getOrigin() {return origin;}public void setOrigin(String origin) {this.origin = origin;}public String getMeaning() {return meaning;}public void setMeaning(String meaning) {this.meaning = meaning;}public String toString() {return origin;}@Override/*** 重写Comparable的compareTo(Object otherObject)方法,采用单词字符串的按字典顺序排序(忽略大小写)* * @return 返回origin与other.origin的按字典顺序排序(忽略大小写)结果*/public int compareTo(Word other) {return origin.compareToIgnoreCase(other.origin);}
}

4、词库文件类

package file_operation;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URI;import dictionary.DicLib;
import dictionary.Word;/*** 词库文件类* **/
public class DicFile extends File { // 定义词库文件类是File类的子类private static final long serialVersionUID = -3007674007192114857L;private BufferedReader raf = null; // 用于从文件中读取词库信息private PrintWriter waf = null; // 用于将词库信息写入文件public DicFile(String pathName, boolean isWriter) throws IOException {// TODO Auto-generated constructor stubsuper(pathName);}/*** 定义此构造方法的目的是方便将词库文件加入项目,并通过URL转化为URI读取文件*/public DicFile(URI uri, boolean isWriter) throws IOException {// TODO Auto-generated constructor stubsuper(uri);}/*** 通过从文件中读取第一个文本行来确定该文件是否为适合于项目使用的词库文件,如果不是,返回null;如果是,则返回词库名* 当文件第一个文本行内容为"Dictionary name=词库名"时,才不会返回null* * @return 如果读取词库文件成功,返回词库名;否则返回null*/public String getDicName() throws IOException {BufferedReader r = new BufferedReader(new FileReader(this));String s1 = "Dictionary name=";String s2 = r.readLine();r.close();if (!s2.startsWith(s1)) { // 判断s2是否以"Dictionary name="开头return null;}return s2.replace(s1, "");}/*** 从资源中读取词库信息,并返回一个词库对象* * @param str 用于表示文件读取进度的字符串缓冲区,方便在后台线程中动态改变读取进度* @return 词库对象*/public DicLib readDic(StringBuffer str) throws IOException, IndexOutOfBoundsException {raf = new BufferedReader(new FileReader(this));String s1 = "Dictionary name=";String s2 = raf.readLine(); // 读取文件第一行if (!s2.startsWith(s1)) {return null;}raf.readLine(); // 再读取一个空行,然后开始读取第一个单词DicLib dicLib = new DicLib(s2.replace(s1, ""));long l = 0; // 用于组成文件读取进度,表示已读取的文件内容大小while (true) {String temp = raf.readLine();if (temp != null) {l += temp.length(); // 读取一行,将该行的大小增加到l// 将l与文件大小的比值转化为百分数,作为读取进度,并存储到字符串缓冲区strstr.replace(0, str.length(), String.format("%.2f%%", l / (double) length() * 100));// 通过制表符来分割字符串,用于区分单词与释义,如果该行没有制表符,则会抛出IndexOutOfBoundsException异常Word word = null;try {word = new Word(temp.split("\t")[0], temp.split("\t")[1]);} catch (IndexOutOfBoundsException e) { // 当temp.split("\t")数组越界,退出while循环break;}dicLib.add(word);} else {break;}}dicLib.sort(false);return dicLib;}/*** 将词库信息写入文件* * @param dicLib 要写入的词库对象* @param str 用于表示文件写入进度的字符串缓冲区,方便在后台线程中动态改变写入进度*/public void writeDic(DicLib dicLib, StringBuffer str) throws IOException {waf = new PrintWriter(new FileWriter(this));waf.println("Dictionary name=" + dicLib.getName()); // 将文件第一行写入"Dictionary name=词库名"waf.println(); // 写入一个空行for (int i = 0; i < dicLib.size(); i++) {// 定义一个单词行(单词+制表符+释义)String temp = dicLib.get(i).getOrigin() + "\t" + dicLib.get(i).getMeaning();waf.println(temp); // 写入一行单词// 将数组当前索引与词库总的大小的比值转化为百分数,作为写入进度,并存储到字符串缓冲区strstr.replace(0, str.length(), String.format("%.2f%%", i / (double) dicLib.size() * 100));}waf.close();}
}

5、文件处理界面

package file_operation;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.filechooser.FileNameExtensionFilter;import main.MainFrame;
import main.MessageFrame;/*** 文件处理界面是JFrame的子类,实现了ActionListener接口* **/
public class FileFrame extends JFrame implements ActionListener {private static final long serialVersionUID = -5019495375438539969L;private MainFrame frame; // 项目主界面private JFileChooser fc; // 文件选择器,用于选择要处理的文件private boolean isSave; // 确定文件是读取还是写入,如果是写入则其值为truepublic FileFrame(MainFrame frame, boolean isSave) {// super("选择文件");super(isSave ? "另存为" : "打开");this.frame = frame;this.isSave = isSave;setLayout(null);setLocationRelativeTo(null);setSize(480, 400);setVisible(true);setResizable(false);// JLabel messageLabel = new JLabel("请选择文件:");JLabel messageLabel = new JLabel("请选择要" + (isSave ? "备份" : "还原") + "的文件:");messageLabel.setBounds(10, 10, getContentPane().getWidth() - 110, 20);getContentPane().add(messageLabel);getContentPane().add(createFileChooser());}private JFileChooser createFileChooser() {fc = new JFileChooser(".");fc.setAcceptAllFileFilterUsed(false); // 去掉所有文件可选属性// 将扩展名为.dcl的文件加入过滤器fc.addChoosableFileFilter(new FileNameExtensionFilter("词库文件(*.dcl)", "dcl"));fc.setBounds(0, 40, getContentPane().getWidth(), 320);// 如果要写入文件,默认文件名为"词库名.dcl"if (isSave)fc.setSelectedFile(new File(frame.getCurrentDicLib().getName() + ".dcl"));fc.setApproveButtonText("确定");fc.addActionListener(this);return fc;}@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubif (JFileChooser.APPROVE_SELECTION.equals(arg0.getActionCommand())) { // "确定"按钮事件监听setVisible(false);try {if (!isSave) {// 当该文件不是适合于项目使用的词库文件,发出提示信息if (new DicFile(fc.getSelectedFile().getPath(), false).getDicName() == null) {new MessageFrame("提示", "不是规范化的词库文件!").setVisible(true);return;}}// 打开备份还原对话框new RecoverFrame(frame, fc.getSelectedFile().getPath(), isSave).setVisible(true);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (JFileChooser.CANCEL_SELECTION.equals(arg0.getActionCommand())) {setVisible(false);}}
}

JAVA课设:电子英汉词典(附源码+调试)相关推荐

  1. C语言课设电子英汉词典系统(大作业)

    一.设计功能(文章仅供参考) a. 词条录入:即添加单词记录. b. 信息显示:将所有的单词按字母顺序显示. c. 词条修改:对已经输入的单词信息进行修改. d. 词条删除:删除某个单词记录. e. ...

  2. c语言英语词典设计案例,c语言课程设计-电子英汉词典(含源码).doc

    . PAGE . C语言课程设计 软件学院 指导老师: 学号: 姓名: 一.实验题目及要求 题目:电子英汉词典 设计要求 : 1.用图形用户界面实现 2.能够编辑词典库中的信息 3.能够实现英译汉,汉 ...

  3. JSP课设:投票管理系统(附源码+调试)

    JSP投票管理系统 JSP投票管理系统概述 (1)投票用户:浏览投票系统栏目,参与投票,并实时查投票结果 (2)投票系统后台:新增投票:可以选择投票频道(足球.篮球等等).输入投票名称,输入选项名称, ...

  4. 简单快译通英汉词典设计源码

    快译通英汉词典设计源码 项目需求分析 一.单词查询 给定文本文件"dict.txt",该文件用于存储词库.词库为"英-汉"词典,每个单词和其解释的格式固定,如下 ...

  5. 临近期末,图书管理系统课设项目安排上(附源码)

    图书管理系统 项目介绍 项目截图 源码分享 项目介绍 本系统是一个基于java的图书管理系统,用Swing显示信息. 开发环境为IDEA,使用mysql数据库.用 户分为 用户和管理员. 项目截图 源 ...

  6. Java课程设计:考勤管理系统(附源码+调试)

    JAVA/JSP考勤管理系统: 一.主要功能 1. 在登陆界面可以选择登录方式,包括员工.管理员和经理三种身份登录方式,不同的身份登录验证通过之后就会分别跳转到不同的界面,并且获得不同的权限去进行相应 ...

  7. JAVA课设作业-实现饭店点菜系统源码

    JAVA实现饭店点菜系统详解-增强健壮性 原文: JAVA实现饭店点菜系统详解. 本文在上文的基础上增强了代码的健壮性和其他一些修改.如有bug还请各位积极指正,共同成长! 话不多说,码来: pack ...

  8. c语言程序报告英汉词典,C语言电子英汉词典程序设计报告-自动化1203-李煜明.docx...

    C语言电子英汉词典程序设计报告-自动化1203-李煜明 课 程 设 计 报 告课程名称 C语言课程设计 课题名称 电子英汉词典 专 业 自动化 班 级 1203 学 号 201201020304 姓 ...

  9. 英汉词典c语言报告程序,C语言电子英汉词典程序设计报告-自动化1203-李煜明.docx...

    课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 电子英汉词典 专 业 自动化 班 级 1203 学 号 201201020304 姓 名 李煜明 指导教师 欧阳湘江 田媛 张晓清 2013 ...

  10. 电子英汉词典c语言设计报告,C语言课程设计——电子英汉词典汇编.doc

    PAGE 课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 电子英汉词典 专 业 纺织服装学院 班 级 纺工1203 学 号 姓 名 指导教师 田 媛 2014年 01 月06 日 湖南工程 ...

最新文章

  1. 显示非模式窗口和模式窗口
  2. 防止SQL注入式攻击的笔记
  3. 从零开始搭建自己的VueJS2.0+ElementUI单页面网站(一、环境搭建)
  4. matlab图像分类器,Matlab 基于svm的图像物体分类
  5. LCA(最近公共祖先)
  6. 计算机开机出现ROM,电脑无法开机提示exiting pxe rom的解决办法
  7. learning docker steps(3) ----- docker services 初次体验
  8. 剑指offer之编程是一种习惯
  9. 两表关联去重查询全部数据
  10. 免费开源网站系统html,全CMS开源系统
  11. 安防经济逐渐景气下行 安企是否能排除万难冲出阴霾?
  12. 笔记本插入耳机没反应 必须重启前插入再启动才行 启动后拔下再插入依旧外放
  13. 数据挖掘学习1--数据挖掘流程
  14. java file 的length_java里怎么知道一个file的大小?
  15. 嵌入式硬件 软件测试,嵌入式系统软硬件功能测试方法及性能评估研究
  16. JAVAEE容器如何管理EntityManager和PersistenceContext
  17. CSS如何实现文字两端对齐
  18. 人工智能机器学习底层原理剖析,人造神经元,您一定能看懂,通俗解释把AI“黑话”转化为“白话文”
  19. 拖放(DragDrop)
  20. iOS黑客Luca Todesco演示iOS 10 beta 8越狱

热门文章

  1. python画小猪乔治_小猪佩奇怎样画
  2. 随笔:Linux下查看声卡基本信息
  3. echarts实现排名柱状图
  4. 美的空调售后服务电话(全国24小时)美的空调客服热线中心
  5. 星梦PbootCMS安装方法及一些手册里没写到的东西
  6. 58同城Mysql使用规范30条军规
  7. ssm+java计算机毕业设计幸福小区健身器材租赁系统krfhg(程序+lw+源码+远程部署)
  8. BetterZip3.8女神节惊艳价 比38折还要低!
  9. 用计算机学数学日记,数学日记汇编五篇
  10. matlab 批量将Excel表数据汇总成一个表