图书借阅管理系统C++数据结构课程设计.docx
- 文档编号:1404705
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:20
- 大小:18.49KB
图书借阅管理系统C++数据结构课程设计.docx
《图书借阅管理系统C++数据结构课程设计.docx》由会员分享,可在线阅读,更多相关《图书借阅管理系统C++数据结构课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
图书借阅管理系统C++数据结构课程设计
//姓名:
//班级:
//学号:
、
/*图书借阅管理系统:
要求:
为一个图书馆设计一个简单的借阅管理选题,主要分为两大功能:
图书管理(增加图书、查询图书、删除图书、图书借阅、还书);
会员管理(增加会员、查询会员、删除会员、借书信息);*/
#include"stdio.h"
#include"iostream.h"
#include"stdafx.h"
#include"malloc.h"
#include"stdlib.h"
#include
#include
/*************************************结构体部分************************************/
/************图书信息结构体*************/
typedefstructelem
{
charbookid[5];
charbookname[20];
charbookauthor[50];
charbookmark[2];
charmemberid[4];
}elemtype;
/************图书链表结点结构体*************/
typedefstructnode
{
elemtypedata;
structnode*next;
}lnode,*linknode;
/************会员信息结构体*************/
typedefstructmemberelem
{
charmemberid[4];
charmembername[10];
}memberelemtype;
/************会员链表结点结构体*************/
typedefstructmembernode
{
memberelemtypedata;
structmembernode*next;
}mlnode,*mlinknode;
/*************************************创建函数部分************************************/
//^^^^^^^^^^^^^^^^^创建与销毁部分^^^^^^^^^^^^^^^^^^^^^^^^^^//
/************创建空图书链表*************/
linknodeInit_lnode()
{
linknodehead;
head=(linknode)malloc(sizeof(lnode));
if(head)
{
head->next=NULL;
head->data.bookauthor[50]=NULL;
head->data.bookid[5]=NULL;
head->data.bookmark[2]=NULL;
head->data.bookname[20]=NULL;
head->data.memberid[4]=NULL;
}
returnhead;
}
/************销毁图书链表*************/
voidDestroy_lnode(linknode*head)
{
linknodep,q;
if(!
(*head))
return;
p=*head;
while(!
p)
{
q=p;
p=p->next;
free(q);
}
*head=NULL;
}
/************创建空会员链表*************/
mlinknodeInit_mlnode()
{
mlinknodemhead;
mhead=(mlinknode)malloc(sizeof(mlnode));
if(mhead)
{
mhead->next=NULL;
mhead->data.memberid[4]=NULL;
mhead->data.membername[10]=NULL;
}
returnmhead;
}
/************销毁会员链表*************/
voidDestroy_mlnode(mlinknode*mhead)
{
mlinknodep,q;
p=*mhead;
if(!
(*mhead))
return;
while(p)
{
q=p;
p=p->next;
free(q);
}
*mhead=NULL;
}
//^^^^^^^^^^^^^^^^^图书管理函数^^^^^^^^^^^^^^^^^^^^^^^^^^//
/************增加图书模块*************/
voidaddbook(linknodehead)
{
linknodep;
p=(linknode)malloc(sizeof(lnode));
system("cls");
printf("Addbooks....\n");
printf("pleaseinputbookinfo:
\n\n");
printf("%-7s%-20s%-15s\n","id(4)","bookname","bookauthor");
printf("****************************************************************\n");
//scanf("%s%s%s",p->data.bookid,p->data.bookname,p->data.bookauthor);
cin>>p->data.bookname;
cin>>p->data.bookauthor;
p->data.bookmark[0]='N';
p->data.bookmark[1]='\0';
p->data.memberid[0]='0';
p->data.memberid[1]='\0';
p->next=head->next;
head->next=p;
printf("\n\nAddsuccess!
\n");
printf("\nPressanykeyretrun...");
getchar();
getchar();
}
/************输出图书信息函数*************/
voidprintbookinfo(linknodehead)
{
linknodep;
p=Init_lnode();
p=head->next;
system("cls");
printf("Thebookinformationsare:
\n\n");
cout<<"id\tbookname\tbookauthor\ttmark\tborower\t\n";
//printf("\t\n","\t\t\n","\t\t\n","\t\n""\t\n","id","bookname","bookauthor","mark","borower");
cout<<"****************************************************************"< while(p) { cout< cout< cout< cout< cout< p=p->next; } getchar(); } /************按编号查询图书*************/ voidselect(linknodehead) { charid[5]; linknodep; system("cls"); p=head->next; printf("selectbookbyid.....\n\n"); printf("Pleaseinputbookid: \n"); cin>>id; while(p) { if(strcmp(p->data.bookid,id)==0)break; elsep=p->next; } if(p==NULL) printf("\nThebooknotexit! \n"); else { //printf("\t\n","\t\t\n","\t\t\n","\t\n""\t\n","id","bookname","bookauthor","mark","borower"); cout<<"id\tbookname\tbookauthor\ttmark\tborower\t\n"; //printf("\t\n","\t\t\n","\t\t\n","\t\n""\t\n","id","bookname","bookauthor","mark","borower"); cout<<"****************************************************************"< printf("\n%-7s%-20s%-15s%-3s%s\n",p->data.bookid,p->data.bookname,p->data.bookauthor,p->data.bookmark,p->data.memberid); } printf("\nPressanykeyretrun..."); getchar(); } /************按编号删除图书*************/ voiddeletebook(linknodehead) { charid[5]; linknodep,q; system("cls"); p=head->next;q=head; printf("deletebookbyid....\n\n"); printf("Pleaseinputbookid: \n"); scanf("%s",id); while(p! =NULL) { if(strcmp(p->data.bookid,id)==0)break; else { q=p;p=p->next; } } if(p==NULL)printf("\nThebookyouwanttodeletearenotexit! \n"); else { q->next=p->next; free(p); printf("\nDeletesuccess! \n"); } printf("\nPressanykeyretrun..."); getchar(); getchar(); } /****************借阅图书*****************/ voidborrow(linknodehead,mlinkn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 借阅 管理 系统 C+ 数据结构 课程设计