四则运算java_小学生四则运算JAVA
組員:黃浩格,何坤
一、項(xiàng)目說明
1題目:實(shí)現(xiàn)一個(gè)自動(dòng)生成小學(xué)四則運(yùn)算題目的命令行程序。
2說明:
自然數(shù):0, 1, 2, …。
? 真分?jǐn)?shù):1/2, 1/3, 2/3, 1/4, 1’1/2, …。
? 運(yùn)算符:+, ?, ×, ÷。
? 括號(hào):(, )。
? 等號(hào):=。
? 分隔符:空格(用于四則運(yùn)算符和等號(hào)前后)。
? 算術(shù)表達(dá)式:
e = n | e1 + e2 | e1 ? e2 | e1 × e2 | e1 ÷ e2 | (e),
其中e, e1和e2為表達(dá)式,n為自然數(shù)或真分?jǐn)?shù)。
? 四則運(yùn)算題目:e = ,其中e為算術(shù)表達(dá)式。
3需求:
使用 -n 參數(shù)控制生成題目的個(gè)數(shù),例如
Myapp.exe -n 10
將生成10個(gè)題目。
使用 -r 參數(shù)控制題目中數(shù)值(自然數(shù)、真分?jǐn)?shù)和真分?jǐn)?shù)分母)的范圍,例如
Myapp.exe -r 10
將生成10以內(nèi)(不包括10)的四則運(yùn)算題目。該參數(shù)可以設(shè)置為1或其他自然數(shù)。該參數(shù)必須給定,否則程序報(bào)錯(cuò)并給出幫助信息。
生成的題目中計(jì)算過程不能產(chǎn)生負(fù)數(shù),也就是說算術(shù)表達(dá)式中如果存在形如e1 ? e2的子表達(dá)式,那么e1 ≥ e2。
生成的題目中如果存在形如e1 ÷ e2的子表達(dá)式,那么其結(jié)果應(yīng)是真分?jǐn)?shù)。
每道題目中出現(xiàn)的運(yùn)算符個(gè)數(shù)不超過3個(gè)。
程序一次運(yùn)行生成的題目不能重復(fù),即任何兩道題目不能通過有限次交換+和×左右的算術(shù)表達(dá)式變換為同一道題目。例如,23 + 45 = 和45 + 23 = 是重復(fù)的題目,6 × 8 = 和8 × 6 = 也是重復(fù)的題目。3+(2+1)和1+2+3這兩個(gè)題目是重復(fù)的,由于+是左結(jié)合的,1+2+3等價(jià)于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重復(fù)的兩道題,因?yàn)?+2+3等價(jià)于(1+2)+3,而3+2+1等價(jià)于(3+2)+1,它們之間不能通過有限次交換變成同一個(gè)題目。
其中真分?jǐn)?shù)在輸入輸出時(shí)采用如下格式,真分?jǐn)?shù)五分之三表示為3/5,真分?jǐn)?shù)二又八分之三表示為2’3/8。
在生成題目的同時(shí),計(jì)算出所有題目的答案,并存入執(zhí)行程序的當(dāng)前目錄下的Answers.txt文件,格式如下:
答案1
答案2
特別的,真分?jǐn)?shù)的運(yùn)算如下例所示:1/6 + 1/8 = 7/24。
程序應(yīng)能支持一萬(wàn)道題目的生成。
程序支持對(duì)給定的題目文件和答案文件,判定答案中的對(duì)錯(cuò)并進(jìn)行數(shù)量統(tǒng)計(jì)
二、PSP表格
三、設(shè)計(jì)思路
1、將整數(shù)統(tǒng)一為分?jǐn)?shù)形式,利用random隨機(jī)生成數(shù)和符號(hào),以字符串?dāng)?shù)組的方式存儲(chǔ)(一個(gè)數(shù)組只包含一個(gè)分?jǐn)?shù)或者一個(gè)符號(hào)),編寫加減乘除算法。
2、在 題目 文件的控制臺(tái)輸入 題目數(shù) 數(shù)的上限 ,就可生成對(duì)應(yīng)題目在 題目.txt,對(duì)應(yīng)答案存放在 正確答案.txt 文件中,學(xué)生在 學(xué)生答案.txt中輸入每題答案,對(duì)錯(cuò)和分?jǐn)?shù)在 成績(jī)分?jǐn)?shù).txt中呈現(xiàn)。
四、代碼實(shí)現(xiàn)
五、測(cè)試結(jié)果
六、總結(jié)
1、一開始想從整數(shù)入手,后來發(fā)現(xiàn)很多算法不適用于分?jǐn)?shù),于是再將整數(shù)化為分?jǐn)?shù),再重寫各種算法。
2、有兩三個(gè)要求沒有實(shí)現(xiàn),比如括號(hào)和運(yùn)算過程不能出現(xiàn)負(fù)數(shù),而且生成題目速度較慢,以后會(huì)努力盡量改進(jìn)這些。
3、寫代碼的時(shí)間分配不是很好,有時(shí)寫兩三小時(shí),有時(shí)只有半個(gè)鐘,分工不是很明確,下次會(huì)注意的。
java小學(xué)生四則運(yùn)算帶面板版 但我不知道為什么同類變量卻進(jìn)不了動(dòng)作監(jiān)聽中去
---恢復(fù)內(nèi)容開始--- package yun; import java.util.*; import java.awt.*; import java.awt.event.ActionEvent; ...
3.結(jié)對(duì)編程成果報(bào)告(小學(xué)生四則運(yùn)算的出題程序,Java實(shí)現(xiàn))
程序名稱:小學(xué)生四則運(yùn)算的出題程序 先附上代碼: package com.makequestion; import java.text.DecimalFormat;import java.util.R ...
作業(yè)六:小學(xué)生四則運(yùn)算之NABCD模型與產(chǎn)品Backlog。
NABCD模型與產(chǎn)品Backlog NABCD模型 ) N (Need 需求) 方便了老師和學(xué)生,使他們可以想要的時(shí)候隨時(shí)可以得到,省時(shí)省力,快速出題,馬上得到答案. ) A (Approach 做法 ...
30道小學(xué)生四則運(yùn)算題C/C++編程
軟件工程科課上,老師通過實(shí)例講解什么是程序,程序和軟件的區(qū)別,要求我們通過短時(shí)間寫一道編程題, 題目就是編寫30道小學(xué)生四則運(yùn)算題.以下就是源代碼: #include
四則運(yùn)算 Java 楊輝鵬,鄭冠華
四則運(yùn)算 Java 楊輝鵬,鄭冠華 GitHub鏈接:https://github.com/yanghuipeng/arithmetic 項(xiàng)目相關(guān)要求 使用 -n 參數(shù)控制生成題目的個(gè)數(shù),例如 -n ...
《軟件工程》小組團(tuán)隊(duì)項(xiàng)目-小學(xué)生四則運(yùn)算APP(First Sprint)
團(tuán)隊(duì)項(xiàng)目我們小組選擇了小學(xué)生四則運(yùn)算APP,在上學(xué)期原有的項(xiàng)目基礎(chǔ)上進(jìn)行更新升級(jí).(自我感覺我們團(tuán)隊(duì)上學(xué)期的小學(xué)生四則運(yùn)算APP是較為成功且實(shí)用的,不過這學(xué)期學(xué)習(xí)到了新的知識(shí), ...
第三周結(jié)對(duì)項(xiàng)目--小學(xué)生四則運(yùn)算CAI軟件匯報(bào)及總結(jié)(UI/web)
前言: 這周是和我隊(duì)友蘇衛(wèi)喜一起結(jié)對(duì)開發(fā),我主要是寫項(xiàng)目文檔需求分析,她是通過我的需求文檔來進(jìn)行做思維導(dǎo)圖,之后我們通過思維導(dǎo)圖一起討論用戶界面設(shè)計(jì). 以下就是我的需求分析1.0版本 1.?? 軟件名 ...
作業(yè)6小學(xué)生四則運(yùn)算測(cè)試APP的NABCD模型
小學(xué)生四則運(yùn)算測(cè)試NABCD模型 組員:李新,朱浩龍,葉煜穩(wěn),陳俊金,林德麟 (1)??N (Need?需求) 需求分析: 四則運(yùn)算是小學(xué)生學(xué)習(xí)數(shù)學(xué)的核心和基礎(chǔ),必須經(jīng)過大量的練習(xí)才能熟練掌握,但是一 ...
使用MFC做一個(gè)簡(jiǎn)單的‘能自動(dòng)生成小學(xué)生四則運(yùn)算的軟件’
這是軟件工程的第一次作業(yè)!但由于我們python還沒入門,所以這次的要求是‘語(yǔ)言不限’. 小學(xué)期做過一個(gè)關(guān)于MFC的‘資金管理系統(tǒng)’,也正好可以有界面,所以就選擇了自己很熟悉的MFC來做這個(gè)作業(yè)! 1 ...
隨機(jī)推薦
ASP.NET MVC圖片管理(上傳,預(yù)覽與顯示)
先看看效果(下面gif動(dòng)畫制作有點(diǎn)大,5.71MB): 題外話:上面選擇圖片來源于Insus.NET的新浪微博:http://weibo.com/104325017?也是昨晚(2015-07-03)I ...
C#獲取 URL參數(shù)
假設(shè)當(dāng)前頁(yè)完整地址是:http://www.test.com/aaa/bbb.aspx?id=5&name=kelli "http://"是協(xié)議名 "www.te ...
Java并發(fā)編程核心方法與框架-CountDownLatch的使用
Java多線程編程中經(jīng)常會(huì)碰到這樣一種場(chǎng)景:某個(gè)線程需要等待一個(gè)或多個(gè)線程操作結(jié)束(或達(dá)到某種狀態(tài))才開始執(zhí)行.比如裁判員需要等待運(yùn)動(dòng)員準(zhǔn)備好后才發(fā)送開始指令,運(yùn)動(dòng)員要等裁判員發(fā)送開始指令后才開始比賽 ...
第二百五十二天 how can I 堅(jiān)持
明天就要去旅游了...還不知道去哪呢,只知道要滑雪,要泡溫泉,還要去西柏坡..哈哈. 其他沒什么了吧.只是昨晚刷的鞋還沒干,不知道明天會(huì)不會(huì)干,明天還得早走會(huì),九點(diǎn)之前就得到. 還不知道坐車坐多長(zhǎng)時(shí)間 ...
CenOS下安裝Eclipse并配置PyDev
為方便安裝,使用SecureCRT來操作CentOS 1. 更改網(wǎng)絡(luò)配置 虛擬機(jī)使用橋接方式上網(wǎng)(默認(rèn)是NAT方式) 2. 啟動(dòng)后讓虛擬機(jī)上網(wǎng) 3. 啟動(dòng)終端查看ip地址 4. 使用SecureCRT ...
修復(fù)服務(wù)器上出現(xiàn)ImportError: cannot import name main的問題
在服務(wù)器上成功升級(jí)pip2之后再運(yùn)行pip2命令出現(xiàn)如下報(bào)錯(cuò)信息 Traceback (most recent call last): File "/usr/bin/pip2.7" ...
Java的數(shù)組堆溢出問題
在寫測(cè)試方法的時(shí)候,生成了一個(gè)數(shù)組,之后報(bào)了堆溢出錯(cuò)誤,這樣的報(bào)錯(cuò)一般來說只要有一些JVM的基礎(chǔ)都知道要用-Xmx.-Xms來開更大的堆,接下來看看我碰到的一個(gè)堆溢出的問題 在測(cè)試代碼中開了一個(gè)500 ...
JAVA對(duì)URL的解碼【轉(zhuǎn)】
前段時(shí)間做URL的中文轉(zhuǎn)換,有些url是utf8的格式,有的是gb2312的格式,很難區(qū)分到底是utf8還是gb2312,找了好久,發(fā)現(xiàn)網(wǎng)上的一個(gè)牛人寫的轉(zhuǎn)換代碼: package org.apach ...
三:Jquery-event
一:jq中事件 1.頁(yè)面載入事件 ready()方法 格式: $(document).ready(function(){}); $(function(){}); 2.綁定事件 click(),dblc ...
總結(jié)
以上是生活随笔為你收集整理的四则运算java_小学生四则运算JAVA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 群组消息,极光IM- 群
- 下一篇: 【STM32F4系列】【HAL库】旋转编