图书管理系统程序代码.docx

上传人:b****6 文档编号:7572660 上传时间:2023-01-25 格式:DOCX 页数:53 大小:25.38KB
下载 相关 举报
图书管理系统程序代码.docx_第1页
第1页 / 共53页
图书管理系统程序代码.docx_第2页
第2页 / 共53页
图书管理系统程序代码.docx_第3页
第3页 / 共53页
图书管理系统程序代码.docx_第4页
第4页 / 共53页
图书管理系统程序代码.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

图书管理系统程序代码.docx

《图书管理系统程序代码.docx》由会员分享,可在线阅读,更多相关《图书管理系统程序代码.docx(53页珍藏版)》请在冰豆网上搜索。

图书管理系统程序代码.docx

图书管理系统程序代码

#include

#include

#include

#defineSIZE(structbooklist*)malloc(sizeof(structbooklist))

//建立已借阅图书信息结构体

structborrow

{

charborbook_num[10];

charborbook_name[22];

charreturn_time[15];

charstu_num[15];

charstu_name[15];

structborrow*next;

};

//建立预借图书信息结构体

structprebor_stu

{

charprebook_num[10];

charprestu_num[15];

structprebor_stu*next;

};

//建立图书结构体

structbooklist{

charnum[10];

charname[22];

charzuozhe[15];

charleibie[10];

charpub_time[10];

charprice[10];

charcondition[10];

structbooklist*next;

};

structbooklist*create(void);/*创建图书信息链表*/

structborrow*borrow_creat(structbooklist*head);//创建已借阅图书信息链表

intpre_creat(structbooklist*head);//学生登录系统预借图书并将信息存入文件prebor_stulist.txt

structprebor_stu*prebor_creat(void);//创建预借阅图书信息链表

voidprintf1_(structbooklist*);//输出单个基本图书的数据

voidstore(structbooklist*head);/*保存链表中的图书信息到文件booklist.txt*/

voidprintfb1_(structborrow*);//输出单个借出图书的部分数据

voidprintfb_(structborrow*p);//输出单个借出图书的数据

voidprintfp1_(structprebor_stu*);//输出单个被预借出图书的部分数据

voidprintfp_(structprebor_stu*);//输出单个被预借出图书的数据

voidprintf_(structbooklist*,structborrow*,structprebor_stu*);/*2---输出链表中的图书信息*/

structbooklist*load(void);//5---从文件读入图书信息

structbooklist*num_paixu(structbooklist*);//4---按编号排序

structbooklist*price_paixu(structbooklist*);//3---按价格顺序排序

intkcnum(structbooklist*head);//6---统计库存数

voidchaxun1_(structbooklist*,structborrow*,structprebor_stu*);//7---查询图书的编号图书的信息,并输出

voidchaxun2_(structbooklist*,structprebor_stu*,structborrow*);//7---按作者查询信息并输出

voidchaxun3_(structbooklist*,structprebor_stu*,structborrow*);//7---查询某类别图书信息并自动输出

voidchaxun4_(structborrow*,prebor_stu*,structbooklist*);//7---按学号查询借阅信息

structbooklist*shanchu(structbooklist*,structborrow*,structprebor_stu*);//9---删除数据

structborrow*shanchu2_(structborrow*,structborrow*);//删除一个structborrow结构体的数据

structprebor_stu*shanchu3_(structprebor_stu*,structprebor_stu*);//删除一个structprebor_stu结构体的数据

voidxiugai(structbooklist*,structborrow*,structprebor_stu*);//10---修改数据

voidborstore(structborrow*borrow_head);//保存已借阅图书信息到文件borrowlist.txt

//重新保存修改后的预借阅信息到文件prebor_stulist.txt(全部覆盖)

voidprestore(structprebor_stu*pre_head);

structborrow*borload(void);//从文件提取信息创建已借阅图书源信息链表

structbooklist*charu(structbooklist*head,structborrow*borrow_head);//8---将图书的数据到顺序排放的链表中,且插入后也是顺序排放的

structbooklist*scanf1_(void);//输入单个图书源数据

voidexchange(structbooklist*,structbooklist*);//交换两个结构体内的内容

structborrow*tianjia1_(structborrow*borrow_head,structbooklist*p);//添加一个structborrow结构体的数据

intmain(void){

intn,n1,x,k=0,flag,flag1,x1;

charch;

structbooklist*head=NULL;//图书信息链表头指针

structborrow*borrow_head=NULL;//已借阅图书信息链表头指针

structprebor_stu*pre_head=NULL;//预借图书信息链表头指针

flag1=0;x=x1=1;

while(x)

{

system("cls");

printf("***************************************************************************\n");

printf("*>>>>>>>>>>>>>欢迎使用君宁图书管理系统<<<<<<<<<<<<<<<*\n");

printf("*0---退出系统5---从文件录入数据*\n");

printf("*1---录入数据6---统计库存数*\n");

printf("*2---输出信息10---修改数据7---查询功能*\n");

printf("*3---按价格排序8---增加数据*\n");

printf("*4---按编号排序9---删除数据*\n");

printf("***************************************************************************\n");

printf("请选择功能:

");

scanf("%d",&n);

getchar();

switch(n)

{

case0:

//0---退出系统

{

x=0;

printf("*******谢谢使用君宁图书管理系统!

******\n");

printf("******欢迎下次使用!

******\n");

break;

}

case1:

//1---录入数据

{

while(x1)

{

system("cls");

printf("*******欢迎使用君宁图书信息录入系统*******\n");

printf("***0---放弃录入****\n");

printf("**1---录入图书源信息**\n");

printf("*2---录入借出图书信息*\n");

printf("**3---录入预借图书信息**\n");

printf("********祝您使用愉快********\n");

printf("请选择功能:

");

scanf("%d",&n1);

getchar();

switch(n1)

{

case0:

{

x1=0;

break;

}

case1:

{

head=create();/*创建图书信息链表*/

printf("是否将源图书信息保存到文件booklist.txt!

...(Y/N):

");

ch=getchar();

if(ch=='y'||ch=='Y')

store(head);

getchar();

break;

}

case2:

{

if(head==NULL)

{

printf("请先录入图书源信息!

\n");

getchar();

break;

}

else

{

borrow_head=borrow_creat(head);//创建已借阅图书信息链表

printf("是否将源图书信息保存到文件borrowlist.txt!

...(Y/N):

");

ch=getchar();

if(ch=='y'||ch=='Y')

borstore(borrow_head);

getchar();

break;

}

}

case3:

{

if(head==NULL)

{

printf("请先录入图书源信息!

\n");

getchar();

break;

}

else

{

flag=pre_creat(head);

if(flag==1)

printf("没有录入预借图书信息!

\n\n");

if(flag==2)

pre_head=prebor_creat();//创建预借阅图书信息链表

getchar();

break;

}

}

default:

{

printf("输入错误指示!

\n\n");

break;

}

}

}

}

case2:

//2---输出信息

{

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else

{

printf_(head,borrow_head,pre_head);

break;

}

}

case3:

//3---按价格排序

{

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else

{

head=price_paixu(head);

printf("是否将排序后的源图书信息保存到文件booklist.txt!

...(Y/N):

");

ch=getchar();

if(ch=='y'||ch=='Y')

store(head);

getchar();

break;

}

}

case4:

//4---按编号排序

{

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else{

head=num_paixu(head);

printf("是否将排序后的源图书信息保存到文件booklist.txt!

...(Y/N):

");

ch=getchar();

if(ch=='y'||ch=='Y')

store(head);

getchar();

break;

}

}

case5:

//11---从文件读取数据

{

head=load();

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else

{

borrow_head=borload();//从文件提取信息创建已借阅图书源信息链表

pre_head=prebor_creat();//创建预借阅图书信息链表

getchar();

break;

}

}

case6:

//6---统计库存数

{

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else

{

k=kcnum(head);

printf("总共有%3d本图书!

\n\n",k);

getchar();

break;

}

}

case7:

//7---查询信息

{

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else

{

while(x1)

{

system("cls");

printf("*******欢迎使用君宁图书信息查询系统*******\n");

printf("******0---退出查询******\n");

printf("*****1---按编号*****\n");

printf("****2---按作者****\n");

printf("*****3---按类别*****\n");

printf("******4---按学号******\n");

printf("********祝您使用愉快********\n");

printf("******************\n");

printf("********************\n");

printf("请选择功能:

");

scanf("%d",&n1);

getchar();

switch(n1)

{

case0:

{

x1=0;

break;

}

case1:

{

chaxun1_(head,borrow_head,pre_head);

getchar();

break;

}

case2:

{

chaxun2_(head,pre_head,borrow_head);

getchar();

break;

}

case3:

{

chaxun3_(head,pre_head,borrow_head);

getchar();

break;

}

case4:

{

chaxun4_(borrow_head,pre_head,head);

getchar();

break;

}

default:

{

printf("输入指示有误!

\n\n");

break;

}

}

}

}

x1=1;

break;

}

case8:

{

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else

{

head=charu(head,borrow_head);

printf("是否将源图书信息保存到文件booklist.txt!

...(Y/N):

");

ch=getchar();

if(ch=='y'||ch=='Y')

store(head);

getchar();

break;

}

}

case9:

//9---删除数据

{

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else

{

head=shanchu(head,borrow_head,pre_head);

borrow_head=borload();

pre_head=prebor_creat();

break;

}

}

case10:

//10---修改数据

{

if(head==NULL)

{

printf("请先录入图书信息!

\n");

getchar();

break;

}

else

{

xiugai(head,borrow_head,pre_head);

borrow_head=borload();

getchar();

break;

}

}

default:

{

printf("输入错误指示,请重新输入!

");

getchar();

break;

}

}

}

return0;

}

/*创建图书源信息信息链表*/

structbooklist*create(void)

{

structbooklist*head,*tail,*p;

charnum[10],name[22],zuozhe[15],leibie[10],pub_time[10],price[10],condition[10];

head=tail=p=NULL;

printf("当输入图书编号为0时结束信息输入\n");

printf("请输入图书编号:

");

gets(num);

while(strcmp(num,"0")!

=0)

{

p=SIZE;

printf("请输入书名:

");

gets(name);

printf("请输入作者:

");

gets(zuozhe);

printf("请输入类别:

");

gets(leibie);

printf("请输入出版时间:

");

gets(pub_time);

printf("请输入价格:

");

gets(price);

printf("请输入借阅情况:

");

gets(condition);

printf("\n");

strcpy(p->num,num);

strcpy(p->name,name);

strcpy(p->zuozhe,zuozhe);

strcpy(p->leibie,leibie);

strcpy(p->pub_time,pub_time);

strcpy(p->price,price);

strcpy(p->condition,condition);

p->next=NULL;

if(head==NULL)

head=p;

else

tail->next=p;

tail=p;

printf("请输入图书编号:

");

gets(num);

}

printf("图书源信息已建立链条!

\n");

returnhead;

}

//创建已借阅图书源信息链表

structborrow*borrow_creat(structbooklist*head)

{

structbooklist*p;

st

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1