Java 学生个人时间表
我正在为学生开发一个基于控制台的个人日程计划器。我的目标是,该应用程序将采取什么活动的用户想要做的连同总时间与用户一天,然后分配时间段,并显示在表格格式 所分配的时间取决于主题(分配更多时间用于更重要的任务等) 我正在为我的第四学期英语做这个项目Java 学生个人时间表,java,algorithm,data-structures,Java,Algorithm,Data Structures,我正在为学生开发一个基于控制台的个人日程计划器。我的目标是,该应用程序将采取什么活动的用户想要做的连同总时间与用户一天,然后分配时间段,并显示在表格格式 所分配的时间取决于主题(分配更多时间用于更重要的任务等) 我正在为我的第四学期英语做这个项目 我已经开始研究这个算法了,我的问题是,有这样的算法(已经)可用吗?我在网上搜索过,但我找到的规划算法都是针对公交车时刻表和其他方面的,但并不完全是我要找的。根据amit的要求,这里有一些参考资料 就我所知,背包问题是一个最大化问题。给定一组具有特定用途
我已经开始研究这个算法了,我的问题是,有这样的算法(已经)可用吗?我在网上搜索过,但我找到的规划算法都是针对公交车时刻表和其他方面的,但并不完全是我要找的。根据amit的要求,这里有一些参考资料 就我所知,背包问题是一个最大化问题。给定一组具有特定用途和重量的物品,您希望选择最佳子集-即给定重量的“最佳”物品组合-背包/帆布包中可携带的最大容量 例如,在僵尸入侵中,电锯可能是非常有用的物品,但它又大又笨重,所以从字面上讲,它的用处可能被它的体积所压倒。而刀也很有用,但重量要轻得多。如果你选择刀子,你也可以选择手电筒、撬棍、干口粮和睡袋,而如果你选择电锯,你只有空间放干口粮 您的特殊问题是尝试将一组活动放入固定的时间段。要做到这一点,您需要通过某些因素对活动进行加权,例如
- 一天中可能发生这些情况的时间段
- 持续时间
- 他们对学生的期望
- 是否可以在类似活动之前或之后立即安排,例如,如果学生刚去健身房,他们不太可能想参加游泳训练
祝你好运,这听起来是一个有趣的项目。我终于完成了我的项目 代码是:
package project;
public class TimeTable extends Time {
int i;
String table[] = new String[24];
Activity activity[];
static int currentTime;
boolean flag = false;
public void setTable(Activity[] iActivity){
setNontime();
activity = iActivity;
int temp;
temp = clgStart- wakeTime;
currentTime=wakeTime;
System.out.println("tmep is "+temp);
setTimeTillCollege(temp);
currentTime= clgEnd;
temp = dinner - clgEnd;
System.out.println("temp is"+temp);
setTimeTillDinner(temp);
currentTime = dinner+1;
temp= sleepTime-dinner-1;
setTimeTillSleep(temp);
}
private void setTimeTillSleep(int temp) {
if(temp<=2){
table[currentTime]= getNonAcad();
}
}
private void setTimeTillDinner(int temp) {
if(flag){//if the academic subs are not given in daylight
/* if(temp<1){
table[currentTime] = "timepass";
} else*/
if(temp==1){
table[currentTime] = getNonAcad();
} else if(temp==2){
table[currentTime] = getAcademic(2);
} else {
while(temp!=0){
}
}
} else {
while(temp!=0){
if(temp > 4){
table[currentTime]=getAcademic(2);
flag=true;
temp-=2;
} else if(temp==4){
table[currentTime]=getAcademic(2);
temp-=2;
table[currentTime]=getAcademic(2);
temp-=2;
flag=true;
}
}
}
}
private void setTimeTillCollege(int temp) {
if(temp==1){
table[currentTime] = "Revise";
} else if(temp==maxSlot){
table[currentTime] = getAcademic(2);
} else {
while(temp!=0){
if(temp > 4){
table[currentTime]=getAcademic(2);
flag=true;
temp-=2;
} else if(temp==4){
table[currentTime]=getAcademic(2);
temp-=2;
table[currentTime]=getAcademic(2);
temp-=2;
flag=true;
} else if(temp<4){
} else if(temp==1){
getAcademic(1);
}
}
}
}
private String getNonAcad() {
for (i = 0; i < activity.length; i++) {
if(!activity[i].over && !activity[i].acad){
activity[i].over = true;
currentTime+=activity[i].timeSlot;
return activity[i].name;
}
}
return null;
}
private String getAcademic(int j) {
for (i = 0; i < activity.length; i++) {
if(!activity[i].over && activity[i].credit==j){
activity[i].over = true;
currentTime+=activity[i].timeSlot;
return activity[i].name;
}
}
return null;
}
@SuppressWarnings("unused")
private String getAcademic() {
for (i = 0; i < activity.length; i++) {
if(activity[i].credit==1 && activity[i].acad){
activity[i].over = true;
currentTime+=activity[i].timeSlot;
return activity[i].name;
}
}
return null;
}
public void setNontime(){
for (i = 0; i < table.length; i++) {
table[i]= new String();
}
table[sleepTime]="Sleep";
table[clgStart]="College";
table[clgEnd]="College ends";
table[dinner]= "Dinner";
}
public void display() {
System.out.println("inside display method");
for ( i = wakeTime; i < table.length; i++) {
System.out.println(i+" "+table[i]);
}
}}
成套工程;
公课时间延长{
int i;
字符串表[]=新字符串[24];
活动[];
静态时间;
布尔标志=假;
公共作废可设置(活动[]iActivity){
setNontime();
活动=iActivity;
内部温度;
温度=clgStart-唤醒时间;
currentTime=唤醒时间;
系统输出打印项次(“tmep为”+temp);
SETTIMETILL学院(临时);
currentTime=clgEnd;
温度=晚餐-温度;
系统输出打印项次(“温度为”+温度);
设置时间至晚餐(温度);
当前时间=晚餐+1;
温度=睡眠时间-晚餐时间-1;
setTimeTillSleep(温度);
}
私有void setTimeTillSleep(内部温度){
如果(临时4){
表[currentTime]=getAcademic(2);
flag=true;
温度-=2;
}否则如果(温度==4){
表[currentTime]=getAcademic(2);
温度-=2;
表[currentTime]=getAcademic(2);
温度-=2;
flag=true;
}else if(听起来像是@mcfinnigan的变体:您应该将其作为一个答案发布[提供关于问题的更多细节以及如何解决问题或java实现的资源]@麦克芬尼根:你能简要介绍一下背包问题吗?因为我是大二的学生,所以没有算法理论作为一门课程,所以很不幸,我无法理解书中给出的背包问题的完整数学描述wikipedia@Lucifer不幸的是,这只是我在pas中遇到的事情sing;我自己从来没有使用过它。你最好的选择是用谷歌搜索关于它的信息——如果你能找到算法的伪代码,你也许可以根据你的目的调整它;如果不能,它至少可以指引你正确的方向。