بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
سوالی دررابطه با برنامه نوشته شده به زبان جاوا
سلام دوستان من چندتا سوال در مورد کلاس زیرداشتم، لطف می کنید اگر راهنمایی کنید.
import java.io.*;
import java.sql.*;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
public class SampleClass {
static String pattern =
"با سلام،\r\n" +
"جناب آقای/سرکار خانم {0} کسب رتبه {1}ام در واحد {3} را به شما تبریک می گوییم." +
"\r\n\r\n درود";
public void start() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, "utf-8"));
System.out.println("42 Please enter number of company units:");
String line = reader.readLine();
int unitCount = Integer.parseInt(line);
List[] units = new List[unitCount];
for (int i = 0; i < unitCount; i++) {
List unitData = new ArrayList();
units[i] = unitData;
System.out.println("42 Please enter name of unit " + (i + 1) + ":");
line = reader.readLine();
unitData.add(line.trim());
System.out.println("42 Please enter number of personnel superior unit " + unitData.get(0) + ":" );
line = reader.readLine();
int topPersonelCount = Integer.parseInt(line);
for (int j = 0; j < topPersonelCount; j++) {
System.out.println("42 Please enter name of person no " + (j + 1) + " in unit " + unitData.get(0) + ":");
line = reader.readLine();
unitData.add(line.trim());
}
}
File baseDir = new File("cards");
baseDir.mkdir();
for (List unit : units) {
File unitDir = new File(baseDir, (String) unit.get(0));
unitDir.mkdir();
for (int i = 1; i < unit.size(); i++) {
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(new File(unitDir, unit.get(i) + ".txt")), "utf-8");
String content = MessageFormat.format(pattern, unit.get(i), i, unit.get(0));
writer.write(content);
writer.close();
}
}
initializeDB();
Connection connection = DriverManager.getConnection("jdbc:sqlite:fnp.db");
connection.setAutoCommit(false);
for (List unit : units) {
for (int i = 1; i < unit.size(); i++) {
String name = (String) unit.get(i);
PreparedStatement preparedStatement = connection.prepareStatement("insert into person (unit, rank, name, content) (?,?,?,?)");
preparedStatement.setString(1, (String) unit.get(0));
preparedStatement.setInt(2, i);
preparedStatement.setString(3, name);
preparedStatement.setString(4, "محتویات نامه تبریک");
preparedStatement.execute();
preparedStatement.close();
}
}
connection.commit();
connection.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void initializeDB() throws ClassNotFoundException, SQLException {
Class.forName("org.sqlite.JDBC");
Connection connection = DriverManager.getConnection("jdbc:sqlite:fnp.db");
connection.setAutoCommit(false);
Statement statement = connection.createStatement();
statement.executeUpdate("drop table if exists person");
statement.executeUpdate("create table person (id INTEGER PRIMARY KEY , unit string, rank INTEGER, name string, content string)");
statement.close();
connection.commit();
connection.close();
}
public static void main(String[] args) {
new SampleClass().start();
}
}
سوال2 - برنامه را به نحوی تغییر دهید که در انتهای نامه عبارت "از طرف واحد <نام واحد>" اضافه شود
سوال3 - برنامه را به نحوی تغییر دهید که فایل نامههای قبلی در ابتدای هر بار اجرا پاک شوند
سوال4 - برنامه را به نحوی تغییر دهید که محتوای نامه در ستون مربوط به آن در پایگاه داده ذخیره شود
سوال5 - برنامه را به نحوی تغییر دهید که اگر کاربر تعداد افراد برتر یک واحد را غیر از عدد وارد کرد خطای آن نمایش داده شده و سوال مجدداً تکرار شود
سوال6 - برنامه را به نحوی تغییر دهید که در انتهای برنامه افراد را با نام واحد مرتب کرده و نمایش دهید
سوال7 - یک برنامه جداگانه برای تولید مجدد فایل نامه ها از روی پایگاه داده ساخته شده بنویسید
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .