Java课程设计:校园导游系统
生活随笔
收集整理的這篇文章主要介紹了
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ù),
數(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
SelectMessage.java
按地名查詢地點(diǎn)信息
總結(jié)
以上是生活随笔為你收集整理的Java课程设计:校园导游系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ISIS(中间系统到中间系统)概述
- 下一篇: 校园导游系统(Java语言)