39H的源碼
⑴ 求C++小游戲源代碼啊~
一個戀愛小測試賊靈驗哦
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,a,b,c,d,e,f,g,h,i,j,k,l,sum;
cout<<"歡迎來到戀愛指數測試器*>-<*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"獨家的哦*^0^*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"以下異性均為合適年齡"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"下列問題如果是則輸入2,如果不是則輸入1,一點也沒感覺輸入0"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"加油,面對你自己!*-o-*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"question one:"<<"你是否面對異性時有莫名心跳?"<<endl;
cin>>n;
cout<<endl;
cout<<"question two:"<<"你是否有看到異性被撩時很憤怒?"<<endl;
cin>>m;
cout<<endl;
cout<<"question three:"<<"你是否懼怕見到一位異性的家長"<<endl;
cin>>a;
cout<<endl;
cout<<"question four:"<<"你是否經常刷一位異性的QQ或其他軟體"<<endl;
cin>>b;
cout<<endl;
cout<<"question five:"<<"想不想真心和Ta用情頭?"<<endl;
cin>>c;
cout<<endl;
cout<<"question six:"<<"和Ta邂逅過嗎?"<<endl;
cin>>d;
cout<<endl;
cout<<"question seven:"<<"吃過同一個飯碗里的東西嗎?"<<endl;
cin>>e;
cout<<endl;
cout<<"question eight:"<<"有過一個人在夢里與Ta相遇嗎?"<<endl;
cin>>f;
cout<<endl;
cout<<"question nine:"<<"有為了等Ta一個人站在風雨中嗎?"<<endl;
cin>>g;
cout<<endl;
cout<<"question ten:"<<"想kissTa不,想摸Ta的頭發嗎?"<<endl;
cin>>h;
cout<<endl;
sum=n+m+a+b+c+d+e+f+g+h;
cout<<"正在測評中,請稍後..."<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
if(sum>=16&&sum<=20)
cout<<"你的戀愛指數為:A。你是一個深深愛著Ta的人,你往往會走到最後^-^。"<<endl;
if(sum<=15&&sum>=12)
cout<<"你的戀愛指數為:B。你是一個矛盾卻又不失愛意的人,你的愛往往一波三折!-!。"<<endl;
if(sum<=11&&sum>=7)
cout<<"你的戀愛指數為:C。你是一個有點點情絲的人,你想表,卻又懼怕現實,你仍須努力o-o。"<<endl;
if(sum<=6&&sum>=0)
cout<<"你的戀愛指數為:D。你是一個無暇無垢,不食人間煙火的人,想一路踏歌,證道路上需佳人陪伴+-+。"<<endl;
if(sum>20||sum<0)
cout<<"你出格了喲ooo.ooo"<<endl;
cout<<"人生在世,恍如昨世,孤獨的身影終難走遠,你的那個Ta就在不遠方,就如漫天繁星,總有一顆屬於你!"<<endl;\
cout<<"快抓緊你身邊的那個Ta^-^oooooo"<<endl;
cout<<endl;
cout<<"作品創造者:yang sky one"<<endl;
cout<<"戀愛指數測試器已關閉,需重啟………………"<<endl;
return 0;
}
⑵ c語言小游戲代碼
「貪吃蛇」C代碼,在dev C++試驗通過(用4個方向鍵控制)
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <Windows.h>
#define W 78 //游戲框的寬,x軸
#define H 26 //游戲框的高,y軸
int dir=3; //方向變數,初值3表示向「左」
int Flag=0; //吃了食物的標志(1是0否)
int score=0; //玩家得分
struct food{ int x; //食物的x坐標
int y; //食物的y坐標
}fod; //結構體fod有2個成員
struct snake{ int len; //蛇身長
int speed; //移動速度
int x[100]; //蛇身某節x坐標
int y[100]; //蛇身某節y坐標
}snk; //結構體snk有4個成員
void gtxy( int x,int y) //控制游標移動的函數
{ COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void gtxy( int x,int y); //以下聲明要用到的幾個自編函數
void csh( ); //初始化界面
void keymove( ); //按鍵操作移動蛇
void putFod( ); //投放食物
int Over( ); //游戲結束(1是0否)
void Color(int a); //設定顯示顏色的函數
int main( ) //主函數
{ csh( );
while(1)
{ Sleep(snk.speed);
keymove( );
putFod( );
if(Over( ))
{ system(「cls」);
gtxy(W/2+1,H/2); printf(「游戲結束!T__T」);
gtxy(W/2+1,H/2+2); printf(「玩家總分:%d分」,score);
getch( );
break;
}
}
return 0;
}
void csh( ) //初始化界面
{ int i;
gtxy(0,0);
CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下兩行是隱藏游標的設置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
for(i=0;i<=W;i=i+2) //橫坐標要為偶數,因為這個要列印的字元佔2個位置
{Color(2); //設定列印顏色為綠色
gtxy(i,0); printf("■"); //列印上邊框
gtxy(i,H); printf("■"); //列印下邊框
}
for(i=1;i<H;i++)
{ gtxy(0,i); printf("■"); //列印左邊框
gtxy(W,i); printf("■"); //列印右邊框
}
while(1)
{ srand((unsigned)time(NULL)); //初始化隨機數發生器srand( )
fod.x=rand()%(W-4)+2; //隨機函數rand( )產生一個從0到比」(W-4)」小1的數再加2
fod.y=rand()%(H-2)+1; //隨機函數rand( )產生一個從0到比」(H-2)」小1的數再加1
if (fod.x%2==0) break; //fod.x是食物的橫坐標,要是2的倍數(為偶數)
}
Color(12); //設定列印顏色為淡紅
gtxy(fod.x,fod.y); printf("●"); //到食物坐標處列印初試食物
snk.len=3; //蛇身長初值為3節
snk.speed=350; //刷新蛇的時間,即移動速度初值為350毫秒
snk.x[0]=W/2+1; //蛇頭橫坐標要為偶數(因為W/2=39)
snk.y[0]=H/2; //蛇頭縱坐標
Color(9); //設定列印顏色為淡藍
gtxy(snk.x[0], snk.y[0]); printf("■"); //列印蛇頭
for(i=1;i<snk.len;i++)
{ snk.x[i]=snk.x[i-1]+2; snk.y[i]=snk.y[i-1];
gtxy(snk.x[i],snk.y[i]); printf("■"); //列印蛇身
}
Color(7, 0); //恢復默認的白字黑底
return;
}
void keymove( ) //按鍵操作移動蛇
{ int key;
if( kbhit( ) ) //如有按鍵輸入才執行下面操作
{ key=getch( );
if (key==224) //值為224表示按下了方向鍵,下面要再次獲取鍵值
{ key=getch( );
if(key==72&&dir!=2)dir=1; //72表示按下了向上方向鍵
if(key==80&&dir!=1)dir=2; //80為向下
if(key==75&&dir!=4)dir=3; //75為向左
if(key==77&&dir!=3)dir=4; //77為向右
}
if (key==32)
{ while(1) if((key=getch( ))==32) break; } //32為空格鍵,這兒用來暫停
}
if (Flag==0) //如沒吃食物,才執行下面操作擦掉蛇尾
{ gtxy(snk.x[snk.len-1],snk.y[snk.len-1]); printf(" "); }
int i;
for (i = snk.len - 1; i > 0; i--) //從蛇尾起每節存儲前一節坐標值(蛇頭除外)
{ snk.x[i]=snk.x[i-1]; snk.y[i]=snk.y[i-1]; }
switch (dir) //判斷蛇頭該往哪個方向移動,並獲取最新坐標值
{ case 1: snk.y[0]--; break; //dir=1要向上移動
case 2: snk.y[0]++; break; //dir=2要向下移動
case 3: snk.x[0]-=2; break; //dir=3要向左移動
case 4: snk.x[0]+=2; break; //dir=4要向右移動
}
Color(9);
gtxy(snk.x[0], snk.y[0]); printf("■"); //列印蛇頭
if (snk.x[0] == fod.x && snk.y[0] == fod.y) //如吃到食物則執行以下操作
{ printf("7"); snk.len++; score += 100; snk.speed -= 5; Flag = 1; } //7是響鈴
else Flag = 0; //沒吃到食物Flag的值為0
if(snk.speed<150) snk.speed= snk.speed+5; //作弊碼,不讓速度無限加快
}
void putFod( ) //投放食物
{ if (Flag == 1) //如吃到食物才執行以下操作,生成另一個食物
{ while (1)
{ int i,n= 1;
srand((unsigned)time(NULL)); //初始化隨機數發生器srand( )
fod.x = rand( ) % (W - 4) + 2; //產生在游戲框范圍內的一個x坐標值
fod.y = rand( ) % (H - 2) + 1; //產生在游戲框范圍內的一個y坐標值
for (i = 0; i < snk.len; i++) //隨機生成的食物不能在蛇的身體上
{ if (fod.x == snk.x[i] &&fod.y == snk.y[i]) { n= 0; break;} }
if (n && fod.x % 2 == 0) break; //n不為0且橫坐標為偶數,則食物坐標取值成功
}
Color(12); //設定字元為紅色
gtxy(fod.x, fod.y); printf("●"); //游標到取得的坐標處列印食物
}
return;
}
int Over( ) //判斷游戲是否結束的函數
{ int i;
Color(7);
gtxy(2,H+1); printf(「暫停鍵:space.」); //以下列印一些其它信息
gtxy(2,H+2); printf(「游戲得分:%d」,score);
if (snk.x[0] == 0 || snk.x[0] == W) return 1; //蛇頭觸碰左右邊界
if (snk.y[0] == 0 || snk.y[0] == H) return 1; //蛇頭觸碰上下邊界
for (i = 1; i < snk.len; i++)
{ if (snk.x[0] == snk.x[i] && snk.y[0] == snk.y[i]) return 1; } //蛇頭觸碰自身
return 0; //沒碰到邊界及自身時就返回0
}
void Color(int a) //設定顏色的函數
{ SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE ),a ); }
⑶ 源代碼'h': '.Diaos-h',意思是什麼
HC①8314②F③U④P⑤39⑥H⑦
①、頗爾濾芯的系列號,一般常見的有HC、UE、HCY、WR等
②、頗爾濾芯的大小,此處可以決定濾芯的內外徑
HC系列的有
8900:ø96*ø56.2
9604:ø79*ø51
9020:ø45*ø22.2
9021:ø45*ø25.4
9800:ø53*ø24.5
……
UE系列的有
219:ø53*ø43
319:ø78*ø45
619:ø152*ø98.7
……
③、F代表該濾芯是油濾芯
④、濾芯的承壓及濾材,此處為U代表油濾紙
⑤過濾精度;P表示3微米繞帶為藍色
⑥高度,39代表39英寸、此處還有4、8、13、16、26、39、40等
(注;這里指的高度是濾芯所在過濾器的高度,所以濾芯的具體高度會和換算出來的有所偏差。)
⑦密封材質 H代表丁晴橡膠圈 此處還有Z代表氟橡膠圈
⑷ 遊程編碼源代碼
這個...........樓上的諸位說的都是什麼啊。今天剛好看到這個問題,把你的E-mail給我把,我有純c的源碼(RLC)。
算了,直接貼關鍵部分吧。這個有一點C++成分,很容易改的。
bool CompressRunLength(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen, int nBitsPerSample, void* nRuns, int nRunCount, int nRunSize);
bool DecompressRunLength(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen);
#define GetDWORD(buf,bit,mask) ((*(DWORD*)(((BYTE*)buf)+((bit)>>3)))>>((bit)&7)&(mask))
#define GetWORD(buf,bit,mask) ((*(WORD*)(((BYTE*)buf)+((bit)>>3)))>>((bit)&7)&(mask))
int GetBitCount(int n)
{
int nBitCount = 0;
while(n)
n >>= 1, nBitCount++;
return nBitCount;
}
int BinarySearch(void* pValue, int nVlaueSize, void* pArray, int nCount)
{
int nIndex, nResult, nStart = 0, nEnd = nCount-1;
while(nStart <= nEnd)
{
nIndex = (nEnd+nStart)/2;
if((nResult = memcmp((BYTE*)pArray+nIndex*nVlaueSize, pValue, nVlaueSize)) == 0)
return nIndex;
if(nResult > 0)
nEnd = nIndex-1;
else
nStart = nIndex+1;
}
return -1;
}
bool CompressRunLength(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen, int nBitsPerSample, void* nRuns, int nRunCount, int nRunSize)
{
pDes = (BYTE*)malloc(nSrcLen*2);
memset(pDes, 0, nSrcLen*2);
nDesLen = sizeof(DWORD);
*(DWORD*)pDes = nSrcLen; // save source length
*(pDes+nDesLen++) = nBitsPerSample; // save bits per sample
*(pDes+nDesLen++) = nRunCount; // save runs count
*(pDes+nDesLen++) = nRunSize; // save run bytes
memcpy(pDes+nDesLen, nRuns, nRunCount*nRunSize); // save runs
nDesLen += nRunCount*nRunSize;
nDesLen <<= 3; // bytes to bits
if(nRunCount == 0)
nRunCount = 256, nRunSize = 1, nRuns = NULL;
int nBitsPerTypeIndex = GetBitCount(nRunCount-1);
int nMaxRunLength = (1 << nBitsPerSample)-1, nRunLength, nRunIndex, nByte = 0;
// loop in the source buffer
while(nByte < nSrcLen)
if((nRuns && (nRunIndex = BinarySearch(pSrc+nByte, nRunSize, nRuns, nRunCount)) != -1 &&
memcmp(pSrc+nByte+nRunSize, (BYTE*)nRuns+nRunIndex*nRunSize, nRunSize) == 0) ||
(!nRuns && (nRunIndex = *(pSrc+nByte)) == *(pSrc+nByte+1)))
{ // set bit to 1 to indicate type found
*(pDes+(nDesLen>>3)) |= 1 << (nDesLen&7);
*(DWORD*)(pDes+(++nDesLen>>3)) |= nRunIndex << (nDesLen&7);
nDesLen += nBitsPerTypeIndex;
// skip the two repeated runs
nByte += nRunSize*2;
// get run length - 2 (without the two repeated runs)
nRunLength = 0;
while(nRunLength < nMaxRunLength && nByte < nSrcLen &&
((nRuns && memcmp(pSrc+nByte, (BYTE*)nRuns+nRunIndex*nRunSize, nRunSize) == 0) || (!nRuns && (BYTE)nRunIndex == *(pSrc+nByte))))
nRunLength++, nByte += nRunSize;
// save run length and increment destination length by bits per sample
*(DWORD*)(pDes+(nDesLen>>3)) |= nRunLength << (nDesLen&7);
nDesLen += nBitsPerSample;
}
else // one byte
*(WORD*)(pDes+(++nDesLen>>3)) |= *(pSrc+nByte++) << (nDesLen&7), nDesLen += 8;
nDesLen = (nDesLen+7)/8; // bits to bytes
pDes = (BYTE*)realloc(pDes, nDesLen);
return true;
}
bool DecompressRunLength(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen)
{
if(nSrcLen == 0)
return true;
// allocate destination buffer
nDesLen = *(DWORD*)pSrc;
pDes = (BYTE*)malloc(nDesLen);
memset(pDes, 0, nDesLen);
// compression information
int nSrcIndex = sizeof(DWORD);
int nBitsPerSample = *(pSrc+nSrcIndex++);
int nRunCount = *(pSrc+nSrcIndex++);
int nRunSize = *(pSrc+nSrcIndex++);
void* nRuns = pSrc+nSrcIndex;
nSrcIndex += nRunSize*nRunCount;
nSrcIndex <<= 3; // bytes to bits
if(nRunCount == 0)
nRunCount = 256, nRunSize = 1, nRuns = NULL;
int nBitsPerTypeIndex = GetBitCount(nRunCount-1);
int nMaxTypeIndex = (1 << nBitsPerTypeIndex)-1;
int nMaxRunLength = (1 << nBitsPerSample)-1;
int nDesIndex = 0, nRunLength, nRunIndex, nRun, nByte;
nSrcLen <<= 3; // bytes to bits
while(nSrcIndex < nSrcLen-8)
if((*(pSrc+(nSrcIndex>>3)) >> (nSrcIndex++&7)) & 1)
{
nRunIndex = GetDWORD(pSrc, nSrcIndex, nMaxTypeIndex), nSrcIndex += nBitsPerTypeIndex;
nRunLength = GetDWORD(pSrc, nSrcIndex, nMaxRunLength)+2, nSrcIndex += nBitsPerSample;
for(nRun = 0; nRun < nRunLength; nRun++)
for(nByte = 0; nByte < nRunSize; nByte++, nDesIndex += 8)
*(WORD*)(pDes+(nDesIndex>>3)) |= nRuns ? GetWORD(nRuns+nRunSize*nRunIndex, nByte<<3, 0xff) : (BYTE)nRunIndex;
}
else // one byte
*(WORD*)(pDes+(nDesIndex>>3)) |= GetWORD(pSrc, nSrcIndex, 0xff), nDesIndex += 8, nSrcIndex += 8;
return true;
}
⑸ 高分懸賞急求一段源代碼
#include<iostream>
#include<fstream>
#include<conio.h>
using namespace std;
class Librarian //圖書管理員類
{
public:
Librarian();
Librarian(int n,int j,char na[20],int w );
int getnumber();
int getjobage();
char *getname();
int getwages();
void resetjobage(int j);
void resetwages(int w);
void resetname(char na[20]);
private:
int number;
int jobage;
char name[20];
int wages;
};
Librarian::Librarian() //其函數的實現
{
number=0;
char b[20]="no one";
jobage=0;
strcpy(name,b);
}
Librarian::Librarian(int n,int j,char na[20],int w)
{
number=n;
jobage=j;
strcpy(name,na);
wages=w;
}
int Librarian::getjobage()
{return jobage;}
char *Librarian::getname()
{return name;}
int Librarian::getnumber()
{return number;}
int Librarian::getwages()
{return wages;}
void Librarian::resetjobage(int j)
{
jobage=j;
}
void Librarian::resetname(char na[20])
{
strcpy(name,na);
}
void Librarian::resetwages(int w)
{
wages=w;
}
class reader //讀者類
{
private:
int number;
int age;
char name[20];
char borrowbook[20];
public:
reader();
reader(int c,int a,char b[20],char e[20]);
int getnumber();
int getage();
char *getname();
char * getborrowbook();
void reworkborrowbook(char a[20]);
};
reader::reader() //其函數的實現
{
char a[20]="沒有人";
char c[20]="沒有借書";
number=0;
age=0;
}
reader::reader(int a,int c,char d[20],char e[20])
{
number=a;
age=c;
strcpy(name,d);
strcpy(borrowbook,e);
}
int reader::getnumber(){return number;}
int reader::getage(){return age;}
char *reader::getname(){return name;}
char * reader::getborrowbook(){return borrowbook;}
void reader::reworkborrowbook(char a[20]){strcpy(borrowbook,a);}
struct book //圖書的結構體
{
int num;
char name[20];
char writer[20];
};
void outbookinf() //輸出所有圖書信息
{
int i;
ifstream infile("allbook.txt",ios::in);
char line[50];
cout<<"書名"<<'\t'<<"書號"<<'\t'<<"作者"<<endl;
for(i=1;i<=10;i++)
{
infile.getline(line,50,'\n');
cout<<line<<endl;
}
infile.close();
}
void serchLaninf() //圖書管理員信息函數
{
int n,i;
ifstream file("serchLaninf.txt");
if(file) { file>>n; file.close();}
else {cout<<"沒有圖書管信息理員"; exit(0);}
ifstream is("controlloer.txt",ios_base::binary);
if(is)
{
Librarian *A=new Librarian[n];
for(i=0;i<n;i++)
{
is.read((char *)&A[i],sizeof(A[i]));
}
for(i=0;i<n;i++)
{
cout<<"編號"<<'\t'<<"工齡"<<'\t'<<"名字"<<'\t'<<"工資"<<endl;
cout<<A[i].getnumber()<<"\t"<<A[i].getjobage()<<"\t"<<A[i].getname()<<"\t"<<A[i].getwages()<<endl;
}
}
else
{
cout<<"txt文件打開出錯'"<<endl;
}
is.close();
}
void libary() //圖書館的總信息
{
system("cls");
system("color 2e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<"本校圖書館由本部圖書館及彭州校區圖書館組成,圖書館總面積達了****平方米";
cout<<" (本館現在有***類書籍***萬冊,****類書籍****萬冊,****類書籍****萬冊****類書籍****萬冊),";
cout<<"圖書館現有工作人員***名";
cout<<"圖書館現有的現代化設備價值超過****萬元………………"<<endl;
}
void storelibrarian() //存入新的管理員的信息
{
int age,n,num,wage;
char name[20];
ifstream file("serchLaninf.txt");
if(file) { file>>n; file.close();}
else { n=0;}
cout<<"已有的圖書管理員個數:";
cout<<n<<endl;
cout<<"請輸入新圖書管理員的編號和工齡,名字和工資:";
cin>>num>>age>>name>>wage;
Librarian A(num,age,name,wage);
cout<<"編號 工齡 名字 工資 "<<endl;
cout<<A.getnumber()<<" "<<A.getjobage()<<" "<<A.getname()<<" "<<A.getwages()<<endl;
ofstream outfile("controlloer.txt",ios_base::app );
outfile.write((char *)&A,sizeof(A));
outfile.close();
n++;
ofstream tfile("serchLaninf.txt");
tfile<<n;
tfile.close();
cout<<"保存成功!";
}
void reLaninf() //修改圖書管理員
{
int i,n,h,jobage,wage,j;
char name[20];
ifstream file("serchLaninf.txt");
if(file) { file>>n; file.close();}
else {cout<<"沒有圖書管信息理員";
exit(0);}
cout<<"已有的圖書管理員個數:";
cout<<n<<endl;
Librarian *A=new Librarian[n];
ifstream is("controlloer.txt",ios_base::binary);
if(is)
{
for(i=0;i<n;i++)
{
is.read((char *)&A[i],sizeof(A[i]));
}
for(i=0;i<n;i++)
{
cout<<"編號 工齡 名字 工資"<<endl;
cout<<A[i].getnumber()<<" "<<A[i].getjobage()<<" "<<A[i].getname()<<" "<<A[i].getwages()<<endl;
}
}
else
{
cout<<"打開文件出錯"<<endl;
}
is.close();
cout<<"請選擇你要修改的管理員編號:";
cin>>h;
cout<<"輸入新的工齡,名字,工資:";
cin>>jobage>>name>>wage;
A[h-1].resetjobage(jobage);
A[h-1].resetname(name);
A[h-1].resetwages(wage);
cout<<"該管理員修改後的名字是:"<<A[h-1].getname()<<" 工齡是:"<<A[h-1].getjobage()<<" 工資是:"<<A[h-1].getwages()<<endl;
ofstream tfile("controlloer.txt",ios_base::binary);
for(j=0;j<n;j++)
{
tfile.write((char *)&A[j],sizeof(A[j]));
}
tfile.close();
}
void aadbook() //新增圖書
{
int num;char name[12];char writer[10];int n;
a:
ofstream fout("allbook.txt",ios::app);
cout<<"請錄入圖書信息:"<<endl;
cout<<"書名"<<'\t'<<"書號"<<'\t'<<"作者"<<endl;
cin>>name;fout<<name<<'\t';
cin>>num;fout<<num<<'\t';
cin>>writer;fout<<writer<<'\n';
fout.close();
cout<<"是否繼續錄入?1.是2.否"<<endl;
cin>>n;
if(n==1)
goto a;
else
{void studentland();
studentland();}
}
void delate() //刪除函數
{ int m;
cout<<"選擇操作選項:"<<endl;
cout<<" 1.刪除全部信息"<<endl;
cout<<" 2.單個刪除"<<endl;
cin>>m;
if(m==1)
{ofstream file("allbook.txt",ios::trunc);
cout<<"全部刪除完畢,按任意鍵返回!"<<endl;
file.close();
getch();
system("cls");
void studentland();
studentland();
}
char str[10][80],buf[20];
a:
int i=0,flag=100,c=0;
ifstream fin("allbook.txt");
if(!fin){
cout<<"文件打開失敗!"<<endl;
getch();
system("cls");
void studentland();
studentland();
}
cout<<"請輸入你要刪除的書名:"<<endl;
cin>>buf;
strcat(buf,"\t");
while(fin.getline(str[i],80))
{
if(strncmp(str[i],buf,strlen(buf))==0)
{
flag=i;
}
i++;
}
fin.close();
if(flag==100)
{
cout<<"沒有你所要刪除的書籍!重新按1,否則0....."<<endl;
int b;
cin>>b;
if(b==1)goto a;
else c=1;
}
if(c==0){
ofstream fout("allbook.txt");
for(int j=0;j<i;j++){
if(j==flag)continue;
fout<<str[j]<<endl;
}
fout.close();
cout<<"你要刪除的書籍的信息已刪除,繼續按1,否則按0....."<<endl;
int b;
cin>>b;
if(b==1)goto a;
}
cout<<"操作已經結束,按任意鍵返回......"<<endl;
getch();
system("cls");
void studentland();
studentland();
}
void searchbook() // 查找書籍
{
a:
ifstream fin;
int flag=0,b,length;
char str[20];
char f[200];char g[200];
fin.open("allbook.txt");
if(!fin)
{
cout<<"Open f1.dat error....."<<endl;
exit(1);
}
while(1)
{
cout<<"請輸入書名:";
cin>>str;
strcat(str,"\t");
length=strlen(str);
cout<<"------------------------------------"<<endl;
while(fin.getline(f,199))
{
strcpy(g,f);
if(strncmp(str,f,length)==0)
{
flag=1;
break;
}
}
if(flag==1)
{
cout<<"所查詢的書已經找到:"<<'\n';
cout<<"--------------------------------"<<endl;
cout<<"書名"<<'\t'<<"書號"<<'\t'<<"作者"<<'\t'<<endl;
cout<<g<<endl;
cout<<"--------------------------------"<<endl;
flag=0;
cout<<"要繼續查詢按1,否則按0:"<<endl;
cin>>b;
if(b==0)break;
}
else
{
fin.close();
cout<<"沒有此書,繼續按1,否則按0..."<<endl;
cin>>b;
if(b==0)break;
goto a;
}
}
fin.close();
cout<<"查詢完畢,按任意鍵返回......"<<endl;
getch();
system("cls");
void studentland();
studentland();
}
void seachreader() // 查詢讀者信息
{
a:
ifstream fin;
int flag=0,b,length;
char str[20];
char f[200];char g[200];
fin.open("readernum.txt");
if(!fin)
{
cout<<"沒有此信息文件!"<<endl;
exit(1);
}
while(1)
{
cout<<"請輸入你要查找讀者的名字:";
cin>>str;
strcat(str,"\t");
length=strlen(str);
cout<<"------------------------------------"<<endl;
while(fin.getline(f,199))
{
strcpy(g,f);
if(strncmp(str,f,length)==0)
{
flag=1;
break;
}
}
if(flag==1)
{
cout<<"所查詢的讀者已經找到:"<<'\n';
cout<<"--------------------------------"<<endl;
cout<<"名字"<<'\t'<<"編號"<<'\t'<<"年齡"<<'\t'<<"借書次數"<<endl;
cout<<g<<endl;
cout<<"--------------------------------"<<endl;
flag=0;
cout<<"要繼續查詢按1,否則按0:"<<endl;
cin>>b;
if(b==0)break;
goto a;
}
else
{
fin.close();
cout<<"沒有此人,繼續按1,否則按0..."<<endl;
cin>>b;
if(b==0)break;
goto a;
}
}
fin.close();
cout<<"查詢完畢,按任意鍵返回......"<<endl;
getch();
system("cls");
void studentland();
studentland();
}
/*void seachreader() //查詢讀者的信息
{
int i,b,h=0;
char a[20];
ifstream file("readernum.txt");
if(file) { file>>b; file.close();}
else { cout<<"沒有文件";}
cout<<"已有的讀者個數:";
cout<<b<<endl;
reader *A=new reader[b];
ifstream is("reader.txt",ios_base::binary);
if(is)
{
for(i=0;i<b;i++)
{
is.read((char *)&A[i],sizeof(A[i]));
}
}
else
{
cout<<"txt文件打開出錯"<<endl;
}
is.close();
cout<<"請輸入你要查找讀者的名字:";
cin>>a;
for(i=0;i<b;i++)
{
if(strcmp(A[i].getname(),a)==0)
{
cout<<"編號 年齡 名字 借書情況 "<<endl;
cout<<A[i].getnumber()<<" "<<A[i].getage()<<" "<<A[i].getname()<<" "<<A[i].getborrowbook()<<endl;
h++;
}
}
if(h==0)cout<<"沒有這個讀者!";
}
*/
void Librarianland() //管理員登陸函數
{
int q,l=1,i,h;
system("cls");
system("color 2e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"現在進行身份確認,請輸入口令:";
cin>>i;
while(l)
{
if(i==00000)
{
system("cls");
system("color 3e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"|*******" <<"0,返回上一級菜單."<<" ******|"<<endl;
cout<<" "<<"|*******" <<"1,查詢圖書館管理員的信息"<<" ******|"<<endl;
cout<<" "<<"|*******" <<"2,存入新的管理員信息. "<<" ******|"<<endl;
cout<<" "<<"|*******" <<"3,修改圖書管理員的信息"<<" ******|"<<endl;
cout<<" "<<"|*******" <<"4,新增圖書"<<" ******|"<<endl;
cout<<" "<<"|*******" <<"5,刪除圖書"<<" ******|"<<endl;
cout<<"請選擇執行的操作:";
cin>>q;
if(q>=0&&q<6)
{
switch(q)
{
case 0:
l=0;
break;
case 1:serchLaninf();
system("pause");
break;
case 2:storelibrarian();
system("pause");
case 3:reLaninf();
system("pause");
break;
case 4:
void aadbook();
aadbook();
break;
case 5:
void delate();
delate();
break;
default:
break;
}
}
else
{
system("cls");
system("color 4e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"操作無效!"<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
system("pause");
}
}
else
{
system("cls");
system("color 2e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<" 身份確認失敗"<<endl;
cout<<" "<<" 是否重新確認!"<<endl;
cout<<" "<<"重新確認請按請按1,放棄請按0"<<endl;
cout<<" ";
cin>>h;
if(h==0) l=0;
if(h==1)
{
system("cls");
system("color 2e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"請再次輸入口令:";
cin>>i;
}
}
}
}
void studentland() //學生登陸函數
{
int h;
char l='y';
while(l=='y')
{
system("cls");
system("color 3e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"****** "<<"|輸出藏書信息,請按1 | "<<"******"<<endl;
cout<<" "<<"****** "<<"|查詢圖書館的總信息,請按2| "<<"******"<<endl;
cout<<" "<<"****** "<<"|按書名查找圖書,請按3 | "<<"******"<<endl;
cout<<" "<<"****** "<<"|查詢讀者的信息,請按4 | "<<"******"<<endl;
cout<<" "<<" ****** "<<"|返回上一級菜單,請按0 | "<<"******"<<endl;
cout<<"請選擇您將執行的操作:";
cin>>h;
if(h>=0&&h<5)
switch(h)
{
case 0:
l='n';
break;
case 1:outbookinf();
system("pause");
break;
case 2:libary();
system("pause");
break;
case 3:searchbook();
system("pause");
break;
case 4:seachreader();
system("pause");
break;
}
else
{
system("cls");
system("color 4e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"您的操作是無效的!!!!"<<endl;
system("pause");
}
}
}
void main() // 主函數
{
int h,l=1;
while(l)
{
system("cls");
system("color 7c");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"圖書管理系統"<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" ------------------"<<endl;
cout<<" "<<"||管理員登陸 請按1||"<<endl;
cout<<" "<<"||學生登陸 請按2 ||"<<endl;
cout<<" "<<"||退出系統 請按0 ||"<<endl;
cout<<" -------------------"<<endl;
cout<<""<<endl;
cout<<" 請您選擇登陸方式:";
cin>>h;
if(h>=0&&h<3)
{
switch(h)
{
case 0:
cout<<"謝謝光臨本圖書館!"<<endl;
exit(0);
case 1:
Librarianland();
system("pause");
break;
case 2:
studentland();
system("pause");
break;
}
}
else
{
system("cls");
system("color 4e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"您的操作是無效的!!!!"<<endl;
system("pause");
}
}
}
圖書館的管理系統。