Java Assignment3
Important Notes
3.
1. The assignment is an individual project, to be finished on one’s own effort.
2. 20% mark deduction will be given for late submission within 2 days, and 0 for even later;
Plagiarism is strictly forbidden, regardless of the role in the process. Notably, ten consecutive
lines of identical codes are treated as plagiarism. Using AI to directly generate code will also
be regarded as plagiarism. Depending on the seriousness of the plagiarism, 30% − 100% marks
will be deducted.
Marking Criterion
1. The full score of the assignment is 300 marks.
2. Three java programs are to be submitted. Each program will be evaluated with several unseen
test cases. A submission obtains the full score if and only if both programs pass all test cases.
Running Environment
1. The submissions will be evaluated in the OJ system running Java SDK 21. It is the students’
responsibility to make sure that his/her submissions are compatible with the OJ system.
2. The submission is only allowed to import four packages of (java.lang.*; java.util.*; java.math.*;
java.io.*) included in Java SDK, and StdIn / StdOut from textbook. No other packages are
allowed.
3. All students will have an opportunity to test their programs in the OJ platform prior to the
official submission.
Submission Guidelines
1. You will get your grade only if you submit your code both on OJ and on bb on time.
2. For bb submission, you need to directly upload your java file on bb. That is, your submission should be BanishLetter.java, W ordSearching.java, and M athExpr2.java. Wrong
submission format will receive 10% mark deduction.
3. Inconsistency with or violation from the guideline leads to marks deduction.
4. All students are reminded to read this assignment document carefully and in detail. No argument will be accepted on issues that have been specified in this document.
1
Programs
There are 3 independent programs in this assignment, and each is worth 100 points.
Banish Letter
Given multiple char values and strings, write a Java program named ”BanishLetter.java” that delete
all the given char values from the strings.
Input: The first line contains multiple char values C = {c1, c2, ..., cn}, each seperated by a space.
The second line is a positive integer T, followed by T lines of strings.
Output: For each string s, delete all characters c ∈ s such that c ∈ C, and output the result.
That is, the output should be T lines. There’s no extra space at the end of a line, or extra blank
row between two lines.
For all test cases, 1 ≤ T ≤ 100, 1 ≤ length of s ≤ 30, 1 ≤ n ≤ 30. All ci ∈ C and characters
in strings are upper case letters, or lower case letters, or digits.
An example of console input Expected console output
o l k
1
HelloWorld
HeWrd
An example of console input Expected console output
C 0 S
3
CSC2003
cuhksz
Switch
23
cuhksz
witch
WordSearching
Given an m × n 2D character grid board and multiple string words. For each word ∈ words, print
true if word exists in the grid, and print false otherwise.
A word must be formed from letters in adjacent cells in right order, where ”adjacent” cells are
those that are adjacent horizontally or vertically. Letters in the same cell are not allowed to be used
repeatedly.
Hint: You can refer to the following example for better understanding.
Input: The first line contains 2 integers m, n, each separated by a space. Then, for the following m lines, each line contains n capital letters separated by a space. Then, the following line is a
integer T; for the following T lines, each line contains a string consisting of only capital letters.
Output: For each string, output true if the string exists in the grid, and output false otherwise.
For all test cases, 1 ≤ m, n ≤ 30, 1 ≤ T ≤ 10, and 1 ≤ the length of each string ≤ 30.
2
An example of console input Expected console output
3 4
I A X R
S I R I
R I T S
1
IRIS
true
An example of console input Expected console output
3 4
C B C B
A D B A
D B C B
3
ABCBA
CBCBA
DBCBDB
false
true
true
Math Expression 2
Write a Java Program (MathExpr2.java) with the following requirement.
(1) It evaluates the value of math expressions, and outputs an integer value.
(2) Each math expression includes (see the example below): numbers (integers and doubles); operators of “+” (addition), “-“ (subtraction), “*” (multiplication) and “/” (division); functions
including “sin” (sine function), “cos” (cosine function), “tan” (tangent function) and “sqrt”
(square root function); “(“ and “)” (brackets); possibly blank space.
(3) All expressions are valid. The output is an integer value after rounding.
3
Input: The first line is a integer T. For the following T lines, each contains a math expression.
Output: T lines, each containing a integer, which is the result of the corresponding expression.
For all test cases, 1 ≤ T ≤ 30, and 1 ≤ length of a expression ≤ 50.
An example of console input Expected console output
8
1+2.0*sin(37+(25*3))
(2+ 3.50)*4 *sqrt(sin(1.5))
-3+4/ (2.5+3.7)
(-3+4)/2.5+3.9
1.2-3.5* 5.2 -13.2
1.2-3.5*5.2-13.7
2.3*5*7 - 12*9/8
-sin(3.5-sqrt(4)) + cos(tan(2.5))
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp