版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
年4月19日?qǐng)D書館管理系統(tǒng)含代碼文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)報(bào)告學(xué)院計(jì)算機(jī)科學(xué)與控制工程學(xué)院專業(yè)軟件外包學(xué)生姓名李子豪學(xué)號(hào)58504119八皇后問題一.問題描述在8×8格的國際象棋棋盤上放置八個(gè)皇后,使得任意兩個(gè)皇后不能互相攻擊,即任何行、列或?qū)蔷€(與水平軸夾角為45°或135°的斜線)上不得有兩個(gè)或兩個(gè)以上的皇后。這樣的一個(gè)格局稱為問題的一個(gè)解。請(qǐng)寫出求出八皇后問題的算法。二.解題思路描述一個(gè)正確的解應(yīng)當(dāng)是每一列,每一行,每一條斜線上均只有一個(gè)皇后。對(duì)于遞歸算法,本人才有模擬的方式進(jìn)行,而且,我覺得開辟一個(gè)二維數(shù)組更顯而易見。首先,從空棋盤開始擺放,保證第n行n個(gè)皇后互不攻擊,然后擺放第n+1個(gè)皇后。當(dāng)然對(duì)于第n+1個(gè)皇后可能有多種擺放方法,由此,我必須一一枚舉,采用回溯策略是可行且合乎邏輯的。
在此過程中,我采用一維數(shù)組,一位對(duì)于八皇后問題,每一行不可能存在二個(gè)及二個(gè)以上的皇后,board[i]表示第i行棋盤擺放的位置為第board[i]列。遞歸方法借助于系統(tǒng)提供的棧。遞歸解法
#include<iostream>
#include<cstdio>
#include<sys/timeb.h>
usingnamespacestd;
constintMAX_SIZE=100;
enumflag{blank='X',queen=1};
charChess[MAX_SIZE][MAX_SIZE];//棋盤圖
intn;//解決n皇后問題
inttotal;//用于計(jì)擺放方式
voidInit()
{//對(duì)棋牌進(jìn)行初始化
for(inti=0;i<n;i++)
for(intj=0;j<n;j++)
Chess[i][j]=blank;
total=0;//初始時(shí)有零中擺放方式
}
boolJudge(intr,intc)
{//判斷(r,c)位置是否可放置
inti,j;
for(i=r+1;i<n;i++)
if(Chess[i][c]==queen)
returnfalse;//說明c列上已有一皇后
for(i=c+1;i<n;i++)
if(Chess[r][i]==queen)
returnfalse;//說明r行上已有一皇后
for(i=r+1,j=c+1;(i<n)&&(j<n);i++,j++)
if(Chess[i][j]==queen)
returnfalse;//45度斜線上已有一皇后
for(i=r+1,j=c-1;(i<n)&&(j>=0);i++,j--)
if(Chess[i][j]==queen)
returnfalse;//135度斜線上已有一皇后
returntrue;//排除四種情況后,說明(r,c)點(diǎn)可放置皇后
}
voidBacktrack(intk,intcnt)
{//回溯算法主程序
if(k<0||cnt==n)//棋牌擺放完畢or以擺滿n后
{
if(cnt==n)
{
printf("No.%d:\n",++total);
for(inti=0;i<n;i++)
{
for(intj=0;j<n;j++)
printf("%c",Chess[i][j]);
putchar('\n');
}
putchar('\n');
}
}
else
{
intr=k/n,c=k%n;
if(Judge(r,c))
{//可放置一皇后
Chess[r][c]=queen;
Backtrack(k-1,cnt+1);
Chess[r][c]=blank;
}
Backtrack(k-1,cnt);
}
}
intmain()
{//此為主函數(shù)
timebt1,t2;
longkk;
cout<<"輸入皇后個(gè)數(shù):";
while(cin>>n)
{
Init();
ftime(&t1);
Backtrack(n*n-1,0);
ftime(&t2);
cout<<"計(jì)算"<<n<<"后問題總共可有"<<total<<"種擺法!"<<endl;
kk=(t2.time-t1.time)*1000+litm;
cout<<"本次回溯耗時(shí):"<<kk<<"毫秒"<<endl;
system("PAUSE");
cout<<"輸入皇后個(gè)數(shù):";
}
return0;
}
需求分析圖書信息管理系統(tǒng)內(nèi)容簡述:圖書信息管理系統(tǒng)記錄了圖書館中圖書的圖書號(hào)、書名、作者姓名、出版社名、圖書的現(xiàn)存量和總庫存量等書籍?dāng)?shù)據(jù),同時(shí)有以管理員登陸系統(tǒng)的方式進(jìn)行對(duì)書籍?dāng)?shù)據(jù)以及借閱者的信息進(jìn)行管理,能夠?qū)崿F(xiàn)對(duì)書籍和借閱者進(jìn)行添加,修改,刪除?;緲I(yè)務(wù)活動(dòng)要求(實(shí)現(xiàn)的功能):管理員:(1)新書采編入庫:新購入一種書,經(jīng)分類和確定書號(hào)之后登記到圖書帳目中去。如果這種書在帳中已有,則只將總庫存量增加。(2)修改已在圖書庫中的圖書信息。(3)清除庫存:某種書已無保留價(jià)值,將它從圖書帳目中注銷。(4)查詢已在圖書庫中的圖書信息。(5)對(duì)借閱者的信息進(jìn)行管理:新增,查詢,修改,刪除等等。(6)查看借閱記錄。借閱者:(1)查詢圖書信息:a) 按書名查詢:如查找所有書名為“數(shù)據(jù)結(jié)構(gòu)”的圖書。b) 按作者姓名查詢:如查找所有“張三”編寫的圖書。c) 按出版社名查詢:如查找所有“機(jī)械工業(yè)出版社”出版的圖書。d) 組合查詢:如查找所有“張三”編寫的、由“機(jī)械工業(yè)出版社”出版的圖書。(2)借閱:如果一種書的現(xiàn)存量大于零,則借出一本,登記借閱者的圖書證號(hào)和歸還期限,改變?cè)摃默F(xiàn)存量。(3)歸還:注銷對(duì)借閱者的登記,改變?cè)摃默F(xiàn)存量。項(xiàng)目設(shè)計(jì)類體系設(shè)計(jì)有兩個(gè)類:classbookdata,classmanagebookclassmanagebook公有繼承classbookdata類的數(shù)據(jù)成員和各函數(shù)的功能描述classbookdata數(shù)據(jù)成員:charbooknum1[10],//書類bookname[50],//書名writer[50],//作者publishing[50];//出版社intbooknum,//書的序號(hào)nowstore,//書的現(xiàn)存量allstore;//書的總庫存量classmanagebook數(shù)據(jù)成員:charmanager[50],//管理員用戶名reader[50],//借閱者姓名cardnum[50],//借閱者圖書證號(hào)password[50];//管理員登陸密碼intnum;//借還圖書本數(shù)各個(gè)功能函數(shù):voidsetfile();//初始化數(shù)據(jù)文件voidmainmenu();//主菜單函數(shù)voidfindbook(intw);//查詢圖書,w標(biāo)志用來區(qū)分借閱者查詢和管理員查詢voidfind(char*file,intw);voidlandbook();//借閱圖書voidland(char*file,managebookp);voidreturnbook();//歸還圖書voidreturnf(char*file,managebookp);voidmanagermenu();//管理員板塊voidlandingpass();//管理員登陸密碼函數(shù)voidmanagerlanding();//管理員登陸voidaddbook();//新書采編入庫voidadd(char*file,bookdatap);voidaltbook();//修改圖書信息voidalt(char*file,bookdatap);voiddelbook();//清除庫存,刪除圖書信息voiddel(char*file,bookdatap);voidmanagereader();//借閱者信息管理板塊voidaddreader();//新增讀者信息voidcheckreader();//查詢讀者信息voidaltreader();//修改讀者信息voiddelreader();//刪除讀者信息voidmanagerenroll();//管理員注冊(cè)voidchecklend();//查看借閱記錄voidaltmanager();//修改管理員信息voiddelmanager();//刪除管理員信息voiddel_library();//注銷圖書館開始3、程序流程圖開始 頭文件:包含頭文件:包含classbookdata,classmanagebook;voidsetfile();voidsetfile();//初始化數(shù)據(jù)文件y據(jù)Y文?件t voidmainmenu();voidmainmenu();//主菜單函數(shù) 管理員板塊管理員板塊退出!voidreturnbook();//歸還圖書voidlandbook();//借閱圖書退出!voidreturnbook();//歸還圖書voidlandbook();//借閱圖書voidfindbook(intw);//查詢圖書,w標(biāo)志用來區(qū)分借閱者查詢和管理員查詢 voidland(charvoidland(char*file,managebookp);voidreturnf(char*file,managebookp); VoidVoidfind(char*file,intw);//查詢后可直接借閱 管理員板塊 管理員板塊 voidmanagermenu();voidmanagermenu(); 管理員登陸管理員登陸 voidaltmanager();//修改管理員信息voidvoidaltmanager();//修改管理員信息voidmanagerenroll();//管理員注冊(cè)voiddelmanager();//刪除管理員信息voiddel_library();//注銷圖書館voiddel_library();//注銷圖書館管理員登陸 voidlandingpass();voidlandingpass();//管理員登陸密碼函數(shù) voidmanagerlanding();voidmanagerlanding();//管理員登陸密碼函數(shù)借閱者信息管理借閱者信息管理 voidcheckland();//查看借閱記錄voiddelbook();//清除庫存,刪除圖書信息voidcheckland();//查看借閱記錄voiddelbook();//清除庫存,刪除圖書信息voidaltbook();//修改圖書信息voidaddbook();//新書采編入庫voidfindbook(intw);//查詢圖書,w標(biāo)志用來區(qū)分借閱者查詢和管理員查詢 voiddel(char*file,bookdatap);voiddel(char*file,bookdatap);voidalt(char*file,bookdatap);voidadd(char*file,bookdatap);voidfind(char*file,intw);借閱者信息管理借閱者信息管理voidmanagereader();//借閱者信息管理板塊voidmanagereader();//借閱者信息管理板塊voidcheckreader();//查詢讀者信息voidaddreader();//新增讀者信息voidcheckreader();//查詢讀者信息voidaddreader();//新增讀者信息voiddelreader();//刪除讀者信息voidaltreader();//修改讀者信息算法分析:在本程序中,頭文件定義了兩個(gè)類:classbookdata和classmanagebook,以及各個(gè)功能函數(shù)。運(yùn)行程序,首先執(zhí)行voidsetfile();函數(shù),該函數(shù)初始化數(shù)據(jù)文件,將在exe程序所在文件夾生成所有數(shù)據(jù)文件,若該文件夾沒有數(shù)據(jù)文件,則生成空的數(shù)據(jù)文件,數(shù)據(jù)文件記錄圖書館管理系統(tǒng)的所有數(shù)據(jù)。然后由voidmainmenu();生成主菜單,主菜單運(yùn)用switch語句區(qū)分指令進(jìn)行執(zhí)行功能,其它菜單亦雷同形成。主菜單前3項(xiàng)選擇為借閱者(讀者)所選擇的查詢,借閱,歸還圖書,分別調(diào)用voidfindbook(intw);voidlandbook();voidreturnbook();此3個(gè)函數(shù)還分別有一個(gè)子函數(shù):voidfind(char*file,intw);voidland(char*file,managebookp);voidreturnf(char*file,managebookp);直接在數(shù)據(jù)文件上對(duì)圖書執(zhí)行相應(yīng)功能。其中voidfindbook(intw);和voidfind(char*file,intw);中的w為區(qū)分管理員和借閱者查詢圖書的標(biāo)志,若是借閱者查詢,在查詢完畢后能夠根據(jù)查詢結(jié)果直接調(diào)用voidlandbook();進(jìn)行借閱圖書。當(dāng)然,借閱者也能夠直接借閱而不用經(jīng)過查詢。在讓借閱者執(zhí)行查詢,借閱,歸還圖書等操作之前,首先要在初始化的數(shù)據(jù)文件中添加圖書信息,所有主菜單的第4項(xiàng)選擇為調(diào)用voidmanagermenu();函數(shù)轉(zhuǎn)到管理員板塊。管理員板塊有5項(xiàng)選擇:登陸,注冊(cè),修改,刪除,注銷圖書館。管理員登陸需要輸入其用戶名和登陸密碼,用戶名和登陸密碼要在管理員注冊(cè)中才可獲得,而管理員注冊(cè)也需進(jìn)行權(quán)限確認(rèn),即要正確輸入權(quán)限密碼才能完成管理員注冊(cè),本程序權(quán)限密碼為”30580466”。管理員信息的修改、刪除也要輸入權(quán)限密碼進(jìn)行確認(rèn),確保圖書館管理的嚴(yán)密性。每個(gè)管理員都擁有自己獨(dú)特的用戶名和登陸密碼,憑此調(diào)用voidmanagerlanding();跳轉(zhuǎn)到圖書館管理菜單,調(diào)用該函數(shù)之前要先調(diào)用voidlandingpass()進(jìn)行用戶名和登陸密碼的確認(rèn)。圖書館管理菜單有6項(xiàng)選擇:新書入庫,修改圖書信息,注銷圖書,管理員查詢圖書,借閱者信息管理,查看借閱記錄;分別由voidaddbook();voidaltbook();voiddelbook();voidfindbook(intw);voidmanagereader();voidcheckland();完成功能執(zhí)行。voidaddbook();voidaltbook();voiddelbook();此3個(gè)函數(shù)同樣擁有子函數(shù)voidadd();voidalt();voiddel();直接對(duì)存儲(chǔ)于數(shù)據(jù)文件中的圖書信息進(jìn)行相應(yīng)編輯,完成功能執(zhí)行。voidcheckland();則是對(duì)借閱記錄的查看。voidmanagereader();則是管理員對(duì)借閱者自身信息的管理,眾所周知,從圖書館借書最起碼需要借閱者的姓名和圖書證號(hào),以便對(duì)圖書的借閱進(jìn)行記錄。因此voidmanagereader();是對(duì)借閱者(讀者)信息的管理,類似圖書管理,它擁有新增,查詢,修改,刪除等功能,由函數(shù)voidaddreader();voidcheckreader();voidaltreader();voiddelreader();完成相應(yīng)功能。整個(gè)圖書館管理系統(tǒng)大致結(jié)構(gòu)就如上所述,大概可分為管理員信息管理,圖書信息管理和借閱者信息管理3個(gè)模塊,外加一個(gè)借閱記錄則構(gòu)成圖書館管理系統(tǒng)。本程序?qū)?shù)據(jù)文件中數(shù)據(jù)的編輯是經(jīng)過將數(shù)據(jù)文件中的數(shù)據(jù)編輯后轉(zhuǎn)移至中轉(zhuǎn)文件中,再將中轉(zhuǎn)文件的數(shù)據(jù)復(fù)制回清空了的數(shù)據(jù)文件當(dāng)中,即可完成編輯。測試報(bào)告程序測試截屏主菜單:管理員板塊:管理員注冊(cè):修改,刪除,注銷圖書館界面類似……管理員登陸:修改,注銷圖書類似借閱者信息管理:查詢,修改,刪除類似借閱者查詢圖書:歸還圖書:程序測試結(jié)果結(jié)果分析:調(diào)試無問題,基本上能符合題目要求。設(shè)計(jì)過程中遇到的問題及解決方法剛開始的時(shí)候我想用二進(jìn)制文件作為數(shù)據(jù)文件,后來因?qū)ΧM(jìn)制文件的不熟悉而頻頻出錯(cuò),因此該用文本文件作為數(shù)據(jù)文件;尚未解決的問題在作非法數(shù)據(jù)輸入時(shí),例如:要求輸入’A’,但輸入’AA’,程序并未出現(xiàn)錯(cuò)誤提示,并如同時(shí)輸入’A’一般繼續(xù)運(yùn)行程序還有,例如:定義一個(gè)整形變量intI;但當(dāng)輸入一個(gè)char型數(shù)據(jù)時(shí),無法從錯(cuò)誤中恢復(fù)只有輸入錯(cuò)誤的int型數(shù)據(jù)時(shí),才有錯(cuò)誤提示五、收獲與心得老實(shí)說,這次大作業(yè)在剛開始做的時(shí)候并不是覺得很難,主要障礙問題不多,但在程序調(diào)試修改的時(shí)候卻頻頻出現(xiàn)問題,調(diào)試修改所花的時(shí)間甚至寫出最初的程序要更多。而且我原打算看能不能用MFC來做,但因?qū)@個(gè)實(shí)在是太陌生,完全不了解,看書也只看得半懂,根本運(yùn)用不了,只能放棄……雖然在調(diào)試程序遇到了較多的困難,可是都一一去把它解決了。從中也讓我知道了要學(xué)好這門課程,僅學(xué)習(xí)書本上的知識(shí)是不夠的,還要有較強(qiáng)的實(shí)踐能力。因?yàn)槲覀儗W(xué)習(xí)知識(shí)就是為了實(shí)踐。而只有多實(shí)踐,多編寫程序,才能更好的理解與掌握書本上的東西。Readme:管理員權(quán)限密碼:30580466對(duì)管理員信息的處理(注冊(cè)、修改、刪除)需要輸入最高權(quán)限的管理員權(quán)限密碼!?。∫炎?cè)的管理員:(姓名密碼)李觀文 1234吳凱彬 2345源代碼://head.h#include<iostream>#include<string.h>#include<iomanip>#include<fstream>#include<cstdlib>usingnamespacestd;classbookdata//圖書類{public:bookdata(char*bn="bookname\0",char*w="writer\0",char*p="publishing\0",intbm=0,intn=0,inta=0){strcpy_s(bookname,bn);//構(gòu)造函數(shù)strcpy_s(writer,w);strcpy_s(publishing,p);booknum=bm;nowstore=n;allstore=a;}bookdata*next;//數(shù)據(jù)成員charbooknum1[10],bookname[50],writer[50],publishing[50];//書類、書名、作者、出版社intbooknum,nowstore,allstore;//書的序號(hào)、書的現(xiàn)存量、書的總庫存量 };classmanagebook:publicbookdata//圖書管理類,公有繼承圖書類{public:managebook(char*ma="manager\0",char*r="reader\0",char*c="cardnum\0",char*p="password\0",intn=0){strcpy_s(manager,ma);//構(gòu)造函數(shù)strcpy_s(reader,r);strcpy_s(cardnum,c);strcpy_s(password,p);num=n;}charmanager[50],reader[50],cardnum[50],password[50];//管理員用戶名、借閱者姓名、借閱者圖書證號(hào)、管理員登陸密碼intnum,month,day;//借還圖書本數(shù)};voidsetfile();//初始化數(shù)據(jù)文件voidmainmenu();//主菜單函數(shù)voidfindbook(intw);//查詢圖書,w標(biāo)志用來區(qū)分借閱者查詢和管理員查詢voidfind(char*file,intw);voidlandbook();//借閱圖書voidland(char*file,managebookp);voidreturnbook();//歸還圖書voidreturnf(char*file,managebookp);voidmanagermenu();//管理員板塊voidlandingpass();//管理員登陸密碼函數(shù)voidmanagerlanding();//管理員登陸voidaddbook();//新書采編入庫voidadd(char*file,bookdatap);voidaltbook();//修改圖書信息voidalt(char*file,bookdatap);voiddelbook();//清除庫存,刪除圖書信息voiddel(char*file,bookdatap);voidmanagereader();//借閱者信息管理板塊voidaddreader();//新增讀者信息voidcheckreader();//查詢讀者信息voidaltreader();//修改讀者信息voiddelreader();//刪除讀者信息voidcheckland();//查看借閱記錄voidmanagerenroll();//管理員注冊(cè)voidaltmanager();//修改管理員信息voiddelmanager();//刪除管理員信息voiddel_library();//注銷圖書館//add.cpp#include"head.h"voidadd(char*file,bookdatap){intc=0;bookdatat;intj=0,w=0,s[100000];for(inti=0;i<100000;i++)s[i]=0;ofstreamf("中轉(zhuǎn)文件.txt",ios::out);f.close();//清空中轉(zhuǎn)文件strcpy_s(t.booknum1,p.booknum1);ifstreamfa(file,ios::in);f.open("中轉(zhuǎn)文件.txt",ios::app);while(fa>>t.booknum1>>t.booknum>>t.bookname>>t.writer>>t.publishing>>t.nowstore>>t.allstore){if((!strcmp(t.bookname,p.bookname))&&(!strcmp(t.writer,p.writer))&&(!strcmp(t.publishing,p.publishing))){cout<<"該書籍已存在,請(qǐng)輸入新增加的本數(shù):";//判斷新添加的書籍是否已存在cin>>c; t.nowstore=t.nowstore+c; t.allstore=t.allstore+c;j=1;}//新添加的書籍已存在,則直接改動(dòng)現(xiàn)存量和總庫存量 f<<t.booknum1<<""<<t.booknum<<"\t"<<t.bookname<<"\t"<<t.writer<<"\t"<<t.publishing<<"\t"<<t.nowstore<<"\t"<<t.allstore<<endl; s[t.booknum]=t.booknum;w++;}if(j){fa.close();f.close();f.open(file,ios::out);f.close(); fa.open("中轉(zhuǎn)文件.txt",ios::in);f.open(file,ios::app); while(fa>>t.booknum1>>t.booknum>>t.bookname>>t.writer>>t.publishing>>t.nowstore>>t.allstore) {f<<t.booknum1<<""<<t.booknum<<"\t"<<t.bookname<<"\t"<<t.writer<<"\t"<<t.publishing<<"\t"<<t.nowstore<<"\t"<<t.allstore<<endl;} fa.close(); f.close();}else{fa.close();f.close(); f.open(file,ios::app);//新添加的書籍尚未存在,則直接在數(shù)據(jù)文件中追加 if(!w)p.booknum=0; elsefor(inti=0;i<=w+1;i++){s[0]=1;if(s[i]==0){p.booknum=i;break;}} cout<<"書籍本數(shù):";cin>>p.nowstore; p.allstore=p.nowstore;f<<p.booknum1<<""<<p.booknum<<"\t"<<p.bookname<<"\t"<<p.writer<<"\t"<<p.publishing<<"\t"<<p.nowstore<<"\t"<<p.allstore<<endl; f.close();}}//addbook.cpp#include"head.h"voidaddbook(){system("cls");while(1){chari;bookdatap;cout<<"新書屬于哪一類目:\n"; cout<<"\t\t============================================"<<endl; cout<<"\t\t\tA馬克思主義、列寧主義、\t"<<endl; cout<<"\t\t\t毛澤東思想、鄧小平理論\t"<<endl; cout<<"\t\t\tB哲學(xué)、宗教\t"<<endl; cout<<"\t\t\tC社會(huì)科學(xué)總論\t"<<endl; cout<<"\t\t\tD政治、法律\t"<<endl; cout<<"\t\t\tE軍事\t"<<endl; cout<<"\t\t\tF經(jīng)濟(jì)\t"<<endl; cout<<"\t\t\tG文化科學(xué)、教育、體\t"<<endl; cout<<"\t\t\tH語言、文字\t"<<endl; cout<<"\t\t\tI文學(xué)\t"<<endl; cout<<"\t\t\tJ藝術(shù)\t"<<endl; cout<<"\t\t\tK歷史、地理\t"<<endl; cout<<"\t\t\tN自然科學(xué)總論\t"<<endl; cout<<"\t\t\tO數(shù)理科學(xué)和化學(xué)\t"<<endl; cout<<"\t\t\tP天文學(xué)、地球科學(xué)\t"<<endl; cout<<"\t\t\tQ生物科學(xué)\t"<<endl; cout<<"\t\t\tR醫(yī)藥、衛(wèi)生\t"<<endl; cout<<"\t\t\tS農(nóng)業(yè)科學(xué)\t"<<endl; cout<<"\t\t\tT工業(yè)技術(shù)\t"<<endl; cout<<"\t\t\tU交通運(yùn)輸\t"<<endl; cout<<"\t\t\tV航空、航天\t"<<endl; cout<<"\t\t\tX環(huán)境科學(xué)、安全科學(xué)\t"<<endl; cout<<"\t\t\tZ綜合性圖書\t"<<endl; cout<<"\t\t============================================"<<endl; cout<<"(按0返回上一層)"<<endl;//菜單cin>>i;if(i=='0'){system("cls");return;}elseif(i!='A'&&i!='B'&&i!='C'&&i!='D'&&i!='E'&&i!='F'&&i!='G'&&i!='H'&&i!='I'&&i!='J'&&i!='K'&& i!='N'&&i!='O'&&i!='P'&&i!='Q'&&i!='R'&&i!='S'&&i!='T'&&i!='U'&&i!='V'&&i!='X'&&i!='Z'&& i!='a'&&i!='b'&&i!='c'&&i!='d'&&i!='e'&&i!='f'&&i!='g'&&i!='h'&&i!='i'&&i!='j'&&i!='k'&& i!='n'&&i!='o'&&i!='p'&&i!='q'&&i!='r'&&i!='s'&&i!='t'&&i!='u'&&i!='v'&&i!='x'&&i!='z'){system("cls");cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入!!!"<<endl; continue;}//判斷指令輸入的對(duì)錯(cuò)charwork; cout<<"確定要添加新書?(y/n):"<<endl; while(1) {cin>>work; if(work=='Y'||work=='y')break; elseif(work=='N'||work=='n'){system("cls");return;} else{cout<<"\n輸入錯(cuò)誤,請(qǐng)重新輸入!??!"<<endl;continue;} }system("cls"); cout<<endl<<"根據(jù)下面提示輸入新書籍的信息(按0返回上一層)"<<endl<<endl<<"書名:"; cin>>p.bookname; cout<<"作者:"; cin>>p.writer; cout<<"出版社:"; cin>>p.publishing; if(i=='A'||i=='a'){strcpy_s(p.booknum1,"A");add("A馬克思主義、列寧主義、毛澤東思想、鄧小平理論.txt",p);}if(i=='B'||i=='b'){strcpy_s(p.booknum1,"B");add("B哲學(xué)、宗教.txt",p);}//調(diào)用添加函數(shù),對(duì)新書進(jìn)行采編入庫if(i=='C'||i=='c'){strcpy_s(p.booknum1,"C");add("C社會(huì)科學(xué)總論.txt",p);}if(i=='D'||i=='d'){strcpy_s(p.booknum1,"D");add("D政治、法律.txt",p);}if(i=='E'||i=='e'){strcpy_s(p.booknum1,"E");add("E軍事.txt",p);}if(i=='F'||i=='f'){strcpy_s(p.booknum1,"F");add("F經(jīng)濟(jì).txt",p);}if(i=='G'||i=='g'){strcpy_s(p.booknum1,"G");add("G文化科學(xué)、教育、體育.txt",p);}if(i=='H'||i=='h'){strcpy_s(p.booknum1,"H");add("H語言、文字.txt",p);}if(i=='I'||i=='i'){strcpy_s(p.booknum1,"I");add("I文學(xué).txt",p);}if(i=='J'||i=='j'){strcpy_s(p.booknum1,"J");add("J藝術(shù).txt",p);}if(i=='K'||i=='k'){strcpy_s(p.booknum1,"K");add("K歷史、地理.txt",p);}if(i=='N'||i=='n'){strcpy_s(p.booknum1,"N");add("N自然科學(xué)總論.txt",p);}if(i=='O'||i=='o'){strcpy_s(p.booknum1,"O");add("O數(shù)理科學(xué)和化學(xué).txt",p);}if(i=='P'||i=='p'){strcpy_s(p.booknum1,"P");add("P天文學(xué)、地球科學(xué).txt",p);}if(i=='Q'||i=='q'){strcpy_s(p.booknum1,"Q");add("Q生物科學(xué).txt",p);}if(i=='R'||i=='r'){strcpy_s(p.booknum1,"R");add("R醫(yī)藥、衛(wèi)生.txt",p);}if(i=='S'||i=='s'){strcpy_s(p.booknum1,"S");add("S農(nóng)業(yè)科學(xué).txt",p);}if(i=='T'||i=='t'){strcpy_s(p.booknum1,"T");add("T工業(yè)技術(shù).txt",p);}if(i=='U'||i=='u'){strcpy_s(p.booknum1,"U");add("U交通運(yùn)輸.txt",p);}if(i=='V'||i=='v'){strcpy_s(p.booknum1,"V");add("V航空、航天.txt",p);}if(i=='X'||i=='x'){strcpy_s(p.booknum1,"X");add("X環(huán)境科學(xué)、安全科學(xué).txt",p);}if(i=='Z'||i=='z'){strcpy_s(p.booknum1,"Z");add("Z綜合性圖書.txt",p);}system("cls");charch; cout<<"添加成功?。?!\n是否要繼續(xù)添加新書?(y/n):"<<endl; while(1) {cin>>ch;if(ch=='Y'||ch=='y'){system("cls");addbook();}//函數(shù)嵌套調(diào)用,判斷是否繼續(xù)進(jìn)行添加操作 elseif(ch=='N'||ch=='n'){system("cls");managerlanding();} else{cout<<"\n輸入錯(cuò)誤,請(qǐng)重新輸入?。?!"<<endl;continue;} }}}//addreader.cpp#include"head.h"voidaddreader(){system("cls");managebookp,t;system("cls");charwork; cout<<"確定要添加新的借閱者信息?(y/n):"<<endl; while(1)//詢問添加新的借閱者與否 {cin>>work; if(work=='Y'||work=='y')break; elseif(work=='N'||work=='n'){system("cls");return;} else{cout<<"\n輸入錯(cuò)誤,請(qǐng)重新輸入?。。?<<endl;continue;} } cout<<endl<<"根據(jù)下面提示輸入新的借閱者的信息(按0返回上一層)"<<endl<<endl<<"姓名:"; cin>>p.reader; cout<<"圖書證號(hào):"; cin>>p.cardnum; inti=0;ifstreamf("借閱者信息.txt",ios::in);while(f>>t.reader>>t.cardnum){if((!strcmp(t.reader,p.reader))&&(!strcmp(t.cardnum,p.cardnum)))//判斷新添加的借閱者是否已存在{cout<<"該借閱者已記錄在案?。?!"<<endl;i=1;break;}}f.close();if(!i){ofstreamf1("借閱者信息.txt",ios::app);f1<<p.reader<<"\t"<<p.cardnum<<endl;//新添加的借閱者若不存在,則進(jìn)行添加f1.close();}system("cls");charch; cout<<"添加成功?。?!\n是否要繼續(xù)添加新的借閱者信息?(y/n):"<<endl; while(1) {//函數(shù)嵌套調(diào)用,判斷是否繼續(xù)進(jìn)行添加操作cin>>ch;if(ch=='Y'||ch=='y'){system("cls");addreader();} elseif(ch=='N'||ch=='n'){system("cls");managereader();} else{cout<<"\n輸入錯(cuò)誤,請(qǐng)重新輸入?。。?<<endl;continue;} }}//alt.cpp#include"head.h"voidalt(char*file,bookdatap){intc=0,w=0;bookdatat,q;ofstreamf("中轉(zhuǎn)文件.txt",ios::out);f.close();ifstreamfa(file,ios::in);f.open("中轉(zhuǎn)文件.txt",ios::app);//將數(shù)據(jù)經(jīng)過中轉(zhuǎn)文件進(jìn)行修改while(fa>>t.booknum1>>t.booknum>>t.bookname>>t.writer>>t.publishing>>t.nowstore>>t.allstore){if((!strcmp(t.bookname,p.bookname))&&(!strcmp(t.writer,p.writer))&&(!strcmp(t.publishing,p.publishing))){cout<<"該書信息:"<<endl;w=1;//判斷所輸入的書是否已存在,w為標(biāo)志變量cout<<"圖書號(hào):"<<t.booknum1<<t.booknum<<"\t書名:"<<t.bookname<<"\t作者:"<<t.writer<<"\t出版社:"<<t.publishing<<"\t現(xiàn)存量:"<<t.nowstore<<"\t總庫存量:"<<t.allstore<<endl<<endl; cout<<"請(qǐng)輸入修改后的圖書書名:"; cin>>q.bookname; cout<<"請(qǐng)輸入修改后的圖書作者:"; cin>>q.writer; cout<<"請(qǐng)輸入修改后的圖書出版社:"; cin>>q.publishing; cout<<"請(qǐng)輸入修改后的圖書現(xiàn)存量:"; cin>>q.nowstore; cout<<"請(qǐng)輸入修改后的圖書總庫存量:"; cin>>q.allstore; strcpy_s(t.bookname,q.bookname);//若已存在,則進(jìn)行修改 strcpy_s(t.writer,q.writer); strcpy_s(t.publishing,q.publishing); t.nowstore=q.nowstore; t.allstore=q.allstore; w=1;} f<<t.booknum1<<""<<t.booknum<<"\t"<<t.bookname<<"\t"<<t.writer<<"\t"<<t.publishing<<"\t"<<t.nowstore<<"\t"<<t.allstore<<endl;}fa.close();f.close();f.open(file,ios::out);f.close(); fa.open("中轉(zhuǎn)文件.txt",ios::in);f.open(file,ios::app);//將中轉(zhuǎn)文件中的數(shù)據(jù)復(fù)制到原有的數(shù)據(jù)文件當(dāng)中 while(fa>>t.booknum1>>t.booknum>>t.bookname>>t.writer>>t.publishing>>t.nowstore>>t.allstore) {f<<t.booknum1<<""<<t.booknum<<"\t"<<t.bookname<<"\t"<<t.writer<<"\t"<<t.publishing<<"\t"<<t.nowstore<<"\t"<<t.allstore<<endl;} fa.close(); f.close();if(!w)cout<<"\n該圖書信息不存在!??!\n是否要繼續(xù)修改圖書?(y/n):"<<endl; elsecout<<"\n成功對(duì)該圖書進(jìn)行了修改?。?!\n是否要繼續(xù)修改圖書?(y/n):"<<endl;charch; while(1) {cin>>ch;if(ch=='Y'||ch=='y')//函數(shù)嵌套調(diào)用,判斷是否繼續(xù)進(jìn)行修改操作{system("cls");altbook();} elseif(ch=='N'||ch=='n'){system("cls");managerlanding();} else{cout<<"\n輸入錯(cuò)誤,請(qǐng)重新輸入?。。?<<endl;continue;} } }//altbook.cpp#include"head.h"voidaltbook(){system("cls");while(1){chari;bookdatap;cout<<"需要修改的圖書屬于哪一類目:\n"; cout<<"\t\t============================================"<<endl; cout<<"\t\t\tA馬克思主義、列寧主義、\t"<<endl; cout<<"\t\t\t毛澤東思想、鄧小平理論\t"<<endl; cout<<"\t\t\tB哲學(xué)、宗教\t"<<endl; cout<<"\t\t\tC社會(huì)科學(xué)總論\t"<<endl; cout<<"\t\t\tD政治、法律\t"<<endl; cout<<"\t\t\tE軍事\t"<<endl; cout<<"\t\t\tF經(jīng)濟(jì)\t"<<endl; cout<<"\t\t\tG文化科學(xué)、教育、體\t"<<endl; cout<<"\t\t\tH語言、文字\t"<<endl; cout<<"\t\t\tI文學(xué)\t"<<endl; cout<<"\t\t\tJ藝術(shù)\t"<<endl; cout<<"\t\t\tK歷史、地理\t"<<endl; cout<<"\t\t\tN自然科學(xué)總論\t"<<endl; cout<<"\t\t\tO數(shù)理科學(xué)和化學(xué)\t"<<endl; cout<<"\t\t\tP天文學(xué)、地球科學(xué)\t"<<endl; cout<<"\t\t\tQ生物科學(xué)\t"<<endl; cout<<"\t\t\tR醫(yī)藥、衛(wèi)生\t"<<endl; cout<<"\t\t\tS農(nóng)業(yè)科學(xué)\t"<<endl; cout<<"\t\t\tT工業(yè)技術(shù)\t"<<endl; cout<<"\t\t\tU交通運(yùn)輸\t"<<endl; cout<<"\t\t\tV航空、航天\t"<<endl; cout<<"\t\t\tX環(huán)境科學(xué)、安全科學(xué)\t"<<endl; cout<<"\t\t\tZ綜合性圖書\t"<<endl; cout<<"\t\t============================================"<<endl; cout<<"(按0返回上一層)"<<endl;//菜單cin>>i;if(i=='0'){system("cls");return;}elseif(i!='A'&&i!='B'&&i!='C'&&i!='D'&&i!='E'&&i!='F'&&i!='G'&&i!='H'&&i!='I'&&i!='J'&&i!='K'&& i!='N'&&i!='O'&&i!='P'&&i!='Q'&&i!='R'&&i!='S'&&i!='T'&&i!='U'&&i!='V'&&i!='X'&&i!='Z'&& i!='a'&&i!='b'&&i!='c'&&i!='d'&&i!='e'&&i!='f'&&i!='g'&&i!='h'&&i!='i'&&i!='j'&&i!='k'&& i!='n'&&i!='o'&&i!='p'&&i!='q'&&i!='r'&&i!='s'&&i!='t'&&i!='u'&&i!='v'&&i!='x'&&i!='z'){system("cls");cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入!!!"<<endl; continue;}//對(duì)指令輸入進(jìn)行判斷charwork; cout<<"確定要修改圖書?(y/n):"<<endl; while(1) {cin>>work; if(work=='N'||work=='n'){system("cls");return;} elseif(work=='Y'||work=='y')break; else{cout<<"\n輸入錯(cuò)誤,請(qǐng)重新輸入?。?!"<<endl;continue;} }system("cls"); cout<<endl<<"根據(jù)下面提示輸入所要修改的書籍的信息(按0返回上一層)"<<endl<<endl<<"書名:"; cin>>p.bookname; cout<<"作者:"; cin>>p.writer; cout<<"出版社:"; cin>>p.publishing; if(i=='A'||i=='a')alt("A馬克思主義、列寧主義、毛澤東思想、鄧小平理論.txt",p);if(i=='B'||i=='b')alt("B哲學(xué)、宗教.txt",p);//調(diào)用修改函數(shù),直接在數(shù)據(jù)文件中進(jìn)行修改if(i=='C'||i=='c')alt("C社會(huì)科學(xué)總論.txt",p);if(i=='D'||i=='d')alt("D政治、法律.txt",p);if(i=='E'||i=='e')alt("E軍事.txt",p);if(i=='F'||i=='f')alt("F經(jīng)濟(jì).txt",p);if(i=='G'||i=='g')alt("G文化科學(xué)、教育、體育.txt",p);if(i=='H'||i=='h')alt("H語言、文字.txt",p);if(i=='I'||i=='i')alt("I文學(xué).txt",p);if(i=='J'||i=='j')alt("J藝術(shù).txt",p);if(i=='K'||i=='k')alt("K歷史、地理.txt",p);if(i=='N'||i=='n')alt("N自然科學(xué)總論.txt",p);if(i=='O'||i=='o')alt("O數(shù)理科學(xué)和化學(xué).txt",p);if(i=='P'||i=='p')alt("P天文學(xué)、地球科學(xué).txt",p);if(i=='Q'||i=='q')alt("Q生物科學(xué).txt",p);if(i=='R'||i=='r')alt("R醫(yī)藥、衛(wèi)生.txt",p);if(i=='S'||i=='s')alt("S農(nóng)業(yè)科學(xué).txt",p);if(i=='T'||i=='t')alt("T工業(yè)技術(shù).txt",p);if(i=='U'||i=='u')alt("U交通運(yùn)輸.txt",p);if(i=='V'||i=='v')alt("V航空、航天.txt",p);if(i=='X'||i=='x')alt("X環(huán)境科學(xué)、安全科學(xué).txt",p);if(i=='Z'||i=='z')alt("Z綜合性圖書.txt",p);}}//altmanager.cpp#include"head.h"voidaltmanager(){system("cls");managebookp,t,q;charpassw[20],pw[20];strcpy_s(passw,"30580466"); cout<<"請(qǐng)輸入管理員權(quán)限密碼:"; cin>>pw; while(1)//設(shè)置管理員權(quán)限密碼 {if(!strcmp(passw,pw))break;else{system("cls");cout<<"\n所輸入的管理員權(quán)限密碼不正確!??!\n"<<endl;return;} }chari; while(1) { cout<<"請(qǐng)選擇:(1.修改管理員用戶名)(2.修改管理員登陸密碼)\n"; cin>>i; if(i!='1'&&i!='2'){cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入!!!"<<endl;continue;} elsebreak; }ofstreamf("中轉(zhuǎn)文件.txt",ios::out);f.close(); if(i=='1') {cout<<"\n請(qǐng)輸入你的管理員用戶名:"; cin>>q.manager; cout<<"請(qǐng)輸入你的管理員登陸密碼:"; cin>>q.password; cout<<"\n請(qǐng)輸入修改后的管理員用戶名:"; cin>>p.manager; intk=0;ifstreamf("管理員信息.txt",ios::in);ofstreamf1("中轉(zhuǎn)文件.txt",ios::app);while(f>>t.manager>>t.password){if((!strcmp(t.manager,q.manager))&&(!strcmp(t.password,q.password))){strcpy_s(t.manager,p.manager);k=1;}//k為判斷標(biāo)志,該管理員信息存在為1.不存在為0f1<<t.manager<<"\t"<<t.password<<endl;}f.close();f1.close();if(!k){system("cls");cout<<"\n該管理員信息不存在,無法修改!??!\n"<<endl;re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)教師職稱晉升制度
- 養(yǎng)老院入住老人心理健康監(jiān)測制度
- 企業(yè)內(nèi)部績效考核制度
- 2026浙江臺(tái)州市溫嶺市保安服務(wù)有限公司招聘保安員10人備考題庫附答案
- 2026湖北恩施州宣恩茗智未來農(nóng)業(yè)科技有限責(zé)任公司招聘1人備考題庫附答案
- 2026湖南長沙市南雅星沙實(shí)驗(yàn)中學(xué)秋季學(xué)期教師招聘參考題庫附答案
- 2026福建浦豐鄉(xiāng)村發(fā)展集團(tuán)有限公司及其下屬企業(yè)招聘4人參考題庫附答案
- 2026福建省面向江南大學(xué)選調(diào)生選拔工作參考題庫附答案
- 2026遼寧科技學(xué)院面向部分高校招聘5人備考題庫附答案
- 2026重慶飛駛特人力資源管理有限公司外派至華商國際會(huì)議中心(華商酒店)招聘1人備考題庫附答案
- GB/T 43824-2024村鎮(zhèn)供水工程技術(shù)規(guī)范
- 心力衰竭藥物治療的經(jīng)濟(jì)評(píng)估與成本效益分析
- 道路綠化養(yǎng)護(hù)投標(biāo)方案(技術(shù)方案)
- QA出貨檢驗(yàn)日?qǐng)?bào)表
- 校服采購?fù)稑?biāo)方案
- 中外建筑史課件
- 母嬰保健-助產(chǎn)技術(shù)理論考核試題題庫及答案
- dd5e人物卡可填充格式角色卡夜版
- ??怂箍禉C(jī)器操作說明書
- GB/T 6003.1-1997金屬絲編織網(wǎng)試驗(yàn)篩
- GB/T 24207-2009洗油酚含量的測定方法
評(píng)論
0/150
提交評(píng)論