⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staticsmoneymostbymonth.java

📁 JAVA实现的酒店管理系统
💻 JAVA
字号:
package file1;

/*
 * 功能描述:酒店的总收入按月份统计查询入口
 * @Author:黄顺武
 * Version:1.3
 */
import javax.swing.*;
import sun.jdbc.rowset.*;
import java.sql.*;

public class StaticsMoneyMostByMonth extends JPanel {

	private String tip = "请输入要查询的年月:";
	private DateMonthYear dateMonthYear = null;
	private String valueGet = null;
	private CheckYearMonth checkYM = null;
	private String[][] moneyAndGrade = null;
	private String[][] mostPopular = null;
	private IdentityDate identityDate=new IdentityDate();//实例化对两个日期进行相关性判断的类对象

	public StaticsMoneyMostByMonth() {
		dateMonthYear = new DateMonthYear();
		valueGet = dateMonthYear.getValueGet(tip);
		if (valueGet == null) {
			return;
		}
		checkYM = new CheckYearMonth();
		String monthStr = checkYM.check(valueGet);
		if (monthStr == null) {
			return;
		}
		try {
			DBConnection con = new DBConnection();
			String query = "select bookNum*Sprice total,hGrade,dateOut from HUseBook,HGrade where hGrade=grade  order by hGrade";
			CachedRowSet crs = con.getResultSet(query);
			int count = 0;
			while (crs.next()) {
				String dateOut = crs.getString(3);
				identityDate.setFirstDate(dateOut.trim());
				identityDate.setSecondDate(monthStr);
				if (identityDate.isInTheSameMonth()==0) {//两个日期在同一个月
					count++;
				}
			}
			if (count == 0) {//本月没有出租任何客房,程序将按原路返回控制点
				JOptionPane.showMessageDialog(null, "该月份没有出租客房!", "",
						JOptionPane.INFORMATION_MESSAGE);
				return;
			}
			moneyAndGrade = new String[count][2];
			crs.beforeFirst();
			count = 0;
			while (crs.next()) {
				float moneyTemp = crs.getFloat(1);
				String hGradeTemp = crs.getString(2);
				String dateOut = crs.getString(3);
				identityDate.setFirstDate(dateOut.trim());
				identityDate.setSecondDate(monthStr);
				if (identityDate.isInTheSameMonth()==0) {//两个日期在同一个月
					moneyAndGrade[count][0] = String.valueOf(moneyTemp);
					moneyAndGrade[count][1] = String.valueOf(hGradeTemp);
					count++;
				}
			}
			int temp = count;//temp为记录集中包含的客房级别的上限
			String moneyAndGradeTemp[][] = new String[temp][2];
			moneyAndGradeTemp[0][0] = moneyAndGrade[0][0];
			moneyAndGradeTemp[0][1] = moneyAndGrade[0][1];
			count = 1;
			int gradeCount = 1;
			for (; count < temp; count++) {
				int indicate = 0;
				for (int gradeCountTemp = 0; gradeCountTemp < gradeCount; gradeCountTemp++) {// 累加同级别的客房出租金额
					if (moneyAndGrade[count][1]
							.equals(moneyAndGradeTemp[gradeCountTemp][1])) {
						float temp1 = Float
								.valueOf(moneyAndGradeTemp[gradeCountTemp][0]);
						float temp2 = Float.valueOf(moneyAndGrade[count][0]);
						moneyAndGradeTemp[gradeCountTemp][0] = String
								.valueOf(temp1 + temp2);
						indicate = 1;
					}
				}
				if (indicate != 1) {
					moneyAndGradeTemp[gradeCount][0] = moneyAndGrade[count][0];
					moneyAndGradeTemp[gradeCount][1] = moneyAndGrade[count][1];
					gradeCount++;
				}
			}
			int biggest = 0;
			float temp1 = Float.valueOf(moneyAndGradeTemp[0][0]);
			for (count = 1; count < gradeCount; count++) {
				float temp2 = Float.valueOf(moneyAndGradeTemp[count][0]);
				if (temp1 < temp2) {
					biggest = count;
				}
			}
			mostPopular = new String[gradeCount][2];
			int base = 0;
			for (count = 0; count < gradeCount; count++) {
				if (moneyAndGradeTemp[count][0]
						.equals(moneyAndGradeTemp[biggest][0])) {
					mostPopular[base][0] = moneyAndGradeTemp[count][0];
					mostPopular[base][1] = moneyAndGradeTemp[count][1];
					base++;
				}
			}
			String hGrades = null;
			float commonMoney = Float.valueOf(mostPopular[0][0]);
			if (base > 1) {
				StringBuffer sb = new StringBuffer();
				for (count = 0; count < base; count++) {
					sb.append(mostPopular[count][1] + "  ");
				}
				hGrades = sb.toString();
			} else {
				hGrades = mostPopular[0][1];
			}
			JOptionPane.showMessageDialog(null, "该月份出租收入最大客房级别为 " + hGrades
					+ ",收入(各)为 " + commonMoney + " 元!", "",
					JOptionPane.INFORMATION_MESSAGE);
		} catch (ClassNotFoundException cnfe) {
			cnfe.printStackTrace();
		} catch (SQLException sqle) {
			sqle.printStackTrace();
		} catch (NumberFormatException nfe) {
			nfe.printStackTrace();
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -