怎样用C语言编写一个备忘录?

怎样用C语言编写一个备忘录?,第1张

A 设计合适的数据结构,所谓录入查看即,将合适的数据写入这些数据结构。

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

}

}

不知道对或不对,不过真的努力在想了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11717862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存