import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class Curriculum {public static String filePath = Curriculum.class.getClassLoader().getResource("CurriculumSchedule.txt").getPath();
private final static String COURSE_SEPERATOR=",";
private final static String PERIOD_SEPERATOR="、";
private final static String COMMAND_SEPERATOR=" ";
private final static String ADD_SUCC="已添加到文件中";
private final static String REMOVE_SUCC="已从文件删除";
private final static String UPDATE_SUCC="已更新文件";
private final static String DUPLICATE="课程已存在";
public static class Datehelp{
private static BufferedWriter writer;
private static BufferedReader reader;
private static FileWriter fileWriter;
public static void Add(datebase date1){
initwriter();
try {
initwriter();
writer.write(date1.toString());
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
writer.close();
}catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(ADD_SUCC);}
public static void Update(datebase date){
}
public static void Delete(datebase date){
}
public static void Find(datebase date){
}
public static void Show(datebase date){
}
public static void Remove(datebase date){
}
public static void initwriter(){
try{
writer = new BufferedWriter(new FileWriter(filePath,true));
}
catch(IOException e)
{
e.printStackTrace();
}
}
public static void initreader(){
try{
reader = new BufferedReader(new FileReader(filePath));
}catch(IOException e){
e.printStackTrace();
}
}
}
public static void main(String[] args){
String temp =null;
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
temp =br.readLine();
while(temp!= null){
String[]temp2 = temp.split(COMMAND_SEPERATOR);
String temp5 =temp2[1];
String[]temp4 =temp5.split(COURSE_SEPERATOR);
datebase date1 =new datebase(temp4[0],temp4[1],temp4[2],temp4[3]);
String first = temp2[0];
switch(first){
case"Add":
Datehelp.Add(date1);
break;
case"Remove":
Datehelp.Remove(date1);
break;
case"Update":
Datehelp.Update(date1);
break;
case"Find":
Datehelp.Find(date1); break;
case"Show":
Datehelp.Show(date1);
break;
}}}
catch (IOException e){
e.printStackTrace();
}
}
}
class datebase{
public String date;
public String time;
public String name;
public String place;
public int Date;
public int Time;
public String toString(){
return(date+","+time+","+name+","+place);
}
public datebase(String a,String b,String c,String d){
this.date = a;
this.time = b;
this.name = c;
this.place = d;
switch(a){
case"星期一":
this.Date =1;
break;
case"星期二":
this.Date =2;
break;
case"星期三":
this.Date =3;
break;
case"星期四":
this.Date =4;
break;
case"星期五":
this.Date =5;
break;
}
switch(b){
case"一节":
this.Time =1;
break;
case"一、二节":
this.Time =2;
break;
case"二、三节":
this.Time =3;
break;
case"三、四节":
this.Time =4;
break;
}
}
}
大概需求如下
题目要求
1.编写一个课程表程序,通过命令行方式完成对课程的增、删、改、查、显示。
2.数据保存在文件中,文件名称:CurriculumSchedule.txt。
输入示例
Add 星期四,三、四节,计算与软件工程,仙2-407//如果成功 显示“已添加到文件中”
Remove 星期四,三、四节,计算与软件工程,仙2-407//如果成功 显示“已从文件删除”
Update 星期四,三、四节,计算与软件工程,仙2-408//如果成功 显示“已更新文件”
Find 星期四,三、四节 //如存在课程 显示 “课程名,上课地点”
Show //排序显示所有课程
命令格式
操作(英文)+空格+信息(全部中文表示) 在一行中输入,每项信息之间使用中文的“,”分隔
Add 时间,课时,课程,地点
Remove 时间,课时,课程,地点
Update 时间,课时,课程,地点
Find 时间,课时
Show
数据的范围和格式
时间:星期一 -- 星期日 全部中文表示
课时:一 -- 八 全部中文表示,多个课时之间用中文的“、”号分隔
课程:任意 全部中文表示
地点:任意 全部中文表示
注意
1.Add和Update时不能出现重复值,否则提示“课程已存在”。
判断课程重复的依据是:时间、课时、地点全部相同,容易理解,同一天同一课时,在同一教室不能有多门课程在进行。
2.Find命令如果出现多条符合结果,都需要输出,输出格式见输出示例。
3.Show命令需要显示已排序的完整课程信息,输出格式见输出示例。
排序要求先按时间升序即周一至周日的顺序,再按课时部分第一位所表示的数字大小升序进行排序。
输出示例
1.Find结果输出: "计算与软件工程,仙2-407"
"离散数学,仙1-407"
每条记录输出一行,格式为 (课程,地点)。课程与地点之间用中文“,”分隔,多条记录之间用换行符分隔。
2.Show结果输出:"星期一,一节,政治,仙2-408"
"星期一,二、三节,计算与软件工程,仙2-408"
"星期四,三、四节,计算与软件工程,仙2-407"
每条记录输出一行,格式为(时间,课时,课程,地点)。每项信息之间用中文“,”分隔,多条记录之间用换行符分隔。
请注意:输出信息的格式和分隔符请使用示例中定义的,不要随意修改,否则会导致测试用例无法通过
我把大概的框架建好了。在进行第一个Add()的时候测试了一下。比如说我输入 Add 发送到,发送到,士大夫,士大夫房贷首付 (为了测试就胡乱输入的) 那么控制台救会一直不停地输出“”“已添加到文件中。我认为为什么不是应该只是输入一个吗。
还有就求大家帮我把第一个Add()方法写一下,我不是抄袭,我只是想知道一些具体的语法我好学。毕竟老师上课不怎么讲。