首页 > 其他分享 >10.19

10.19

时间:2024-10-18 14:10:57浏览次数:6  
标签:String filePath equation 10.19 答案 new public

一. 多选题(共6题,46.1分)

  1. (多选题)以下数据Java字节流操作的基础类是:
    A. Writer
    B. OutputStream
    C. InputStream
    D. Reader
    我的答案: BC:OutputStream; InputStream;正确答案: BC:OutputStream; InputStream;
    7.6分
  2. (多选题)表驱动编程中,表象查询的方法包括:
    A. 直接访问
    B. 阶梯访问
    C. 索引访问
    D. 表项的内容
    我的答案: ABC:直接访问; 阶梯访问; 索引访问;正确答案: ABC:直接访问; 阶梯访问; 索引访问;
    7.7分
  3. (多选题)影响应用程序选择数据的存储、管理和处理方式的因素包括:
    A. 数据的持久性和使用频次
    B. 数据的量及管理
    C. 共享与传输
    D. 数据的操作方式
    我的答案: ABCD:数据的持久性和使用频次; 数据的量及管理; 共享与传输; 数据的操作方式;正确答案: ABCD:数据的持久性和使用频次; 数据的量及管理; 共享与传输; 数据的操作方式;
    7.7分
  4. (多选题)软件中的数据包括:
    A. 外部数据
    B. 缓存数据
    C. 内部数据
    D. 网络数据
    我的答案: AC:外部数据; 内部数据;正确答案: AC:外部数据; 内部数据;
    7.7分
  5. (多选题)以下数据Java字符流操作的基础类是:
    A. OutputStream
    B. Writer
    C. Reader
    D. InputStream
    我的答案: BC:Writer; Reader;正确答案: BC:Writer; Reader;
    7.7分
  6. (多选题)断言分为如下几类:
    A. 前置断言
    B. 固定断言
    C.
    后置断言

D. 不变断言
我的答案: ACD:前置断言; 后置断言; 不变断言;正确答案: ACD:前置断言; 后置断言; 不变断言;
7.7分
二. 单选题(共2题,15.4分)
7. (单选题)CSV以纯文本形式存储数字和文本数据,以( )间隔多条记录。
A. 换行符
B. tab
C. 分号
D. 逗号
我的答案: A:换行符;正确答案: A:换行符;
7.7分
8. (单选题)软件实现数据持久性的最基本的途径是:
A. 文件和数据库
B. 变量
C. 网络数据
D. 缓存
我的答案: A:文件和数据库;正确答案: A:文件和数据库;
7.7分
三. 填空题(共4题,30.8分)
9. (填空题)一次性生成所有程序中需要的数据表的方法为()。
我的答案:
0分
(1) 数据库迁移
正确答案:
(1) 算式基
10. (填空题)()采用一定的模式可用来查找、显示或修改输入序列中出现的某个模式。
我的答案:
7.7分
(1) 正则表达式
正确答案:
(1) 正则表达式;Regular Expressions;RE
11. (填空题)根据算式基的设计使程序在表中通过选择条件得到算式及其运算结果的方法称()。
我的答案:
0分
(1) 表驱动法
正确答案:
(1) 表驱动编程
12. (填空题)()是让程序在运行过程中自我检查的代码
我的答案:
7.7分
(1) 断言
正确答案:
(1) 断言
四. 简答题(共1题,7.7分)
13. (简答题)编写代码完成将生成的算式及习题长期保存下来,采用CSV、XML、JSON三种形式进行存储并读取。提交相关代码及运行截图。
我的答案:7.7分

import java.io.;
import java.util.
;
import org.json.JSONObject;
import org.w3c.dom.;
import javax.xml.parsers.
;
import javax.xml.transform.;
import javax.xml.transform.dom.
;
import javax.xml.transform.stream.*;

// 抽象操作类
abstract class Operation {
public abstract int execute(int num1, int num2);
}

// 加法操作类
class AddOperation extends Operation {
@Override
public int execute(int num1, int num2) {
return num1 + num2;
}
}

// 减法操作类
class SubtractOperation extends Operation {
@Override
public int execute(int num1, int num2) {
return num1 - num2;
}
}

// 数据存储接口
interface DataStorage {
void save(String equation, boolean correct, String filePath) throws Exception;
List read(String filePath) throws Exception;
}

// CSV存储类
class CSVStorage implements DataStorage {
@Override
public void save(String equation, boolean correct, String filePath) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter(filePath, true));
writer.write(equation + "," + (correct ? "正确" : "错误") + "\n");
writer.close();
}

@Override
public List read(String filePath) throws IOException {
List records = new ArrayList<>();
BufferedReader reader = new BufferedReader(new FileReader(filePath));
String line;
while ((line = reader.readLine()) != null) {
records.add(line);
}
reader.close();
return records;
}
}

// XML存储类
class XMLStorage implements DataStorage {
@Override
public void save(String equation, boolean correct, String filePath) throws Exception {
File xmlFile = new File(filePath);
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc;

   if (xmlFile.exists()) {
       doc = docBuilder.parse(xmlFile);
   } else {
       doc = docBuilder.newDocument();
       Element rootElement = doc.createElement("Calculations");
       doc.appendChild(rootElement);
   }

   Element calcElement = doc.createElement("Calculation");
   calcElement.setAttribute("equation", equation);
   calcElement.setAttribute("result", correct ? "正确" : "错误");
   doc.getDocumentElement().appendChild(calcElement);

   TransformerFactory transformerFactory = TransformerFactory.newInstance();
   Transformer transformer = transformerFactory.newTransformer();
   DOMSource source = new DOMSource(doc);
   StreamResult resultFile = new StreamResult(xmlFile);
   transformer.transform(source, resultFile);

}

@Override
public List read(String filePath) throws Exception {
List records = new ArrayList<>();
File xmlFile = new File(filePath);
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xmlFile);

   NodeList nodeList = doc.getElementsByTagName("Calculation");
   for (int i = 0; i < nodeList.getLength(); i++) {
       Element element = (Element) nodeList.item(i);
       String equation = element.getAttribute("equation");
       String result = element.getAttribute("result");
       records.add(equation + " = " + result);
   }
   return records;

}
}

// JSON存储类
class JSONStorage implements DataStorage {
@Override
public void save(String equation, boolean correct, String filePath) throws IOException {
File file = new File(filePath);
JSONObject jsonObject = new JSONObject();
jsonObject.put("equation", equation);
jsonObject.put("result", correct ? "正确" : "错误");

   BufferedWriter writer = new BufferedWriter(new FileWriter(file, true));
   writer.write(jsonObject.toString() + "\n");
   writer.close();

}

@Override
public List read(String filePath) throws IOException {
List records = new ArrayList<>();
BufferedReader reader = new BufferedReader(new FileReader(filePath));
String line;
while ((line = reader.readLine()) != null) {
records.add(line);
}
reader.close();
return records;
}
}

// 练习器类
class Practice {
private DataStorage storage;
private Scanner scanner = new Scanner(System.in);

public Practice(DataStorage storage) {
this.storage = storage;
}

public void start() throws Exception {
System.out.println("开始加减法练习,按 'q' 退出。");
Random random = new Random();

   while (true) {

       int num1=0,num2=0;
       while (num1 <= num2) {
           num1 = random.nextInt(100);
           num2 = random.nextInt(100);
       }
       boolean isAddition = random.nextBoolean();

       Operation operation = isAddition ? new AddOperation() : new SubtractOperation();
       String equation = num1 + (isAddition ? " + " : " - ") + num2;
       int correctAnswer = operation.execute(num1, num2);

       System.out.print("计算 " + equation + " = ");
       String userInput = scanner.nextLine();

       if (userInput.equalsIgnoreCase("q")) {
           System.out.println("退出练习。请选择保存类型 (1. CSV, 2. XML, 3. JSON):");
           int choice = scanner.nextInt();
           scanner.nextLine(); // 清除换行符
           String filePath = "calculations.";
           switch (choice) {
               case 1:
                   filePath += "csv";
                   storage = new CSVStorage();
                   break;
               case 2:
                   filePath += "xml";
                   storage = new XMLStorage();
                   break;
               case 3:
                   filePath += "json";
                   storage = new JSONStorage();
                   break;
               default:
                   System.out.println("无效选择,默认保存为 CSV 格式。");
                   filePath += "csv";
                   storage = new CSVStorage();
                   break;
           }
           break;
       }

       int userAnswer;
       try {
           userAnswer = Integer.parseInt(userInput);
       } catch (NumberFormatException e) {
           System.out.println("无效输入,请输入数字。");
           continue;
       }

       boolean correct = userAnswer == correctAnswer;
       System.out.println(correct ? "答案正确!" : "答案错误。正确答案是 " + correctAnswer);
       storage.save(equation + " = " + userAnswer, correct, "calculations.csv");
   }

}

public void viewResults() throws Exception {
System.out.println("选择要查看的文件类型 (1. CSV, 2. XML, 3. JSON):");
int choice = scanner.nextInt();
scanner.nextLine(); // 清除换行符

   String filePath = "calculations.";
   switch (choice) {
       case 1:
           filePath += "csv";
           storage = new CSVStorage();
           break;
       case 2:
           filePath += "xml";
           storage = new XMLStorage();
           break;
       case 3:
           filePath += "json";
           storage = new JSONStorage();
           break;
       default:
           System.out.println("无效选择。");
           return;
   }

   List<String> results = storage.read(filePath);
   System.out.println("保存的练习结果:");
   for (String record : results) {
       System.out.println(record);
   }

}
}

// 使用示例
public class Main {
public static void main(String[] args) throws Exception {
Practice practice = new Practice(new CSVStorage());
practice.start();
practice.viewResults();
}
}

正确答案:

标签:String,filePath,equation,10.19,答案,new,public
From: https://www.cnblogs.com/wlxdaydayup/p/18474172

相关文章

  • 修改微信(3.9.10.19版本)系统托盘图标(傻瓜教程)
    微信版本:进行以下操作先退出微信1.iconfontLogo下载一个图标png,大小为256像素,前面颜色自己看着弄2.png转ico,转化链接(转化的网站很多不一定非要是这个)3.下载后续所需程序(ResHacker和IconWorkshopPortable)备用下载链接4.找到右击微信快捷键点击属性,打开所在位置,在文......
  • 10.19
    继承 publicclassParentChildTest{publicstaticvoidmain(String[]args){Parentparent=newParent();parent.printValue();Childchild=newChild();child.printValue();parent=child;parent.printValue();......
  • 10.19随笔
    SELECT语句用于从数据库中选取数据。SQLSELECT语句SELECT语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。SQLSELECT语法SELECTcolumn1,column2,...FROMtable_name;与SELECT*FROMtable_name;参数说明:column1,column2,...:要选择的字......
  • 10.19
    今日学习代码增加课程<%--CreatedbyIntelliJIDEA.TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title&l......
  • 10.19
    昨天晚上,uml把自己的设计的系统按照老师的要求修改了,今天老师没评价新改的系统怎么样,等着他后续发布体育课,又是新学似的一节课数据结构,今天学了数和森林,把森林和二叉树之间的相互转换学会了,还有哈夫曼树的一点点内容,离散里面就学过离散数学,今天的课不难,但是感觉课上老师发的练习题......
  • 10.19
    动手动脑运行示例并了解Java中实现异常处理的基础知识Java提供了一套异常处理机制,通过使用try-catch-finally语句块来捕获和处理异常。try语句块包含可能发生异常的代码,catch语句块用于捕获特定类型的异常并进行处理,finally语句块用于无论是否发生异常都要执行的代码,例如释放资......
  • 10.19
    学习sql语句DML(DataManipulationLanguage)数据操作语言 一、增加insertinto--写全所有列名insertinto表名(列名1,列名2,...列名n)values(值1,值2,...值n);--不写列名(所有列全部添加)insertinto表名values(值1,值2,...值n);--插入部分数据insertinto表名......
  • 大二打卡(10.19)
    周四今天做了什么:昨天晚上,uml把自己的设计的系统按照老师的要求修改了(老师建议换一个系统),今天老师没评价新改的系统怎么样,等着他后续发布体育课,学了扣球忽然就不会发球了,又是新学似的一节课数据结构,今天学了数和森林,把森林和二叉树之间的相互转换学会了,还有哈夫曼树的一点点内......
  • 每日总结10.19
    今天的一天过得非常充实,我参加了各种不同的课程和准备了一次令人兴奋的旅行。上午,我上了UML建模语言的课程,这是软件工程中非常重要的一部分,它帮助我们理解了如何设计和规划软件系统。之后,我参加了体育课,学习了乒乓球的正手和反手技巧。这是一种有趣的锻炼,也有助于保持身体健康。......
  • 2023.10.19
    1.0版本生成四则运算并存入数据库importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOE......