C++實現(xiàn)圖書管理系統(tǒng)課程設(shè)計(面向?qū)ο?_第1頁
C++實現(xiàn)圖書管理系統(tǒng)課程設(shè)計(面向?qū)ο?_第2頁
C++實現(xiàn)圖書管理系統(tǒng)課程設(shè)計(面向?qū)ο?_第3頁
C++實現(xiàn)圖書管理系統(tǒng)課程設(shè)計(面向?qū)ο?_第4頁
C++實現(xiàn)圖書管理系統(tǒng)課程設(shè)計(面向?qū)ο?_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第C++實現(xiàn)圖書管理系統(tǒng)課程設(shè)計(面向?qū)ο?本文實例為大家分享了C++實現(xiàn)圖書管理系統(tǒng)課程設(shè)計,供大家參考,具體內(nèi)容如下

1.題目:

【1】:工作人員登錄后,可以進行的操作

添加學(xué)生的信息(學(xué)號,姓名,院系,最大借閱的圖書數(shù)量等);

修改學(xué)生的信息(學(xué)號,姓名,院系,最大借閱的圖書數(shù)量等);

刪除學(xué)生的信息(學(xué)號,姓名,院系,最大借閱的圖書數(shù)量等);

如果某個學(xué)生退學(xué),就要清除他的信息;

查看學(xué)生的信息;

添加圖書的信息(圖書號,書名,作者,出版社,數(shù)量等);

修改圖書的信息(圖書號,書名,作者,出版社,數(shù)量等);

刪除圖書的信息(圖書號,書名,作者,出版社,數(shù)量等);

查看圖書的信息;

【2】:學(xué)生登錄后,可以進行的操作

查看學(xué)生自己借閱的數(shù)目信息;

借閱圖書;

歸還圖書;

備注:要求將學(xué)生和圖書信息存放到外存上,每次從外存讀取數(shù)據(jù);

/**

*項目名稱:圖書管理系統(tǒng)

*語言:C++

#includeiostream

#includefstream

#includestring

#includeiomanip

#includevector

#includestdlib.h

#includestring.h

usingnamespacestd;

//構(gòu)建學(xué)生類

classStudent

public:

Student()

{

memset(s_num,0,sizeof(s_num));

memset(s_name,0,sizeof(s_name));

memset(s_name,0,sizeof(college,0,sizeof(college)));

borrow_max=0;

borrow_quantity=0;

memset(borrow_books,0,sizeof(borrow_books));

}

chars_num[15];

//學(xué)號

chars_name[10];

//姓名

charcollege[30];

//院系

intborrow_max;

//最大借閱數(shù)量

intborrow_quantity;

//借閱數(shù)量

charborrow_books[10][30];

//借閱圖書

boolS_SetInto();

//設(shè)置學(xué)生信息

friendistreamoperator(istreamin,Studentcp);

//提取運算符重載

friendostreamoperator(ostreamout,Studentcp);

//插入運算符重載

boolS_If_match(charp[30]);

//判斷學(xué)號是否匹配

voids_display();

//顯示學(xué)生信息

//設(shè)置學(xué)生信息

boolStudent::S_SetInto()

chartemp[15];

cout"請輸入學(xué)號:(輸入+退出)";

cintemp;

if(temp[0]=='+')

{

returnfalse;

}

strcpy(s_num,temp);

cout"學(xué)生姓名:";

cins_name;

cout"院系:";

cincollege;

do

{

cout"最大借閱數(shù)量(1-10):";

cinborrow_max;

}

while(borrow_max=0||borrow_max10);

returntrue;

//提取運算符重載

istreamoperator(istreamin,Studentcp)

incp.s_numcp.s_namecp.collegecp.borrow_maxcp.borrow_quantity;

for(inti=0;icp.borrow_quantity;i++)

{

incp.borrow_books[i];

}

returnin;

//插入運算符重載

ostreamoperator(ostreamout,Studentcp)

outcp.s_num''cp.s_name''cp.college''cp.borrow_max''cp.borrow_quantity'';

for(inti=0;ii++)

{

outcp.borrow_books[i]'';

if(i==9)

{

out'\n';

}

}

returnout;

//判斷學(xué)號是否匹配

boolStudent::S_If_match(charp[30])

return(!strcmp(s_num,p)||!strcmp(s_name,p));

//顯示學(xué)生信息

voidStudent::s_display()

//顯示

coutsetiosflags(ios::left)"學(xué)號:"setw(12)s_num"

"setw(10)s_name"

"setw(25)collegeendl

"最大借閱量"borrow_maxendl;

//構(gòu)建圖書類

classBook

public:

charb_num[15];

//圖書號

charb_name[30];

//書名

charauthor[20];

//作者

charp_house[30];

//PublishingHouse出版社

intb_quantity;

//圖書數(shù)量

boolB_SetInto();

//設(shè)置圖書信息

friendistreamoperator(istreamin,Bookcp);

//提取運算符重載

friendostreamoperator(ostreamout,Bookcp);

//插入運算符重載

boolB_If_match(charp[30]);

voidb_display();

//圖書信息顯示

//設(shè)置圖書信息

boolBook::B_SetInto()

chartemp[15];

cout"請輸入圖書號:(輸入+退出)";

cintemp;

if(temp[0]=='+')

returnfalse;

strcpy(b_num,temp);

cout"書名:";

cinb_name;

cout"作者:";

cinauthor;

cout"出版社";

cinp_house;

cout"數(shù)量:";

cinb_quantity;

returntrue;

//提取運算符重載

istreamoperator(istreamin,Bookcp)

incp.b_numcp.b_namecp.authorcp.p_housecp.b_quantity;

returnin;

//插入運算符重載

ostreamoperator(ostreamout,Bookcp)

outcp.b_num''cp.b_name''cp.author''cp.p_house''cp.b_quantity'\n';

returnout;

//判斷圖書號是否匹配

boolBook::B_If_match(charp[30])

return(!strcmp(b_num,p)||!strcmp(b_name,p));

//顯示函數(shù)

voidBook::b_display()

coutsetiosflags(ios::left)setw(12)b_num"

"setw(30)b_name"

"setw(10)authorendl

setw(20)p_house"

""剩余數(shù)量:"setw(3)b_quantityendl;

//構(gòu)建管理類

classmanagement

public:

ints_sum=0;

//學(xué)生數(shù)

intb_sum=0;

//圖書數(shù)

stringkey;

//管理員密碼

vectorStudents_array;

//記錄學(xué)生類

vectorBookb_array;

//記錄圖書類

voidS_clear();

//清理已有學(xué)生信息

voidB_clear();

//清理已有圖書信息

voidS_Read_file();

//讀取學(xué)生文件

voidS_Save_file();

//保存學(xué)生文件

voidB_Read_file();

//讀取圖書文件

voidB_Save_file();

//保存圖書文件

boolStudent_add();

//添加學(xué)生信息

boolStudent_mod();

//修改學(xué)生信息

boolStudent_del();

//刪除學(xué)生信息

boolStudent_scan();

//查看學(xué)生信息

boolBook_add();

//添加圖書信息

boolBook_mod();

//修改圖書信息

boolBook_del();

//刪除圖書信息

boolBook_scan();

//查看圖書信息

bools_login(Studentcp);

//學(xué)生憑學(xué)號登錄

boolborrow_scan(Studentcp);

//查看借閱數(shù)目

boolborrow_book(Studentcp);

//借書

boolreturn_book(Studentcp);

//還書

boolStudent_System();

//學(xué)生登錄

boolPersonnel_System();

//工作人員登錄

voidlogin_init();

//登錄界面初始化

//清理已有學(xué)生信息

voidmanagement::S_clear()

s_array.clear();

s_sum=0;

//清理已有圖書信息

voidmanagement::B_clear()

b_array.clear();

b_sum=0;

//讀取學(xué)生文件

voidmanagement::S_Read_file()

ifstreams_file;

s_file.open("Student_Information.txt");

if(!s_file.is_open())

{

cerr"文件\"Student_Information.txt\"無法打開\n";

exit(1);

}

while(!(s_file.eof()))

{

Studentstu;

s_filestu;

s_array.push_back(stu);

s_sum++;

}

s_sum--;

s_file.close();

//保存學(xué)生文件

voidmanagement::S_Save_file()

ofstreams_file("Student_Information.txt");

if(!s_file)

{

cerr"文件\"Student_Information.txt\"無法打開!\n";

exit(1);

}

inti=-1;

while(++is_sum)

{

s_files_array[i];

}

s_file.close();

//讀取圖書文件

voidmanagement::B_Read_file()

ifstreamb_file;

b_file.open("Book_Information.txt");

if(!b_file.is_open())

{

cerr"文件\"Book_Information.txt\"無法打開\n";

exit(1);

}

while(!b_file.eof())

{

Book_book;

b_file_book;

b_array.push_back(_book);

b_sum++;

};

b_sum--;

b_file.close();

//保存圖書文件

voidmanagement::B_Save_file()

ofstreamb_file("Book_Information.txt");

if(!b_file)

{

cerr"文件\"Book_Information.txt\"無法打開!\n";

exit(1);

}

inti=-1;

while(++ib_sum)

{

b_fileb_array[i];

}

b_file.close();

//添加學(xué)生信息

boolmanagement::Student_add()

S_Read_file();

Student_stu;

cout"請進行信息錄入。按“+”結(jié)束!\n";

do

{

s_array.push_back(_stu);

}

while(s_array[s_sum++].S_SetInto());

s_sum--;

s_array.pop_back();

returntrue;

//修改學(xué)生信息

boolmanagement::Student_mod()

char_s_num[15];

S_Read_file();

cout"請輸入您要修改的學(xué)生信息的學(xué)號或名字:";

cin_s_num;

inti=0;

for(;is_sum;i++)

{

if(s_array[i].S_If_match(_s_num))

{

cout"該同學(xué)的原信息為:\n";

s_array[i].s_display();

cout"請輸入正確信息!\n";

s_array[i].S_SetInto();

s_sum++;

//保持學(xué)生數(shù)

returntrue;

}

if(i==s_sum)

{

cout"抱歉!您要修改的信息不存在!"endl;

returnfalse;

}

break;

}

//刪除學(xué)生信息

boolmanagement::Student_del()

char_s_num[15];

S_Read_file();

cout"請輸入您要刪除的學(xué)生信息的學(xué)號:";

cin_s_num;

for(inti=0;is_sum;i++)

{

if(s_array[i].S_If_match(_s_num))

{

cout"該同學(xué)的原信息為:\n";

s_array[i].s_display();

s_array.erase(s_array.begin()+i);

s_sum--;

returntrue;

}

if(i==s_sum)

{

cout"抱歉!您要刪除的信息不存在!"endl;

returnfalse;

}

}

//查看學(xué)生信息

boolmanagement::Student_scan()

S_Read_file();

if(s_sum==0)

{

cout"暫無信息!請等待管理人員更新!";

returnfalse;

}

for(inti=0;is_sum;i++)

{

s_array[i].s_display();

}

returntrue;

//添加圖書信息

boolmanagement::Book_add()

B_Read_file();

Book_book;

cout"請進行信息錄入。按“+”結(jié)束!\n";

do

{

b_array.push_back(_book);

}while(b_array[b_sum++].B_SetInto());

b_sum--;

b_array.pop_back();

returntrue;

//修改圖書信息

boolmanagement::Book_mod()

char_b_num[30];

B_Read_file();

cout"請輸入您要修改的圖書信息的圖書號或書名:";

cin_b_num;

for(inti=0;ib_sum;i++)

{

if(b_array[i].B_If_match(_b_num))

{

cout"該圖書的原信息為:\n";

b_array[i].b_display();

cout"請輸入正確信息!\n";

b_array[i].B_SetInto();

b_sum++;

//保持總航線數(shù)不變

returntrue;

}

if(i==b_sum)

{

cout"抱歉!您要修改的信息不存在!"endl;

returnfalse;

}

break;

}

//刪除圖書信息

boolmanagement::Book_del()

char_b_num[15];

B_Read_file();

cout"請輸入您要刪除的圖書信息的圖書號:";

cin_b_num;

for(inti=0;ib_sum;i++)

{

if(b_array[i].B_If_match(_b_num))

{

cout"該圖書的原信息為:\n";

b_array[i].b_display();

b_array.erase(b_array.begin()+i);

b_sum--;

returntrue;

}

if(i==b_sum)

{

cout"抱歉!您要刪除的信息不存在!"endl;

returnfalse;

}

}

//查看圖書信息

boolmanagement::Book_scan()

B_Read_file();

if(b_sum==0)

{

cout"暫無信息!請等待管理人員更新!";

returnfalse;

}

for(inti=0;ib_sum;i++)

{

b_array[i].b_display();

}

returntrue;

//學(xué)生憑學(xué)號登錄

boolmanagement::s_login(Studentcp)

char_s_num[15];

S_Read_file();

cout"請輸入您的學(xué)號:";

cin_s_num;

for(inti=0;is_sum;i++)

{

if(s_array[i].S_If_match(_s_num))

{

cp=s_array[i];

cout"歡迎您,"cp.s_name"同學(xué)!"endl;

S_clear();

returntrue;

}

}

S_clear();

returnfalse;

//查看借閱數(shù)數(shù)目

boolmanagement::borrow_scan(Studentcp)

S_Read_file();

B_Read_file();

cout"您已借閱圖書"setw(3)cp.borrow_quantity"本"endl;

for(inti=0;icp.borrow_quantity;i++)

{

coutcp.borrow_books[i]endl;

}

S_clear();

B_clear();

returntrue;

boolmanagement::borrow_book(Studentcp)

S_Read_file();

B_Read_file();

char_b_num[30];

cout"請輸入想借圖書的圖書號或書名:";

cin_b_num;

for(inti=0;ib_sum;i++)

{

if(b_array[i].B_If_match(_b_num))

{

cout"該圖書的信息為:\n";

b_array[i].b_display();

b_array[i].b_quantity--;

if(cp.borrow_quantitycp.borrow_max-1)

{

cout"抱歉,您已達借書最大上限!"endl;

returnfalse;

}

strcpy(cp.borrow_books[cp.borrow_quantity++],b_array[i].b_name);

for(intj=0;js_sum;j++)

{

if(s_array[j].S_If_match(cp.s_num))

{

s_array[j]=cp;

returntrue;

}

}

}

if(i==b_sum-1)

{

cout"抱歉!您想借的圖書未收錄!"endl;

returnfalse;

}

}

boolmanagement::return_book(Studentcp)

S_Read_file();

B_Read_file();

char_b_num[30];

cout"請輸入想還圖書的圖書號或書名:";

cin_b_num;

for(inti=0;ib_sum;i++)

{

if(b_array[i].B_If_match(_b_num))

{

cout"該圖書的信息為:\n";

b_array[i].b_display();

b_array[i].b_quantity++;

for(intk=0;kcp.borrow_quantity;k++)

{

if(!strcmp(cp.borrow_books[k],b_array[i].b_name))

{

for(intm=k;mcp.borrow_quantity-1;m++)

{

strcpy(cp.borrow_books[m],cp.borrow_books[m+1]);

}

strcpy(cp.borrow_books[--cp.borrow_quantity],"");

//

cp.borrow_quantity--;

break;

}

}

for(intj=0;js_sum;j++)

{

if(s_array[j].S_If_match(cp.s_num))

{

s_array[j]=cp;

returntrue;

}

}

}

if(i==b_sum)

{

cout"抱歉!您想還的圖書未收錄!"endl;

returnfalse;

}

}

//工作人員登錄

boolmanagement::Personnel_System()

while(1)

{

intmenu_options;

cout"請輸入登錄密碼:";

cinkey;

if(key=="123456")

//登錄密碼

while(1)

{

coutendl

"*****

主菜單:

**********"endl

"*****

工作人員

"endl

"*****

1——添加學(xué)生信息

"

"2——修改學(xué)生信息"endl

"*****

3——刪除學(xué)生信息

"

"4——查看學(xué)生信息"endl

endl

//區(qū)分學(xué)生和圖書

"*****

5——添加圖書信息

"

"6——修改圖書信息"endl

"*****

7——刪除圖書信息

"

"8——查看圖書信息"endl

"*****

9——退出登錄"endl

"你需要做什么?(1-9)"endl;

cinmenu_options;

switch(menu_options)

{

case1:Student_add();break;

case2:Student_mod();break;

case3:Student_del();break;

case4:Student_scan();break;

case5:Book_add();break;

case6:Book_mod();break;

case7:Book_del();break;

case8:Book_scan();break;

case9:returnfalse;

default:cout"輸入錯誤,請重新選擇"endl;break;

}

if(!(menu_options==4||menu_options==8))

{

cout"是否確認(rèn)?

《確認(rèn)/(Y/y)》

《取消/(N/n)》"endl;

charyn;

do

{

cinyn;

}while(!(yn=='Y'||yn=='y'||yn=='N'||yn=='n'));

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

{

if(menu_options==1||menu_options==2||menu_options==3)

{

S_Save_file();

}

elseif(menu_options==5||menu_options==6||menu_options==7)

{

B_Save_file();

}

cout"操作成功";

}

}

S_clear();

B_clear();

}

else

{

cout"密碼錯誤!"endl;

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論