import java.util.Scanner;
public class Text_2 {
public static void main(String[] args) {
//根据流程分析,先定义变量
Scanner scanner=new Scanner(System.in);
//全局变量:姓名(name),考号(no),不清楚的变量内容只写类型+变量名,防止输出报错,赋初始值,这里的初始值为空""
String name="";
String no="";
//全局变量: 成绩(sum),对于成绩,如果用户一个没有答对,就是0分,需要初始值
int sum=0;
//正式进入程序流程
// 输出语句是一个提示:1、 用户输入 准考证号 姓名 准考证号变量前面有,姓名变量前面有,前面没有名称随意
System.out.println("请输入准考证号");
no=scanner.next();
//在java 数值中等于==,不等使用!=,任何字符只要有一个就报错,这里用或,目前只不允许3个符号
if ( (no.indexOf("~")==-1) && (no.indexOf("!")==-1) && (no.indexOf("#")==-1)) {
//程序结束,后面没有代码才结束,后面有代码是不能结束的,把思维反向,三个符号一个都没有,就进行程序
System.out.println("请输入姓名");
name = scanner.next();
// 2、 进入考试界面(1-----性格测试,2-----心理测试)这种格式是命令行菜单
System.out.println("************************************");
System.out.println(" 测 试 系 统 ");
System.out.println(" 1--------------性格测试");
System.out.println(" 2--------------心理测试");
System.out.println("************************************");
// 3、 用户输入性格测试或者心理测试的代表数字,这里也接收数字的变量,这里没有全局
System.out.println("请选择想要参加测试对应的序号:");
String select_no = scanner.next();
//判断用户选择的序号内容,因为是字符串,等于使用equals,如果是数值,直接使用双等,字符串一定加双引号
if (select_no.equals("1")) {
Scanner input=new Scanner(System.in);
// 初始化,System.in为输入
System.out.println("你更喜欢吃哪种水果:\n"+"A.菠萝\n"+"B.橘子\n"+"C.其他");
// 第一个问题
String select=input.next();
// 对第一个问题进行回答
if(select.equals("A")){
sum=sum+10;
}else if(select.equals("B")){
sum=sum+15;
}else{
sum=sum+5;
}
// if是对第一个问题的回答进行判断,对sum进行加分
System.out.println("你平时休闲经常去的地方?\n"+"A.郊外\n"+"B.电影院\n"+"C.酒吧\n"+"D.其他");
// 第二个问题
String select2=input.next();
// 对第二个问题进行回答
if(select2.toUpperCase().equals("A")){
sum=sum+20;
}else if(select2.toUpperCase().equals("B")){
sum=sum+10;
}else if(select2.toUpperCase().equals("C")){
sum=sum+5;
}else{
sum=sum+10;
}
// if是对第二个问题的回答进行判断,对sum进行加分
System.out.println("天气很热,你更喜欢选择哪种方式解暑?\n"+"A、游泳\n"+"B、喝冷饮\n"+"C、开空调");
// 第三个问题
String select3=input.next();
// 对第二个问题进行回答
if(select3.toUpperCase().equals("A")){
sum=sum+5;
}else if(select3.toUpperCase().equals("B")){
sum=sum+10;
}else{
sum=sum+15;
}
// if是对第三个问题的回答进行判断,对sum进行加分
if(sum<=30&&sum>15){
System.out.println("测试结果表明:你是一个意志力强,头脑冷静,有较强的领导欲,事业心强,不达目的不罢休的人。");
}
else if(sum>=30&&sum<40){
System.out.println("测试结果表明:你是一个性格活泼,人缘好,善于交朋友,心机较深。事业心强,渴望成功的人。");
}else{
System.out.println("测试结果表明:你是一个好奇心强,喜欢冒险,善于发现有趣的事情。渴望浪漫的爱情,但对婚姻的要求比较现实。不善理财。");
}
System.out.println("学号:" + no + ",姓名:" + name + ",成绩为:" + sum);
} else if (select_no.equals("2")) {
// 第一个问题
System.out.println("你平时闲下来时喜欢干什么?\n"+"A.看电影\n"+"B.去外面\n"+"C.什么也不做\n");
String daan=scanner.next();
// 做判断语句,通过用户选择的答案给a赋值
if (daan.toUpperCase().equals("A")){
sum=sum+20;
}
else if (daan.toUpperCase().equals("B")){
sum=sum+10;
}
else {
sum=sum+5;
}
// 重复赋值步骤 第二个问题
System.out.println("你认为自己是一个怎样的人?\n"+"A.开朗\n"+"B.认真\n"+"C.感性\n");
String daan2=scanner.next();
if (daan2.toUpperCase().equals("A")){
sum=sum+20;
}
else if (daan2.toUpperCase().equals("B")){
sum=sum+10;
}
else {
sum=sum+5;
}
// 第三个问题
System.out.println("你喜欢一个人呆着吗?\n"+"A.喜欢\n"+"B.都可以\n"+"C.不喜欢\n");
String daan3=scanner.next();
if (daan3.toUpperCase().equals("A")){
sum=sum+20;
}
else if (daan3.toUpperCase().equals("B")){
sum=sum+10;
}
else {
sum=sum+5;
}
// 按照分数给出测试结果
// 分数不同,结果不同,用if语句实现
if (sum<=60&&sum>=40){
System.out.println("你是一个开朗、外向的人,喜欢和人在一起并享受生活。");
}
else if (sum<40&&sum>=20){
System.out.println("你是一个内向、安静的人,喜欢独处并注重细节。");
}else { System.out.println("你是一个焦虑、紧张的人,需要学会放松和调节情绪。"); }
System.out.println("学号:" + no + ",姓名:" + name + ",成绩为:" + sum);
} else {
System.out.println("你选择了退出考试,没有参加任何一门课程的考试");
}
//因为if中的else有一个结束的语句,后面不要再有语句
//考号判断合理的结束
}
//底部必须有两个大括号,程序调整都在两个大括号前
}
}