c語言圖書信息管理系統
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#include<conio.h>
#define Max 2
typedef struct book //書的信息
{
char book_num[10];//書號
char book_name[20];//書名
char book_writer[10];//作者
int book_xy;//書的剩餘數量
int book_kc;//書的總數量
struct book *next;
}BK;
typedef struct borrow //被借書的信息
{
char borrow_book_num[10];//借書書號
char limit_date[8];//借書歸還日期
}BO;
typedef struct reader //讀者信息
{
char reader_num[10];//讀者號
char reader_name[10];//讀者姓名
int right;//已借數量
BO borrow[Max];//已借書信息
struct reader *next;
}RD;
BK *h_book;
RD *h_reader;
void Login();
int Menu();
void Init();
void Init_book();
void Menu_select();
void Insert_New_Book();
void Find_Book();
void add_reader();
void Print_reader();
void Print_book();
void Borrow_Book();
void Return_Book();
void Save();
void Save_Book();
void Save_Reader();
void Load();
void Load_Reader();
void Load_Book();
void Login()
{
system("cls");
printf("\n\n\n\t\t\t歡迎使用圖書管理系統\n");
printf("\n\n\t\t本程序分析者 秦義 學號:200907014122\n\n\n\n\n\n\n");//以前是設計者 xxxx
printf("\n\n\n\t\t 按 任 意 鍵 進 入 系 統 ...");
getch(); system("cls");
}
int Menu() /*主菜單*/
{ int dm;
printf("\n\t\t圖書管理系統主菜單\n");
printf("=================================================\n");
printf("☆\t0----退出系統 ☆\n");
printf("☆\t1----采編入庫 ☆\n");
printf("☆\t2----登記讀者 ☆\n");
printf("☆\t3----借閱登記 ☆\n");
printf("☆\t4---還書管理 ☆\n");
printf("☆\t5---查詢圖書信息 ☆\n");
printf("☆\t6----查詢讀者信息 ☆\n");
printf("=================================================\n");
printf("請選擇相應的代碼:");
for(;;)
{ scanf("%d",&dm);
if(dm<0||dm>6)
printf("\n錯誤!請重新輸入:");
else break;
}
return dm;
}
void Menu_select()/*主菜單選擇函數*/
{
for(;;)
{
switch(Menu()) /*功能選擇*/
{ case 0:
system("cls");
Save();
printf("\n\n\t文件保存成功!\n");
printf("\n\n\t歡迎下次使用本系統!\n");
getch();
exit(0);
case 1:Insert_New_Book();break;
case 2:add_reader();break;
case 3:Borrow_Book();break;
case 4:Return_Book();break;
case 5:Print_book();break;
case 6:Print_reader();break;
default:printf("\n錯誤!");
exit(0);}
}
}
void Init() /*初始化*/
{
Init_book();
}
void Init_book() /*初始化圖書信息*/
{
BK *p0;
printf("\n圖書初始化開始,請輸入圖書信息..\n包括編號.書名.數量..\n");
p0=(BK*)malloc(sizeof(BK));
h_book=p0;
printf("\n請輸入圖書信息:\n");
printf("圖書編號:"); /*輸入圖書編號(唯一)*/
scanf("%s",p0->book_num);
printf("圖書名稱:"); /*輸入圖書名稱*/
scanf("%s",p0->book_name);
printf("圖書作者:"); /*輸入圖書作者*/
scanf("%s",p0->book_writer);
printf("圖書數量:"); /*輸入圖書數量*/
scanf("%d",&p0->book_kc);
p0->book_xy=p0->book_kc; /*開始時圖書現有量和庫存量相等*/
p0->next=NULL;
printf("\n圖書信息初始化完畢!按任意鍵繼續下一步操作..\n");
getch();
system("cls");
}
void Insert_New_Book()/*新書入庫*/
{
BK *p,*p0,*p1;
p=p1=h_book;
printf("\n新書入庫模塊...\n");
printf("\n請輸入新書信息..\n包括書號.書名.數量..\n");
p0=(BK *)malloc(sizeof(BK));
printf("圖書編號:");
scanf("%s",p0->book_num);
while(strcmp(p0->book_num,p1->book_num)!=0&&p1->next!=NULL)
p1=p1->next;
if(strcmp(p0->book_num,p1->book_num)==0) /*此處分兩種情況,若圖書編號存在,則直接進庫,只須輸入書的數量*/
{
printf("\n此編號圖書已存在!!直接入庫!\n");
printf("圖書數量:");
scanf("%d",&p0->book_kc);
p1->book_kc+=p0->book_kc;
p1->book_xy+=p0->book_kc;
}
else/*若不存在,則需要輸入其他的信息 ,然後在進行插入操作*/
{
printf("圖書名稱:");
scanf("%s",p0->book_name);
printf("圖書作者:");
scanf("%s",p0->book_writer);
printf("圖書數量:");
scanf("%d",&p0->book_kc);
while(p->next)
{ p=p->next; }
if(h_book==NULL) h_book=p0; /*此處分兩種情況,鏈表中沒有數據,head直接指向p0處*/
else p->next=p0; /*此處分兩種情況,鏈表中有數據,鏈表中最後元素的next指向p0處*/
p0->next=NULL;
p0->book_xy=p0->book_kc;
}
printf("\n新書入庫完畢!按任意鍵繼續下一步操作..\n");
getch();
system("cls");
}
void add_reader()/*添加讀者*/
{ RD *p0;
int i;
printf("\n讀者初始化開始,請輸入讀者信息..\n包括書證號.姓名..\n");
p0=(RD*)malloc(sizeof(RD)); /*申請新結點存儲空間*/
h_reader=p0;
printf("\n請輸入讀者的信息:\n");
printf("讀者書證號:");
scanf("%s",p0->reader_num);
printf("讀者姓名:");
scanf("%s",p0->reader_name);
p0->right=0;
for(i=0;i<Max;i++)
{
strcpy(p0->borrow[i].borrow_book_num,"0"); /*所借圖書直接置為0(即沒有借書)*/
strcpy(p0->borrow[i].limit_date,"0");
}
p0->next=NULL;
printf("\n讀者信息初始化完畢!按任意鍵繼續下一步操作..\n");
getch();
system("cls");
}
void Borrow_Book() /*借書模塊*/
{
BK *p0; RD *p1;
char bo_num[10],rea_num[10],lim_date[8];
int i;
p0=h_book; p1=h_reader;
printf("\n借書模塊...\n");
printf("\n請輸入借書的讀者書證號:");
scanf("%s",rea_num);
while(p1->next!=NULL&&strcmp(rea_num,p1->reader_num)!=0) //查找讀者號
{p1=p1->next;}
if(p1->next==NULL&&strcmp(rea_num,p1->reader_num)!=0)
{
printf("\n此讀者編號不存在!按任意鍵返回..\n");
goto END;
}
printf("\n請輸入你要借的書的編號:");
scanf("%s",bo_num);
while(strcmp(bo_num,p0->book_num)!=0&&p0->next!=NULL) //查找書號
{p0=p0->next;}
if(p0->next==NULL&&strcmp(bo_num,p0->book_num)!=0)
{
printf("\n此圖書編號不存在!按任意鍵返回..\n");
}
else if(p0->book_xy<=0)
{
printf("\n抱歉,此書已借完!請等待新書的到來!!\n按任意鍵返回....");
}
else if(p1->right>=Max)
{
printf("\n不好意思,借書數目已滿!不能借書!\n按任意鍵返回....");
}
else if(strcmp(p1->borrow[0].borrow_book_num,"0")!=0)
{
for(i=0;i<Max;i++)
{
if(strcmp(p1->borrow[i].borrow_book_num,bo_num)==0)
{
printf("\n抱歉!同一個讀者不能同借兩本相同的書!\n");
}
else if(strcmp(p1->borrow[i].borrow_book_num,"0")==0)
{
printf("\n請輸入你要歸還圖書的日期:");
scanf("%s",lim_date);
strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num);
strcpy(p1->borrow[p1->right-1].limit_date,lim_date);
p0->book_xy--;
printf("\n讀者編號%s借書完畢!按任意鍵繼續下步操作..",p1->reader_num);
}
}
}
else
{
printf("\n請輸入你要歸還圖書的日期:");
scanf("%s",lim_date);
strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num);
strcpy(p1->borrow[p1->right-1].limit_date ,lim_date );
p0->book_xy--;
printf("\n讀者編號%s借書完畢!按任意鍵繼續下步操作..",p1->reader_num);
}
END:getch(); system("cls");
}
void Return_Book() /*還書模塊*/
{
BK *p; RD *q;
int i,j,find=0;
char return_book_num[10],return_reader_num[10];
p=h_book; q=h_reader;
printf("\n還書模塊...\n");
printf("\n請輸入要還書的讀者編號:");
scanf("%s",return_reader_num);
while(q->next!=NULL&&strcmp(return_reader_num,q->reader_num)!=0)
q=q->next;
if(q->next==NULL&&strcmp(return_reader_num,q->reader_num)!=0)
{
find=2;
printf("\n此讀者編號不存在!按任意鍵返回..\n");
goto end;
}
printf("\n請輸入讀者還書的編號:");
scanf("%s",return_book_num);
while(p->next!=NULL&&strcmp(return_book_num,p->book_num)!=0)
p=p->next;
if(p->next==NULL&&strcmp(return_book_num,p->book_num)!=0)
{
find=2;
printf("\n錯誤!此圖書編號不存在!按任意鍵返回..\n");
goto end;
}
for(i=0;i<Max;i++)
if(strcmp(return_book_num,q->borrow[i].borrow_book_num)==0) /*如果此讀者借了此書*/
{
find=1;
for(j=i;j<Max-1;j++)
{
strcpy(q->borrow[j].borrow_book_num,q->borrow[j+1].borrow_book_num);
strcpy(q->borrow[j].limit_date,q->borrow[j+1].limit_date);
}
strcpy(q->borrow[Max-1].borrow_book_num,"0");
strcpy(q->borrow[Max-1].limit_date,"0");
p->book_xy++;
q->right--;
printf("\n編號%s的讀者還書完畢!按任意鍵繼續下步操作..",return_reader_num);
}
if(find==0)
printf("\n錯誤!此讀者未藉此書!按任意鍵返回..\n");
end: getch(); system("cls");
}
void Print_book() /*查詢圖書信息*/
{
BK *p;
p=h_book;
printf("\n圖書信息如下:\n\n");
printf("圖書編號\t圖書名稱\t圖書作者\t現有\t\t庫存\n");
while(p!=NULL)
{
printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc);
p=p->next;
}
printf("\n圖書信息列印完畢!按任意鍵繼續下一步操作..");
getch();
system("cls");
}
void Print_reader() /*查詢讀者信息*/
{
RD *p;
int i;
p=h_reader;
printf("\n讀者信息如下:\n\n");
printf("讀者書證號\t\t讀者姓名\n");
printf("\n");
while(p!=NULL)
{
printf("\t%s\t\t%s",p->reader_num,p->reader_name);
for(i=0;i<Max;i++)
{
printf("\n");
printf("圖書編號",i+1);
printf("\t還書日期",i+1);
printf("\n");
printf("\t%s",p->borrow[i].borrow_book_num);
printf("\t\t%s",p->borrow[i].limit_date);
}
printf("\n");
p=p->next;
}
printf("\n讀者信息列印完畢!按任意鍵繼續下一步操作..");
getch();
system("cls");
}
//文件模塊
void Save() /*保存信息*/
{
Save_Reader();
Save_Book();
}
void Save_Reader() /*保存讀者信息*/
{
FILE *fp_reader;
RD *p,*p0;
p=h_reader;
if((fp_reader=fopen("Reader.txt","wb"))==NULL) /*創建文件,進行保存*/
{
printf("\n文件保存失敗!\n請重新啟動本系統...\n");
exit(0);
}
while(p!=NULL)
{
if(fwrite(p,sizeof(RD),1,fp_reader)!=1) /*將鏈表中的信息寫入文件中*/
printf("\n寫入文件失敗!\n請重新啟動本系統!\n");
p0=p;
p=p->next;
free(p0); /*釋放所有結點*/
}
h_reader=NULL;
fclose(fp_reader); /*關閉文件*/
}
void Save_Book() /*保存圖書信息*/
{
FILE *fp_book; /*創建文件型指針*/
BK *p,*p0;
p=h_book;
if((fp_book=fopen("Book.txt","wb"))==NULL) /*創建文件,進行保存*/
{
printf("\n文件保存失敗!\n請重新啟動本系統...\n");
exit(0);
}
while(p!=NULL)
{
if(fwrite(p,sizeof(BK),1,fp_book)!=1) /*將鏈表中的信息寫入文件中*/
printf("\n寫入文件失敗!\n請重新啟動本系統!\n");
p0=p;
p=p->next;
free(p0);
}
h_book=NULL;
fclose(fp_book); /*關閉文件*/
}
void Load() /*載入信息*/
{
Load_Reader();
Load_Book();
}
void Load_Reader() /*載入讀者信息*/
{
RD *p1,*p2,*p3;
FILE *fp; /*創建文件型指針*/
fp=fopen("book.txt","rb"); /*打開文件*/
p1=(RD *)malloc(sizeof(RD));
fread(p1,sizeof(RD),1,fp);
h_reader=p3=p2=p1;
while(! feof(fp)) /*讀出信息,重新鏈入鏈表*/
{ p1=(RD *)malloc(sizeof(RD));
fread(p1,sizeof(RD),1,fp);
p2->next=p1;
p3=p2;
p2=p1;
}
p3->next=NULL;
free(p1);
fclose(fp); /*關閉文件*/
}
void Load_Book() /*載入圖書信息*/
{
BK *p1,*p2,*p3;
FILE *fp; /*創建文件型指針*/
fp=fopen("Book.txt","rb"); /*打開文件*/
p1=(BK *)malloc(sizeof(BK));
fread(p1,sizeof(BK),1,fp);
h_book=p3=p2=p1;
while(! feof(fp)) /*讀出信息,重新鏈入鏈表*/
{ p1=(BK *)malloc(sizeof(BK));
fread(p1,sizeof(BK),1,fp);
p2->next=p1;
p3=p2;
p2=p1;
}
p3->next=NULL;
free(p1);
fclose(fp); /*關閉文件*/
}
void main()
{
FILE *fp_book,*fp_reader; /*創建文件型指針*/
Login();
if((fp_book=fopen("Book.txt","rb"))==NULL||(fp_reader=fopen("Reader.txt","rb"))==NULL)
{ Init(); }
else Load();
Menu_select(); /*調用主菜單*/
}
『貳』 C語言程序設計的圖書管理系統
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>//輸入/輸出文件流類
using namespace std;
const int Maxr=100;//最多的讀者
const int Maxb=100;//最多的圖書
const int Maxbor=5;//每位讀者最多借五本書
//讀者類,實現對讀者的信息的描述
class Reader
{
private:
int tag; //刪除標記 1:已刪 0:未刪
int no; //讀者編號
char name[10]; //讀者姓名
int borbook[Maxbor];//所借圖書
public:
Reader() {}
char *getname() //獲取姓名
int gettag() //獲取刪除標記
int getno() //獲取讀者編號
void setname(char na[]) //設置姓名
{
strcpy(name,na);
}
void delbook()//設置刪除標記 1:已刪 0:未刪
void addreader(int n,char *na)//增加讀者
{
tag=0;
no=n;
strcpy(name,na);
for(int i=0;i<Maxbor;i++)
borbook[i]=0;
}
void borrowbook(int bookid)//借書操作
{
for(int i=0;i<Maxbor;i++)
{
if (borbook[i]==0)
{
borbook[i]=bookid;
return;
}
}
}
int retbook(int bookid)//還書操作
{
for(int i=0;i<Maxbor;i++)
{
if(borbook[i]==bookid)
{
borbook[i]=0;
return 1;
}
}
return 0;
}
void disp()//讀出讀者信息
{
cout << setw(5) << no <<setw(10) << name<<"借書編號:[";
for(int i=0;i<Maxbor;i++)
if(borbook[i]!=0)
cout << borbook[i] << "|";
cout << "]"<<endl;
}
};
//讀者類庫,實現建立讀者的個人資料
class RDatabase
{
private:
int top; //讀者記錄指針
Reader read[Maxr];//讀者記錄
public:
RDatabase() //構造函數,將reader.txt讀到read[]中
{
Reader s;
top=-1;
fstream file("reader.txt",ios::in);//打開一個輸入文件
while (1)
{
file.read((char *)&s,sizeof(s));
if (!file)break;
top++;
read[top]=s;
}
file.close(); //關閉 reader.txt
}
void clear()//刪除所有讀者信息
{
top=-1;
}
int addreader(int n,char *na)//添加讀者時先查找是否存在
{
Reader *p=query(n);
if (p==NULL)
{
top++;
read[top].addreader(n,na);
return 1;
}
return 0;
}
Reader *query(int readerid)//按編號查找
{
for (int i=0;i<=top;i++)
if (read[i].getno()==readerid &&
read[i].gettag()==0)
{
return &read[i];
}
return NULL;
}
void disp() //輸出所有讀者信息
{
for (int i=0;i<=top;i++)
read[i].disp();
}
void readerdata();//讀者庫維護
~RDatabase() //析構函數,將read[]寫到reader.txt文件中
{
fstream file("reader.txt",ios::out);
for (int i=0;i<=top;i++)
if (read[i].gettag()==0)
file.write((char *)&read[i],sizeof(read[i]));
file.close();
}
};
void RDatabase::readerdata()
{
char choice;
char rname[20];
int readerid;
Reader *r;
while (choice!='0')
{
cout <<"\n\n\t\t\t讀 者 維 護\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 刪 除\n\n\t\t 4 查 找\n\n\t\t 5 顯 示\n\n\t\t 6 全 刪\n\n\t\t 0 退 出"<<endl;
cin >> choice;
switch (choice)
{
case '1':
cout << "輸入讀者編號:";
cin >> readerid;
cout << "輸入讀者姓名:";
cin >> rname;
addreader (readerid,rname);
break;
case '2':
cout << "輸入讀者編號:";
cin >> readerid;
r=query(readerid);
if (r==NULL)
{
cout << " 該讀者不存在 "<<endl;
break;
}
cout << "輸入新的姓名:";
cin >> rname;
r->setname(rname);
break;
case '3':
cout << " 輸入讀者編號:";
cin >> readerid;
r=query(readerid);
if (r==NULL)
{
cout <<" 該讀者不存在" << endl;
break;
}
r->delbook();
break;
case '4':
cout << "讀入讀者編號:";
cin >> readerid;
r=query(readerid);
if (r==NULL)
{
cout <<"該讀者不存在"<< endl;
break;
}
r->disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout<<"輸入錯誤,請從新輸入:";break;
}
}
}
//圖書類,實現對圖書的描述,圖書的編號,書名,借出,還入等
class Book
{
private:
int tag;//刪除標記 1:已刪 0:未刪
int no;//圖書編號
char name[20];//書名
int onshelf;//是否再架 1:再架 2:已借
public:
Book(){}
char *getname() //獲取姓名
int getno()//獲取圖書編號
int gettag()//獲取刪除標記
void setname(char na[])//設置書名
{
strcpy(name,na);
}
void delbook()//刪除圖書
void addbook(int n,char *na)//增加圖書
{
tag=0;
no=n;
strcpy(name,na);
onshelf=1;
}
int borrowbook()//借書操作
{
if (onshelf==1)
{
onshelf=0;
return 1;
}
return 0;
}
void retbook()//還書操作
{
onshelf=1;
}
void disp()//輸出圖書
{
cout << setw(6) << no << setw(18) << name << setw(10)
<<(onshelf==1? "在架":"已借") <<endl;
}
};
//圖書庫類,實現對圖書的維護,查找,刪除等
class BDatabase
{
private:
int top; //圖書記錄指針
Book book[Maxb]; //圖書記錄
public:
BDatabase()//構造函數,將book.txt讀到book[]中
{
Book b;
top=-1;
fstream file("book.txt",ios::in);
while (1)
{
file.read((char *)&b,sizeof(b));
if (!file) break;
top++;
book[top]=b;
}
file.close();
}
void clear()//全刪
{
top=-1;
}
int addbook(int n,char *na)//增加圖書
{
Book *p=query(n);
if (NULL==p)
{
top++;
book[top].addbook(n,na);
return 1;
}
return 0;
}
Book *query(int bookid)//查找圖書
{
for (int i=0;i<=top;i++)
if (book[i].getno()==bookid &&book[i].gettag()==0)
{
return &book[i];
}
return NULL;
}
void bookdata();//圖書庫維護
void disp()
{
for (int i=0;i<=top;i++)
if (book[i].gettag()==0)
book[i].disp();
}
~BDatabase()//析構函數,將book[]寫到book.txt文件中
{
fstream file("book.txt",ios::out);
for (int i=0;i<=top;i++)
if (book[i].gettag()==0)
file.write((char *)&book[i],sizeof(book[i]));
file.close();
}
};
void BDatabase::bookdata()
{
char choice;
char bname[40];
int bookid;
Book *b;
while (choice!='0')
{
cout <<"\n\n\n\t\t\t圖 書 維 護 "<<endl<<endl;
cout<<"\t\t1 新 增\n \t\t2 更 改\n\t\t3 刪 除\n\t\t4 查 找\n\t\t5 顯 示\n\t\t6 全 刪\n\t\t0 退 出"<<endl;
cin >> choice;
switch (choice)
{
case '1':
cout << "輸入圖書編號:"<<endl;
cin >> bookid;
cout << "輸入圖書書名:"<<endl;
cin >> bname;
addbook(bookid,bname);
break;
case '2':
cout << "輸入圖書編號:"<<endl;
cin >> bookid;
b=query(bookid);
if (b==NULL)
{
cout << " 該圖書不存在 "<<endl;
break;
}
cout << "輸入新的書名:"<<endl;
cin >> bname;
b->setname(bname);
break;
case '3':
cout <<" 讀入圖書編號:"<<endl;
cin >> bookid;
b=query(bookid);
if (b==NULL)
{
cout <<" 該圖書不存在" << endl;
break;
}
b->delbook();
break;
case '4':
cout << " 讀入圖書編號:"<<endl;
cin >> bookid;
b=query(bookid);
if (b==NULL)
{
cout <<" 該圖書不存在"<< endl;
break;
}
b->disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout<<"輸入錯誤,請從新輸入:";
}
}
}
//main() 函數的實現,程序的主界面的引導
void main()
{
char choice;
int bookid,readerid;
RDatabase ReaderDB;
Reader *r;
BDatabase BookDB;
Book *b;
while(choice!='0')
{
cout <<endl<<endl<<"\t\t\t 圖 書 管 理 系 統\n\n\n";
cout <<"\t\t\t1 借 書\n\n\t\t\t2 還 書 \n\n\t\t\t3 圖 書 維 護\n\n\t\t\t4 讀 者 維 護\n\n\t\t\t0 離 開"<<endl;
cin >> choice;
switch (choice)
{
case '1':
cout <<" 借書 讀者編號:";
cin >>readerid;
cout <<" 圖書編號: ";
cin >>bookid;
r=ReaderDB.query(readerid);//按編號查找
if (NULL==r)
{
cout <<" 不存在該讀者,不能借書"<< endl;
break;
}
b=BookDB.query(bookid);
if (b==NULL)
{
cout <<" 不存在該圖書,不能借書"<< endl;
break;
}
if (b->borrowbook()==0)
{
cout << " 該圖書已借出,不能借書"<< endl;
break;
}
r->borrowbook(b->getno());
break;
case '2':
cout<<"還書\n 讀者編號:";
cin >>readerid;
cout << " 圖書編號:";
cin >>bookid;
r=ReaderDB.query(readerid);
if (r==NULL)
{
cout <<" 不存在該讀者,不能還書" << endl;
break;
}
b=BookDB.query(bookid);
if (b==NULL)
{
cout <<" 不存在該圖書,不能還書" <<endl;
break;
}
b->retbook();
r->retbook(b->getno());
break;
case '3':
BookDB.bookdata();
break;
case '4':
ReaderDB.readerdata();
break;
default:cout<<"輸入錯誤,請從新輸入:";
}
}
}
『叄』 c語言圖書管理系統
我簡單給你說一下吧。
1、首先定義數據結構
圖書結構:圖書編號、圖書名稱、單價、作者、存在狀態
人員結構:人員編號(學生為學號,教師為工作編號)、姓名、性別等
借書結構:人員編號、圖書編號、借書時間、還書時間
2、由於是C系統,通常情況下,數據要存儲在文件中,因此,還需要定義文件結構:圖書、人員、借書信息。
為了數據處理速度,可將借書信息中已經還書的信息單獨放在還書信息中,借書信息中的數據只是已經借出還沒有歸還的數據。
3、系統功能定義,以及編碼。
由於系統太過龐大,你還是自己試著做一下吧,應該可以做好的。
學習本身就是做程序,如果有困難,可以上我們團隊提問題,隨時恭候!
祝學習進步!
『肆』 圖書信息管理系統設計c語言(急求!!!)
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
typedefstructrecord{
chartitle[64];
charauthor[24];
charisbn[24];
doubleprice;
intcopies;
structrecord*next;
}Node,*LinkList,*pNode;
LinkListInitList(){
LinkListhead=(pNode)malloc(sizeof(Node));
head->title[0]='