предположить, что мой текстовый файл состоит в следующем:прочитать файл и определить строку
NOT VOTED/1/gello/18
NOT VOTED/2/tara/24
механизмы, как status if user already voted or not/voter's number/name/age
я разделил информационную строку в массив так как этот
info[0]=status/info[1]=voters number/info[2]=name/info[3]=age
вот функция моей программы:
- посмотреть файл
- позволяет пользователю ввести избиратель номер
- если число избирателей соответствует информации [1], перейдите к шагу 3
- в то время как информация [0] содержит «ПРОГОЛОСОВАЛИ» он получит сообщение об ошибке, что количество этого избирателя уже проголосовало и введите номер другого избирателя. если ложно оно приступит к процессу голосования
- Сейчас информация [0] будет изменен, чтобы «ПРОГОЛОСОВАЛ»
вот мой код:
File original = new File("C:\\voters.txt");//open the original file
File temporary = new File("C:\\tempvoters.txt");//create temporary file
BufferedReader infile = new BufferedReader(new FileReader(original));//read the file
PrintWriter outfile = new PrintWriter(new PrintWriter(temporary));//write the data
vNum=JOptionPane.showInputDialog("Enter voters number: ");
String line=null;
String something="VOTED";
while((line=infile.readLine())!=null){
String [] info=line.split("/");
if(info[1].matches(vNum)){
while(info[0].matches(something)) {
JOptionPane.showMessageDialog(null, "Voter already voted or Voter not registered. Please try again");
vNum=JOptionPane.showInputDialog("Enter voters number: ");
}
President();
Vice_President();
info[0]="VOTED";
all=info[0]+"/"+info[1]+"/"+info[2]+"/"+info[3]+"/"+info[4]+"/"+info[5]+"/"+info[6]+"/"+info[7]+"/"+info[8]+"/"+info[9]+"/"+info[10]+"/"+info[11]+"/"+info[12];
outfile.println(all);
outfile.flush();
}
else{
outfile.println(line);
outfile.flush();
}
}
infile.close();
outfile.close();
original.delete();//delete the original file
temporary.renameTo(original);//rename the temporary file to original file
теперь это происходит в коде, который я изготовленный под заказ:
предположим ввод 1
как избиратели номер. и поскольку информация [0] все еще содержит «NOT VOTED», она перейдет к процедуре голосования, и после этого элемент info [0] теперь содержит «ГОЛОСОВАТЬ». теперь после этого процесса он вернется в главное меню. теперь, когда я снова вернусь к другому номеру избирателей, я снова попробовал ввести 1
, чтобы узнать, появится ли сообщение об ошибке. он сделал. поэтому я снова ввел номер другого избирателя, который равен 2
, и его информация [0] по-прежнему содержит «NOT VOTED», но сообщение об ошибке все равно появится! я действительно застрял в этом процессе, и я не знаю, что с этим делать, потому что я действительно не знаю, что не так. думать, что функции в этом методе моей программы одинаковы с другими методами, которые у меня были. пожалуйста, пожалуйста, пожалуйста, помогите
я попытался изменить его в информации [0] .matches («ПРОГОЛОСОВАЛ»), но это все та же:/вы можете предложить о том, как я должен это делать? – bruh
Отредактировано мое сообщение, чтобы включить предложение. –
О, это уже работает !!!!!!! но по-прежнему существует проблема, как после процесса голосования сообщение об ошибке снова появится и заставляет меня вводить номер избирателя снова – bruh