電子備忘錄
1 系統的基本功能
利用電子備忘錄記錄未來某時間內的待辦事宜。允許查詢、新增。
2 要求
(1)備忘資訊的儲存方式自己設定,盡量保證操作靈活。一條備忘資訊最多允許100個漢字。備忘資訊的時間設定可以精確到具體的某個日期、或者某個日期中的某個時間段、或者某個日期中的某個具體時間。可以對事件的重複出現進行設定,如每月10號取工資,6月16號到28號每天上午9:10考試等。
(2)如果在新增時,該時段內已有安排則出現提示資訊。
(3)查詢時,如果當前日期有備忘資訊,自動提醒。
(4)根據鍵盤輸入的起始日期和終止日期,統計該時間段內的所有備忘資訊並輸出結果(包括時間和備忘資訊);統計時按照時間的先後順序進行排序。
好慘啊,寫的太醜
#include #include #include #include #include #include #include #include using namespace std;
int const maxlen = 10000;
struct e_memorandum
em[maxlen];
int item_num;
string get_to_year(string date)
return ans;
}string get_to_month(string date)
return ans;
}string get_to_day(string date)
return ans;
}string get_to_hour(string date)
return ans;
}string get_to_minute(string date)
return ans;
}bool is_leap(string y)
int convert(string date)
bool judge_input(string in)
string tmp = get_to_month(in), month = "", day = "", hour = "", minute = "";
for(int i = 5; i < (int) tmp.length(); i++)
month += tmp[i];
int m = convert(month);
if(m != 0 && (m> 12 || m < 1))
tmp = get_to_day(in);
for(int i = 8; i < (int) tmp.length(); i++)
day += tmp[i];
int d = convert(day);
if(d != 0)
else if(!is_leap(year) && d > 28)
}else if((m == 1 || m == 3 || m == 5 || m == 7
|| m == 8 || m == 10 || m == 12) && d > 31)
else if((m == 4 || m == 6 || m == 9 || m == 11) && d > 30)
if(d < 1)
}tmp = get_to_hour(in);
for(int i = 11; i < (int) tmp.length(); i++)
hour += tmp[i];
int h = convert(hour);
if(h != 0 && (h > 24 || h < 0))
tmp = get_to_minute(in);
for(int i = 16; i < (int) tmp.length(); i++)
minute += tmp[i];
int minu = convert(minute);
if(minu != 0 && (minu > 60 || minu < 1))
return true;
}void add()
cout << "input end time: ";
cin >> e_date;
while(!judge_input(e_date))
if(e_date <= b_date)
for(int i = 0; i < item_num; i++)
else if(em[i].begin_date <= e_date && em[i].end_date != "notsure" && em[i].end_date >= e_date)}}
cout << "input the item: ";
cin >> item;
cout << "whether repeat ?(y/n) ";
char tmp2[2] = "";
while(tmp2[0] != 'y' && tmp2[0] != 'n')
else if(tmp2[0] == 'n')
else
cout << "error input" << endl;
}if(em[item_num].repeat)
else
em[item_num].end_date = e_date;
em[item_num].item = item;
em[item_num++].repeat = true;}}
else if(em[item_num].begin_date.length() == 9)
em[item_num].begin_date += "/";
em[item_num].begin_date += tmpp;
em[item_num].begin_date += "/";
em[item_num].begin_date += curb;
if(em[item_num].end_date != "notsure")
em[item_num].begin_date += "/";
em[item_num].begin_date += tmpp;
em[item_num].begin_date += "/";
em[item_num].begin_date += cure;
}else
em[item_num].end_date = e_date;
em[item_num].item = item;
em[item_num++].repeat = true;}}
}}
else
ofstream file;
file.open("file.txt");
file << item_num << endl;
for(int i = 0; i < item_num; i++)
file << em[i].begin_date << " " << em[i].end_date << " " << em[i].item << " " << em[i].repeat << endl;
cout << "add sucessfully\n";
return;
}bool cmp(e_memorandum a, e_memorandum b)
return true;
}void output(int idx, bool flag)
void judge_no_end(int idx, string date, string now, bool &flag)
return;
}void judge_has_end(int idx, string b_date, string e_date, string now, bool &flag)
return;
}void query()
string now = get;
string year = get_to_year(now);
string month = get_to_month(now);
string day = get_to_day(now);
string hour = get_to_hour(now);
string minute = get_to_minute(now);
bool flag = true;
for(int i = 0; i < item_num; i++)
else
}if(!flag)
find = true;
sort(em, em + item_num, cmp);
string b_date, e_date;
cout << "input the date that you want to query: (formate: y/m/d/h/min)\n";
cout << "input start time: ";
cin >> b_date;
while(!judge_input(b_date))
cout << "input end time: ";
cin >> e_date;
while(!judge_input(e_date))
while(e_date <= b_date)
for(int i = 0; i < item_num; i++)
}else}}
if(!find)
cout << "there is no item in your query time\n";
}int main()
else if(type[0] == '1')
else if(type[0] == '2')
else
}}
Docker 實踐備忘錄
平時零散的接觸docker,時間久了概念和命令都會忘了,所以集中記下 docker 目標是實現輕量級的作業系統虛擬化解決方案。docker 的基礎是 linux 容器 lxc 等技術 docker基本概念 image 映象,可以理解為oop的乙個類,靜態。有 layer概念 container 容器...
C語言程式備忘錄
1 編寫乙個將輸入複製到輸出的程式,並將其中連續多個空格用乙個空格代替。解1 注 從沒想到,無中生有也可以用在這裡。光靠c語言本身力量真的很有限。解2 解3 include void main 注 這個有點意思。看似空格乙個也沒輸出,但最後還是輸出了。關鍵在 當 pre ch 非空格而 ch 為空格...
備忘錄模式
備忘錄模式 memento 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到原先儲存的狀態。originator 發起人 負責建立乙個備忘錄memento,用以記錄當前時刻它的內部狀態,並可以使用備忘錄恢復內部狀態。originator可根據需要...