• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Qi-09

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

作业总结3

第7次PTA作业

 这次的作业还是点菜程序,相较于前几次,这次的作业加的要求不多,也较为简单

 

 对于这个要求,首先要添加口味类型和对于桌号添加电话号码,这个就要重新写我们的正则表达式规则,又因为它有了客户的要求,所以我们可以添加一个客户类用于记录客户点了哪些菜。

 1 class Guest{
 2     String name;
 3     String phone;
 4     int bill = 0;
 5 }
 6 class Ledger{
 7     Guest[] guests = new Guest[1];
 8     
 9     void addGuest(Guest guest) {
10         if(searchGuest(guest.name) == null) {
11             Guest[] temGuests = new Guest[guests.length +1];
12             for(int i=1;i<guests.length;i++) {
13                 temGuests[i] = guests[i];
14             }
15             temGuests[temGuests.length -1] = guest;
16             guests = temGuests;
17         }//没有该客户
18         else {
19             for(int i=1;i<guests.length;i++) {
20                 if(guests[i].name.matches(guest.name)) {
21                     guests[i].bill = guests[i].bill + guest.bill;
22                 }
23             }
24         }
25     }
26     public void show() {
27         for(int i=1;i<guests.length-1;i++) {
28             for(int j=i;j<guests.length-1;j++) {
29                 if(guests[j].name.compareToIgnoreCase(guests[j+1].name) > 0) {
30                     Guest guest;
31                     guest = guests[j];
32                     guests[j] = guests[j+1];
33                     guests[j+1] = guest;
34                 }//j在后面
35             }
36         }
37         for(int i=1;i<guests.length;i++) {
38             if(i == guests.length-1) {
39                 System.out.print(guests[i].name +" "+ guests[i].phone +" "+  guests[i].bill);
40             }
41             else {
42                 System.out.println(guests[i].name +" "+ guests[i].phone +" "+  guests[i].bill);
43             }
44         }    
45     }
46     Guest searchGuest(String name) {
47         for(int i=1;i<guests.length;i++) {
48             if(name.matches(guests[i].name)) {
49                 return guests[i];
50             }
51         }
52         return null;
53     }
54 }

 第8次PTA

 这次的作业新开了一个类型对于课程的统计。首先分析下这个题目

 

 首先我们要写好框架,构建好类与类之间的关系

  一个学生可以有多个选课,所以CourseSelected以ArrayList作为student的一个属性。

然后是正则表达式,这些正则表达式要能够正确匹配读取的内容。

 1 String regexStudentInformation = "^[0-9]{8} \\S{1,10} \\S{1,10} .*$";
 2         String regexCourseInformation = "^\\S{1,10} (必修|选修) (考试|考察)$";
 3         //课程名称+英文空格+课程性质+英文空格+考核方式
 4         String regexElectiveGrade = "^[0-9]{8} \\S{1,10} \\S{1,10}( (\\d|[1-9]\\d|100)){1,2}$";
 5         //学号+英文空格+姓名+英文空格+课程名称+英文空格+平时成绩+英文空格+期末成绩
 6         String regexCompulsoryGrade = "^[0-9]{8} \\S{1,10} \\S{1,10}( (\\d|[1-9]\\d|100)){2}$";
 7         String regexEND = "end";
 8         
 9         String regexNumberModeErr = "^[0-9]{8} \\S{1,10} \\S{1,10} (\\d|[1-9]\\d|100)$";
10         //如果解析某个成绩信息时,输入的成绩数量和课程的考核方式不匹配,输出:学号+英文空格+姓名+英文空格+": access mode mismatch"
11         //java 必修 考试
12         //20201103 张三 java 20
13         String regexTypeModeErr = "^\\S{1,10} 必修 考察$";
14         //如果解析某个课程信息时,输入的课程性质和课程的考核方式不匹配,输出:课程名称+" : course type & access mode mismatch"
15         //java 必修 考察

然后通过这两句对输入的读取与划分。

stringLine = in.nextLine();
arrayLine = stringLine.split(" ");

 

posted on 2023-06-27 12:49  Qi_09  阅读(27)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3