日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

Java课程设计:校园导游系统

發(fā)布時(shí)間:2023/12/29 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java课程设计:校园导游系统 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

校園導(dǎo)游系統(tǒng)

  • 內(nèi)容目錄:
    • 設(shè)計(jì)要求
    • 功能模塊分析
      • 數(shù)據(jù)庫(kù)設(shè)計(jì)
      • 數(shù)據(jù)庫(kù)連接
      • 數(shù)據(jù)庫(kù)功能的實(shí)現(xiàn)
      • gui的實(shí)現(xiàn)

內(nèi)容目錄:

1. 設(shè)計(jì)要求 2. 功能分析

設(shè)計(jì)要求

圖形化界面(GUI),編寫一個(gè)文本文件信息統(tǒng)計(jì)軟件 (1)顯示打開文件的基本信息(文件名、路徑、文件大小、最后修改日期) (2)顯示文件內(nèi)容統(tǒng)計(jì)信息(行、字/單詞數(shù)) (3)顯示文件內(nèi)容 (4)按照文件大小或最后修改時(shí)間排序 (5)按照文件名或者文件內(nèi)容包含關(guān)鍵字模糊查詢

功能模塊分析

1. 數(shù)據(jù)庫(kù)設(shè)計(jì)2. gui設(shè)計(jì)3. 數(shù)據(jù)庫(kù)連接4. 數(shù)據(jù)庫(kù)相關(guān)功能實(shí)現(xiàn)

數(shù)據(jù)庫(kù)設(shè)計(jì)

1. 有校園建筑表

校園建筑表 schooladd

CREATE TABLE `schooladd` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',`sname` varchar(20) DEFAULT NULL,`x` int(100) DEFAULT NULL,`y` int(100) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 2. 有校園建筑信息表

校園建筑信息表

CREATE TABLE `message` (`id` int(10) NOT NULL,`name` varchar(255) DEFAULT NULL,`message` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

數(shù)據(jù)庫(kù)連接

利用jdbc,util和資源文件來(lái)連接數(shù)據(jù)庫(kù)

JdbcUtil.java如下

package com.datasource.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties;public class JdbcUtils {/*** 1. 定義成員變量DataSourse*/private static DataSource ds;static {try {//1. 加載配置文件Properties pro = new Properties();pro.load(JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties"));//2.獲取DataSourceds = DruidDataSourceFactory.createDataSource(pro);} catch (Exception e) {e.printStackTrace();}}/*** 獲取資源* @return ds.getConnection()*/public static Connection getConnection() throws SQLException{return ds.getConnection();}/*** 釋放資源*/public static void close(ResultSet rs, Statement stmt, Connection conn){if (rs != null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (stmt != null){try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}/*** 獲取連接池方法* @return ds*/public static DataSource getDataSource(){return ds;} }

配置文件druid.properties如下:
使用的時(shí)mysql8.0數(shù)據(jù)庫(kù),

driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql:///db5 username=root password=1234 initialSize=5 maxActive=10 maxWait=3000

數(shù)據(jù)庫(kù)功能的實(shí)現(xiàn)

通過(guò)JdbcTemplate和Jdbc來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)相關(guān)功能

JdbcTemplate.java

package com.jdbcTemplate;import com.datasource.utils.JdbcUtils; import com.domain.SchoolAdd;import java.util.List; import java.util.Map; import java.util.Scanner;import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate;public class JdbcTemplateDemo {private static JdbcTemplate template = new JdbcTemplate(JdbcUtils.getDataSource());/*** 查詢schooladd表中的所有的數(shù)據(jù)*/public static void selectDate1() {//2.定義sqlString sql = "select * from schooladd ";//3.執(zhí)行sqlList<SchoolAdd> list = template.query(sql,new BeanPropertyRowMapper<SchoolAdd>(SchoolAdd.class));for (SchoolAdd emp:list){System.out.println(emp);}}/*** 按id差尋所有數(shù)據(jù)*/public static void selectDateId() {//定義sql語(yǔ)句String sql = "select * from schooladd where sname=?";Scanner scanner = new Scanner(System.in);System.out.println("Enter the sname :");String sName = scanner.nextLine();Map<String, Object> map = template.queryForMap(sql,sName);System.out.println(map);scanner.close();}/*** 查詢建筑物的坐標(biāo)*/public static double selectAdd(String sName1,String sName2) {String sql1 = "select x from schooladd where sname=?";String sql2 = "select y from schooladd where sname=?";int x1 = template.queryForObject(sql1,Integer.class,sName1);int y1 = template.queryForObject(sql2,Integer.class,sName1);int x2 = template.queryForObject(sql1,Integer.class,sName2);int y2 = template.queryForObject(sql2,Integer.class,sName2);return Math.sqrt((Math.pow((x1 - x2), 2)+Math.pow((y1-y2), 2)));}/*** 查詢簡(jiǎn)介* @return 建筑簡(jiǎn)介*/public static String selectMessage(String name) {String sql = "select message from message where name=?";return template.queryForObject(sql, String.class,name);} }

SchoolAdd.java

package com.domain;public class SchoolAdd {private Integer id;private String sName;private Integer x;private Integer y;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getsName() {return sName;}public void setsName(String sName) {this.sName = sName;}public Integer getX() {return x;}public void setX(Integer x) {this.x = x;}public Integer getY() {return y;}public void setY(Integer y) {this.y = y;}@Overridepublic String toString() {return "SchoolAdd [id=" + id + ", sName=" + sName + ", x=" + x + ", y=" + y + "]";}}

gui的實(shí)現(xiàn)

Start.java

package com.gui;import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent;import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem;public class Start extends JMenuBar{ /***開始菜單 */private static final long serialVersionUID = 1L;public Start() {// TODO Auto-generated constructor stubadd(createFileMenu()); //添加“文件”菜單add(createEditMenu()); //添加“編輯”菜單setVisible(true); }public static void main(String[] args) {JFrame frame=new JFrame("菜單欄");JLabel jlimage = new JLabel();ImageIcon icon = new ImageIcon("./img/school.jpg");icon.setImage(icon.getImage().getScaledInstance(540, 713, Image.SCALE_DEFAULT));jlimage.setIcon(icon);frame.add(jlimage);frame.setSize(540,713);frame.setJMenuBar(new Start());frame.setVisible(true);}//定義“簡(jiǎn)介”菜單private JMenu createFileMenu(){JMenu menu=new JMenu("簡(jiǎn)介(F)");menu.setMnemonic(KeyEvent.VK_F); //設(shè)置快速訪問(wèn)符JMenuItem item=new JMenuItem("學(xué)校信息");item.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSchoolMessage.runShowMessage("學(xué)校信息");}});menu.add(item);item=new JMenuItem("格致樓");item.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSchoolMessage.runShowMessage("格致樓");}});menu.add(item);item=new JMenuItem("機(jī)電學(xué)院");item.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSchoolMessage.runShowMessage("機(jī)電學(xué)院");}});menu.add(item);item=new JMenuItem("田徑場(chǎng)");item.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSchoolMessage.runShowMessage("田徑場(chǎng)");}});menu.add(item);menu.addSeparator();item=new JMenuItem("退出");item.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});menu.add(item);return menu;}//定義“編輯”菜單private JMenu createEditMenu(){JMenu menu=new JMenu("查詢(E)");menu.setMnemonic(KeyEvent.VK_E);JMenuItem item=new JMenuItem("查詢建筑信息(U)",KeyEvent.VK_U);item.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSelectMessage.runShowMessage();}});menu.add(item);menu.addSeparator();item=new JMenuItem("查詢建筑之間的距離(U)",KeyEvent.VK_T);item.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSelectLength.runShowMessage();}});menu.add(item);return menu;} }

SchoolMessage.java

package com.gui;import java.awt.Font;import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingConstants;import com.jdbcTemplate.JdbcTemplateDemo;public class SchoolMessage {private static void showMessage(String name) {JFrame frame = new JFrame("學(xué)校信息");String str = JdbcTemplateDemo.selectMessage(name);JLabel label = new JLabel(str);label.setFont(new Font("宋體",1,14));label.setHorizontalAlignment(SwingConstants.CENTER);label.setVerticalAlignment(SwingConstants.TOP);frame.add(label);frame.setSize(540,713);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); }public static void runShowMessage(String name) {javax.swing.SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {showMessage(name);}});} }

SelectLength.java
測(cè)量?jī)傻氐木嚯x

package com.gui;import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField;import com.jdbcTemplate.JdbcTemplateDemo;public class SelectLength {private static void showLength() {JFrame frame = new JFrame("查詢建筑物之間的距離");JPanel panel = new JPanel();JTextField test3 = new JTextField(4);JTextField text1 = new JTextField(8);JTextField text2 = new JTextField(8);panel.add(new JLabel("建筑物A的名字:"));panel.add(text1);panel.add(new JLabel("建筑物b的名字:"));panel.add(text2);JButton button = new JButton("查詢");button.addActionListener(new ActionListener() { @Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString aString = ""+JdbcTemplateDemo.selectAdd(text1.getText(),text2.getText());test3.setText(aString);JOptionPane.showMessageDialog(null, test3);}});panel.add(button); frame.add(panel);frame.setSize(540,713);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);}public static void runShowMessage() {javax.swing.SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {showLength();}});} }

SelectMessage.java
按地名查詢地點(diǎn)信息

package com.gui;import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField;import com.jdbcTemplate.JdbcTemplateDemo;public class SelectMessage {public static void showSelectMessage() {JFrame frame = new JFrame("查詢景點(diǎn)信息");JPanel panel = new JPanel();panel.add(new JLabel("輸入地點(diǎn)名稱"));JTextField text = new JTextField(8);panel.add(text);JButton button = new JButton("查詢");button.addActionListener(new ActionListener() { @Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString aString = JdbcTemplateDemo.selectMessage(text.getText());JOptionPane.showMessageDialog(null, aString);}});panel.add(button);frame.add(panel);frame.setSize(540,713);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);}public static void runShowMessage() {javax.swing.SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {SelectMessage.showSelectMessage();}});} }

總結(jié)

以上是生活随笔為你收集整理的Java课程设计:校园导游系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。