[英]How to generate output file for given input file in java
我在編碼平台中提交代碼時遇到了麻煩。
一位當地音樂家正在舉辦一場音樂會,為慈善事業籌集資金。 音樂會將在市政廳舉行,寬敞的場地非常適合舉辦此類活動。
r
排座位,每排正好包含s
個座位。有一個問題 - 音樂會可能已經超額預訂,這意味着如果每個買票的人都來參加音樂會。 他們中的一些人可能不得不站立。
現在這位音樂家找你,不是為了建議,而是為了回答以下問題:
如果每個買票的人都來找座位,最終會有多少人坐着,有多少人站着?
這是我的程序:
package Prerequisite;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;
public class Solution {
static private final String INPUT ="sitin.txt";
static private final String OUTPUT ="sitout.txt";
public static void main(String[] args) {
FileInputStream instream = null;
PrintStream outstream = null;
try {
instream = new FileInputStream (INPUT);
outstream = new PrintStream ( new FileOutputStream (OUTPUT));
System.setIn (instream);
System.setOut (outstream);
} catch (Exception e) {
System.err.println ( "Error Occurred." );
}
Scanner sc=new Scanner(System.in);
int r=sc.nextInt();
int s=sc.nextInt();
int ticket=sc.nextInt();
if((r*s)>=ticket)
{
System.out.println(ticket+" "+0);
}
else
{
System.out.println(r*s+" "+(ticket-r*s));
}
}
}
輸入 7 12 100
Output 84 16
當我 16 歲時,我開始使用偽代碼進行編程: 結構圖,一種邏輯流的可視化。 這可能有助於通過分而治之的方式解決分解問題。
但首先開始定義您給定的輸入和預期的 output - 將其稱為您的用戶界面(此處:基於文件)
您將獲得一個文件,其中包含由空格字符分隔的 3 條記錄的行:
7 12 100
以上3條記錄代表讀入變量的數字,如下:
rows
seats
tickets
程序應將其 output 寫入文件。 所以這個文件包含一行有 2 條記錄,即由空格分隔的數字(類似於給定的輸入格式)。 首先是占用seats
的總計數。 其次是剩下的不能坐下和standing
的游客的數量。 例如:
84 16
我不能在這里畫結構圖。 對於您的任務 amd 語言(Java),我建議您從幾條評論開始。 只需像電影情節一樣用不同的場景(輸入、處理、輸出)寫下應該發生的事情。 像這樣:
// (1) read parameters (3 variables) from input (file):
// open given input-file (sitin.txt)
// read first line from file
// close file
String content = Files.readString(path, StandardCharsets.US_ASCII);
// split the read line by delimiter space into 3 strings (e.g. array)
// convert the 3 strings into number variables (e.g. rows, seats, tickets
// (2) calculate maximum seats (capacity) and ticket-category distribution (seated VS standing):
// do the math ..
// return the results (e.g. an object with two fields/variables: totalSeated, totalStanding)
// (3) write results to output:
// open given output-file (sitout.txt)
// write 3 variables delimited by space to the file
// close file
您現在已將問題分為 3 個塊。 每個都可以單獨解決。 因此,您可以將程序構造成 3 種方法。
它可能是您解決任何問題的關鍵。 它通過以下模式/原則而廣為人知並廣泛實踐:關注點分離、單一責任原則或簡單地分治。
它有很多好處:孤立的開發和孤立的測試。 在這種情況下:您可以在 stackoverflow 上提出 3 個單獨的問題
對於 (1) 我已經找到了答案: File-Reading ,我已經在上面的評論之間插入了。
您嘗試編寫哪種方法? 您在哪里需要我們的幫助:1、2 或 3?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.