图书借阅管理系统(C++)数据结构课程设计
时间:2025-04-20
时间:2025-04-20
图书借阅管理系统(C++)数据结构课程设计
//姓名:吴华帅
//班级:信管092
//学号:3090703211、
/*图书借阅管理系统:
要求:为一个图书馆设计一个简单的借阅管理选题,主要分为两大功能:
图书管理(增加图书、查询图书、删除图书、图书借阅、还书);
会员管理(增加会员、查询会员、删除会员、借书信息);*/
#include "stdio.h"
#include "iostream.h"
#include "stdafx.h"
#include "malloc.h"
#include "stdlib.h"
#include <conio.h>
#include <string>
/*************************************结构体部分************************************/
/************图书信息结构体*************/
typedef struct elem
{
char bookid[5];
char bookname[20];
char bookauthor[50];
char bookmark[2];
char memberid[4];
}elemtype;
/************图书链表结点结构体*************/
typedef struct node
{
elemtype data;
struct node *next;
}lnode,*linknode;
/************会员信息结构体*************/
typedef struct memberelem
{
char memberid[4];
char membername[10];
}memberelemtype;
/************会员链表结点结构体*************/
typedef struct membernode
{
memberelemtype data;
struct membernode *next;
}mlnode,*mlinknode;
/*************************************创建函数部分************************************/
//^^^^^^^^^^^^^^^^^创建与销毁部分^^^^^^^^^^^^^^^^^^^^^^^^^^//
/************创建空图书链表*************/
linknode Init_lnode()
{
linknode head;
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;
}
return head;
}
/************销毁图书链表*************/
void Destroy_lnode(linknode *head)
{
linknode p,q;
if (!(*head))
return;
p=*head;
while(!p)
{
q=p;
p=p->next;
free(q);
}
*head=NULL;
}
/************创建空会员链表*************/
mlinknode Init_mlnode()
{
mlinknode mhead;
mhead=(mlinknode)malloc(sizeof(mlnode));
if(mhead)
{
mhead->next=NULL;
mhead->data.memberid[4]=NULL;
mhead->data.membername[10]=NULL;
}
return mhead;
}
/************销毁会员链表*************/
void Destroy_mlnode(mlinknode *mhead)
{
mlinknode p,q;
p=*mhead;
if (!(*mhead))
return;
while(p)
{
q=p;
p=p->next;
free(q);
}
*mhead=NULL;
}
//^^^^^^^^^^^^^^^^^图书管理函数^^^^^^^^^^^^^^^^^^^^^^^^^^//
/************增加图书模块*************/
void addbook(linknode head)
{
linknode p;
p=(linknode)malloc(sizeof(lnode));
system("cls");
printf("Add books....\n");
printf("please input bookinfo:\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);
图书借阅管理系统(C++)数据结构课程设计
cin>>p->data.bookid;
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\nAdd success!\n");
printf("\nPress anykey retrun...");
getchar();
getchar();
}
/************输出图书信息函数*************/
void printbookinfo(linknode head)
{
linknode p;
p=Init_lnode();
p=head->next;
system("cls");
printf("The book informations are:\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<<"****************************************************************"<<endl;
while(p)
{
cout<<p->data.bookid<<" \t";
cout<<p->data.bookname<<" \t \t";
cout<<p->data.bookauthor<<" \t \t";
cout<<p->data.bookmark<<" \t";
cout<<p->data.memberid<<endl;
p=p->next;
}
getchar();
}
/************按编号查询图书*************/
void select(linknode head)
{
char id[5];
linknode p;
system("cls");
p=head->next;
printf("select book by id.....\n\n");
printf("Please input book id:\n");
cin>>id;
while(p)
{
if(strcmp(p->data.bookid,id)==0) break;
else p=p->next;
}
if(p==NULL)
printf("\nThe book not exit!\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","i …… 此处隐藏:10205字,全部文档内容请下载后查看。喜欢就下载吧 ……