欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C語(yǔ)言圖書(shū)管理系統(tǒng)簡(jiǎn)潔版

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

DOS界面的圖書(shū)管理系統(tǒng),具體內(nèi)容如下

程序分為兩塊:管理員操作(收錄圖書(shū)、刪除圖書(shū)等)和會(huì)員操作(注冊(cè)、借書(shū)、還書(shū)等);

1、管理員操作界面

2、會(huì)員操作界面

global.h頭文件:(程序中只使用了一個(gè)編寫的頭文件,在這里存放了所有的接口函數(shù)以及需要使用到的頭文件,還有結(jié)構(gòu)體的定義)

#include "iostream" 
#include "string" 
#include "fstream" 
#include "conio.h"     //getch(); 
#include "algorithm"    //sort(); 
using namespace std; 
 
#define Max_BookNum 10240      //最大存書(shū)數(shù)目 
#define Max_MemberNum 10240     //最大會(huì)員數(shù)目 
 
typedef enum{//圖書(shū)借閱狀態(tài) 
  Borrowed=1,       //已被借閱 
  available=0       //當(dāng)前可借 
}Book_Status; 
 
typedef struct{//圖書(shū)信息 
  char name[20];     //書(shū)名 
  char author[20];    //作者 
  string isbn;      //圖書(shū)編號(hào) 
  string price;      //價(jià)格 
  string pub;       //出版社 
  string pubtime;     //出版時(shí)間 
  string addtime;     //收錄日期 
  string Class;      //分類號(hào) 
  Book_Status Book_sta;  //借閱狀態(tài),初始化為可借 
}Book_Message; 
 
typedef struct{//借閱人信息 
  string name;    //姓名 
  string sex;       //性別 
  string number;     //學(xué)號(hào) 
  char login[20];     //登錄號(hào) 以A1001開(kāi)始 
  char code[20];     //登錄密碼 
  Book_Message Borrow_Book[10];    //最大可借書(shū)本數(shù)目:10本 
  int BorBook_Cnt;    //借書(shū)數(shù)量 
}Member_Message; 
 
 
void Show_WelMenu();  //Welcome菜單 
void Book_InfoInput(); //圖書(shū)信息錄入 
void Book_InfoShow(Book_Message *Book_Info);  //輸出圖書(shū)信息 
void Book_Search();   //搜索書(shū)本   0,按書(shū)名;1,按作者 
void Book_Delete();   //刪除圖書(shū)信息 
void Book_InfoChange(); //修改圖書(shū)信息 
void Book_Sort();    //圖書(shū)排序  
void Book_RecordSave(); //圖書(shū)信息保存   
int Book_RecordLoad(); //讀檔 
 
 
void Admin_Login();     //管理員登錄 
void Member_WelMenu();   //會(huì)員菜單界面 
void Book_WelMenu();    //管理員菜單界面 
 
void Member_Login();    //會(huì)員登錄 
void Member_Reg();   //會(huì)員注冊(cè) 
void Member_Bor();   //借書(shū)手續(xù) 
void Member_Ret();   //還書(shū) 
void Member_Search();  //會(huì)員資料查詢  0,按姓名;1,按學(xué)號(hào) 
void Member_Delete();  //會(huì)員資料注銷 
void Member_RecordSave();//會(huì)員信息保存 
int Member_RecordLoad();//會(huì)員信息讀檔  
void Member_InfoChange(); 
 
 
//void Member_BookMsgSave(); 
//int  Member_BookMsgLoad(); 
void Member_MsgShow(Member_Message *Member_Msg);//信息顯示 
void Member_CodeAdjust();//會(huì)員修改密碼 

主程序:main.c文件:

#include "global.h" 
int Book_Record=0;          
int Member_Record=0; 
Book_Message Book_List[Max_BookNum];      //圖書(shū)登記表 
Member_Message Member_List[Max_MemberNum];   //會(huì)員登記表 
 
int main() 
{ 
  char key[2]; 
  while(1){ 
    Show_WelMenu(); 
    int cmd; 
    cin>>cmd; 
    if(!cmd) 
      Admin_Login();     //進(jìn)入管理員登錄界面 
    else 
      Member_Login();     //進(jìn)入會(huì)員登錄界面 
   
    cout<<"\t\t\t\t是否退出圖書(shū)管理系統(tǒng)?\ty/n\n"; 
    cin>>key; 
    if(strcmp(key,"y")==0) 
      break; 
  } 
  cout<<"系統(tǒng)即將退出"<<endl; 
  getch(); 
  return 0; 
} 

以下分別是各個(gè)功能模塊的函數(shù)實(shí)現(xiàn):

1、輸出界面(選擇登錄界面)

void Show_WelMenu() 
{ 
  system("cls"); 
  cout<<"\t\t\t\t歡迎使用圖書(shū)管理系統(tǒng)"<<endl<<endl; 
  cout<<"\t\t\t\t0:管理員登錄"<<endl; 
  cout<<"\t\t\t\t1:會(huì)員登錄"<<endl; 
} 

2、管理員登錄程序(這里選擇了固定密碼登錄,Init_Code就是初始密碼。當(dāng)然也可以自行修改密碼)

void Admin_Login() 
{ 
  short count=0; 
  char code[20]; 
  char Init_Code[10]="0"; 
  cout<<"請(qǐng)輸入管理員密碼:"<<endl; 
  while(1){ 
    cin>>code; 
    if(strcmp(code,Init_Code)==0){ 
      break; 
    } 
    else{ 
      cout<<"密碼錯(cuò)誤請(qǐng)重新輸入"<<endl; 
      count++; 
      if(count>3){ 
        cout<<"密碼錯(cuò)誤超過(guò)三次,程序即將退出"<<endl; 
        break; 
      } 
    } 
  } 
  Book_WelMenu();     //enter Admin Menu 
} 

3、會(huì)員登錄程序(使用賬戶密碼登錄,若無(wú)賬號(hào),可自行注冊(cè))

void Member_Login() 
{   
  Book_Record = 0; 
  Member_Record = 0; 
  Book_Record = Book_RecordLoad(); 
  Member_Record = Member_RecordLoad();    //從文件讀入當(dāng)前注冊(cè)表 
  char code[20],login[20],Req[2]; 
  bool Login_Sta = false; 
  while(1){  //登錄程序,登錄成功后退出 
    if(Login_Sta) break; 
    if((Member_Record==0)){ 
      cout << "\t\t\t\t用戶庫(kù)為空,請(qǐng)先注冊(cè)" << endl; 
      cout << "\t\t\t\t按任意鍵注冊(cè)"; 
      getch(); 
      system("cls"); 
      Member_Reg();   
    } 
    else{ 
      cout << "\t\t\t\t請(qǐng)輸入會(huì)員登錄號(hào):" << endl; 
      cin>>login; 
      for(Mem_Point=0; Mem_Point<Member_Record; Mem_Point++){ 
        if((strcmp(login,Member_List[Mem_Point].login) == 0)){ 
          cout << "\t\t\t\t請(qǐng)輸入密碼:" << endl; 
          cin >> code; 
          while(strcmp(code, Member_List[Mem_Point].code) != 0){ 
              cout << "密碼錯(cuò)誤,請(qǐng)重新輸入" << endl; 
              cin >> code; 
          } 
          Login_Sta = true; 
          cout << "\t\t\t\t登錄成功,按任意鍵繼續(xù)"; 
          break; 
        } 
      } 
      if(Mem_Point >= Member_Record){ 
        cout << "\t\t\t該用戶未注冊(cè),不能使用圖書(shū)管理系統(tǒng)" << endl; 
        cout << "\t\t\t\t是否現(xiàn)在注冊(cè)(Y/N)" << endl; 
        cin >> Req; 
        if((strcmp(Req,"y") == 0) || (strcmp(Req,"Y") == 0)) 
          Member_Reg(); 
      } 
    } 
  } 
  getch(); 
  system("cls"); 
  Member_WelMenu(); 
  getch(); 
} 

4、文件操作(讀入與寫入,這里只貼出會(huì)員信息部分的文件操作,圖書(shū)收錄的文件操作類似)

/*導(dǎo)出會(huì)員注冊(cè)表到文件*/ 
void Member_RecordSave()   
{ 
  ofstream outfile; 
  outfile.open("E:\\Course\\002\\Member_Info.txt",ios::ate|ios::out); //若有文件,先清空,再寫入 
  for(int i=0;i<Member_Record;i++){ 
    outfile << Member_List[i].name  <<" " << Member_List[i].sex <<" " << Member_List[i].number <<" " 
        << Member_List[i].login <<" " << Member_List[i].code << endl; 
  } 
  outfile.close(); 
} 
 
/*從文件導(dǎo)入會(huì)員注冊(cè)表*/ 
int Member_RecordLoad() 
{ 
  int Member_FileLoad=0; 
  ifstream infile; 
  infile.open("E:\\Course\\002\\Member_Info.txt",ios::in); 
  string n,s,num; 
  char l[20],c[20]; 
  while(1){ 
    infile >> n >> s >> num >> l >> c;    //從文件導(dǎo)入信息,并注冊(cè)會(huì)員信息 
    Member_Add(n,s,num,l,c); 
    if(infile.eof() != 0)break; 
    Member_FileLoad++; 
  } 
  infile.close(); 
  return Member_FileLoad; 
} 

5、會(huì)員注冊(cè)程序(先掃描注冊(cè)表,若已被注冊(cè)返回失敗。注冊(cè)就是在文件中添加會(huì)員信息)

//內(nèi)部函數(shù) 
void Member_Add(string n,string s,string num,char* l,char* c) 
{ 
  Member_List[Member_Record].name   = n; 
  Member_List[Member_Record].sex   =s; 
  Member_List[Member_Record].number  =num; 
  strcpy(Member_List[Member_Record].login,(const char*)l); 
  strcpy(Member_List[Member_Record].code,(const char*)c); 
  Member_Record++; 
} 
 
/*會(huì)員注冊(cè)程序*/ 
void Member_Reg() 
{   
  string n,s,num; 
  char l[20],c[20],choice[2]; 
  cout << "\t\t\t\t會(huì)員注冊(cè)" << endl; 
  cout << "\t\t請(qǐng)以此輸入 姓名、性別、學(xué)號(hào)、登錄號(hào)、密碼" << endl; 
  cin >> n >> s >> num >> l >> c; 
  for(int i=0; i<Member_Record; i++){ 
    if(strcmp(Member_List[i].login,l) == 0){ 
      cout << "\t\t\t\t該登錄號(hào)已存在,注冊(cè)失敗" << endl; 
      getch(); 
      system("cls"); 
      return; 
    } 
  } 
  Member_Add(n,s,num,l,c); 
  cout << "\t\t\t\t注冊(cè)成功" << endl;  
  cout << "\t\t\t\t是否存入文件\ty/n?" << endl;; 
  cin >> choice; 
  if((strcmp(choice,"y")==0) || (strcmp(choice,"Y") == 0)) 
    Member_RecordSave(); 
  getch(); 
  system("cls");   //clear screan 
} 

6、會(huì)員注銷和密碼修改

/*會(huì)員資料注銷*/ 
void Member_Delete() 
{ 
  bool key=false; 
  char Del_Name[20],cmd[2]; 
  cout<<"請(qǐng)輸入要注銷的會(huì)員登錄號(hào)"<<endl; 
  cin>>Del_Name; 
  for(int i=0;i<Member_Record;i++){ 
    if(strcmp(Member_List[i].login,Del_Name)==0){  //found 
      key=true; 
      Member_MsgShow(&Member_List[i]); 
      cout<<"是否需要?jiǎng)h除該會(huì)員,y/n?"<<endl; 
      cin>>cmd; 
      if((strcmp(cmd,"y")==0)||(strcmp(cmd,"Y")==0)){ //ensure delete 
        while(i<=Member_Record-1){ 
          Member_List[i]=Member_List[i+1]; 
          i++; 
        } 
        Member_Record--; 
        Member_RecordSave(); 
        cout<<"會(huì)員 "<<Del_Name<<" 已注銷"<<endl; 
        break; 
      }   
    } 
  } 
  if(!key)  cout<<"沒(méi)有找到該會(huì)員"<<endl; 
} 
 
void Member_CodeAdjust() 
{   
  char TempCode[20],choice[2],Temp[20]; 
  strcpy(Temp,Member_List[Mem_Point].code); 
  while(1){ 
    cout<<"請(qǐng)輸入原來(lái)的密碼:"; 
    cin>>TempCode; 
    if(strcmp(Temp,TempCode)==0){ 
      cout<<"請(qǐng)輸入新的密碼:"; 
      cin>>TempCode; 
      cout<<"請(qǐng)?jiān)俅屋斎胄碌拿艽a:"; 
      strcpy(Member_List[Mem_Point].code,TempCode); 
      cin>>TempCode; 
      if(strcmp(Member_List[Mem_Point].code,TempCode)==0){ 
        cout<<"\t\t\t\t修改密碼成功,新密碼為"<<Member_List[Mem_Point].code<<endl;        //test 
        Member_RecordSave(); 
        break; 
      } 
      else{ 
        cout<<"兩次輸入的密碼不一致,修改失敗!"<<endl; 
        cout<<"\t\t\t\t輸入Y繼續(xù),輸入N放棄修改"<<endl; 
        cin>>choice; 
        if((strcmp(choice,"n")==0)||(strcmp(choice,"N")==0)) 
          return ; 
        continue; 
      } 
    } 
    cout<<"密碼錯(cuò)誤,請(qǐng)按任意鍵重新輸入!"<<endl; 
    getch(); 
  }   
} 

管理員操作的大部分程序和會(huì)員操作是類似的,這里只貼一個(gè)圖書(shū)排序的操作

7、圖書(shū)排序

/* 內(nèi)部函數(shù),供圖書(shū)排序功能調(diào)用*/ 
bool cmp( Book_Message a, Book_Message b ){ 
  if(strcmp( a.author, b.author ) == 0) 
    return strcmp( a.name, b.name ) < 0; 
  return strcmp( a.author , b.author ) < 0; 
} 
/* 
*  @brief 圖書(shū)排序,根據(jù)作者姓名升序排序,若作者相同,則按書(shū)名升序排序 
*  @param None 
*  @retval None 
*/ 
void Book_Sort() 
{ 
  sort( Book_List, Book_List+Book_Record, cmp ); 
  cout << "排序已完成" << endl; 
  cout << "所有圖書(shū)信息如下" << endl; 
  cout << "書(shū)名\t作者\(yùn)t價(jià)格\t出版社\t出版時(shí)間\t分類號(hào) 編號(hào) 收錄日期 是否可借" << endl; 
  for(int i=0; i<Book_Record; i++){ 
    Book_InfoShow( &Book_List[i] ); 
  } 
  getch(); 
} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:人臉檢測(cè)中AdaBoost算法詳解

欄    目:C語(yǔ)言

下一篇:C語(yǔ)言基于循環(huán)鏈表解決約瑟夫環(huán)問(wèn)題的方法示例

本文標(biāo)題:C語(yǔ)言圖書(shū)管理系統(tǒng)簡(jiǎn)潔版

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/984.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有