Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите доделать программу 
V
    Опции темы
mycodeurnightmare
Дата 13.11.2014, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.10.2014

Репутация: нет
Всего: нет



Доброго времени суток.
Есть программа, в которой нужно ввести, а потом вывести таблицу выпускников(имя количество дипломов учреждение год окончания) и обрабатывающая 2 исключения, пользовательское и деление на ноль.
Так вот, при обработке исключения "деление на ноль", т.е., когда у выпускника ноль дипломов, нужно сделать 2 варианта выхода из цикла:
1)продолжить ввод(т.е. ввести количество дипломов данного выпускника заново и продолжить дальше вводить).
2)начать ввод заново(судя по всему, вообще начать работу программы заново).
Не понимаю как это можно осуществить.
Заранее огромное спасибо за помощь.
Вот имеющийся код.
Код

package lol5.pkg2;

/**
 *
 * @author Veta
 */
import java.io.IOException;
import javax.swing.*;
public class lol5 {
   

    /**
     * @param args the command line arguments
     * @throws java.io.IOException
     */
   
    public static void main(String[] args) {
        
        // TODO code application logic here
        //инициализация списка допустимых значений   
    String list[] = {"MIIT",
             "MGU",
             "MIFI",
             "IUIT",
             "ITTSU",
             "RNI",
             "IEF",
             "RGSU",
             "MGPU",
             "MIP",
             "SGU",
             "MGSU",
             "MIET"};
    int obrCount = list.length;

       try{
            StringBuffer str=new StringBuffer();
            char ch;
            int n, k=10, g, a, b = 1;
            boolean flag=true;
            int sw=0;
         
             g=Integer.parseInt(JOptionPane.showInputDialog("Задайте год"));
             if(flag=true)
            System.out.println("Введите количество выпускников: ");
            while((ch=(char)System.in.read())!='\n')
                str.append(ch);
            n=Integer.parseInt(str.toString());
           
            String name[]=new String[n];
            int kolvo[]=new int[n];
            String obr[][]=new String[n][];
            int god[][]=new int[n][];
            
            for(int i=0;i<n;i++)
                
            {
              //  if(flag==false) break;
                
                try{
                System.out.println("Введите ФИО выпускника:");
                str=new StringBuffer();
                while((ch=(char)System.in.read())!='\n')
                    str.append(ch);
                name[i]=new String(str.toString());
                System.out.println("Введите количество дипломов:");
                str=new StringBuffer();
                while((ch=(char)System.in.read())!='\n')
                    str.append(ch);
              kolvo[i]=Integer.parseInt(str.toString());
              a=b/kolvo[i];
           }catch (ArithmeticException e){
               System.out.println("Человек не имеет дипломов!\n ");
               sw=Integer.parseInt(JOptionPane.showInputDialog(" 1-продолжить ввод \n 2-начать ввод "));
               switch(sw){
                   case 1: flag=true; 
                       break;
                   case 2: flag=false;
                       break;
                    
               }
           }
             //   if(flag==true){
                   

                obr[i]=new String[kolvo[i]];
                god[i]=new int [kolvo[i]];


                

                for(int j=0;j<kolvo[i];j++){
                    while(true)
            try
            {
              
              int f = 0;

                    System.out.println("Введите название учебного учреждения:");
                    str=new StringBuffer();
                    while((ch=(char)System.in.read())!='\n')
                        str.append(ch);
                    obr[i][j]=new String(str.toString());
                    //проверка ввода на соответствие допустимым значениям
                
              for (k = 0; k<obrCount; k++)
              {
                if (obr[i][j].compareTo(list[k])==0) 
                    f = 1;
              }
                
//создание исключительной ситуации
              
              if (f==0) throw new MyException(1);
             
              break;
            
            }
             catch(MyException ex)
              { 
              System.out.println("Выберите учреждение из списка\n");
             for (k = 0; k<obrCount; k++){
                System.out.println(list[k]);
                 
             }
             }
                
                  
                    System.out.println("Введите год обучения:");
                    str=new StringBuffer();
                    while((ch=(char)System.in.read())!='\n')
                        str.append(ch);
                    god[i][j]=Integer.parseInt(str.toString());
                    }
                
        //    }
            }
          if(flag==true){
         double max=kolvo[0];
            int imax=0;
            int jmax=0;
            for(int i=0;i<n;i++)
                for(int j=0;j<kolvo[i];j++){
                    if (max < kolvo[i]) {
                        max = kolvo[i];
                        imax=i;
                        jmax=j;
                    }
                    {
     
                
                
                
                }
                } 
            System.out.println("Исходная таблица:");
            for(int i=0;i<n;i++){
                System.out.print("\n"+name[i]+" "+kolvo[i]);
                for(int j=0;j<kolvo[i];j++)
                    System.out.print(" образовательное учреждение "+obr[i][j]+" год обучения "+god[i][j]);
            }
            System.out.println("\n"+"Результат:");
            System.out.println("Выпускник- "+name[imax]+" учреждения- "+obr[imax][jmax]);
            System.out.println("Выпускники "+g+" года:" );
            {
                for(int i=0;i<n;i++)
                for(int j=0;j<kolvo[i];j++){
                    if(g==god[i][j]){
                        
                      System.out.println(name[i]);
            
                    }
                }
            }
            
       }
       }
       catch(IOException e){
            System.out.println(e.toString());
    }
    }
}



Код

package lol5.pkg2;

/**
 *
 * @author Veta
 */
public class MyException extends Exception{
  int err;
  MyException(int e)
  {
    System.out.print("Ошибка: ");
    if (e==1) System.out.println("Данного учреждения нет в списке");
  }

}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.