[关闭]
@Sarah 2015-11-05T17:55:23.000000Z 字数 4771 阅读 1340

JAVA 大作业

java笔记
上次课的作业

  1. package reminder;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.IOException;
  8. import java.io.InputStreamReader;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. public class ReminderTest {
  12. BufferedReader kbr;
  13. public ReminderTest() {
  14. this.kbr = new BufferedReader(new InputStreamReader(System.in));
  15. }
  16. // 读取文件到array list
  17. public List txtToList() {
  18. List<String> todoList = new ArrayList<String>();
  19. try {
  20. FileReader fr = new FileReader("日程.txt");
  21. BufferedReader br = new BufferedReader(fr);
  22. while (true) {
  23. String s = br.readLine();
  24. if (s == null)
  25. break;
  26. todoList.add(s);
  27. }
  28. } catch (Exception e) {
  29. e.printStackTrace();
  30. }
  31. return todoList;
  32. }
  33. // 写数组到txt
  34. public void listToTxt(List<String> todoList) {
  35. try {
  36. File f = new File("日程.txt");
  37. BufferedWriter bw = new BufferedWriter(new FileWriter(f));
  38. for (int i = 0; i < todoList.size(); i++) {
  39. bw.write(todoList.get(i) + "\n");
  40. }
  41. bw.close();
  42. } catch (IOException e) {
  43. // TODO Auto-generated catch block
  44. e.printStackTrace();
  45. }
  46. }
  47. // 查看
  48. public void check() {
  49. List<String> todoList = txtToList();
  50. for (String s : todoList) {
  51. String ss[] = s.split(";");
  52. System.out.println("name:" + ss[0]);
  53. System.out.println("address:" + ss[1]);
  54. System.out.println("date:" + ss[2]);
  55. System.out.println("time:" + ss[3]);
  56. if (ss.length > 4)
  57. System.out.println("alarm:" + ss[4]);
  58. System.out.println("-----------------------------------");
  59. }
  60. }
  61. //下面部分还需要更改
  62. public String inputTodo(){
  63. StringBuffer todo = new StringBuffer();
  64. String s = null;
  65. try {
  66. System.out.print("name:");
  67. s = kbr.readLine();
  68. todo.append(s).append(";");
  69. System.out.print("address:");
  70. s = kbr.readLine();
  71. todo.append(s).append(";");
  72. System.out.print("date(yyyy-mm-dd):");
  73. s = kbr.readLine();
  74. todo.append(s).append(";");
  75. System.out.print("time(hh:mm):");
  76. s = kbr.readLine();
  77. todo.append(s);
  78. System.out.print("need alarm?(y/n)");
  79. s = kbr.readLine();
  80. if (s.equals("y") || s.equalsIgnoreCase("Y")) {
  81. System.out.print("alarm time:");
  82. s = kbr.readLine();
  83. todo.append(";").append(s);
  84. }
  85. } catch (IOException e) {
  86. e.printStackTrace();
  87. }
  88. return todo.toString();
  89. }
  90. // 录入
  91. public void input() {
  92. List<String> todoList = txtToList();
  93. todoList.add(inputTodo());
  94. listToTxt(todoList);
  95. }
  96. // 删除 【此次更新部分】
  97. public void delete() {
  98. System.out.println("plese input the name to delete:");
  99. List<String> todoList = txtToList();
  100. String j = ""; //初始化,和null差不多
  101. try {
  102. j = kbr.readLine(); // 用stringbuffer读j
  103. for(String s:todoList){
  104. //遍历todolist里的每一个字符 高级for循环
  105. if(s.startsWith(j)){
  106. todoList.remove(s);
  107. System.out.println("done.");
  108. break;
  109. }
  110. };
  111. listToTxt(todoList);
  112. } catch (IOException e) {
  113. e.printStackTrace();
  114. }
  115. }
  116. // 修改 【此次更新部分】
  117. public void change() {
  118. int k = 0;
  119. List<String> todoList = txtToList();
  120. String x = null;
  121. try {
  122. System.out.println("input the name to change...");
  123. x = kbr.readLine();
  124. for(String s:todoList){
  125. //高级for用法
  126. if(s.startsWith(x)){
  127. todoList.remove(s);
  128. //删除写进去的,再重新写。
  129. todoList.add(inputTodo());
  130. System.out.println("done.");
  131. break;
  132. }
  133. };
  134. } catch (IOException e) {
  135. e.printStackTrace();
  136. }
  137. listToTxt(todoList);
  138. }
  139. //输入的时候已经设置闹钟了,所以不用再设置了。
  140. public static void main(String[] args) {
  141. ReminderTest rm = new ReminderTest();
  142. new AlarmThread(rm).start();
  143. rm.go();
  144. }
  145. void go() {
  146. while (true) {
  147. System.out.println("1:check todo list");
  148. System.out.println("2:input new todo");
  149. System.out.println("3:delete todo list");
  150. System.out.println("4:change todo list");
  151. System.out.print("0:exit>>>>");
  152. String s = null;
  153. try {
  154. s = kbr.readLine();
  155. } catch (IOException e) {
  156. e.printStackTrace();
  157. }
  158. if (s.equals("1")) {
  159. check();
  160. } else if (s.equals("2")) {
  161. input();
  162. } else if (s.equals("3")) {
  163. delete();
  164. } else if (s.equals("4")) {
  165. change();
  166. } else if (s.equals("5")) {
  167. alarm();
  168. } else if (s.equals("0")) {
  169. System.exit(0);
  170. }
  171. }
  172. }
  173. }
  1. //闹钟线程(和上次一样无修改)
  2. package reminder;
  3. import java.io.File;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.List;
  7. import javax.sound.midi.MidiSystem;
  8. import javax.sound.midi.Receiver;
  9. import javax.sound.midi.Sequence;
  10. import javax.sound.midi.Sequencer;
  11. import javax.sound.midi.Synthesizer;
  12. import javax.sound.midi.Transmitter;
  13. public class AlarmThread extends Thread {
  14. ReminderTest rm;
  15. public AlarmThread(ReminderTest rm) {
  16. this.rm = rm;
  17. }
  18. public void run() {
  19. try {
  20. File file = new File("onestop.mid"); // This is the file we'll be
  21. // playing
  22. MidiSystem.getMidiFileFormat(file);
  23. Sequencer sequencer = MidiSystem.getSequencer(); // Used to play
  24. // sequences
  25. sequencer.open(); // Turn it on.
  26. Synthesizer synth = MidiSystem.getSynthesizer();
  27. synth.open(); // acquire whatever resources it needs
  28. Transmitter transmitter = sequencer.getTransmitter();
  29. Receiver receiver = synth.getReceiver();
  30. transmitter.setReceiver(receiver);
  31. Sequence sequence = MidiSystem.getSequence(file);
  32. sequencer.setSequence(sequence);
  33. while (true) {
  34. System.out.println("alarm thread is running...");
  35. List<String> todoList = rm.txtToList();
  36. for (String s : todoList) {
  37. String ss[] = s.split(";");
  38. if (ss.length > 4) {
  39. SimpleDateFormat sdt = new SimpleDateFormat("HH:mm");
  40. SimpleDateFormat sdd = new SimpleDateFormat("yyyy-MM-dd");
  41. String sdDate=sdd.format(new Date());
  42. String sdtime = sdt.format(new Date());
  43. // System.out.println(sdtime);
  44. if (ss[4].startsWith(sdtime) && ss[2].equals(sdDate))
  45. sequencer.start();
  46. }
  47. }
  48. Thread.sleep(60000);
  49. }
  50. } catch (Exception e) {
  51. e.printStackTrace();
  52. }
  53. }
  54. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注