




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政法中的社會公平與效率的動態(tài)平衡試題及答案
- 行政管理信息獲取語文試題及答案
- 醫(yī)療倫理知識執(zhí)業(yè)醫(yī)師考試試題及答案
- 文化概論考試的提升與試題及答案整合
- 行政法學(xué)考試的應(yīng)試心理準(zhǔn)備試題及答案
- 行政法學(xué)的創(chuàng)新思路與教育方法試題及答案
- 行政管理??瓶荚囋囶}及答案解析
- 行政法學(xué)實例探討試題與答案
- 護理及時反饋機制試題及答案
- 中醫(yī)外科疾病護理常規(guī)之毒蛇咬傷護理常規(guī)課件
- 電梯使用單位安全管理專題培訓(xùn)
- 2025年特種設(shè)備安全操作實務(wù)考試真題卷
- 人教版小學(xué)數(shù)學(xué)六年級下冊說課稿
- 2025年高考歷史考綱(完整版)
- 地鐵事件面試題及答案
- 2025屆青海省西寧市高考第一次模擬預(yù)測地理試題(原卷版+解析版)
- 兒童肺血栓栓塞癥診斷與治療專家共識(2025)解讀課件
- 急救中心患者轉(zhuǎn)運流程標(biāo)準(zhǔn)化指南
- 《2025急性冠脈綜合征患者管理指南》解讀
- 電廠粉煤灰購銷合同
- 注射用A型肉毒毒素-額紋面部皺紋(FWS)量表評分考試
評論
0/150
提交評論