圖書管理系統??

#include<iostream>

#include<conio.h> //控制臺數據輸入輸出的函數

#include<fstream>//文件流

#include<iomanip> //控制數據輸出格式

#include<string>

using namespace std;

const int Maxr=100 ;//最多的讀者數

const int Maxb=100; //最多的圖書數

const int Maxbor=5; //每位讀者最多借的書

class Book

{//圖書類,實現對圖書的描述,圖書的編號,書名,借出,還入等功能

private:

int tag; //刪除標記 1:已刪 0:未刪

int no; //圖書編號

char name[20]; //書名

char author[20];//作者

char fenlei[20];//分類號

char cbs[20]; //出版社

int cbtime;//出版時間

double bookprice;//圖書價格

int onshelf; //是否再架 1:再架 2:已借

public:

Book(){;}

char *getname()

{//獲取書名

return name;

}

char *getauthorname()

{//獲取作者名

return author;

}

char *getfenlei()

{//獲取分類號

return fenlei;

}

char *getcbsname()

{//獲取出版社名

return cbs;

}

int getcbtime()

{//獲取出版時間

return cbtime;

}

double getbookprice()

{//獲取圖書價格

return bookprice;

}

int getno()

{//獲取圖書編號

return no;

}

int gettag()

{//獲取刪除標記

return tag;

}

void setname(char na[])

{//設置書名

strcpy_s(name,na);

}

void setauthorname(char aa[])

{//設置作者名

strcpy_s(author,aa);

}

void setfenlei(char fe[])

{//設置分類號

strcpy_s(fenlei,fe);

}

void setcbs(char ca[])

{//設置出版社

strcpy_s(cbs,ca);

} void setcbtime(int time)

{//設置時間

cbtime=time;

}

void setbookprice(double price)

{//設置圖書價格

bookprice=price;

}

void setonshelf(int oa)

{

onshelf=oa;

}

void delbook()

{//刪除圖書

char i;

cout<<"確定刪除嗎?Y/N ?"<<endl; cin>>i;

if(i=='y'||i=='Y')

tag=1;

}

void addbook(int n,char *na,char *aa,char *fe,char *ca,int time,double price,int oa)

{//增加圖書

tag=0;

no=n;

strcpy_s(name,na);

strcpy_s(author,aa);

strcpy_s(cbs,ca);

strcpy_s(fenlei,fe);

cbtime=time;

bookprice=price;

onshelf=oa;

}

int borrowbook()

{//借書操作

if (onshelf>0)

{

onshelf--;

return 1;

}

return 0;

}

void retbook()

{//還書操作

onshelf++;

}

void disp()

{//輸出圖書

cout<<setw(3)<<no<<setw(10)<<name<<setw(10)<<author<<setw(10)<<fenlei<<setw(15)<<cbs<<setw(10)<<cbtime<<setw(10)<<bookprice<<setw(10)<<onshelf<<endl;

}

};

class BDatabase

{//圖書庫類,實現對圖書的維護,查找,刪除等

private: int top; //圖書記錄指針

Book book[Maxb]; //圖書記錄

public:

BDatabase()

{//構造函數,將book.txt讀到book[]中

Book b;

top=-1;

fstream file("book.txt",ios::in);

while (1)

{

file.read((char *)&b,sizeof(b));

if (!file)

break;

top++;

book[top]=b;

}

file.close();

}

void clear()

{//全刪

char i;

cout<<"確定全部刪除嗎?Y/N ?"<<endl;

cin>>i;

if(i=='y'||i=='Y')

top=-1;

}

int addbook(int n,char *na,char *aa,char *fe,char *ca,int time, double price,int oa)

{//增加圖書

Book *p=query1(n);

if (NULL==p)

{

top++;

book[top].addbook(n,na,aa,fe,ca,time,price,oa);

return 1;

}

return 0;

}

Book *query1(int bookid)

{//按編號查找圖書

for(int i=0;i<=top;i++)

if(book[i].getno()==bookid &&book[i].gettag()==0)

{

return &book[i];

}

return NULL;

}

Book *query2(char a[])

{//按書名查找圖書

Book *e;

int r=0;

for(int i=0;i<=top;i++)

if(strcmp(book[i].getname(),a)==0 &&book[i].gettag()==0)

{

if(r==0)

cout<<setw(3)<<"編號"<<setw(10)<<"書名"<<setw(10)<<"作者"<<setw(10)<<"分類號"<<setw(15)<<"出版社"<<setw(10)<<"出版時間"<<setw(10)<<"圖書價格"<<setw(10)<<"存量"<<endl;

e=&book[i];

e->disp();

r++;

}

if(r==0)

cout<<"找不到該書!"<<endl;

return NULL;

}

Book *query3(char a[])

{//按作者查找圖書

Book *e;

int r=0;

for(int i=0;i<=top;i++)

if(strcmp(book[i].getauthorname(),a)==0 &&book[i].gettag()==0)

{

if(r==0) cout<<setw(3)<<"編號"<<setw(10)<<"書名"<<setw(10)<<"作者"<<setw(10)<<"分類號"<<setw(15)<<"出版社"<<setw(10)<<"出版時間"<<setw(10)<<"圖書價格"<<setw(10)<<"存量"<<endl;

e=&book[i];

e->disp();

r++;

}

if(r==0)

cout<<"找不到該書!"<<endl;

return NULL;

}

Book *query4(char a[])

{//按出版社查找圖書

Book *e;

int r=0;

for (int i=0;i<=top;i++)

if (strcmp(book[i].getcbsname(),a)==0 &&book[i].gettag()==0)

{

if(r==0)cout<<setw(3)<<"編號"<<setw(10)<<"書名"<<setw(10)<<"作者"<<setw(10)<<"分類號"<<setw(15)<<"出版社"<<setw(10)<<"出版時間"<<setw(10)<<"圖書價格"<<setw(10)<<"存量"<<endl;

e=&book[i];

e->disp();

r++;

}

if(r==0)

cout<<"找不到該書!"<<endl;

return NULL;

}

void bookdata(); //圖書庫信息

void disp()

{

for(int i=0;i<=top;i++)

if(book[i].gettag()==0)

book[i].disp();

}

~BDatabase()

{//析構函數,將book[]寫到book.txt文件中

fstream file("book.txt",ios::out);

for(int i=0;i<=top;i++)

if(book[i].gettag()==0)

file.write((char *)&book[i],sizeof(book[i]));

file.close();

}

};

void BDatabase::bookdata()

{

char choice3;

char bname[40];//書名

char auname[40];//作者名

char bfenlei[40];//分類號

char cname[40];//出版社

int time;//出版時間

double price;//價格

char ch;

int choice4;

int bookid;

int bookod; Book *b;

while (choice3!='0')

{

cout<<"\n\t\t\t** 圖 書 信 息 **\n"<<endl;

cout<<"\t\t\t** 1.新 增 **"<<endl;

cout<<"\t\t\t** 2.更 改 **"<<endl;

cout<<"\t\t\t** 3.刪 除 **"<<endl;

cout<<"\t\t\t** 4.查 找 **"<<endl;

cout<<"\t\t\t** 5.顯 示 **"<<endl;

cout<<"\t\t\t** 6.全 刪 **"<<endl;

cout<<"\t\t\t** 0.返 回 **"<<endl;

cout<<"\t\t\t 請選擇:";

cin>>choice3;

switch(choice3)

{

case '1':

cout<<"請輸入新書編號:";

cin>>bookid;

b=query1(bookid);

if(b!=NULL)

{

cout<<"該編號已經存在,不能添加!"<<endl;

break;

}

cout<<"請輸入新書書名:";

cin>>bname;

cout<<"請輸入新書作者名:";

cin>>auname;

cout<<"請輸入新書分類號:";

cin>>bfenlei;

cout<<"請輸入新書出版社:";

cin>>cname;

cout<<"請輸入新書出版時間:";

cin>>time;

cout<<"請輸入圖書價格:";

cin>>price;

cout<<"請輸入新書數量:";

cin>>bookod;

addbook(bookid,bname,auname,bfenlei,cname,time,price,bookod);

char choice2;

{

cout<<"\n\t\t\t** 是 否 保 存 Y/N ?**\n"<<endl;

cout<<"\t\t\t** 1. Y 保 存 **"<<endl;

cout<<"\t\t\t** 0. N 不 保 存 **"<<endl;

cout<<"\t\t\t 請 選 擇: ";

cin>>choice2;

switch(choice2)

{

case '1':

cout<<"添加圖書成功!";

break;

case '0':

break;

}

}

_getch();

break;

case '2':

cout<<"請輸入圖書編號:";

cin>>bookid;

b=query1(bookid);

if(b==NULL)

{

cout<<"該圖書不存在! "<<endl;

break;

}

cout<<"該圖書的信息是:"<<endl;

cout<<setw(3)<<"編號"<<setw(10)<<"書名"<<setw(10)<<"作者"<<setw(10)<<"分類號"<<setw(15)<<"出版社"<<setw(10)<<"出版時間"<<setw(10)<<"圖書價格"<<setw(10)<<"存量"<<endl;

b->disp();

cout<<"是否修改?( y/n ):";

cin>>ch;

if(ch=='y'||ch=='Y')

{

int a; cout<<"\n\t\t\t** 圖 書 修 改 **\n"<<endl;

cout<<"\t\t\t** 1.修 改 書 名 **"<<endl;

cout<<"\t\t\t** 2.修 改 作 者 **"<<endl;

cout<<"\t\t\t** 3.修 改 分 類 號 **"<<endl;

cout<<"\t\t\t** 4.修 改 出 版 社 **"<<endl;

cout<<"\t\t\t** 5.修 改 出 版 時 間**"<<endl;

cout<<"\t\t\t** 6.修 改 圖 書 價 格**"<<endl;

cout<<"\t\t\t** 7.修 改 圖 書 數 量**"<<endl;

cout<<"\t\t\t** 0.返 回 **"<<endl;

cout<<"\t\t\t 請選擇:";

cin>>a;

switch(a)

{

case 1:

cout<<"請輸入新的書名:";

cin>>bname;

b->setname(bname);

break;

case 2:

cout<<"請輸入新的作者:";

cin>>auname;

b->setauthorname(auname);

break;

case 3:

cout<<"請輸入新的分類號:";

cin>>bfenlei;

b->setfenlei(bfenlei);

break;

case 4:

cout<<"請輸入新書出版社:";

cin>>cname;

b->setcbs(cname);

break;

case 5:

cout<<"請輸入新書出版時間:";

cin>>time;

b->setcbtime(time);

break;

case 6:

cout<<"請輸入圖書價格:";

cin>>price;

b->setbookprice(price);

break;

case 7:

cout<<"請輸入新的存量:";

cin>>bookod;

b->setonshelf(bookod);

break;

case 0:

break;

}

}

cout<<"修改圖書成功!";

_getch();

break;

case '3':

cout<<"請輸入圖書編號:";

cin>>bookid;

b=query1(bookid);

if(b==NULL)

{

cout<<"該圖書不存在,無法刪除!"<<endl;

break;

}

b->delbook();

cout<<"刪除成功!";

_getch();

break;

case '4':

cout<<"\n\t\t\t** 1.按圖書編號查找 **"<<endl;

cout<<"\t\t\t** 2.按圖書書名查找 **"<<endl;

cout<<"\t\t\t** 3.按圖書作者查找 **"<<endl;

cout<<"\t\t\t** 4.按圖書出版社查找**"<<endl;

cout<<"\t\t\t** 0. 返 回 **"<<endl;

cout<<"\t\t\t 請選擇:";

cin>>choice4;

switch(choice4)

{

case 1:

cout<<"請輸入圖書編號:";

cin>>bookid;

b=query1(bookid);

if(b==NULL)

{

cout<<"該圖書不存在!";

break;

}

cout<<setw(3)<<"編號"<<setw(10)<<"書名"<<setw(10)<<"作者"<<setw(10)<<"分類號"<<setw(15)<<"出版社"<<setw(10)<<"出版時間"<<setw(10)<<"圖書價格"<<setw(10)<<"存量"<<endl;

b->disp();

break;

case 2:

cout<<"請輸入圖書書名:";

cin>>bname;

b=query2(bname);

break;

case 3:

cout<<"請輸入圖書作者:";

cin>>auname;

b=query3(auname);

break;

case 4:

cout<<"請輸入圖書出版社:";

cin>>cname;

b=query4(cname);

break;

case 0:

break;

}

break;

case '5':

cout<<setw(3)<<"編號"<<setw(10)<<"書名"<<setw(10)<<"作者"<<setw(10)<<"分類號"<<setw(15)<<"出版社"<<setw(10)<<"出版時間"<<setw(10)<<"圖書價格"<<setw(10)<<"存量"<<endl;

disp();

_getch();

break;

case '6':

clear();

break;

default:

break;

}

}

}

class Reader

{//讀者的信息描述

private:

int tag; //刪除標記 1表示已刪 0表示未刪

int no; //讀者編號

char name[20]; //讀者姓名

int borbook[Maxbor]; //所借圖書

public:

Reader() //構造函數

{ ; }

friend ostream &operator<<(ostream &output,Reader &rd)

{

output<<rd.no;

output<<" "; output<<endl;

return output;

}

char *getname()

{//獲取姓名

return name;

}

int gettag()

{//獲取刪除標記

return tag;

}

int getno()

{//獲取讀者編號

return no;

}

void setname(char na[])

{//設置姓名

strcpy_s(name,na);

}

void delbook()

{//設置刪除標記 1:已刪 0:未刪

char i;

cout<<"確定刪除嗎?Y/N ?"<<endl;

cin>>i;

if(i=='y'||i=='Y')

tag=1;

}

void addreader(int n,char *na)

{//增加讀者

tag=0;

no=n;

strcpy_s(name,na);

for(int i=0;i<Maxbor;i++)

borbook[i]=0;

}

void borrowbook(int bookid)

{//借書操作

for(int i=0;i<Maxbor;i++)

{

if (borbook[i]==0)

{

borbook[i]=bookid;

return ;

}

}

}

int retbook(int bookid)

{//還書操作

for(int i=0;i<Maxbor;i++)

{

if(borbook[i]==bookid)

{

borbook[i]=0;

cout<<"還書成功!"<<endl;

return 1;

}

}

cout<<"未借該書,還書失敗!"<<endl;

return 0;

}

void disp()

{//讀出讀者信息

int have=0;

int bz=0;

cout<<setw(5)<<no<<setw(21)<<name<<setw(15);

for(int i=0;i<Maxbor;i++)

if(borbook[i]!=0)

{

if(bz==0)

{

have=1;

cout<<"["<<borbook[i]<<"]\t\t"<<endl;

bz++;

}

else

{

cout<<"\r\t\t\t\t\t""["<<borbook[i]<<"]\t\t"<<setw(15)<<endl;

}

}

if(have==0)

cout<<"\t 還未借書"<<endl;

}

};

class RDatabase

{//讀者類庫,實現建立讀者的個人資料

private:

int top; //讀者記錄指針

Reader read[Maxr]; //讀者記錄

public:

RDatabase()

{//構造函數,將reader.txt讀到read[]中

Reader s;

top=-1;

fstream file("reader.txt",ios::in);//打開一個輸入文件

while (1)

{

file.read((char *)&s,sizeof(s));

if (!file)

break;

top++;

read[top]=s;

}

file.close(); //關閉 reader.txt 文件

}

void clear()

{//刪除所有讀者信息

char i;

cout<<"確定全部刪除嗎?Y/N ?"<<endl;

cin>>i; if(i=='y'||i=='Y')

top=-1;

}

int addreader(int n,char *na)

{//添加讀者時先查找是否存在

Reader *p=queryid(n);

if (p==NULL)

{

top++;

read[top].addreader(n,na);

return 1;

}

else

cout<<"該編號已經存在!";

return 0;

}

Reader *queryid(int readerid)

{//按讀者編號查找

for (int i=0;i<=top;i++)

if (read[i].getno()==readerid&&read[i].gettag()==0)

{

return &read[i];

}

return NULL;

}

Reader *queryname(char readername[10])

{//按讀者姓名查找

for (int i=0;i<=top;i++)

if (strcmp(read[i].getname(),readername)==0 && read[i].gettag()==0)

{

return &read[i];

}

return NULL;

}

void disp()

{//輸出所有讀者信息

for(int i=0;i<=top;i++)

if (read[i].gettag()==0)

read[i].disp();

}

void readerdata(); //讀者庫信息

~RDatabase()

{//析構函數,將read[]寫到reader.txt文件中

fstream file("reader.txt",ios::out);

for (int i=0;i<=top;i++)

if (read[i].gettag()==0)

file.write((char *)&read[i],sizeof(read[i]));

file.close();

}

};

void RDatabase::readerdata()

{

char choice1;

char rname[20];

int readerid;

char readername[10];

int choice2;

Reader *r;

while(choice1!='0')

{

cout<<"\n\t\t\t** 讀 者 信 息 **\n"<<endl;

cout<<"\t\t\t** 1. 新 增 **"<<endl;

cout<<"\t\t\t** 2. 更 改 **"<<endl;

cout<<"\t\t\t** 3. 刪 除 **"<<endl;

cout<<"\t\t\t** 4. 查 找 **"<<endl;

cout<<"\t\t\t** 5. 顯 示 **"<<endl;

cout<<"\t\t\t** 6. 全 刪 **"<<endl;

cout<<"\t\t\t** 0. 返 回 **"<<endl;

cout<<"\t\t\t 請選擇:";

cin>>choice1;

switch(choice1)

{

case '1':

cout<<"請輸入讀者編號:";

cin>>readerid;

cout<<"請輸入讀者姓名:";

cin>>rname;

addreader(readerid,rname);

cout<<"添加讀者成功!"<<endl;

_getch();

break;

case '2':

cout<<"請輸入讀者編號:";

cin>>readerid;

r=queryid(readerid);

if(r==NULL)

{

cout<<"該讀者不存在! "<<endl;

break;

}

cout<<"請輸入新的姓名:";

cin>>rname;

r->setname(rname);

cout<<"修改讀者成功!"<<endl;

getch();

break;

case '3':

cout<<"請輸入讀者編號:";

cin>>readerid;

r=queryid(readerid);

if(r==NULL)

{

cout<<"該讀者不存在!" << endl;

break;

}

r->delbook();

cout<<"刪除成功!"<<endl;

getch();

break;

case '4':

cout<<"\n\t\t\t** 1.按讀者編號查找 **"<<endl;

cout<<"\t\t\t** 2.按讀者姓名查找 **"<<endl;

cout<<"\t\t\t** 0.返 回 **"<<endl;

cout<<"\t\t\t 請選擇:";

cin>>choice2;

switch(choice2)

{

case 1:

cout<<"請輸入讀者編號:";

cin>>readerid;

r=queryid(readerid);

if(r==NULL)

{

cout<<"該讀者不存在!"<< endl;

break;

}

cout<<setw(10)<<"讀者編號"<<setw(17)<<"讀者姓名"<<setw(20)<<"已借書編號"<<endl;

r->disp();

break;

case 2:

cout<<"請輸入讀者姓名:";

cin>>readername;

r=queryname(readername);

if(r==NULL)

{

cout<<"該讀者不存在!"<<endl;

break;

}

cout<<setw(10)<<"讀者編號"<<setw(17)<<"讀者姓名"<<setw(20)<<"已借書編號"<<endl;

r->disp();

break;

case 0:

break;

}

break;

case '5':

cout<<setw(10)<<"讀者編號"<<setw(17)<<"讀者姓名"<<setw(20)<<"已借書編號"<<endl;

disp();

getch();

break;

case '6':

clear();

break;

default:

break;

}

}

}

class maindesk //實現程序的主界面

{

char choice5;

char choice2;

double xh,mm;

int bookid,readerid;

RDatabase ReaderDB;

Reader *r;

BDatabase BookDB;

Book *b;

public:

maindesk() {;}

int denglu()

{

int k=0;

cout<<"\n\t\t\t 歡 迎 光 臨 圖 書 館 管 理 系 統!"<<endl;

cout<<"\t\t\t 您 共 有 3 次 登 陸 機 會"<<endl;

while(choice2!='0')

{

++k;

cout<<"\t\t\t ** 1. 登 錄 **"<<endl;

cout<<"\t\t\t ** 0. 退 出 **"<<endl;

cout<<"\t\t\t 請 選 擇: ";

cin>>choice2;

switch (choice2)

{

case '1':

cout<<"請輸入學號和密碼"<<endl;

cin>>xh>>mm;

if((xh>=200000000000)&&(xh<=300000000000))

{

cout<<"登錄成功"<<endl;

enterdesk();

}

if((xh<200000000000)||(xh>300000000000))

{

cout<<"登錄失?。耗€有"<<3-k<<"次登陸機會"<<endl;

if(k>=3)

{

cout<<"您已超過登錄次數上限,系統自動退出!"<<endl;

return 1;

}

continue;

}

break;

case '0':

break;

}

return 1;

}

return 0;

}

void enterdesk()

{

while(choice5!='0')

{

cout<<"\n\t\t\t**** 圖 書 管 理 系 統****\n\n";

cout<<"\t\t\t** 1.圖 書 信 息 **"<<endl;

cout<<"\t\t\t** 2.讀 者 信 息 **"<<endl;

cout<<"\t\t\t** 3.借 閱 圖 書 **"<<endl;

cout<<"\t\t\t** 4.歸 還 圖 書 **"<<endl;

cout<<"\t\t\t** 0. 退 出 **"<<endl;

cout<<"\t\t\t 請選擇:";

cin>>choice5;

switch (choice5)

{

case '1':

BookDB.bookdata();

break;

case '2':

ReaderDB.readerdata();

break;

case '3':

cout<<"\t\t\t\t借書操作"<<endl;

cout<<"請輸入借書讀者編號:";

cin>>readerid;

r=ReaderDB.queryid(readerid);

if(NULL==r)

{//按編號查找是否有該讀者

cout<<"不存在該讀者,不能借書!"<<endl;

break;

}

cout<<"請輸入要借圖書編號:";

cin>>bookid;

b=BookDB.query1(bookid);

if(b==NULL)

{//按編號查找是否有該圖書

cout<<"不存在該圖書,不能借書!"<<endl;

break;

}

if(b->borrowbook()==0)

{

cout<<"該圖書已借完,不能借書!"<<endl;

break;

}

cout<<"讀者借書成功!"<<endl;

r->borrowbook(b->getno());

break;

case '4':

cout<<"\t\t\t\t還書操作"<<endl;

cout<<"請輸入還書讀者編號:";

cin>>readerid;

r=ReaderDB.queryid(readerid);

if(r==NULL)

{

cout<<"不存在該讀者,不能還書"<<endl;

break;

}

cout<<"請輸入要歸還圖書編號:";

cin>>bookid;

b=BookDB.query1(bookid);

if(b==NULL)

{

cout<<"不存在該圖書,不能還書"<<endl;

break;

}

b->retbook();

r->retbook(b->getno());

break;

case '0':

break;

default:

break;

}

}

}

};

void main() //主函數

{

maindesk yourDesk;

if(yourDesk.denglu())

cout<<"\t\t 謝 謝 使 用 , 再 見 !"<<endl;

}

圖片發自簡書App
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,202評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,742評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,580評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,297評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,688評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,875評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,438評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,183評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,384評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,612評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,022評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,297評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,093評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,330評論 2 377

推薦閱讀更多精彩內容