版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上C+程序設(shè)計報告基于命令Win32命令行應(yīng)用程序的簡易日程管理系統(tǒng)12010520033 徐益C+語言程序設(shè)計教師:黃鵬宇作者一、問題闡述日程管理就是將每天的工作和事務(wù)安排在日期中,并做一個有效的記錄,方便管理日常的工作和事務(wù),達到工作備忘的目的。同時也具有對員工日常工作進行指導(dǎo)、監(jiān)督的作用。電子版的日程管理通常具有定時提醒和共享等功能。通過學(xué)習(xí)C+課程以及面向?qū)ο蟮某绦蛟O(shè)計,我發(fā)現(xiàn)日程管理中所需的日期、時間、記錄等都可以抽象成類,并可以利用函數(shù)實現(xiàn)簡單的添加、查詢功能。由于能力的限制,本次“簡易日程管理系統(tǒng)”的設(shè)計依舊基于Win32命令行應(yīng)用程序(MFC好難啃),主
2、要實現(xiàn)的功能有:1、 輸入日程;2、 查詢?nèi)咳粘蹋?、 查詢單條日程;4、 修改時間。二、基本設(shè)計包括流程圖、類關(guān)系圖、文件關(guān)系圖。1、流程圖2、類關(guān)系圖包含于包含于3、文件關(guān)系圖三、源代碼SIMPLESCHEDULESYSTEM.CPP#include "stdafx.h"#include<iostream>#include<fstream>#include"record.h"using namespace std;void menue();void addRecord();void getRecord();void chan
3、geToday();void getRecordAll();ofstream fout(RECORDPATH);Date today(2014, 12, 25);int main()while (true)menue();int n;cin >> n;switch (n)case 1: cout << "n" << endl; addRecord(); cout << "n" << endl; break;case 2: cout << "n" <<
4、endl; getRecordAll(); cout << "n" << endl; break;case 3: cout << "n" << endl; changeToday(); cout << "n" << endl; break;case 4: cout << "n" << endl; getRecord(); cout << "n" << endl; break;c
5、ase 0:return 0;default: cout << "n" << endl; cout << "輸入錯誤"<<endl; cout << "n" << endl; break;cout << "按任意鍵繼續(xù)"getchar();getchar();fout.close();return 0;void menue()cout << "*" << endl;cout <<
6、; "|*|" << endl;cout << "| |" << endl;cout << "| 簡易日程管理系統(tǒng) |" << endl;cout << "| |" << endl;cout << "| 1 : 輸入日程 |" << endl;cout << "| |" << endl;cout << "| 2 : 全部日程
7、 |" << endl;cout << "| |" << endl;cout << "| 3 : 修改當前日期 |" << endl;cout << "| |" << endl;cout << "| 4 : 查詢?nèi)粘?|" << endl;cout << "| |" << endl;cout << "| 0 : 退出 |"
8、<< endl;cout << "| |" << endl;cout << "| |" << endl;cout << "|*|" << endl;cout << "*" << endl;cout << " " << endl;cout << "今天是" << today.getDate() << endl;c
9、out << " " << endl;cout << " " << endl;cout << "請選擇:" << endl;cout << " " << endl;void addRecord()string date, s_time, e_time, content;char ch;int n;cout << "*" << endl;cout << "*
10、輸入日程*" << endl;cout << "*" << endl;cout << "需輸入的記錄數(shù):" << endl;cin >> n;for (int i = n; i > 0;i-)cout << "請輸入日期(格式為*/*/*):" << endl;cin >> date;cout << "請輸入開始時間(格式為*:*):" << endl;cin >
11、> s_time;cout << "請輸入結(jié)束時間(格式為*:*):" << endl;cin >> e_time;cout << "請輸入事件內(nèi)容:" << endl;cin >> content;Record rec(date, s_time, e_time, content);cout << "*" << endl;cout << rec.getRecord() << endl;today.earlyDa
12、te(rec.getDate();cout << "*" << endl;cout << "是否確認?(y/n):" << endl;cin >> ch;if (ch = 'y') fout << rec.getRecord() << endl;cout << "*輸入成功*" << 'n' << endl;else i+;/rec.Record();void getRecord()s
13、tring date_s;bool isFind = false;cout << "*" << endl;cout << "*查詢?nèi)粘?" << endl;cout << "*" << endl;cout << "請輸入日期(格式為*/*/*):" << endl;cin >> date_s;cout << "*" << endl;Date date(date_s)
14、;ifstream fin(RECORDPATH);for (string str; getline(fin, str);)int y, m, d;char ch;istringstream sin(str);sin >> y;sin >> ch;sin >> m;sin >> ch;sin >> d;if (date.getYear() = y&&date.getMonth() = m&&date.getDay() = d)cout << str<<endl;today.ear
15、lyDate(date);isFind = true;if (!isFind) cout << "沒有記錄" << endl;cout << "*" << endl;void getRecordAll()cout << "*" << endl;cout << "*全部日程*" << endl;cout << "*" << endl;ifstream fin(RECORDPATH
16、);for (string str; getline(fin, str);)cout << str << endl;cout << "*" << endl;void changeToday()string date;cout << "請輸入日期(格式為*/*/*):" << endl;cin >> date;today.set(date);cout << "*設(shè)置成功*" << endl;MYDATE.H#ifndef MYDA
17、TE_H#define MYDATE_H#include <iostream>#include <iomanip>#include <stdlib.h>using namespace std;class Dateint year, month, day;public:void set(int y, int m, int d);void set(string s);Date()Date(int y, int m, int d);Date(string s);int getYear() return year; int getMonth() return mon
18、th; int getDay() return day; string getDate();bool isLeapYear()const;bool isLate(Date date);void print()const;void addDay(int n);int earlyDate(Date date);Date:Date(int y, int m, int d)year = y; month = m; day = d;/-Date:Date(string s)year = atoi(s.substr(0, 4).c_str();month = atoi(s.substr(5, 2).c_s
19、tr();day = atoi(s.substr(8, 2).c_str();/-void Date:set(int y, int m, int d)year = y; month = m; day = d;/-void Date:set(string s)year = atoi(s.substr(0, 4).c_str();month = atoi(s.substr(5, 2).c_str();day = atoi(s.substr(8, 2).c_str();/-inline bool Date:isLeapYear()constreturn (year % 4 = 0 &&
20、; year % 100 != 0) | (year % 400 = 0);/-inline void Date:print()constcout << setfill('0');cout << setw(4) << year << '/' << setw(2) << month << '/' << setw(2) << day << endl;cout << setfill(' ');/-void
21、Date:addDay(int n)for (int i = n; i > 0; i-)day+;switch (month)case 4:;case 6:;case 9:;case 11:if (day>30) day = 1; month+; break;case 12:if (day>31) day = 1; month = 1; year+; break;case 2:if (isLeapYear() && day>29) | day>28) day = 1; month+; break;default:if (day>31) day
22、 = 1; month+; break;/-string Date:getDate()stringstream ss;ss << setw(4) << setfill('0') << year << "/" << setw(2) << setfill('0') << month << "/" << setw(2) << setfill('0') << day;string st
23、r = ss.str();/ss.stringstream();return str;bool Date:isLate(Date date)if (year > date.year) return true;else if (year = date.year)if (month > date.month) return true;else if (month = date.month)if (day > date.day) return true;return false;int Date:earlyDate(Date date)if (isLate(date)cout &l
24、t;< "已過期" << endl;return -1;elseint i = 0;Date da(year,month,day);for (; date.isLate(da); i+)da.addDay(1);cout << "距今還有" << i << "天" << endl;#endifMYTIME.H#ifndef MYTIME_H#define MYTIME_H#include <iostream>#include <iomanip>#
25、include <stdlib.h>using namespace std;class Timeint hour, minute;public:Time()Time(int h, int m);Time(string s);void set(int h, int m);void set(string s);void print()const;string getTime();Time:Time(int h, int m)hour = h; minute = m;/-Time:Time(string s)hour = atoi(s.substr(0, 2).c_str();minut
26、e = atoi(s.substr(3, 2).c_str();/-void Time:set(int h, int m)hour = h; minute = m;/-void Time:set(string s)hour = atoi(s.substr(0, 2).c_str();minute = atoi(s.substr(3, 2).c_str();/-inline void Time:print()constcout << setfill('0');cout << setw(2) << hour << ':'
27、; << setw(2) << minute;cout << setfill(' ');/-string Time:getTime()stringstream ss;ss << setw(2) << setfill('0') << hour << ":" << setw(2) << setfill('0') << minute;string str = ss.str();/ss.stringstream();
28、return str;/-#endifRECORD.H#ifndef RECORD_H#define RECORD_H#include <iostream>#include <iomanip>#include <stdlib.h>#include <string>#include <sstream>#include "myDate.h"#include "myTime.h"#define RECORDPATH "record.txt"using namespace std;class RecordDate date;Time s_time;Time e_time;string content;public:Record(string da, string start, string end, string con);void input();void print();string getRecord();Date getDate() return date; ;Record
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)清理服務(wù)合同范例
- 2025合資買房合同
- 公司食堂 供貨合同范例
- 承包油漆車間合同范例
- fidic國際合同范例
- 個體 雙方合作合同范例
- 銅陵職業(yè)技術(shù)學(xué)院《教育應(yīng)用寫作》2023-2024學(xué)年第一學(xué)期期末試卷
- 同濟大學(xué)浙江學(xué)院《檔案信息管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 銅陵學(xué)院《數(shù)理統(tǒng)計(多元統(tǒng)計)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《三峽》說課稿9篇
- 低血糖暈厥應(yīng)急演練預(yù)案
- 四川省成都市某中學(xué)2024-2025學(xué)年高一年級上冊11月期中考試 英語試卷(含答案)
- Unit 1 Making friends Part B(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 《涉江采芙蓉》 課件高中語文統(tǒng)編版必修上冊
- 2024年事業(yè)單位考試職業(yè)能力傾向測驗試題與參考答案
- 保定學(xué)院《自然語言處理》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024年水稻種項目可行性研究報告
- 供應(yīng)商質(zhì)量管理培訓(xùn)課程
- 阿膠的課件教學(xué)課件
- 登高作業(yè)安全
- 口腔營銷技能培訓(xùn)課件
評論
0/150
提交評論