c++课程设计日历记事本
/***********************************
**** 日历记事本 ****
************************************/#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
#include <ctime>
#include <cassert>
#include <conio.h>
using namespace std;
class rebook
{
public:rebook();//默认构造函数void new_book();//新建备忘录void alter_book();//修改备忘录void delet_book();//删除备忘录void scan_book();//浏览记事本
private:string signs;//标题string data;//日期string where;//地点string things;//事件string what;//事件描述
};//日期类
class whatdata
{
public:whatdata();//默认构造函数int IsLeapYear(int Year); long YearDays(int Year); long TotalDays(int Year, int Month, int Day);int GetLunar(int Y1, int M1, int D1, int &Y2, int &M2, int &D2); char inter_face();//首页void search_data();//日历查询void book_manage();//备忘录管理void select_day();//万年历之日历查询void select_month();//万年历之月历查询
private:rebook abook;string week;string month;string day;string year;
};
#define BEGINYEAR 1900
#define YEARCOUNT 150 struct LUNARINDEX //农历大小月数据索引结构,数据时间自1900年至2050年
{ long Days; // 天数,表示该农历年1月1日距公历元年元月1日的天数
short Mon13; // 该数据的0至12位分别标明农历1至13月的大小,含闰月
short Leap; // 该年的农历闰月值,15表示无闰月。
}LunarIndex[]={ {693626, 0X16D2, 8}, {694010, 0X0752, 15}, {694364, 0X0EA5, 15}, //1900{694719, 0X164A, 5}, {695102, 0X064B, 15}, {695456, 0X0A9B, 15}, {695811, 0X1556, 4}, {696195, 0X056A, 15}, {696549, 0X0B59, 15}, {696904, 0X1752, 2}, {697288, 0X0752, 15}, {697642, 0X1B25, 6}, {698026, 0X0B25, 15}, {698380, 0X0A4B, 15}, {698734, 0X14AB, 5}, // 1914{699118, 0X02AD, 15}, {699472, 0X056B, 15}, {699827, 0X0B69, 2}, {700211, 0X0DA9, 15}, {700566, 0X1D92, 7}, {700950, 0X0E92, 15}, {701304, 0X0D25, 15}, {701658, 0X1A4D, 5}, {702042, 0X0A56, 15}, {702396, 0X02B6, 15}, {702750, 0X15B5, 4}, {703135, 0X06D4, 15}, {703489, 0X0EA9, 15}, {703844, 0X1E92, 2}, {704228, 0X0E92, 15}, //1929 {704582, 0X0D26, 6}, {704965, 0X052B, 15}, {705319, 0X0A57, 15}, {705674, 0X12B6, 5}, {706058, 0X0B5A, 15}, {706413, 0X06D4, 15}, {706767, 0X0EC9, 3}, {707151, 0X0749, 15}, {707505, 0X1693, 7}, {707889, 0X0A93, 15}, {708243, 0X052B, 15}, {708597, 0X0A5B, 6}, {708981, 0X0AAD, 15}, {709336, 0X056A, 15}, {709690, 0X1B55, 4}, //1944 {710075, 0X0BA4, 15}, {710429, 0X0B49, 15}, {710783, 0X1A93, 2}, {711167, 0X0A95, 15}, {711521, 0X152D, 7}, {711905, 0X0536, 15}, {712259, 0X0AAD, 15}, {712614, 0X15AA, 5}, {712998, 0X05B2, 15}, {713352, 0X0DA5, 15}, {713707, 0X1D4A, 3}, {714091, 0X0D4A, 15}, {714445, 0X0A95, 8}, {714828, 0X0A97, 15}, {715183, 0X0556, 15}, //1959 {715537, 0X0AB5, 6}, {715921, 0X0AD5, 15}, {716276, 0X06D2, 15}, {716630, 0X0EA5, 4}, {717014, 0X0EA5, 15}, {717369, 0X064A, 15}, {717722, 0X0C97, 3}, {718106, 0X0A9B, 15}, {718461, 0X155A, 7}, {718845, 0X056A, 15}, {719199, 0X0B69, 15}, {719554, 0X1752, 5}, {719938, 0X0B52, 15}, {720292, 0X0B25, 15}, {720646, 0X164B, 4}, //1974 {721030, 0X0A4B, 15}, {721384, 0X14AB, 8}, {721768, 0X02AD, 15}, {722122, 0X056D, 15}, {722477, 0X0B69, 6}, {722861, 0X0DA9, 15}, {723216, 0X0D92, 15}, {723570, 0X1D25, 4}, {723954, 0X0D25, 15}, {724308, 0X1A4D, 10}, {724692, 0X0A56, 15}, {725046, 0X02B6, 15}, {725400, 0X05B5, 6}, {725784, 0X06D5, 15}, {726139, 0X0EA9, 15}, //1989 {726494, 0X1E92, 5}, {726878, 0X0E92, 15}, {727232, 0X0D26, 15}, {727586, 0X0A56, 3}, {727969, 0X0A57, 15}, {728324, 0X14D6, 8}, {728708, 0X035A, 15}, {729062, 0X06D5, 15}, {729417, 0X16C9, 5}, {729801, 0X0749, 15}, {730155, 0X0693, 15}, {730509, 0X152B, 4}, {730893, 0X052B, 15}, {731247, 0X0A5B, 15}, {731602, 0X155A, 2}, //2004{731986, 0X056A, 15}, {732340, 0X1B55, 7}, {732725, 0X0BA4, 15}, //2007{733079, 0X0B49, 15}, {733433, 0X1A93, 5}, {733817, 0X0A95, 15}, {734171, 0X052D, 15}, {734525, 0X0AAD, 4}, {734909, 0X0AB5, 15}, {735264, 0X15AA, 9}, {735648, 0X05D2, 15}, {736002, 0X0DA5, 15}, {736357, 0X1D4A, 6}, {736741, 0X0D4A, 15}, {737095, 0X0C95, 15}, //2019 {737449, 0X152E, 4}, {737833, 0X0556, 15}, {738187, 0X0AB5, 15}, {738542, 0X15B2, 2}, {738926, 0X06D2, 15}, {739280, 0X0EA5, 6}, {739664, 0X0725, 15}, {740018, 0X064B, 15}, {740372, 0X0C97, 5}, {740756, 0X0CAB, 15}, {741111, 0X055A, 15}, {741465, 0X0AD6, 3}, {741849, 0X0B69, 15}, {742204, 0X1752, 11}, {742588, 0X0B52, 15}, //2034{742942, 0X0B25, 15}, {743296, 0X1A4B, 6}, {743680, 0X0A4B, 15}, {744034, 0X04AB, 15}, {744388, 0X055B, 5}, {744772, 0X05AD, 15}, {745127, 0X0B6A, 15}, {745482, 0X1B52, 2}, {745866, 0X0D92, 15}, {746220, 0X1D25, 7}, {746604, 0X0D25, 15}, {746958, 0X0A55, 15}, {747312, 0X14AD, 5}, {747696, 0X04B6, 15}, {748050, 0X05B5, 15}, //2049{748405, 0X1DAA, 3}}; //2050int month1[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string week1[7]={"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"};
string month2[12]={"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"};
string weeks[7] = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
string months[12] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"};//默认构造函数
rebook::rebook()
{where = "xxx";//地点things = "xxx";//事件what = "xxx";//事件描述signs = "xxx";//标题data = "xxx";//日期
}//新建备忘录
void rebook::new_book()
{system("cls");cout <<endl <<"记事(以'#'表示结束)" <<endl;time_t timer;time(&timer);cout <<endl <<"时间 : "<<asctime(localtime(&timer)) <<endl;cout <<"标题 : ";cin >>signs;ofstream tempFile("record\\temp.txt");time(&timer);tempFile <<"时间 : "<<asctime(localtime(&timer)) <<endl<<"标题 : " <<signs <<endl <<endl<<"内容 : "; cout <<endl <<"内容 : " << endl;tempFile << endl << endl ;string str;while (1){ cin >>str;if (str[str.length()-1] == '#'){str[str.length()-1] = ' ';tempFile <<str <<endl <<endl;break;}tempFile <<str <<endl <<endl;}tempFile.close();ofstream reFile1("record\\title.txt", ios::app);reFile1 <<signs <<endl <<asctime(localtime(&timer)) <<endl;reFile1.close();string fname = "record\\"+signs+".txt";ofstream reFile(fname.c_str()); ifstream tempFile1("record\\temp.txt");assert(tempFile1);reFile <<tempFile1.rdbuf();tempFile1.close();reFile.close();cout <<endl <<endl <<"记录已经保存!!!" <<endl <<endl;system("pause");
}//修改备忘录
void rebook::alter_book()
{while (1){system("cls");cout <<endl <<"请选择你想修改的标题 : " <<endl <<endl;int i = 1;ifstream reFile("record\\title.txt");if (!reFile){ofstream reFile1("record\\title.txt");reFile1.close();ifstream reFile("record\\title.txt");}while (reFile >>signs){reFile.get();getline(reFile, data);cout <<i <<".\t" <<setiosflags(ios::left) <<setw(30) <<signs <<" "<<data <<endl <<endl;i++;}reFile.close();cout <<endl <<i <<".\t返回" <<endl <<endl;cout <<"选择 : ";int select;cin >>select;if (select == i)return;ifstream reFile2("record\\title.txt");assert(reFile2);i = 1;while (reFile2 >>signs){reFile2.get();getline(reFile2, data);if (i == select){string fname = "record\\"+signs+".txt";system("cls");ifstream reFile3(fname.c_str());assert(reFile3);cout <<endl <<"你想修改的内容如下 : " <<endl <<endl;cout <<reFile3.rdbuf();reFile3.close();ofstream tempFile("record\\temp.txt");cout <<endl <<endl <<"请在下面输入新的内容 (以'#'结束): " <<endl <<endl;tempFile <<"标题 : " <<signs <<endl <<endl;tempFile <<"内容 : ";cout <<"内容 : ";string str;while (1){cin >>str;if (str[str.length()-1] == '#'){str[str.length()-1] = ' ';tempFile <<str <<endl;break;}tempFile <<str <<endl;}tempFile.close();ifstream tempFile1("record\\temp.txt");assert(tempFile1);ofstream reFile4(fname.c_str());reFile4 <<tempFile1.rdbuf();tempFile1.close();reFile4.close();cout <<endl <<endl <<"内容更新完成!!!!" <<endl <<endl;system("pause");break;}i++;}reFile2.close();}
}//删除备忘录
void rebook::delet_book()
{while (1){system("cls");cout <<endl <<"请选择一个你想删除的标题 : " <<endl <<endl;ifstream reFile("record\\title.txt");if (!reFile){ofstream reFile1("record\\title.txt");reFile1.close();ifstream reFile("record\\title.txt");}int i = 1;while (reFile >>signs){reFile.get();getline(reFile, data);cout <<i <<".\t" <<setiosflags(ios::left) <<setw(30) <<signs <<" "<<data <<endl <<endl;i++;}reFile.close();cout <<endl <<i <<".\t返回" <<endl <<endl;int select;cout <<"选择 : ";cin >>select;if (select == i)return;ifstream reFile2("record\\title.txt");assert(reFile2);ofstream tempFile("record\\temp.txt");i = 1;while (reFile2 >>signs){reFile2.get();getline(reFile2, data);if (i != select)tempFile <<signs <<endl <<data <<endl <<endl;else{system("cls");cout <<endl <<endl <<"你想删除的备忘录内容如下 : " <<endl <<endl;string fname = "record\\"+signs+".txt";ifstream reFile3(fname.c_str());assert(reFile3);cout <<reFile3.rdbuf();reFile3.close();}getline(reFile2, data);i++;}reFile2.close();tempFile.close();ifstream tempFile1("record\\temp.txt");assert(tempFile1);ofstream reFile4("record\\title.txt");reFile4 <<tempFile1.rdbuf();tempFile1.close();reFile4.close();cout <<endl <<endl <<"该条备忘录已经删除!!!" <<endl <<endl;system("pause");}
}//浏览记事本
void rebook::scan_book()
{while (1){system("cls");cout <<endl <<"记事本查询" <<endl <<endl;ifstream reFile("record\\title.txt");if (!reFile){ofstream reFile1("record\\title.txt");reFile1.close();ifstream reFile("record\\title.txt");}int i = 1;cout <<"序号\t" <<setiosflags(ios::left) <<setw(30) <<"标题 " <<"\t日期" <<endl <<endl;while (reFile >>signs){reFile.get();getline(reFile, data);cout <<i <<".\t" <<setiosflags(ios::left) <<setw(30) <<signs <<" "<<data <<endl <<endl;i++;}reFile.close();cout <<i <<".\t返回";int select;cout <<endl <<endl <<"选择 : ";cin >>select;if (select == i)return;i = 1;ifstream reFile2("record\\title.txt");assert(reFile2);while (reFile2 >>signs){reFile2.get();getline(reFile2, data);if (i == select){system("cls");string fname = "record\\"+signs+".txt";ifstream reFile3(fname.c_str());assert(reFile3);cout <<reFile3.rdbuf();reFile3.close();cout <<endl <<endl;system("pause");break;}getline(reFile, data);i++;}reFile2.close();}
}//默认构造函数
whatdata::whatdata():abook()
{week = "xxx";month = "xxx";day = "xxx";year = "xxx";
}//首页
char whatdata::inter_face()
{system("cls");char choose;cout << endl;cout<<"\t ● 日 历 记 事 本 ●" <<endl<<"\t ==========================================================" <<endl<<"\t ※ ※" <<endl<<"\t ※ 1. 记事 ※" <<endl<<"\t ※ ※" <<endl<<"\t ※ 2. 浏览 ※" <<endl<<"\t ※ ※" <<endl<<"\t ※ 3. 管理 ※" <<endl<<"\t ※ ※" <<endl<<"\t ※ 4. 日历查询 ※" <<endl<<"\t ※ ※" <<endl<<"\t ※ 5. 关闭记事本 ※" <<endl<<"\t ※ ※" <<endl<<"\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※" <<endl <<endl <<"\t\t";choose = getch();return choose;
}//日历查询
void whatdata::search_data()
{while (1){system("cls");cout << endl << "\t\t万年历查询" << endl << endl ;cout << "\t●\t1. 日历查询 " << endl << endl<< "\t●\t2. 月历查询" << endl << endl<< "\t●\t3. 返回" << endl << endl;char select = getch();switch (select){case '1':select_day();//万年历之日历查询break;case '2':select_month();//万年历之月历查询break;case '4':return;default:break;}}
}//备忘录管理
void whatdata::book_manage()
{char choose;while (1){system("cls");cout <<endl <<"\t管理你的备忘录!!!!!" <<endl <<endl;cout <<endl <<"\t●\t\t 1. 修改备忘录" <<endl<<endl <<"\t●\t\t 2. 删除备忘录" <<endl<<endl <<"\t●\t\t 3. 返回首页" <<endl <<endl <<"\t\t\t";choose = getch();switch (choose){case '1':abook.alter_book();//修改备忘录break;case '2':abook.delet_book();//删除备忘录break;case '3':return;break;default:break;}}
}//日历查询
void whatdata::select_day()
{system("cls");cout << endl << "\t万年历之日历查询" << endl << endl;cout << "\t请输入年月日 (例如 : 2007 8 15) : ";cin >> year >> month >>day;int days = 0;for (int i = 1; i < atoi(year.c_str()); i++){if ((i%4 == 0 && i%100 != 0) || (i%400 == 0))days += 366;elsedays += 365;days = days%7;}if ((i%4 == 0 && i%100 != 0) || (i%400 == 0))month1[1] = 29;for (i = 0; i < atoi(month.c_str()) - 1; i++)days += month1[i];days += atoi(day.c_str());days = days%7;month1[1] = 28;cout <<endl << endl <<"阳历 : "; cout << year << " 年 " << month << " 月 "<< day << " 日 \t" << week1[days - 1] << endl << endl ;cout << "阴历 : ";int Y2, M2, D2;GetLunar(atoi(year.c_str()), atoi(month.c_str()), atoi(day.c_str()), Y2, M2, D2);cout << Y2 << " 年 " << M2 << " 月 " << D2 << " 日 " << endl << endl;system ("pause");
}//月历查询
void whatdata::select_month()
{system("cls");cout << endl << "\t万年历之月历查询" << endl << endl;cout << "\t请输入某年某月 (例如 : 2007 8) : " ;cin >> year >> month;cout << endl << endl <<year << " 年 " << month << " 月";if ((atoi(year.c_str())%4 == 0 && atoi(year.c_str())%100 != 0) || (atoi(year.c_str())%400 == 0)){month1[1] = 29;cout << "\t\t\t\t\t\t 闰年" << endl ;}else cout << "\t\t\t\t\t\t 平年" << endl ;cout << "=================================================================" <<endl <<endl;cout << "星期日 星期一 星期二 星期三 星期四 星期五 星期六" <<endl <<endl;int days = 0;for (int i = 1; i < atoi(year.c_str()); i++){if ((i%4 == 0 && i%100 != 0) || (i%400 == 0))days += 366;elsedays += 365;days = days%7;}for (i = 0; i < atoi(month.c_str()) - 1; i++)days += month1[i];days = (days + 1)%7;for (int j = 0; j < days; j++)cout << setw(10) << " ";cout << setw(3) << 1;for (j = 2; j <= month1[atoi(month.c_str()) - 1]; j++){days++;if (days%7 == 0)cout << endl << endl << setw(3) << j;elsecout << setw(10) << j ;}cout <<endl << endl <<"===================================================================" <<endl <<endl;month1[1] = 28;fflush(stdin);system("pause");
}// 判断输入的公历年份是否为闰年,是闰年则函数返回1,否则返回0
int whatdata::IsLeapYear(int Year)
{ if ((Year%4==0 && Year%100!=0) || Year%400==0)return 1;else return 0;
} // 计算输入公历年份的1月1日为从公元1年1月1日以来的第几天,返回天数
long whatdata::YearDays(int Year)
{ Year--; return(Year*365+Year/4-Year/100+Year/400+1);
} // 计算输入的公历日期为从公元1年1月1日以来的第几天,返回总天数
long whatdata::TotalDays(int Year, int Month, int Day)
{ const int MonthDays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; long Days=0L; int i; if(Month<=0)Month=1; if(Month>12){ Month--; Year+=Month/12; Month%=12; Month++; } for(i=1;i<Month;i++)Days+=MonthDays[i]; if(IsLeapYear(Year)&&Month>2)Days+=1; Days+=YearDays(Year);return Days+Day-1;
} //---------------------------------------------------------------------------
// 输入公历年月日,返回农历年月日,函数返回1表示成功,0表示失败
// 如果M2返回负值,则说明是农历的闰月,月份值为其绝对值.
int whatdata::GetLunar(int Y1, int M1, int D1, int &Y2, int &M2, int &D2)
{short MBit[13]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096}; long TDays; int Sum,Lest,i,Offset; Offset=Y1-BEGINYEAR;if(Offset<0||Offset>YEARCOUNT)return 0; TDays=TotalDays(Y1,M1,D1);Y2=Y1; if(LunarIndex[Offset].Days>TDays) {if(Offset==0)return 0; Offset--; Y2--; } Lest=(int)(TDays-LunarIndex[Offset].Days); for(Sum=i=0;i<13;i++) { if((LunarIndex[Offset].Mon13&MBit[i])!=0) { Sum+=30; if(Sum>Lest){Sum-=30; break;} } else { Sum+=29; if(Sum>Lest){ Sum-=29; break; } } } if(i==13)return 0;i++; if(i>LunarIndex[Offset].Leap) { i--; if(i==LunarIndex[Offset].Leap)i=-i; } M2=i; D2=Lest-Sum+1; return 1;
}
int main()
{whatdata object;rebook abook;char select;while (select = object.inter_face()){switch (select){case '1':abook.new_book();//新建记事本break;case '2':abook.scan_book();//浏览break;case '3':object.book_manage();//备忘录管理break;case '4':object.search_data();//日历查询break;case '5':cout << endl << "\t谢谢使用!!!!" << endl << endl << "\t";exit(0);break;default:break;}}return 0;
}
c++课程设计日历记事本相关推荐
- Java课程设计-日历记事本
#Java课程设计-日历记事本 ##日历记事本 要求:带有日程提醒功能的日历(数据库可采用Access.SQL Server或者MySQL). (1)显示信息:用户可以向前翻页查询前一个月的日期,也可 ...
- java课程设计日历记事本_《Java程序设计》课程设计日历记事本.doc
<Java程序设计>课程设计日历记事本 PAGE PAGE 2 本科生课程设计 课程名称 Java程序设计课程设计 课程编号 j1620011 题目 日历记事本 学号 2008116222 ...
- java课程设计日历_java课程设计日历记事本赵锐.doc
java课程设计日历记事本赵锐.doc 2本科生课程设计课程名称JAVA程序设计课程设计题目日历记事本学号201440930252学生姓名赵锐所在专业2014计算机学院所在班级信工2班成绩课程设计时间 ...
- java课程设计日历记事本代码,已开源
1.为什么要使用分布式锁 使用分布式锁的目的,无外乎就是保证同一时间只有一个客户端可以对共享资源进行操作. 1.1举一个很长的例子 系统 A 是一个电商系统,目前是一台机器部署,系统中有一个用户下订单 ...
- java课程设计日历,java课程设计--日历
java课程设计--日历 0 java 语言课程设计 学 院 指导教师 学 号 姓 名 班 级 1 目录 一.课程题目2 二.需求分析2 三.概要设计2 四.详细设计2 五.测试数据及运行结果8 六. ...
- java记事本课程设计,java记事本课程设计
java记事本课程设计 一. 设计内容和要求1. 设计一个具有 GUI 界面的记事本 含有简单的文字编辑功能 如 剪切.复制.粘贴.删除 还能实现保存.另存为.设置字体和颜色等功能.2. 本程 ...
- c语言课程设计 日历显示,c语言课程设计_电子日历.doc
c语言课程设计_电子日历 第 PAGE \* Arabic \* MERGEFORMAT 14 页第 PAGE \* Arabic \* MERGEFORMAT 14 页 课 程 设 计( 论 文 ) ...
- c 语言课程设计日历,C++课程设计(日历的实现)
万年历的C++实现 1.课程设计目的 编写具有以下功能的C++程序: (1).输入一个年份,输出是在屏幕上显示该年的日历. 假定输入的年份在1940-2040年之间. (2).输入年月,输出该月的日历 ...
- C语言课程设计日历题目
闲来无事,看到梁老师博客里有C课程设计的题,于是就选了一道试着做了下. (今年课程设计给出的题目中最简单的一道) 代码里面有比较详细的注释,实现起来也很简单,额,,用到的技术有:单链表(存储节日设置) ...
最新文章
- 手机开发必备技巧:javascript及CSS功能代码分享
- java命令行编译时提示找不到或无法加载主类的问题
- linux多网卡bind发送数据,Linux系统多网卡绑定实战
- Android测试(二)——drozer使用
- 【Boost】boost库中智能指针——scoped_ptr
- PHP实现高并发下的秒杀功能–Laravel
- 数据库基础系列之一:MySQL账户
- Pycharm配置Python虚拟环境与在虚拟环境安装PYQT5
- (8)Verilog include 头文件使用路径(FPGA不积跬步101)
- 60-270-040-源码-指标监测-Flink自定义metric监控流入量
- 用VC++ 6.0实现视频捕捉
- 阿里张勇《人民日报》刊发署名文章:抓住数字新基建的机遇
- 用python写MapReduce函数——以WordCount为例
- bootice 修改ubuntu win10 系统引导在一个硬盘上时的系统启动顺序
- 易管家服装进销存 v1.0 下载
- 推荐:碎碎念情境记忆法——最适合程序员的背单词方法
- js输出26个英文字母
- 【bzoj 3238】差异
- 李炎恢-在线商城第三季总结
- WebSocket断开原因
热门文章
- [CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode开发环境
- r语言 怎么把字调大_R语言 如何为图片添加文字说明(转载)
- 王者荣耀4.4日服务器维护,王者荣耀服务器正在维护中 4月4日王者荣耀维护到几点?...
- 购买iPhone手机时的专业术语名词解析
- 设置移动光猫外置路由器(上网+iptv正常使用)
- 图的广度优先搜索(BFS)和深度优先搜索(DFS)算法解析
- 关于开源软件的几个看法
- 在墙上找垂直线_红外线水平仪如何看墙面垂直
- Mysql中B树与B+树的区别
- vue之猫眼json数据的获取直接用于自己的vue项目中,swiper轮播插件的坑