四则运算+文件

  1 package Forth;
  2 import java.io.*;
  3 import java.util.*;
  4 public class Main1 {
  5
  6     public static void main(String[] args) throws IOException {
  7         // TODO 自动生成的方法存根
  8 try{
  9 List<Question>questionBase=new ArrayList<Question>();//题库
 10 int r=4;//操作数范围
 11 int n=10;//题目个数
 12 Question q=new Question(1);
 13 questionBase.add(q);
 14 while(questionBase.size()<n||Question.isRepeated(questionBase)){
 15     q=new Question(r);
 16     questionBase.add(q);//一个个向数据库添加内容
 17 }
 18
 19 //生成题目文件,生成写入文件
 20 BufferedWriter bw1=new BufferedWriter(new FileWriter("C:\\Users\\ASUS\\Desktop\\四则运算\\Questions.txt"));
 21
 22 String e="C:\\Users\\ASUS\\Desktop\\四则运算\\Questions.txt";
 23
 24 System.out.println("***5**");
 25 for(int i=0;i<questionBase.size();i++){
 26     String s1=i+1+"."+questionBase.get(i)+"\r\n";
 27     bw1.write(s1);
 28 }
 29 bw1.flush();//把流的内容压倒文件中显示出来
 30     bw1.close();
 31     //br1.close();
 32
 33 //生成答案文件Answers.txt
 34 BufferedWriter bw2=new BufferedWriter(new FileWriter("C:\\Users\\ASUS\\Desktop\\四则运算\\Answers.txt"));
 35 for(int i=0;i<questionBase.size();i++){
 36     String s=questionBase.get(i).result+"*"+"\r\n";
 37     bw2.write(s);
 38 }
 39 bw2.flush();
 40 bw2.close();
 41 System.out.println("请打开文件并在文件中输入答案:");
 42 System.out.println("如果作答完成,请及时保存。。。。并输入1");
 43 Scanner in=new Scanner(System.in);
 44 int flag=in.nextInt();
 45 if(flag==1){
 46 //读答题文件
 47     BufferedReader br1=new BufferedReader(new FileReader(e));
 48     List<String> exercises=new ArrayList<String>();
 49     List<String> answers=new ArrayList<String>();
 50     String str="";
 51     str=br1.readLine();
 52     for(int i=0;null!=str;i++)
 53       exercises.add(str.replace(i+1+". "+questionBase.get(i),""));
 54   br1.close();
 55   String d="C:\\Users\\ASUS\\Desktop\\四则运算\\Answers.txt";
 56 //读取答案文件
 57   BufferedReader br2=new BufferedReader(new FileReader(d));
 58  for(int i=0;null!=(str=br2.readLine());i++)
 59       answers.add(str=br2.readLine());
 60   br2.close();
 61 String correct="",wrong="";
 62 List<Integer> corrects=new ArrayList<Integer>();
 63 List<Integer> wrongs=new ArrayList<Integer>();
 64 for(int i=0;i<answers.size();i++){
 65     if(exercises.get(i).equals(answers.get(i))) corrects.add(i+1);
 66     else wrongs.add(i+1);
 67 }
 68 for(int i=0;i<corrects.size();i++) correct+=corrects.get(i)+",";
 69 for(int i=0;i<wrongs.size();i++) wrong+=wrongs.get(i)+",";
 70 if(corrects.size()>0) correct=correct.substring(0,correct.length()-1);
 71 if(wrongs.size()>0) wrong=wrong.substring(0,wrong.length()-1);
 72
 73
 74
 75 System.out.println("*****");
 76 //对错题数量统计
 77 String a="";
 78 for(int i=0;i<args.length;i++){
 79     if(args[i].equals("-e")) e=args[i+1];
 80     if(args[i].equals("-a")) a=args[i+1];
 81 }
 82 //没有给出答题文件路径
 83 if(e.equals("")){
 84     System.err.println("404: The exercises file is not found!");
 85     return;
 86 }
 87 //没有给出答案文件路径
 88 if(a.equals("")){
 89     System.err.println("404: The answers file is not found!");
 90     return;
 91 }
 92 //生成分数文件Grade.txt
 93 BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\Users\\ASUS\\Desktop\\四则运算\\Grade.txt"));
 94 bw.write("Correct:"+corrects.size()+"("+correct+")\r\nWrong:"+wrongs.size()+"("+wrong+")");
 95 bw.flush();
 96 bw.close();
 97 }
 98 }  catch(FileNotFoundException e) {
 99     e.printStackTrace();
100 }
101 catch(IOException e) {
102     e.printStackTrace();
103 }
104
105     }
106 }

3.5h



原文地址:https://www.cnblogs.com/daisy99lijing/p/9966160.html

时间: 2024-10-15 05:16:13

四则运算+文件的相关文章

最佳vim技巧

最佳vim技巧----------------------------------------# 信息来源----------------------------------------www.vim.org         : 官方站点comp.editors        : 新闻组http://www.newriders.com/books/opl/ebooks/0735710015.html : Vim书籍http://vimdoc.sourceforge.net/cgi-bin/vim

用C++实现一元多项式的四则运算包括数据的文件导入与导出

对于一元多项式我们都再熟悉不过了,这是使用数据结构的单链表进行实现的,下面贴一下我的实现代码,欢迎批评指导 //test.h #pragma once #include<iostream> #include<fstream> using namespace std; class P_Sum { public: typedef struct P_node { double coef; int index; P_node* next; }P_node; P_Sum():head(Buy

随机生成 10道四则运算题目 累计得分 输出文件

00 import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner in = new Scanner(System.in); Counter counter=new Counter(); PrintWriter out = null; tr

四则运算题目生成程序

a.需求分析 看了大家对于本课程的目标和规划,很多同学都希望能提高自己的实践能力,没有捷径可走,就是练习.练习再练习!那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 =

不太完美的四则运算

拖啊拖,终于记得把它上传了! 题目 写一个能自动生成小学四则运算题目的命令行"软件",分别满足下列各种需求.下面这些需求都可以用命令行参数的形式来指定: a.)除了整数以外,还支持真分数的运算.(例如1/6+1/8=7/24). b.)让程序能接受用户输入的答案,并判断对错.最后给出总对/错的数量. c.)逐步扩展功能和可以支持的表达式类型,最后希望能支持下面类型的题目(最多10个运算符,括号的数量不限制): 25-3*4-2/2+89=?          1/2+1/3-1/4=?

计算四则运算表达式(Java语言实现)

计算四则运算表达式主要是分两步运算  第一步是把 中缀表达式 转换成 后缀表达式.参考大一下期学的 <数据结构与算法分析--C语言描述>3.3.3 教材,完成下列代码: static String mid_to_suf(String str){ Stack<Character> s = new Stack<Character>(); String suf = new String(); HashMap<Character, Integer> map = ne

软件工程之四则运算用户调研及反馈

经过一周才来写这篇用户调研反馈,有点晚了些哈.这一周来,app下载的人数虽然不多,但我们私下还是找了好几个用户进行调研反馈: 1.大部分觉得还是不错,界面挺好看的,计算器的设置,给用户使用app时提供很多方便 2.存在很多bug,在做题时,当用户输入答案时,首位输入“.“”/”“空”等情况时,会直接退出运算界面,退到上一界面 3.计算器也存在同种情况,只能进行两个数的运算,但三个数运算时,就会出错,例:1+2+3时,就会直接出错 4.运算过程中有一个“答率”,没有利用数据库或文件数据保存,但退出

软件工程附加篇章:进阶四则运算和Core对接

0x01 :计算模块(Core)和前端对接 首先特别结对编程刘乾组(SivilTaram)提供的计算模块(Core),http://www.cnblogs.com/SivilTaram/p/4859934.html 在Core模块的说明文档中,我们可以清晰发现在计算模块Core主要实现了表达式计算.四则运算表达式生成.题目文件和答案文件的审核的功能: 但在设计思路上:          在整体的设计思路上,SivilTaram组的Core模块同样将写入和读取文件的逻辑封装在计算模块中:但在自己的

个人项目---四则运算题目生成器项目记录

本次作业是设计并实现一个四则运算题目随机生成器(支持分数运算),其功能包括生成题目文件,并自动生成对应的答案文件,以及根据输入的题目文件,对输入的答案文件进行批改打分. 时间表格 PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 24h Development 开发 · Analysis · 需求分析 (包括学习新技术) 2h · Design Spec · 生成设计文档 2h ·