آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سوالی دررابطه با برنامه نوشته شده به زبان جاوا

مکین رسانه  10 سال پیش  10 سال پیش
0 0

سلام دوستان من چندتا سوال در مورد کلاس زیرداشتم، لطف می کنید اگر راهنمایی کنید.

 
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 -  یک برنامه جداگانه برای تولید مجدد فایل نامه ها از روی پایگاه داده ساخته شده بنویسید

 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .