네 가지 연산 랜덤 생성기 -----부분 코드 설명 및 모든 코드 주소
제목 요구
소프트웨어의 기본 기능은 다음과 같습니다.프로그램은 입력 매개 변수 n을 받은 다음에 n개의 가감승제(기호 ±*÷로 표시) 연습 문제를 무작위로 생성할 수 있다. 숫자마다 0과 100 사이, 연산자는 3개에서 5개 사이이다.2. 각 연습 문제에는 적어도 두 가지 연산자가 포함되어야 한다.또한 초등학생은 점수와 마이너스의 개념이 없기 때문에 당신이 낸 연습문제는 연산 과정에서 마이너스와 비정수가 나타나면 안 된다. 예를 들어 3÷5+2=2.6, 2-5+10=7 등 산식이 나타나면 안 된다.연습문제가 생성된 후, 생성된 n개의 연습문제와 그에 대응하는 정답을 파일'result.txt'에 출력하고, 추가 정보를 출력하지 마십시오. 파일 디렉터리는 프로그램 디렉터리와 일치합니다.4. 프로그램이 받은 매개 변수가 4일 때 다음은 출력 파일의 예이다.2018010203 13+17-1=2911*15-5=160 3+10+4-16=1 15 ÷5+3-2=4 소프트웨어 부가 기능 요구 사항은 다음과 같습니다.문제 출제와 정답 구해를 포함한 괄호가 있는 연산식을 지원한다.산식에 존재하는 괄호 수는 반드시 2쌍보다 크고 연산자의 개수를 초과해서는 안 된다는 것을 주의해야 한다.2. 확장 프로그램 기능은 진분수의 출제와 연산을 지원한다(예를 들어 1/6+1/8+2/3=23/24).본 기능을 실현할 때 연산시 점수의 자동화를 지원해야 한다. 예를 들어 1/2+1/6=2/3이 4/6이 아니라 계산 과정과 결과가 모두 진분수가 되어야 한다.
코드 주소: 글의 밑부분 참조
프로젝트 예상 시간 및 실제 시간
psp2.1
작업 내용
계획 완료에 필요한 시간 (h)
실제 완성에 필요한 시간 (h)
Planning
계획
0.1
0.1
Esimate
이 임무는 얼마나 걸릴지 가늠하다
50
24
Developement
개발하다
48
22.5
Analysis
수요 분석(신기술 학습 포함)
2
2
Design Spec
설계 문서 생성
1
1
Coding Standard
코드 사양
1
0.5
Design
구체적 설계
2
1
Coding
세부 코드
20
15
Coding review
코드 재심
1
1
Test
테스트
1
2
Reporting
보고
3
1.5
Test Report
테스트 보고서
0
0
Size Measurement
작업량을 계산하다
0.5
0.5
Postmortem & Process Improvement Plan
사후 총결산을 하고 과정 개선 계획을 제출하다
1
1
부분 코드 설명
기본 기능
사칙 연산 표현식 생성하기
int num = sc.nextInt();
boolean judge=judge(num);
Random random=new Random();
int realnum=num-random.nextInt(num);
char[] operator=new char[]{'+','-','*','/'};
// 。
if(judge){
//
for(int i=0;i
결과에 음수와 소수가 나타나는 것을 피하다
try {
String a ="";
a=a+jse.eval(ex);
int b = Integer.valueOf(a);
if( b<0) {
i=i-1;
}
else{
expression1.add(ex);
}
}
catch (NumberFormatException e) {
// TODO Auto-generated catch block
i=i-1;
}
추가 기능
임의 생성 괄호
int m=random.nextInt(n-1)+2;
int num0=0;
while(num0==0){
for(int k=0;k
소포의 숫자를 삭제하는 무의미한 괄호
ArrayList numbers=new ArrayList();
for(int b=0;b<=n;b++) {
String number0='('+String.valueOf(number[b])+')';
numbers.add(number0);
}
num0=0;
for(String number0:numbers) {
ex=ex.replace(number0, String.valueOf(number[num0]));
num0++;
}
진분수 가감 연산
for(int i=0;inumber[k+1]) {
int temp=number[k];
number[k]=number[k+1];
number[k+1]=temp;
}
}
result1=number[0];
result2=number[1];
boolean flag=false;
boolean flag2=false;
for(int k=0;k<=n-1;k++) {
result1=number[(k+1)*2]*result2+number[(k+1)*2+1]*result1;
result2=result2*number[(k+1)*2+1];
int result0=division(result1,result2);
result1/=result0;
result2/=result0;
if(k==n-1&&result1>result2) {
flag=true;// ,
}
else if(k==n-1&&result1==result2) {
flag2=true;// 1, 1, 1/1
}
}
if(flag) {
i--;
continue;
}
String ex = new String();
for(int k=0;k
총결산
/이번 작업은 많은 시간이 걸렸는데 그 중에서 개인적으로 가장 어려운 점은 괄호를 생성하는 것이다. 오른쪽 괄호를 생성하는지 왼쪽 괄호를 생성하는지 안 생성하는지 어떻게 판단하는가이다.진분수는 상대적으로 간단하다. 정상적인 두 냥으로 연산하고 순환하여 마지막 결과를 얻는다.스스로 써서 자바 라이브러리의 다양한 함수 운용을 미리 숙지할 수 있다면 작업량이 크게 줄어들 것이다. 이번 프로젝트를 포함해서도 자바스크립트의 eval 함수를 사용하여 계산된 코드량을 면할 수 있다.그리고 스트링 클래스의 일부 함수도 나를 도와 많은 일을 면하게 했다.나는 자바가 가지고 있는 함수를 유연하게 활용하는 것을 습득하면 많은 일을 줄일 수 있다는 것을 깊이 느꼈다.그 밖에 코드를 쓰기 전에 인터넷에서 다른 사람의 코드를 참고하고 선인의 경험을 빌려 더 적은 시간에 더 많은 일을 할 수 있고 다른 사람의 지혜를 배워서 자신의 생각보다 더 많은 것을 얻을 수 있다.
github 주소:https://github.com/lost1deer/javaWork.git
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.