B 选择合适的搜索算法,最简单的是遍历。模糊查询比较麻烦,做起来最简单的是利用sql/linq,但需要数据库基础;想起来最简单是用两个指针指向Str1 Str2,用Str2首字母与Str1比较,相同则2个指针同时后移继续比较,失败则向后移动Str1的指针继续比较。每次比较不同时将Str2指针重新指向Str2首部。
C 增删改查,修改数据结构内容,基本没难度。
* 如果愿意学习or了解数据库可用合适的数据库和sql语句解决,会相当的简单。
没有定时器的情况下提醒可以用循环+ctime获取时间(否则是timer),但切记如果用循环的话,需要加上短暂的Sleep()(头文件windows.h),否则cpu消耗会很恐怖。
思路就这样了,自己动手吧,计算机系学生不想废掉就多动动手有好处。
如果决定自己动手了有疑难点可以接着问,如果想等现成的代码请无视。
class Originator{//这个是要保存的状态
private int state= 90
private Caretaker c = new Caretaker()
//读取备忘录角色以恢复以前的状态
public void setMemento(){
Memento memento = (Memento)c.getMemento()
state = memento.getState()
System.out.println("the state is "+state+" now")
}
//创建一个备忘录角色,并将当前状态属性存入,托给“备忘录管理者角色”存放。
public void createMemento(){
c.saveMemento(new Memento(state))
}
//this is other business methods...
//they maybe modify the attribute state
public void modifyState4Test(int m){
state = m
System.out.println("the state is "+state+" now")
}
//作为私有内部类的备忘录角色,它实现了窄接口,可以看到在第二种方法中宽接口已经不再需要
//注意:里面的属性和方法都是私有的
private class Memento implements MementoIF{
private int state
private Memento(int state){
this.state = state
}
private int getState(){
return state
}
}
}
//测试代码——客户程序
public class TestInnerClass{
public static void main(String[] args){
Originator o = new Originator()
o.createMemento()
o.modifyState4Test(80)
o.setMemento()
}
}
//窄接口
interface MementoIF{}
//“备忘录管理者角色”
class Caretaker{
private MementoIF m
public void saveMemento(MementoIF m){
this.m = m
}
public MementoIF getMemento(){
return m
}
}
不知道对或不对,不过真的努力在想了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)