javaweb 通过用户输入出生年月日/或者姓名,来判断用户的星座/人品,给出一个结论 用idea完成完整代码
时间: 2023-05-23 20:06:40 浏览: 201
根据出生年月可做的星座测试
4星 · 用户满意度95%
请问具体的星座和人品判断标准是什么?
针对星座判断,我们可以按照西方占星术来进行判断,具体的计算公式可以参考以下代码:
```java
public class ConstellationUtil {
// 星座名
public static final String[] CONSTELLATIONS = {
"摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座",
"巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座"
};
// 星座开始日期(1月20日为摩羯座开始)
public static final int[] CONSTELLATION_START_DAY = {20, 19, 21, 20, 21, 22, 23, 23, 23, 23, 22, 22};
// 给定生日,返回星座
public static String getConstellation(Date birthDate) {
if (birthDate == null) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(birthDate);
int month = calendar.get(Calendar.MONTH) + 1;// 月份从0开始
int day = calendar.get(Calendar.DAY_OF_MONTH);
int startDay = CONSTELLATION_START_DAY[month - 1];
if (day < startDay) {
startDay = CONSTELLATION_START_DAY[(month + 10) % 12];
}
return CONSTELLATIONS[(month - 1 + (day >= startDay ? 1 : 0)) % 12];
}
}
```
针对人品判断,我们可以给每个人品等级设置一个分数范围,根据用户输入的姓名或者其他信息进行一些简单的计算,得出分数,然后根据分数范围进行判断即可。具体代码如下:
```java
public class MoralUtil {
// 人品等级及其分数范围
public static final int[] MORAL_SCORES = {10, 8, 6, 4, 2, 0};
public static final String[] MORAL_LEVELS = {"极好", "很好", "好", "一般", "差", "很差"};
/**
* 根据姓名计算人品分数
*
* @param name 姓名
* @return 人品分数
*/
public static int getMoralScore(String name) {
int score = 0;
for (int i = 0; i < name.length(); i++) {
score += name.charAt(i);
}
return score % 101; // 计算出0-100的分数
}
/**
* 根据人品分数判断人品等级
*
* @param score 人品分数
* @return 人品等级
*/
public static String getMoralLevel(int score) {
for (int i = 0; i < MORAL_SCORES.length; i++) {
if (score >= MORAL_SCORES[i]) {
return MORAL_LEVELS[i];
}
}
return null;
}
}
```
综合两个模块,可以编写出完整的 JavaWeb 应用程序。具体代码实现可以参考以下示例:
```java
@WebServlet("/result")
public class ResultServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取表单参数
String name = request.getParameter("name");
String birth = request.getParameter("birth");
String[] birthArr = birth.split("-");
Date birthDate = new Date(Integer.parseInt(birthArr[0]) - 1900, Integer.parseInt(birthArr[1]) - 1, Integer.parseInt(birthArr[2]));
// 计算星座和人品
String constellation = ConstellationUtil.getConstellation(birthDate);
int moralScore = MoralUtil.getMoralScore(name);
String moralLevel = MoralUtil.getMoralLevel(moralScore);
// 返回结果给用户
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>星座&人品判断结果</title></head>");
out.println("<body>");
out.println("<p>您的星座是:" + constellation + "</p>");
out.println("<p>您的人品分数是:" + moralScore + "</p>");
out.println("<p>您的人品等级是:" + moralLevel + "</p>");
out.println("</body>");
out.println("</html>");
}
}
```
该应用程序的界面可以通过一个简单的 JSP 页面来实现,示例代码如下:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>星座&人品判断</title>
</head>
<body>
<h1>星座&人品判断</h1>
<form method="post" action="result">
<p>
<label>姓名:</label>
<input type="text" name="name" required>
</p>
<p>
<label>出生年月日:</label>
<input type="date" name="birth" required>
</p>
<p>
<button type="submit">提交</button>
</p>
</form>
</body>
</html>
```
这样的话,用户就可以通过输入姓名和出生年月日来获取自己的星座和人品等级了。
阅读全文