From fc24185c56d72df6ab0099ae80243f1410083686 Mon Sep 17 00:00:00 2001 From: Violet <3551664030@qq.com> Date: Mon, 29 Sep 2025 00:20:26 +0800 Subject: [PATCH] Version 2.0 --- MathQuestionGenerator.jar | Bin 10965 -> 11061 bytes doc/项目说明.md | 52 +++++++++++++++++++++++++------------- src/Main.class | Bin 1302 -> 1337 bytes src/Main.java | 11 ++++---- src/SysFunc.class | Bin 5420 -> 5561 bytes src/SysFunc.java | 24 +++++++++++++----- src/Teacher.class | Bin 3876 -> 3887 bytes src/Teacher.java | 22 ++++++++-------- 8 files changed, 68 insertions(+), 41 deletions(-) diff --git a/MathQuestionGenerator.jar b/MathQuestionGenerator.jar index caa7c2e9eed1b4c54a04fd19cebb8cc86cd6ef87..d664d472de70649064ea0ddeed4b88d8d40c4e96 100644 GIT binary patch delta 6479 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 rXsQ0P|Lc(m{xfj>ClP@#I<3|rkm{TGv4 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 diff --git a/doc/项目说明.md b/doc/项目说明.md index f746afa..b864aa7 100644 --- a/doc/项目说明.md +++ b/doc/项目说明.md @@ -29,6 +29,40 @@ Personal_Project/ ├── 王五2/ └── 王五3/ ``` +## 运行环境 + +- **语言**:Java21.0.4 +- **Windows环境**:Windows11 cmd或powershell终端管理员 (win10或以下版本可能无法识别SysFuc类中的ANSI编码而产生字符乱码) 注意在终端您需要设置编码chcp 936 +- **Linux环境**:ubuntu22.04.5 LTS; 注意终端运行时,需要确认编码格式为UTF-8(下述),而后将Main.java中scanner参数"GBK"删去后重新编译并生成.jar文件以解决乱码问题 + - __编译命令如下(进入项目目录): + - __javac src/*.java + - __jar cfm MathQuestionGenerator.jar(名称可换) MANIFEST.MF src/*.class + - __java -jar MathQuestionGenerator.jar +- **编码**:WINDOWS下标准输入(scanner)为GBK(支持中文输入),文件保存为UTF-8 + -__您可以在终端通过输入命令chcp查看当前编码,936为GBK,65001为UTF-8 (一般是GBK,这种情况不需要额外设置编码格式) + UBUNTU下标准输入(scanner)默认UTF-8,文件保存为UTF-8 + -__您可以通过echo $LANG查看当前编码,并通过export LANG=en_US.UTF-8暂时设置编码格式为UTF-8 (一般是UTF-8,只需要删去Main中scanner的"GBK"参数即可) +- **依赖**:纯Java标准库,无需额外依赖 + +## 运行方法 + +- **通用**:-下载MathQuestionGenerator.jar(可自行更改名字) + -完成环境设置以及编码格式设置,见上述运行环境 + -通过java -jar MathQuestionGenerator.jar运行 +- **批处理**:Windows11环境下,您可以打开项目目录,双击Math.bat文件直接运行 + +## 使用流程 + +1. **保存文件**:将项目保存至同一目录 +2. **启动程序**:见上述"运行方法" +3. **用户登录**:根据提示输入预置的用户名和密码(格式:用户名 密码) +4. **选择模式**:系统显示当前出题类型,可选择切换 +5. **切换类型**:输入" 切换** "切换至对应出题类型 +6. **生成题目**:输入题目数量(10-30) +7. **查看结果**:题目生成后显示保存路径 +8. **重复使用**:题目生成后可选择继续生成或切换难度 +9. **退出登录**:输入题目数量为-1则退出当前用户,可重新登录 +10. **退出系统**:可选返回登陆或者退出系统 ## 核心功能 @@ -76,19 +110,6 @@ Personal_Project/ - **异常处理**:完善的异常处理机制确保程序稳定性 - **路径管理**:自动创建和管理教师个人文件夹以及题目文档 -## 使用流程 - -1. **保存文件**:将项目保存至同一目录 -2. **启动程序**:在当前目录下双击运行 “运行程序.bat” -3. **用户登录**:根据提示输入预置的用户名和密码(格式:用户名 密码) -4. **选择模式**:系统显示当前出题类型,可选择切换 -5. **切换类型**:输入" 切换** "切换至对应出题类型 -6. **生成题目**:输入题目数量(10-30) -7. **查看结果**:题目生成后显示保存路径 -8. **重复使用**:题目生成后可选择继续生成或切换难度 -9. **退出登录**:输入题目数量为-1则退出当前用户,可重新登录 -10. **退出系统**:可选返回登陆或者退出系统 - ## 预置用户信息 | 用户名 | 密码 | 类型 | 初始类型 | @@ -286,11 +307,6 @@ public static void main(String[] args) - 添加题目答案计算功能 - 支持批量导入导出 -## 开发环境 -- **语言**:Java21.0.4 -- **编码**:标准输入(scanner)为GBK(支持中文输入),文件保存为UTF-8 -- **依赖**:纯Java标准库,无需额外依赖 - ## 项目价值 本项目展示了面向对象编程的实际应用,体现了良好的软件工程实践,包括: diff --git a/src/Main.class b/src/Main.class index d2953ecd4973ade72bc74b359c51da5ae4f0c987..9ffa455edaa19f4546f1247c79edd764c1ccf8f8 100644 GIT binary patch delta 318 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 D-0H!Q literal 5420 zcma)A30PFu75=X*^BA7nXfy<)xFvv~0&Zb3RfCZP(TE$Gm^@(uqcB5e1|wN9O#m07 zRa8WcYebW{n*jk$nzm_^rhC&S-J38o(x$ab+N6nz{qK9jFbK_8KfgEkoO|xQ=brPQ z|K7{nU$$NbFiQ+KqaVUd2v-q-NP$6Xv~}8~Qq5jGX~F6>)z;kN+->7IwB`EIApUYzm&XcCr6mv2!KixHevD=MO2p>rAg&q!FIU}VsTR0VNCA0`D&ZxVhUCY#0Tus%4m1x@(%BFFQ&)&>yOjMyR9zHd%D_xaD!p}fWW|j z^^~%iab5mCsNx~%Y=rKX8LLrfLXiq9n7a_v$6ykN@d+#B zh_9=77S9QU%NXAn-#`JFP!pg`(ugF=C{$ykicQ!o2Wn+Zj3uNXopdlj#blpc$zFj4S-aKPt)f9f#8hl`FD7wV zcuq8`*o%Dv!^^a_);SJ)q2^v@bC^vL|$LfP$9@|4Id~2rTGboxUwK9c@R`y@}M?<;hF0nwMQ9-l7Y(1c|@PlMwEGq-4vnQ*{SeD0VN6Sl{RU11GU1WJN z>K!dr)F`;f-Pski35?}*sd6fRTa&--q`^K0Ig%(lYqnl(Z?y2*z{M{M+}dT`r=6Lo zdtJph@dm3kzr^;ijwxAP1~~NM3Q$mnJd(5UZ57{<%tGWkT~;0|CVW?5lwN51S(H~% zw%Y2P>u{E7?(Fr2)^fMaLC@b3xTkj@eET-~cGhyAI>+yhPnn#YHo4>CW=Skkd4c*Q zU+u2sl+LOuCg0%XgmeYp7Z?%Dv$y$NXurX{Kj`N3)H1@@yYIMhdKkf)IB}vu#?|Txc%5t@T_s zWLHT{TxU(4Z`T-V!P(9aI(6_g`_liFU;&gFf)1ANDna!TtYH?GewAo5Ri9|3^_Pr zQFeazVg(dQN`+@T4G@!Xy zTU|;`xV$%WV5y_nMm&${6Y@R6!Dx8JZxi&eq8n{(Y zlvTk)c(%jg=0T{H&$qfu97QfggbT##mFc~-!@IGL74O@8qNAl%7zC$?NC9~PN-gu& zRC|xs7{C>wHz9IWkWWH!-9-Ym2EdY2yl1M7;xN`Scs$7fp;1p)+c%~wf=`F(K@j_P zA7o(~Q%HJjK1c6(7rJulvj5Vl&bEdtr;ZvlOuFGvVsC=(uS~m90ftko6Yr)2fhk_w z?>*UYrRKaC7%5b<=r0DC#6X^2Vi57!O(8b>I>%b;B;%km4z#&iAzSZ zPVfIcWnM4XR^-DYsQ&}U{Sljk^L#+LBSiL6_J_zOE5y|g==-sXS75t4zY=$_?hQMe1%5LyU7=_QfOvQAzUm5%hiR7d@D^lxFq`g9v&@YM5#~h(gzjL>WL`<|Fk=+s6^F@0 z#T<;``)4d{7>6e?9$Rr64&!#big>(+1iZuN>id`gACefvYxsfzWxT}-gfpzb8)2E} zaF1o72aDwIa{k6P;$_)h5zyW5!Ky?LwE0PvVh?Qn4q|}pcCfqY`nySChT4Ni@{){Z z_(L94q=z#D9;{D~h>5s}Cj|Cju53Lc@H(o~BV!^jpf=fqEqgFQwztNF>%z#G$n)49 zF1ihN88Mf_bxQl)|SXN;;+mk7!Fh;4c@YXgAQy8(S zjLLLIVFp`w@H&&uw{#|Q*;>KYdd%Xzd^UD5nhks;pFlQV!QD8Gc{q<8wDDXs6~w;) diff --git a/src/SysFunc.java b/src/SysFunc.java index a8b0be7..328a8e4 100644 --- a/src/SysFunc.java +++ b/src/SysFunc.java @@ -24,6 +24,15 @@ public class SysFunc { static final String PURPLE = "\u001B[35m"; static final String CYAN = "\u001B[36m"; static final String BOLD = "\u001B[1m"; + // 清屏代码 + static final String CLEAR_SCREEN = "\033[H\033[2J"; + + + // 清屏方法 + public static void clearScreen() { + System.out.print(CLEAR_SCREEN); + System.out.flush(); + } public static void init(){ // 用户预加载 @@ -45,6 +54,7 @@ public class SysFunc { // 登陆界面 public static Teacher login(Scanner scanner) { + clearScreen(); boolean flag = false; System.out.println(BOLD + CYAN + "=== 数学题目生成系统 ===" + RESET); System.out.println(BOLD + CYAN + "请登录您的账户" + RESET); @@ -65,7 +75,6 @@ public class SysFunc { if (t.name.equals(cur_name) && t.password.equals(cur_password)) { teacher = t; flag = true; - System.out.println(GREEN + "当前选择为" + teacher.getType() + "出题"); break; } } @@ -78,18 +87,19 @@ public class SysFunc { // 切换类型界面 public static void ShiftType(Scanner scanner) { + System.out.println(GREEN + "当前选择为" + teacher.getType() + "出题"); int type = SysFunc.typeMap.get(SysFunc.teacher.getType()); System.out.println(BOLD + PURPLE + "=== 是否切换出题类型(y/n) ===" + RESET); System.out.print(BOLD + BLUE + "> " + RESET); String choice = scanner.nextLine(); if (choice.equals("y")) { - System.out.println(BOLD + YELLOW + "请输入指令: 切换** (支持小学,初中,高中难度): " + RESET); + System.out.println(BOLD + YELLOW + "请输入指令: 切换为** (支持小学,初中,高中难度): " + RESET); while (true) { System.out.print(BOLD + BLUE + "> " + RESET); String choice_type = scanner.nextLine(); - if (choice_type.substring(0, 2).equals("切换") && typeMap.containsKey(choice_type.substring(2))) { - type = typeMap.get(choice_type.substring(2)); + if (choice_type.length() >= 5 && choice_type.substring(0, 3).equals("切换为") && typeMap.containsKey(choice_type.substring(3))) { + type = typeMap.get(choice_type.substring(3)); if (type == 1) { teacher = new PrimaryTea(teacher.name, teacher.password, teacher.path); } else if (type == 2) { @@ -100,14 +110,14 @@ public class SysFunc { System.out.println(GREEN + "准备生成" + teacher.getType() + "数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"); break; } else { - System.out.println(RED + RESET + "请输入小学、初中和高中三个选项中的一个"); + System.out.println(RED + RESET + "请输入小学、初中和高中三个选项中的一个 (切换为**)"); } } } else if (choice.equals("n")) { - System.out.println(GREEN + "请继续输入题目数量:"); + System.out.println(GREEN + "准备生成" + teacher.getType() + "数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"); } else { System.out.println(RED + RESET + "无效输入,已为您设置默认类型:" + teacher.getType()); - System.out.println(GREEN + "请输入题目数量:"); + System.out.println(GREEN + "准备生成" + teacher.getType() + "数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"); } } diff --git a/src/Teacher.class b/src/Teacher.class index 4242b0ffa23500e43aff329b409a8d4c95c4ff37..f4726bd9ad4c26e8746575a273121895118b7ff0 100644 GIT binary patch delta 1504 zcmYLJU2Icj7=FI>^qltWY=n)!GYNBBDQ)*t{u$kd3}G-B1I8E($Kb3x+se9iv>ls> z)UC%@89!1@B5z5 zSAD(erYYoCqI#Rpz-ssfv|&5lX^q(eO9H`;)7Dul9Jj`Y!-vz!*!Xah2LS=4Aw8Ye z5kjqoIs^4+kbjCsu~vqQUdgN%C@Z+d65+O3-0rfiK|85q9X1+pW0Sz*z)!HZ#~oB%1`b0N za7W{bl&#^2{M6M@b(An)Qqw(>OiWn=aa%_ZdJP=M8}biVz3;>eD_*qyz^>`2J&}$j z#=SU+QyMG-1Bl8-Ws_T0H;{1hFPb3z>BDI&I@+DI zqD)nRGX|0%Ue%tCrP35!fgnLwVA8v$%90;okdL*K2CC z*f5LD5s&G~VQX*1`xBZ?Z&`B=+b-vyn%;SNhx=3xZ8_|X=%!wq!~V-CRW=tpK8KbT z-^k{FjOf|?!@@obGvZy44BC55J%?kaH}f!yiil?h{ic>f%{>ePIgB`#V;5AB%^z~z zfQn&U#3gj2i|bW3#)tT%uwKI#_>%kWcptOq`v#iqE~(8p z>iQf$pjwY8rb14+J$IA+QjSUzGKHgvvg`U5I;f2_0Xv{^-pkQO`gYT9A1&KS-Ck1G zL54c9g+tzogY@n~KW92hX$VI!!W)g@SfT%_;Mbm`l2_&3rj$8o|6+rNw>7*wf7Yk+ zk`MSPd0Mhugrr)!FEe(*#gfm~-Nh||n^bRP(*6I#+l&&zJHdMP6W&RfI7Mg{3oyV= zAEfmV?PK&9CcqK)OFzFKqXjtiaQ}l+4Kw07Ox7q5A5<2G1(@OA84#?X(Dw}L9Ndb6 Q&sYU00^h+epOiNL2kqQH*Z=?k delta 1510 zcmYLJOHf-?82%3Tm4sUqkitd#5K@{D60kf9;Ze$?v=%6@(n6^vgi8ns50lVRL~+JW zHyt~+XY5R?!*rp>1&#&k#g^7CbadQw<#gvxXB-!9oN+9J#{VYNPHygb{IBnP-+%6x zyFb}|M`MMuJ{OF}q6~t=IcP&Z>?-!5fI*%NjRqr81^fAmm?sy(siK%qiFq|8D%|ie zyb#c1hex8*;n|qp<%^9oyyS4UPx#LJO2fXXKxuC*5}XRunn}x4yoLijm)ZAMsHilf z6^ickP3jgLWDq^ExtI+#@G7WPQHOedkyYVaRl(N|Wo6U|6qp_S?{aBc`>DA^W*Cm0;U`OvURa8cT%Iwg;yOPCEm0 znpiqjoIn?EOLJLj(4(RkeSAL6PK$mOr*N8omR6+IU{J*wGlfXUoiyXls(1tE_^)Y& z*$wci7=g?n`NPvuUBM`SS@66%Mu?sh)i)lQzTg`P>o({ZR}sVnpAg*k@G~zu)3Fn+ zbAEj$7Mz~4VhYm=W>mb12;UGY<(P_DoacWDt=2hQR4}jNE#4y9g%F(lH}OLjp4$-5+Y1oe2m1zL=hcG~A|i{JLDmVr$>Z8e^WdpA|P_ zvuo+rQD%Jt0Wv^j%-I}`8^|AUt>YE1sEG#l+=A5{3s1#i^Gcdzz)@^&xW0n20)_)1 z#ZW{=zNQpSc#(f$D_q<~`+MNUUb5QBUVv56a6nXGQBae5fGy-I z$Zt|mBvbAs)YE$%V84^-Dn&gp(G}l?LI68T43u`de}E(`yG^v;R7paWoFnH*+>xHK zSe{j7p!yc%IIeA=VPFG|0~!T3t)taz(JTgz4tTBKqfWDC9XHT%Gx3LJP0hQdVFM=( z40vst&1GQdCNjjTbTei+Cw)1d_|9vKCmto&acExa_Dm&zt7bD0(5#D(;>h<}Rxzn5 z2FmXv3K+OxdM;d&Sv=7#EEDYkT*fu{(L>`Bb<0)UNRGGhDL$ulBd!nwA=xCW)@lcom1JY#lgV zsT;JngmNm-N+p^|o@V@r7CfeeKcS5;sP@5zE!2`oq>O(PVw(az0V{0J)XP_JpB~0Y zJp~P922FL#Q>0NyXcIgCCIuO;!;?}JAJbZ*Gc-DH z>1_}kT4bRLtzPNBnAbHkH?qP+&git}9+wnhyD(s+`GsOK6vWZ}g zJ`M#qN4-5va7M^`l>7q}q0{GPi~tQ`kUjxs*SjJ8gA4_$YzrFknV{Pt6NyCDD*erS afIOOno