import java.util.Scanner; public class MyTestt_modify { public static void main(String[] args) { //根据流程分析,先定义变量 //第一个变量:输出设备 Scanner scanner=new Scanner(System.in); //第二个变量:姓名,考号,不清楚的变量内容只写类型+变量名,防止输出报错,赋初始值,这里的初始值为空"" String name=""; String no=""; //第三个变量: 成绩,对于成绩,如果用户一个没有答对,就是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")) { // 4、 系统出题(暂时题是固定的),限定选择题 System.out.println("1+1="); System.out.println("A、1 B、2 C、算不出来 D、不确定"); // 5、 用户输入答案,判断答案,对加10分,错不加分 String ans1 = scanner.next(); //考虑对英文字母的问题,一定考虑用户输入的大小写问题.toLowerCase()引入的目的确防止用户输入字母的大小写 //转大写 toUpperCase //因为答案错误就不加分,所以if没有else if (ans1.toUpperCase().equals("B")) { //选择正确加分,把sum变量加上10分,再给sum变量 sum = sum + 10; } // 6、 限定每个科目中两个题, //再定义另外一个题,先不考虑优化(重码率),把上面考题复制一份 System.out.println("2+2="); System.out.println("A、4 B、2 C、算不出来 D、不确定"); //答案也可以再复制,复制后修改一下变量名,答案选择不同的变量,防止最后做修改,加检查功能,你的答案变量还存在 String ans2 = scanner.next(); //继续判断 if (ans2.toUpperCase().equals("A")) { //选择正确加分,把sum变量加上10分,再给sum变量 sum = sum + 10; } //7、最后输出成绩 System.out.println("学号:" + no + ",姓名:" + name + ",成绩为:" + sum); } else if (select_no.equals("2")) { // 4、 系统出题(暂时题是固定的) // 5、 用户输入答案,判断答案,对加10分,错不加分 // 6、 限定每个科目中两个题, 最后输出用户的考试成绩 //题不同,逻辑相同 // 4、 系统出题(暂时题是固定的),限定选择题 System.out.println("this is _ apple."); System.out.println("A、a B、an C、the D、/"); // 5、 用户输入答案,判断答案,对加10分,错不加分 String ans1 = scanner.next(); //考虑对英文字母的问题,一定考虑用户输入的大小写问题.toLowerCase()引入的目的确防止用户输入字母的大小写 //因为答案错误就不加分,所以if没有else if (ans1.toUpperCase().equals("B")) { //选择正确加分,把sum变量加上10分,再给sum变量 sum = sum + 10; } // 6、 限定每个科目中两个题, 最后输出用户的考试成绩 //再定义另外一个题,先不考虑优化(重码率),把上面考题复制一份 System.out.println("I play _ piano"); System.out.println("A、a B、an C、the D、/"); //答案也可以再复制,复制后修改一下变量名,答案选择不同的变量,防止最后做修改,加检查功能,你的答案变量还存在 String ans2 = scanner.next(); //继续判断 if (ans2.toUpperCase().equals("C")) { //选择正确加分,把sum变量加上10分,再给sum变量 sum = sum + 10; } //7、最后输出成 System.out.println("学号:" + no + ",姓名:" + name + ",成绩为:" + sum); } else { System.out.println("你选择了退出考试,没有参加任何一门课程的考试"); } //因为if中的else有一个结束的语句,后面不要再有语句 //考号判断合理的结束 } //底部必须有两个大括号,程序调整都在两个大括号前 } }
Java 初级入门(编写一个简易考试系统)
最新推荐文章于 2024-05-15 17:57:31 发布