基于TXT文本的简单图书管理系统
1
////////////////////////////////////////////////////////////////////////////////////// //SqList.h 顺序表数据结构C++类定义(基类) //////////////////////////////////////////////////////////////////////////////////////
//#ifndef MYHEAD_H
// #define MYHEAD_H
// #include"myhead.h"
//#endif
typedef int Status;
#define LIST_MAX_SIZE 10
#define LISTINCREMENT 3 //顺序表使用的一些常量说明
#define ERROR 0
#define OK 1
//////////////////////////////////////////////////////////////////////////////////////
#include<assert.h>
//顺序表数据结构C++声明(基类)
template <typename ElemType>
class SqList
{
public: int n; int bin_Search(ElemType key); //有序顺序表折半查找 void clear(); //把顺序表置空 Status deleteElem(int i, ElemType& e); //删除第i个元素 Status getElem(int i, ElemType& e); //取第i个元素 int getLength(); //求顺序表中元素的个数 int getListSize(); //取顺序表空间的大小 Status insert(int i, ElemType e); //在第i个元素之前插入一个元素 bool isEmpty(); //判断顺序表是否置空 int locateElem(ElemType e, Status(*compare)(ElemType, ElemType)); //查找第1个与e满足compare()关系的元素的序号 Status nextElem(ElemType e, ElemType& next_e); //返回某元素的后继 SqList<ElemType> operator =(SqList <ElemType> rightL);//重载赋值运算符的定义 Status priorElem(ElemType e, ElemType& prior_e);//返回某元素的前驱 int sequentialSearch(ElemType e);//在顺序表中查找某元素 //******************************系统自动调用构造函数及析构函数声明************************************// SqList(); virtual ~SqList(); SqList(const SqList<ElemType>& otherL); //顺序表拷贝初始化构造函数 void SqList<ElemType>::input(); void SqList<ElemType>::display() const; void SqList<ElemType>::randSqList(); //**************************求并、交、差集****************************************// //求两顺序表的并集
void unionSet(SqList <ElemType> firstL, SqList <ElemType> secondL); protected:
ElemType *elem;
int listSize;
//int n;
}; /////////////////////////////////////////////////////////////////////////////////// //顺序表数据结构C++类的实现 ////////////////////////////////////////////////////////////////////////////////// //折半查找
template <typename ElemType>
int SqList<ElemType>::bin_Search(ElemType key)
{
int low, mid, high;
low = , high = n - ;
while (low <= high)
{
mid = (low + high) / ;
if (elem[mid] == key)
return mid + ;
else if (elem[mid]<key)
low = mid + ;
else
high = mid - ;
}
return ;
} //把顺序表置空
template <typename ElemType>
void SqList<ElemType>::clear()
{
n = ;
} //删除第i个元素
template <typename ElemType>
Status SqList<ElemType>::deleteElem(int i, ElemType& e)
{ if (i< || i>n) return ERROR;
e = elem[i - ];
for (int j = i + ; j <= n; ++j)
elem[j - ] = elem[j - ];
--n;
return OK;
} //取第i个元素
template <typename ElemType>
Status SqList<ElemType>::getElem(int i, ElemType& e)
{
if (i< || i>n)
return ERROR;
e = elem[i - ];
return OK;
} //求顺序表中元素个数
template <typename ElemType>
int SqList<ElemType>::getLength()
{
return n;
} //取顺序表存储空间的大小
template <typename ElemType>
int SqList<ElemType>::getListSize()
{
return listSize;
} //在第i个元素之后插入一个元素
template <typename ElemType>
Status SqList<ElemType>::insert(int i, ElemType e)
{
ElemType *newbase; if (i< || i>n + ) return ERROR; if (n >= listSize)
{
newbase = new ElemType[listSize + LISTINCREMENT];
assert(newbase != );
for (int j = ; j <= n; ++j)
newbase[j - ] = elem[j - ]; delete[] elem;
elem = newbase;
listSize += LISTINCREMENT;
}
for (int j = i+; j+<n-; j++)
elem[j+] = elem[j];
elem[i] = e;
++n;
return OK;
}
//判断顺序表是否为空
template <typename ElemType>
bool SqList<ElemType>::isEmpty()
{
return n ? false : true;
} //查找第i个与额满足compare()关系的元素
template <typename ElemType>
int SqList<ElemType>::locateElem(ElemType e, Status(*compare)(ElemType, ElemType))
{
int i = ;
for (i = ; i <= n && !(*compare)(elem[i - ], e); ++i); if (i <= n)
return i;
else
return ;
} //返回某元素的后继
template <typename ElemType>
Status SqList<ElemType>::nextElem(ElemType e, ElemType& next_e)
{
int i = locateElem(e, equal);
if (i< || i == n)
return ERROR;
else
getElem(i + , next_e);
return OK;
} //重载赋值运算符的定义
template <typename ElemType>
SqList<ElemType> SqList<ElemType>::operator=(SqList<ElemType>rightL)
{
if (this != &rightL)
{
if (listSize<rightL.listSize)
{
delete[] elem;
elem = new ElemType[rightL.listSize];
assert(elem != );
listSize = rightL.listSize;
}
n = rightL.n;
for (int i = ; i <= n; ++i)
elem[i - ] = rightL.elem[i - ];
}
return *this;
} //返回某元素的前驱
template <typename ElemType>
Status SqList<ElemType>::priorElem(ElemType e, ElemType& prior_e)
{
int i = locateElem(e, equal); if (i <= )
return ERROR;
else
getElem(i - , prior_e);
return OK;
} //在顺序表中顺序查找某元素
template <typename ElemType>
int SqList<ElemType>::sequentialSearch(ElemType key)
{
for (int i = ; i <= n; && key != elem[i - ]; ++i); if (i <= n)
return i;
else
return ;
} //**************************系统自动调用初始化构造函数****************************// //构造函数
template <typename ElemType>
SqList<ElemType>::SqList()
{
elem = new ElemType[LIST_MAX_SIZE];
assert(elem != );
listSize = LIST_MAX_SIZE;
n = ;
} //顺序表析构函数
template <typename ElemType>
SqList<ElemType>::~SqList()
{
delete[] elem;
} //顺序表初始化构造函数
template <typename ElemType>
SqList<ElemType>::SqList(const SqList<ElemType>& otherL)
{
elem = new ElemType[otherL.listSize];
assert(elem != );
listSize = otherL.listSize;
n = otherL.n;
for (int i = ; i <= n; ++i)
elem[i - ] = otherL.elem[i - ];
} ////////////////////////////////////////////////////////////////////////////////////// //输入顺序表
template <typename ElemType>
void SqList<ElemType>::input()
{
cout << "请输入顺序表元素的个数:";
cin >> n;
cout << "请输入顺序表:";
for (int i = ; i<n; ++i)
cin >> elem[i];
} // 输出顺序表 template <typename ElemType>
void SqList<ElemType>::display() const
{
cout << "当前顺序表有" << n << "个元素,分别为:" << endl;
for (int i = ; i <= n; ++i)
cout << "[" << i << "] ";
cout << endl;
for (int i = ; i <= n; ++i)
cout << " " << elem[i - ] << " ";
cout << endl;
cout << endl;
} //随机生成顺序表 template <typename ElemType>
void SqList<ElemType>::randSqList()
{
srand((unsigned)time(NULL)); cout << "用以下随机数作为当前顺序表的元素:" << endl; for (int i = ; i<listSize; i++)
{
elem[i] = rand() % + ;
cout << elem[i] << " ";
n++;
}
cout << endl;
// cout<<endl<<"输出随机生成的顺序表,";
/*for(int i=1;i<=n;++i)
cout<<"["<<i<<"] ";
cout<<endl;
for(int i=1;i<=n;++i)
cout<<" "<<elem[i-1]<<" ";
cout<<endl;*/
//display( );
} //////////////////////////////////////////////////////////////////////////////// //功能:判断两整数是否相等
//输入:函数的值参a和b为需要比较的两个整数
//输出:若a等于b,函数的返回值为OK;否则为ERROR
Status equal(int a, int b)
{
if (a == b)
return OK;
else
return ERROR;
} //功能:判断一个整数是否大于另一个整数
//输入:函数的值参a和b为需要比较的两个整数
//输出:若a大于b,函数的返回值为OK;否则为ERROR
Status great(int a, int b)
{
if (a>b)
return OK;
else
return ERROR;
} //功能:判断一个整数是否小于另一个整数
//输入:函数的值参a和b为需要比较的两个整数
//输出:若a小于b,函数的返回值为OK;否则为ERROR
Status small(int a, int b)
{
if (a<b)
return OK;
else
return ERROR;
} ////////////////////////////////////////////////////////////////////////////////////// //求两顺序表的并集
template <typename ElemType>
void SqList <ElemType>::unionSet(SqList <ElemType> firstL, SqList <ElemType> secondL)
{
ElemType e;
SqList <ElemType> thirdL(firstL); for (int i = ; i <= secondL.getLength(); ++i)
{
cout << thirdL.n << endl;
secondL.getElem(i, e);
if (!firstL.locateElem(e, equal))
{ //++thirdL.n;
thirdL.insert(thirdL.n + , e);
}
}
thirdL.display();
}
//派生图书信息类
#include"Sqlist.h"
#include<string>
#include <sstream>
#include <strstream>
using namespace std;//用string必带
enum book
{
children_book,
learn_book,
tool_book,
story_book,
Science_book
};
struct Book_data
{
int ID;
string name;
double price;
book type;
bool borrow;
};
class Dc_wr
{
private: static int n;
public:
static bool Write_dc(string a,string b)//追加
{
ofstream f1(b, ios::app);
if (!f1)
return false;//打开文件失败则结束运行
f1 << a << endl;//使用插入运算符写文件内容
f1.close();//关闭文件
n++;
return true;
}
static bool Write_fg(string a, string b)//覆盖
{
ofstream f1(b);
if (!f1)
return false;//打开文件失败则结束运行
f1 << a << endl;//使用插入运算符写文件内容
f1.close();//关闭文件
n++;
return true;
}
static bool Read_dc(string &a,string b)
{
ifstream f1(b);
if (!f1)
{
f1.close();
return false;
}
f1 >> a;
f1.close();
return true;
}
static bool Read_zline(string &a, int b,string c)
{
ifstream f1(c);
if ((!f1) && b <= n)
{
f1.close();
return false;
}
for (int i = ; i <= b; i++)
f1 >> a;
f1.close();
return true; }
static bool Read_star(string &a, int b)//程序开始时取出文本指定行数据返回字符串
{
string c;//接受不要的行字符串
ifstream f1("library.txt");
for (int i = ; i <= b; i++)
{
if (i == b)
{
f1 >> c;
if (c != "")
{
a = c;
f1.close();
return true;
}
else
{
f1.close();
return false;
}
}
f1 >> c;
if (c == "")
{
f1.close();
return false;
}
}
f1.close();
return false;
}
static bool Del(int b)
{
string a;
ofstream f2("library(复本).txt", ios::app);
if (!f2)
return false;
ifstream f1("library.txt");
if (!f1)
return false;
for (int i=; ;i++)
{
f1 >> a;
if (i == b)
continue;
if (a == "#")
{
f2 << a;
break;
}
f2 << a;
}
f2.close();
f1.close();
ofstream f3("library.txt", ios::trunc);
ifstream f4("library.txt(复本).txt");
for (;;)
{
f4 >> a;
f3 << a;
if (a == "#")
break;
} }
static bool txt_to_txt(string b, string c, bool s)//用b覆盖c 清空b s为假添加#结束标记
{
string a;
ofstream f2(c, ios::trunc);//of写 if读 ios::trunc清空原文本后打开
ifstream f1(b);
for (;;)
{
f1 >> a;
if (a == "#")//遇到结束标记则关闭
break;
if (a == "")//读出字符串为空则关闭
break;
a = a + '\n';//换行
f2 << a;
}
f2.close();
if (!s)//根据参数判断是否给予结束标记
{
Dc_wr::Write_dc("#", c);
}
return true;
} };
class Book_in :public SqList<Book_data>
{
public:
~Book_in()
{ Class_totxt();
Dc_wr::Write_dc("#", "library(复本).txt");//加上结束标记方便下一次程序对文本读取
}
int Find_book(int ID);
int Find_book(string name);
bool Add_book(Book_data e,bool a);
string Record_tostring(Book_data e);
void txt_toclass();
void Out_book(int i);
void Borrow_book();
void Class_totxt();
void Return_book();
void Change_book();
}; bool Book_in::Add_book(Book_data e, bool a)//把e添加到类 如果a为真则添加到存本
{
if (a)
{
string record = Record_tostring(e);
Dc_wr::Write_dc(record, "library.txt");
cout << record << "添加到文本成功" << endl;
}
string record = Record_tostring(e);
if (insert(n, e))
{
cout << record << "填加到class成功" << endl;
return true;
}
else
return false;
}
string Book_in::Record_tostring(Book_data e)
{
string chge;
strstream change;
string record = "";
change << e.ID;
change >> chge;
record = record + chge + "|" + e.name;
strstream change3;
change3 <<e.price;
change3 >> chge;
record = record + "|" + chge;
switch (e.type)
{
case children_book:record = record + "|" + ""; break;
case learn_book:record = record + "|" + ""; break;
case tool_book:record = record + "|" + ""; break;
case story_book:record = record + "|" + ""; break;
case Science_book:record = record + "|" + ""; break;
default:
break;
};
if (e.borrow)
record = record + "|" + "";
else
record = record + "|" + "";
return record;
}
void Book_in::txt_toclass()
{
int x, y;
Book_data e;//把分割好的字符串转化为相应的类型赋值成为一个Bool_data类型
for (int p=;;p++)//p控制接受输出字符串的数组
{
int i = ;
string a;
string data[];
Book_data check;
if (!Dc_wr::Read_star(a, p))
return;
//if (a == "#")
// return;
for each (char b in a)//利用for each取出字符串存放在数组
{
if (i == )//1个Book_data中有5值
break;
if (b != '|')
{
data[i] = data[i] + b;
}
else
{
i++;
}
}
//对应的数据类型转换
stringstream f1;
f1 << data[];
f1 >> e.ID; e.name = data[]; stringstream f2;
f2 << data[];
f2 >> e.price; stringstream f3;
f3 << data[];
f3 >> x;
switch (x)
{
case : e.type = children_book; break;
case : e.type = learn_book; break;
case : e.type = tool_book; break;
case : e.type = story_book; break;
case : e.type = Science_book; break;
default:
break;
} stringstream f4;
f4 << data[];
f4 >> y;
switch (y)
{
case : e.borrow = true; break;
case : e.borrow = false; break;
default:
break;
}
//对应的数据类型转换
if (check.ID == e.ID)
return;
Add_book(e, false);//把Book_data 填加到类
check = e;
}
}
void Book_in::Out_book(int i)
{
cout << elem[i].ID << " " << elem[i].name << " " << elem[i].price << " ";
switch (elem[i].type)
{
case children_book:cout << "儿童类" << " "; break;
case learn_book:cout << "学习类" << " "; break;
case tool_book:cout << "工具类" << " "; break;
case story_book:cout << "小说类" << " "; break;
case Science_book:cout << "科学类" << " "; break;
default:
break;
};
if (elem[i].borrow)
cout << "被借阅" << endl;
else
cout << "未被借阅" << endl;
}
int Book_in::Find_book(int ID)
{
for (int i = ; i <=n - ;i++)
{
if (elem[i].ID == ID)
{
Out_book(i);
return i;
}
}
cout << "没有找到相关书籍" << endl;
return -;
}
int Book_in::Find_book(string name)
{
for (int i = ; i <= n - ; i++)
{
if (elem[i].name == name)
{
Out_book(i);
return i;
}
}
cout << "没有找到相关书籍" << endl;
return -;
}
void Book_in::Borrow_book()
{
int ID;
int i;
char t;
p:
cout << "请输入书籍ID" << endl;
cin >> ID;
i = Find_book(ID);
if (i+)
{
if (!elem[i].borrow)
{
cout << "该书现在可以借出" << endl;
cout << "是否借书?(y or anykey)" << endl;
cin >> t;
if (t == 'y')
elem[i].borrow = true;
cout << "OK" << endl;
}
else
cout << "该书现在已经被借走" << endl;
}
else
{
cout << "没有找到请重新输入" << endl;
goto p;
}
}
void Book_in::Class_totxt()
{
Book_data e;
string a;
for (int i = ; i <= n; i++)
{
getElem(i, e);
a=Record_tostring(e);
if (i == )
Dc_wr ::Write_fg(a, "library(复本).txt");//第一行覆盖原文本
else
Dc_wr ::Write_dc(a, "library(复本).txt");//追加
}
}
void Book_in::Return_book()
{
int ID;
int i;
cout << "请输入书籍ID" << endl;
cin >> ID;
i = Find_book(ID);
if (i + )
{
elem[i].borrow = false;
cout << "已完成还书!" << endl;
}
}
void Book_in::Change_book()
{
int ID;
int change;
int i;
cout << "请你输入你要修改书的ID" << endl;
cin >> ID;
i = Find_book(ID);
if (i + )
{
cout << "找到图书!" << endl;
}
else
{
cout << "未找到图书" << endl;
return;
}
cout << "请输入要修改的项:"<<"1.ID" << " 2.书名"<< " 3.价格"<< " 4.书类"<< " 5.是否被借阅"<<"6.删除整个书的信息"<< endl;
cin >> change;
switch (change)
{
case :
{
int a;
cout << "请输入你要改的ID" << endl;
cin >> a;
elem[i].ID = a;
cout << "修改成功!" << endl;
}; break;
case :
{
string a;
cout << "请输入你要改的书名" << endl;
cin >> a;
elem[i].name = a;
cout << "修改成功!" << endl;
}; break;
case :
{
int a;
cout << "请输入你要改的价格" << endl;
cin >> a;
elem[i].price = a;
cout << "修改成功!" << endl;
}; break;
case :
{
int a;
string c[] = { "儿童类", "学习类", "工具类", "小说类", "科学类" };
cout << "请输入你要修改的书的类别(1." << c[] << " 2." << c[] << " 3." << c[] << " 4." << c[] << " 5." << c[] << endl;
cin >> a;
switch (a)
{
case : elem[i].type = children_book; break;
case : elem[i].type = learn_book; break;
case : elem[i].type = tool_book; break;
case : elem[i].type = story_book; break;
case : elem[i].type = Science_book; break;
default:
break;
}
cout << "修改成功!" << endl;
}; break;
case :
{
if (elem[i].borrow)
elem[i].borrow = false;
else
elem[i].borrow = true;
cout << "修改成功!" << endl;
}
case :
{
Book_data a;
deleteElem(i+, a);
cout << "修改成功!" << endl;
}
default:
break;
}
}
//mian
#include<iostream>
#include<fstream>
//#include"Query_sequence.h"
#include"Book_information.h"
using namespace std;
int Dc_wr::n = ;
int Menu()
{
int choice;
system("cls");
cout << "****************************************************图书管理系统****************************************************" << endl;
//cout << "①⑧⑨⑩" << endl;
cout << "▓ ①增加图书 ▓" << endl;
cout << "▓ ②查看现有图书 ▓" << endl;
cout << "▓ ③借书 ▓" << endl;
cout << "▓ ④还书 ▓" << endl;
cout << "▓ ⑤修改图书 ▓" << endl;
cout << "▓ ⑥查找书籍 ▓" << endl;
cout << "****************************************************图书管理系统****************************************************" << endl;
cout << "请选择:";
cin >> choice;
return choice;
}
void Add(Book_in& library)
{
Book_data a;
//Book_data b;
//Book_data c;
book type;
int b;
string o;
string c[] = { "儿童类", "学习类", "工具类", "小说类", "科学类" };
cout << "请输入ID" << endl;
cin >> a.ID;
cout << "请输入书名" << endl;
cin >> a.name;
cout << "请输入书的价格" << endl;
cin >> a.price;
book_type_xuanz:
cout << "请输入数的类别(1." << c[] << " 2." << c[] << " 3." << c[] << " 4." << c[] << " 5." << c[] << endl;
cin >> b;
switch (b)
{
case : a.type = children_book; break;
case : a.type = learn_book; break;
case : a.type = tool_book; break;
case : a.type = story_book; break;
case : a.type = Science_book; break;
default:cout << "选择错误!请重新选择" << endl; goto book_type_xuanz;
};
getchar();
cout << "书是否被借出(n OR y)" << endl;
cin >> o;
if (o == "n")
a.borrow = false;
else
a.borrow = true;
library.Add_book(a, true);
//a.ID = 1;
//a.borrow = false;
//a.name = "first";
//a.price = 12;
//a.type = tool_book;
//b.ID = 2;
//b.borrow = false;
//b.name = "scend";
//b.price = 13;
//b.type = learn_book;
//c.ID = 3;
//c.borrow = true;
//c.name = "third";
//c.price = 14;
//c.type = story_book;
//library.Add_book(a,true);
//library.Add_book(b,true);
//library.Add_book(c,true);
}
int main()
{
Book_in library;//一个图书类
int choice;//用户菜单选择
Book_data h;
Dc_wr::txt_to_txt("library(复本).txt", "library.txt",true);//以复本覆盖存本
library.txt_toclass();//根据存本提出字符串转化为类
start:
choice=Menu();
switch (choice)
{
case :
{
for (char m = 'y'; m != 'n';)
{
Add(library);
getchar();
cout << "是否继续添加?(n OR y)" << endl;
m=getchar();
} }
break;
case :
{
if (library.n == )
{
cout << "无" << endl;
}
cout << "ID" << " " << "书名" << " " << "价格" << " " << "类型" << " " << "是否被借阅" << endl;
for (int i = ; i <=library.n - ; i++)
library.Out_book(i);
}; break;
case :
{
library.Borrow_book();
}
; break;
case :
{
library.Return_book();
}
; break;
case :
{
library.Change_book();
}
; break;
case :
{
int p;
int ID;
string name;
cout << "通过ID查找输入1 通过书名查找输入2" << endl;
cin >> p;
if (p == )
{
cout << "请输入ID" << endl;
cin >> ID;
cout << "相关信息" << endl;
library.Find_book(ID);
}
else
{
cout << "请输入书名" << endl;
cin >> name;
cout << "相关信息" << endl;
library.Find_book(name);
} }
default:
break;
};
char k;
cout << "是否继续选择?(anykey or y)" << endl;
cin >> k;
if (k == 'y')
goto start;
system("pause");
return ;
}
基于TXT文本的简单图书管理系统的更多相关文章
- 基于Java SE集合的图书管理系统
		
图书管理系统一.需求说明1.功能:登录,注册,忘记密码,管理员管理,图书管理.2.管理员管理:管理员的增删改查.3.图书管理:图书的增删改查.4.管理员属性包括:id,姓名,性别,年龄,家庭住址,手机 ...
 - 第二十五篇 -- C++宝典中的图书管理系统
		
此篇文章是基于C++宝典写的图书管理系统,本人对其中的部分做了相应修改,并且以现有格式替代原有格式,使程序更加清晰明了.此程序运行在VS2017上. 系统设计 图书管理系统分为四个模块:图书管理模块. ...
 - JAVA图书管理系统汇总共27个
		
好多人都在搜索图书管理系统,感觉这个挺受欢迎的,所以整理了一系列的图书管理系统,让大家选择.java图书馆管理系统[优秀毕业设计论文+源码]http://down.51cto.com/data/683 ...
 - JAVA图书管理系统汇总共27个[转]
		
java图书馆管理系统[优秀毕业设计论文+源码]http://down.51cto.com/data/68350java+sql server图书管理系统 http://down.51cto.com/ ...
 - 放出一批jsp图书管理系统图书借阅系统源码代码运行
		
基于jsp+mysql的JSP图书销售管理系统 https://www.icodedock.com/article/105.html基于jsp+Spring+Spring MVC的Spring图书借阅 ...
 - 基于jsp+servlet图书管理系统之后台用户信息修改操作
		
上一篇的博客写的是查询操作,且附有源码和数据库,这篇博客写的是修改操作,附有从头至尾写的代码(详细的注释)和数据库! 此次修改操作的源码和数据库:http://download.csdn.net/de ...
 - 基于jsp+servlet图书管理系统之后台万能模板
		
前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...
 - [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)
		
[入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date 周六 10 一月 2015 By 钟谢伟 Category website develop ...
 - 基于jsp+servlet图书管理系统之后台用户信息插入操作
		
前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...
 
随机推荐
- 学习Struts2的第一个应用步骤
			
---恢复内容开始--- 一.在官网 http://struts.apache.org/下载struts-2.3.31-all 1. 打开struts-2.3.31-all,将struts-2.3. ...
 - iOS面试必看
			
转载:http://www.jianshu.com/p/5d2163640e26 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会到今年的就业形 ...
 - WPF学习系列 简单的窗体设置
			
今天要学习的源码是一个窗体设置.效果如下,可拖拽.这让我想起了vs的启动界面 下面是源码的情况 项目结构: 窗体代码: cs代码 1.新建项目 略 2.设置窗体 AllowsTransparency= ...
 - BZOJ 2006: [NOI2010]超级钢琴
			
2006: [NOI2010]超级钢琴 Time Limit: 20 Sec Memory Limit: 552 MBSubmit: 2613 Solved: 1297[Submit][Statu ...
 - Eclipse安装scala
			
Scala官方提供了三种插件,分别支持Eclipse.NetBeans和Intellij IDEA开发环境.要在Eclipse IDE下安装Scala插件:选择Eclipse的菜单项Help--> ...
 - 【poj3744】 Scout YYF I
			
http://poj.org/problem?id=3744 (题目链接) 题意 给出n个雷,分别在 a[1]...a[n] ,走一步概率为 p ,走两步概率为 1-p ,一开始在 1 号位置,问安全 ...
 - 团队作业week16
			
0.新成员如何管理和使用这个工程? 对于后端而言,因为我们也是初次接触Django,因此从我们学习到程序编写过程中用到的各种知识都有学习笔记,比如Django的详细使用,Django数据库的使用.跨域 ...
 - C#基础练习
			
1.冒泡排序 namespace _0 { class Program { public static int[] BubbleSort(int[] arr) { ; i < arr.Lengt ...
 - python应用案例
			
安装库 : PIL(Image.ImageDraw.ImageFont.zlib).jpeg 常见问题 (1) Could not find a version that satisfies the ...
 - 淘宝分布式文件存储系统:TFS
			
TFS ——分布式文件存储系统 TFS(Taobao File System)是淘宝针对海量非结构化数据存储设计的分布式系统,构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问. ...