From bf2029fdfbe169c0508bbb4a59019c2938cb3acf Mon Sep 17 00:00:00 2001 From: Teptao <1650163832@qq.com> Date: Fri, 26 Sep 2025 12:22:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8C=85jar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ystem.jar => TestPaperGenerationSystem.jar | Bin 22276 -> 22718 bytes account/account.txt | 3 +- data/abc1/2025-09-25-23-32-56.txt | 19 ++++++ data/张三1/2025-09-26-12-07-17.txt | 19 ++++++ data/张三1/2025-09-26-12-07-26.txt | 23 ++++++++ .../Application.class | Bin 6651 -> 6620 bytes .../AuthService.class | Bin 1208 -> 1208 bytes .../UserRepository.class | Bin 1451 -> 2178 bytes src/Application.java | 22 ++++--- src/AuthService.java | 1 - src/UserRepository.java | 54 +++++++++++++----- 双击启动.bat | 14 +++++ 12 files changed, 130 insertions(+), 25 deletions(-) rename out/artifacts/TestPaperGenerationSystem_jar/TestPaperGenerationSystem.jar => TestPaperGenerationSystem.jar (61%) create mode 100644 data/abc1/2025-09-25-23-32-56.txt create mode 100644 data/张三1/2025-09-26-12-07-17.txt create mode 100644 data/张三1/2025-09-26-12-07-26.txt create mode 100644 双击启动.bat diff --git a/out/artifacts/TestPaperGenerationSystem_jar/TestPaperGenerationSystem.jar b/TestPaperGenerationSystem.jar similarity index 61% rename from out/artifacts/TestPaperGenerationSystem_jar/TestPaperGenerationSystem.jar rename to TestPaperGenerationSystem.jar index 6df129970fced65d277cf1b401e461b89ca4ae5f..7c4fd3bd8592059982878eba271245fac2c94f17 100644 GIT binary patch delta 6281 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 L!h!3eho1aDIhU1k diff --git a/account/account.txt b/account/account.txt index 0c40ab4..2ed9c9b 100644 --- a/account/account.txt +++ b/account/account.txt @@ -6,4 +6,5 @@ 李四3,123,初中 王五1,123,高中 王五2,123,高中 -王五3,123,高中 \ No newline at end of file +王五3,123,高中 +abc1,123,高中 \ No newline at end of file diff --git a/data/abc1/2025-09-25-23-32-56.txt b/data/abc1/2025-09-25-23-32-56.txt new file mode 100644 index 0000000..b1ebb8f --- /dev/null +++ b/data/abc1/2025-09-25-23-32-56.txt @@ -0,0 +1,19 @@ +1. (45^2) * (5 - sin(45) - 7 * 94 = ? + +2. cos(60) + 74 = ? + +3. 47 - cos(45) - 63) = ? + +4. 25 / 5 * cos(60) + 88) * (59^2) = ? + +5. tan(30) + 8 = ? + +6. 59 * cos(45) = ? + +7. 91 * tan(0) + 100 / sqrt(9) = ? + +8. 55 / tan(60) / 70 / sqrt(64) = ? + +9. tan(0) + 69 = ? + +10. sin(60) / sqrt(25) = ? diff --git a/data/张三1/2025-09-26-12-07-17.txt b/data/张三1/2025-09-26-12-07-17.txt new file mode 100644 index 0000000..31ce557 --- /dev/null +++ b/data/张三1/2025-09-26-12-07-17.txt @@ -0,0 +1,19 @@ +1. 7 - 7 - 0 * 1 = ? + +2. 19 + 16 = ? + +3. 20 + 37 = ? + +4. 8 / 2 = ? + +5. 65 + 76 * 7 - 363 - 466 = ? + +6. 72 * (5 - 125) = ? + +7. 83 * 2 = ? + +8. 6 * 2 = ? + +9. 56 - 33 = ? + +10. 43 / 1 - 41 / 1 = ? diff --git a/data/张三1/2025-09-26-12-07-26.txt b/data/张三1/2025-09-26-12-07-26.txt new file mode 100644 index 0000000..cf42724 --- /dev/null +++ b/data/张三1/2025-09-26-12-07-26.txt @@ -0,0 +1,23 @@ +1. 19 * sin(45) + sqrt(25) = ? + +2. sin(0) / (10^2) + 91) - 24 = ? + +3. (13^2) + (97 - tan(45) = ? + +4. sin(45) - sqrt(25) = ? + +5. 119 / cos(30) + 12 + (30^2) = ? + +6. (12 - (98^2) / sin(90) / 1 * 36 = ? + +7. 67 + 53 - 60 / sin(90) * 64 = ? + +8. sqrt(81) - 60 + sin(45) + 98 = ? + +9. tan(45) - 19) / sqrt(16) = ? + +10. 26 + 7 * tan(45) = ? + +11. (59 + (97^2) - tan(0) = ? + +12. 55 * (49^2) + sin(45) + 35 = ? diff --git a/out/production/TestPaperGenerationSystem/Application.class b/out/production/TestPaperGenerationSystem/Application.class index 0d4a9d14a7a9a82f892e182709df15859fe5bbec..e27b1c4ae561dd5fd7d11229318ba75d50ad48e2 100644 GIT binary patch delta 3336 zcmZ8j34D~r75~3I@_pGIa_lCAoFpNHkliFC5FjDkM+j`f5fX?3vceh`a=>PTpyE;$ z@u+Qa>=8~6Ak?bm%I2UT)k+(BQPElv(CH8TjFmoscGBL8LSTmeBRbcqZ?!4 zM3RPNfuTs*d1=gqR6<-shcB?$x1qhmA8Ze7v0)g@8Zrp>IsO)3y)UrIzuIR*I?U?! zaDi;($eEOrI)X)}cLvwq6v@R% z#W<;%3S!0!Ou$50Zpx-g*=U+%ufk*vQv{}Bn%rZm)ZLgNFcY)nWm9U56LSQr<)@}} zUe*ZAlUe38^2iGFlC&z+2`s=gf^|c{-xgGyED~6Zdf9ExOKu=oe4G8ey%ftdGzr|s zC-0gw^rcuXumUTk#ZpA8WSONP>rR0NtmYd9HKQAK_z0A(E;b9SgK3lfqFMn^)^;%#d#S#ak%-|FBb z4fn7e6$TsJxKCg!?k9+jpf?b#_jPpm+uI1S1s)~AL3D7?w+Va!56D65Y$G9`y zcvxTu>Iv~|Xl7?1;A;zde4BhNIv$nFVjf7U!s7y8#1n)VgPgkvRg$bud4FP>OxF?< zzDzI`l`4!o1)hYIRoaLgC%!81HN>z#YrSo2T6~`N=Jrme(1~vdbTMVyw4^F0b_?uL z#3x3i>hJakSFbhfE75%d`>~Qi_&e%4TYUllYPI`}z_T3U^IAF`knd~x9Oy#=-8d}M z^sK5acwXRJ3Xz==DeP_DR-XfeZHlIs1ir1@viaK9L`hQlc~sySj?17vA+85u4ZQ+= z=qIGeoqCEqug|cb#CJ5D5;)Bv%8bp|PvVTgckzmxADcVIjqeG(rhqs*ZqiuoYx4!X zTpSLVl<^;6P{TQaAL2)HZ)^qqL|%+7r1R2bbK76X1r2WqyosO73foNkTlj^Bw*}t8 zCAq_vlYChP?iB|txU5k8THrVMtvqELV}B37*YF2{KjKgFW80jZE9&O^T%SfMcLx0} zB_4lA(2gtktIDar$vf<6uD=uX*&92(K~54IKEOW&{;4?AgY8`P{^=)dIw zyPIq4KdP`|bX=A1*vs_S@u|RPxGs}LQOy=2K_+!Qjw!Ea#NKA#LT_-b12Nd9la^xhuA*TMbhhagAP$ z3)CoIPAs%6BV@^ii7B!;QImFu2st@EV7w01-gxCu4ak_e*BCSRE}qj=j__>fWU?|e zB2`n{IVkFWMPV*-T)X6$NIm*{Yxy@y6OIa8#bwy!p=t8an!OPAw*b+7@u*3jD z0N?0_U0r@qT~?kMn5H0}*V7r(3?yJSGBAfptwsUn^PA#fq_vogP#valv-hB${~F*$ zBLZl`J-FQ5x<^WzW!Wr3l@$<@vGi=|>T;9iF+y|J)G{FhUC41;!g#r^=qyr{0nVjYndVT@0L~g#mAME%kwV6u_L9SWX-ZFH6~f>$6ri1gAc;^ zZ~*@TDs`n?XM;S4@$o|%bzdLkwd0c;PADzc%-k2ti^A*yF%QaNh7+m4#ZWD4H@C~Z zNW?zoa6h-KXOWBNxWyjiK6416xj4*u_B?+{y#PNy&zo_CKO~M~7wdhRe;+~*UShoi z=*1uts#Gp#&YnaZjb`$7&e=*TB$v@W&)p2exo8-yc#YhAYGSj8sfda>T;uT+mCzW@ zk`*DeQYn?OkA8S*EREwANfokcv=Om#7K@yX=QCB(BUMQ!l71bFplfh)u9Jo>8s5_I zo`x%&+MjS$+}b4hqbHi3Q(3WkF}P!?>)jGc`q}UWHMxcKsG{%NhXs3VND?Hfxr-uu!W_~03!?}GdMFr1nVfG zSZiD1+SX81plY;Ilpqrb1+)qkT9*nfb*ZI`rPb1fZdO5h?t3Fm`+f7>d*8k1p5;IP zId|Tx{TnV43m4S;#yX(EEnr7qLV2lwU0`FNDio<|2ybYQ zH^rmDKwGW3*%}D1sp6ebcuj5DqI7uBPeXr!0m#{La@d$bgp7r;V03d#v?x)dwI8tB~M#~SWG;OTFIMm1imO>gY$60Efb(pAOlE7q4 zkqJwUUWsV}(@`&9vgD+BFjJsGUbGD2ekiwU;irVwv8W2uH^0?Vg-S3aunz0xGTTUMlMmS@>&1u&Y{0GZZQBfI3~>$Z0vkC9uYHIf z!zO{-u~{y%7r5_WZ7K&2RN_v71n!dC?FDID1@6H%x!*pW?vq#S6?v7oU*OBiZ@>g-X0$5b-3el;HK5!kB) z(?hYw_O@U&v`UG5N8kyCd_Pm~j9@qz4a9@e7 zzXkgRzNaE`azqM)aG)*d24SlL<9UID%2h`&yt*kEi-jU#MZrS?FW|6TtdGg)#t{ui z1$uCd&|jVq{pBHjit{*5XgDeGBI@G39L} z>V`$xK8qh|__4ricwOF=K91g$J?Z82mi!>S!g(G))$lWc3;4Orbxd`>gLgH&C-4ir zFV{H+doHTHz2b%q7gZ3y5%?`Wkb4}%oR{!>4Sx{$5Fg2R9rY!b)y+R~1sViwkB3^T z{GnLfiOcwlqQ_qep3(-{V)uCeM$o6<+8&5A1`b@oKLq}%aMR-vv$)+{cpodv|CZaG z6MM7PmnmPi^y#LeLjy7rL{sG> znZ-0+9?vYK8S?$i5^9ikR~^lk(_B@~IZS)1EF_)g$~#?CGH!Ozd}`8Y0Y^a#L`vqowk-EMLOISpo;_R&9(|Zq;avnR|*cbC2SApdt#-PG*#y zV_49rnFA5H$ke9{H-fol}Mp^k0 z_zovfeUR^4$irhk_ZXmn(_M&cwweoWgD62YN>PI{>c^-3OncOy2Jlxd3MhvLvQMPY zWIf8O7M3BN3%fAJU7N&&@)uB@#ME7IlqWHx^ZFH@W_4cw2;3p8hH1qyU<7oGWC%tv z6k`l?!c=6Mqd_cVgGF~yuCXG@V^a;E!$GBds`PA8hUX+PmknnpG2icA6I<;YME)(GC=;Ab5G(i`bIH zmspl1dT=+uH#*@|m+w`Vm1jmwb;#uPB#vn^T$sjSO=m#s8O&Lz!fcMxkHiGbK^-@G zKjx!}+j{^D5ycX0#!>@-axfG$hQ7U0?{UEW5(Y)ONp$<^kJrSemWgrX(I*oI;XO zoa26|B8iC8n!$^*nf0>!u z{}6>Ai&WjrJLjxh}_Er02TwpD?T8jZ`&o^>#KYPW*&7*!e==QJk}&#>RU&wxf8P z_}%)Y5e4t$_TX2&aQt zuO#vJ9{dZa(Uo$Y4f34CC)+gYyncq)?yH|Wp|pHv1@HNiWa%OM4IIr1oX>3x*u_n9 zH?r_3WB3?1(!Kn*Zy(ATh0#bniJ9nRo;`yVc$Qgs0Gsd}cH()yb`X2``zh|c2e|k4 zaG{?;w*mfg#%w1t$V-I`Y%6N0f_z5zJbNPzXH#jg;}li$sfEoxO;t3E5g(0*X*i95 zEx~5nsG3Hyk0AtT6piLbNfokcw5He?CX;zKmd{i!hpLj!BKt$EnlaWJ<4j|mWsH7f RY@|he!@<&vshO4`=RYvKhGGB! diff --git a/out/production/TestPaperGenerationSystem/AuthService.class b/out/production/TestPaperGenerationSystem/AuthService.class index bfa23c7d05f09f870d5c21ba3412caa283f2747b..95d509c4e50ab53874e14298c831c320f0e801aa 100644 GIT binary patch delta 21 ccmdnNxr1|qFAJw6gEE5@gDQjU>b061X;bN~PV delta 21 ccmdnNxr1|qFAJv>gEE6OgDQjE>b062UEcK`qY diff --git a/out/production/TestPaperGenerationSystem/UserRepository.class b/out/production/TestPaperGenerationSystem/UserRepository.class index 621f0bb952838588b6f7b1d5b8e2c6c0777385f9..84c6af7e1ab9d2daf23b17fa7d6703870b4b3359 100644 GIT binary patch literal 2178 zcmaJ?TXz#x6#h;woirUTO}G^lL7;7V3n0oRwP+~_n6}tLq2h&Ua@r0|GI1^iUgQy% zYv~i}@{Koqa)C=zp$qiM2Y&}t{Rz5Q;&*0Jnpof==bY?0``dee`*ME&_uc~lgYc7x zAgUpzBaSA4wHJ*!BWoGune6D)MOp9!n)=PM=?w@(J2Mj+5(4ePCEqixY{4!Ue8-Vx zFMH(a@wnm64jYvuG(?-x0$sx@9jmcMVD%YSI%Be8yQXJ5R|RyRf+52*rVLjKtjRB9 z6C#(SdaI6<@~zdfjiSjX9g8m65c^rxq#Ba36wC`w1e27%PlH+4Id zC$LFieP7ln6l|Yv*Y-Z|ikHNCY*s{U;f>DFlYokG&oRq0xy(coX}qj%Y!yh?ZqRaw zT>HLF$9B9bkZ|Zn-Yhe!b)A`&XbJ2T5Isq>qeDZdjtsgQ5)fJyh`SZbWFk7A<T_Pq8dKrb!y5TmtV3-YY;@$I2)&#As)jA$6uaY_|n7;mEy0j;7;T4j}jF&*PLO|NDo`EIX|_eJbZ z;H-voIwtY{QiBAoJQ|Q-SOQ6Vdc?OZ#jrr<^Kl#0avDBh|DO1NgEx%vqqn zJYR^D@QGM9O2kU7w8!ri!*ws)4ofC($vMgR;}yg4h?agvbI~y?=;1jDM z4j|eVG`d_Zb*08{tHwQ}aEUC`B3M0bmWzW|Rs5m14a6@^pwLz$@dCT+bM%6%{mb+w z$8Fy!NHrH3Xk*g)RI71_weW2aIL}{7O>gcW^3jOkBSd-Td%^W%N=^pB$AG zpG<9>N83DJ%6C`s%H;5G80tywsAAVh?}MhB*w-7~TSfPwSZ^%Y&aar9lV9~aJV;*^z>FS(DTbJ==mQolsZ{O{tm-yB@I)Y zHU-S!B6q-n&-XKm3p@`nAYcn`ZN+A6Q}Z7k*nuo|azyUJVNT?8=p;slC|ju8L+uRa z(2Y+ys1*%kNbr6JMMzS#pBU3T#i`pyo06n#r*sx3ZEnO6y^tiUmAaQ;k+3=HmrxGK zyjCOAChi_IKSryD^kX&L+W$d>TmKXFHfw01oc|!W#Q%mE)G(MJL1vAI<&S`XDW=tj|u`hbVTipe;|qqii%1!F$5Er-hf=dB(5|Xj5#b! z2+@sh2ni;d8Nd+Nx^U?Y%xH`oy#eFb18F3aCa2%qr|;YLJ$;m2^4!mV*EWDlOucYl z4Lf8F?8e8}_1crjW{-h&clNtdhHexCz$t4Z^A#o=HQS#s!0goGUu@qKZwv9J(16yoH^i}l*FLzn=u97%*&j*9p( z_q4t?FP7tC`MLB`TS^HK%ZWsIWsfdS`JCpA`jU#gVb0o&_?+XsvaKoOf||DGl}eAO zUskvJn!aBd#gI?i#cnxYlx|FE$CNoui>zZ{Okm3df5Iw8xQ;zjWyc5H@I7vjStpnY zGC^yQtCC-(GsUz9JsR{hgI*1Kw?O4TOTQ-lLJn`w8qi>%85A`rHiJP81_d139u;X2 zC7_bLa9NXbLSpbv7cwqu318NoSa?!Zh5}isE8rfj%+kg)a=anW2JL*KgWq&=Sseam zbzEUWl)+W5Nxf35P*aXOkd6B)u5!}k6G4rk6`>~aQ{yc_ey%tvC)ecWt)zIm&ZO|o NO}in}P2ncD{sBC^mQ4Tv diff --git a/src/Application.java b/src/Application.java index 16790ef..23b9314 100644 --- a/src/Application.java +++ b/src/Application.java @@ -29,7 +29,7 @@ public class Application { * 通过依赖注入的方式,在这里创建并组装各个服务模块的实例,确保各模块职责单一。 */ public Application() { - this.scanner = new Scanner(System.in, "UTF-8"); + this.scanner = new Scanner(System.in); // 创建数据访问层的实例 IUserRepository userRepository = new UserRepository(); @@ -44,19 +44,24 @@ public class Application { * 启动并运行应用程序的主循环。 * 该方法会持续监听用户输入,并根据用户当前的登录状态(已登录或未登录), * 分别调用不同的处理逻辑。 - * @throws IOException 如果在处理输入输出时发生错误 */ - public void run() throws IOException { + public void run() { System.out.println("欢迎使用中小学数学卷子自动生成程序!"); while (true) { - if (!sessionManager.isUserLoggedIn()) { - handleLoggedOutState(); - } else { - handleLoggedInState(); + try { + if (!sessionManager.isUserLoggedIn()) { + handleLoggedOutState(); + } else { + handleLoggedInState(); + } + } catch (Exception e) { + System.out.println("error"); + break; } } } + /** * 处理用户未登录状态下的逻辑。 */ @@ -204,9 +209,8 @@ public class Application { * 应用程序的入口点 (main方法)。 * 负责创建 Application 实例并启动主循环,从而开始整个程序。 * @param args 命令行参数(本项目中未使用) - * @throws IOException 如果在程序运行期间发生IO错误 */ - public static void main(String[] args) throws IOException { + public static void main(String[] args) { Application app = new Application(); app.run(); } diff --git a/src/AuthService.java b/src/AuthService.java index e9038df..52ce22d 100644 --- a/src/AuthService.java +++ b/src/AuthService.java @@ -21,7 +21,6 @@ public class AuthService implements IAuthService { */ public Optional login(String username, String password) { Optional userOptional = userRepository.findByUsername(username); - // 检查用户是否存在,以及密码是否匹配 if (userOptional.isPresent() && userOptional.get().getPassword().equals(password)) { return userOptional; diff --git a/src/UserRepository.java b/src/UserRepository.java index 0812340..09b084b 100644 --- a/src/UserRepository.java +++ b/src/UserRepository.java @@ -1,31 +1,57 @@ +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; /** * 用户仓库的内存实现。 - * 在程序启动时,预加载所有预定义的用户账户。 + * 在程序启动时,从文件中加载所有用户账户。 */ public class UserRepository implements IUserRepository { private final Map userDatabase = new ConcurrentHashMap<>(); public UserRepository() { - // 初始化预定义的9个用户账户 - // 小学老师 - userDatabase.put("张三1", new User("张三1", "123", "小学")); - userDatabase.put("张三2", new User("张三2", "123", "小学")); - userDatabase.put("张三3", new User("张三3", "123", "小学")); - // 初中老师 - userDatabase.put("李四1", new User("李四1", "123", "初中")); - userDatabase.put("李四2", new User("李四2", "123", "初中")); - userDatabase.put("李四3", new User("李四3", "123", "初中")); - // 高中老师 - userDatabase.put("王五1", new User("王五1", "123", "高中")); - userDatabase.put("王五2", new User("王五2", "123", "高中")); - userDatabase.put("王五3", new User("王五3", "123", "高中")); + // 从文件中加载用户数据 + loadUsersFromFile(); } + /** + * 从指定的文本文件中加载用户信息。 + * 文件的每一行应遵循 "username,password,level" 格式。 + */ + private void loadUsersFromFile() { + // 使用 try-with-resources 语句确保 BufferedReader 被正确关闭 + try (BufferedReader reader = new BufferedReader(new FileReader("./account/account.txt"))) { + String line; + // 逐行读取文件 + while ((line = reader.readLine()) != null) { + // 使用逗号分割每行的数据 + String[] parts = line.split(","); + // 确保每行都有三部分:用户名、密码和用户级别 + if (parts.length == 3) { + String username = parts[0].trim(); + String password = parts[1].trim(); + String level = parts[2].trim(); + userDatabase.put(username, new User(username, password, level)); + } + } + } catch (IOException e) { + // 如果文件未找到或发生其他IO错误,打印错误信息 + System.err.println("从文件加载用户数据时出错: " + "./account/account.txt"); + } + } + + + /** + * 根据用户名查找用户。 + * + * @param username 要查找的用户的用户名。 + * @return 如果找到用户,则返回一个包含该用户的Optional; + * 如果未找到,则返回一个空的Optional + */ @Override public Optional findByUsername(String username) { return Optional.ofNullable(userDatabase.get(username)); diff --git a/双击启动.bat b/双击启动.bat new file mode 100644 index 0000000..af5264d --- /dev/null +++ b/双击启动.bat @@ -0,0 +1,14 @@ +@echo off +:: 1. 将控制台环境设置为 UTF-8,确保中文输入输出正确 +chcp 65001 > nul + +:: 2. 告诉 Java 虚拟机(JVM) 使用 UTF-8 编码 +set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 + +:: 3. 运行你的 JAR 包 +echo loading... +java -jar TestPaperGenerationSystem.jar + +:: 4. 清理环境变量并暂停,以便查看程序输出 +set JAVA_TOOL_OPTIONS= +pause \ No newline at end of file