C语言大作业 图书管理.docx

上传人:b****5 文档编号:4515023 上传时间:2022-12-01 格式:DOCX 页数:15 大小:17.01KB
下载 相关 举报
C语言大作业 图书管理.docx_第1页
第1页 / 共15页
C语言大作业 图书管理.docx_第2页
第2页 / 共15页
C语言大作业 图书管理.docx_第3页
第3页 / 共15页
C语言大作业 图书管理.docx_第4页
第4页 / 共15页
C语言大作业 图书管理.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言大作业 图书管理.docx

《C语言大作业 图书管理.docx》由会员分享,可在线阅读,更多相关《C语言大作业 图书管理.docx(15页珍藏版)》请在冰豆网上搜索。

C语言大作业 图书管理.docx

C语言大作业图书管理

c语言图书管理系统

主要功能:

1.新进图书基本信息的输入。

2.显示全部记录

3.按图书名称查询图书基本信息。

4.根据图书名称对撤消的图书信息进行删除。

5.按图书名称从小到大排序。

6.统计某价格以上的图书数量。

7.列出所有未借出去的图书信息。

基本信息:

图书编号、图书名称、单价、作者、存在状态、借书人姓名、性别、学号等

#include

#include

#include

#include

typedefintBOOL;

typedefstructbookinfo

{

charnumber[15];/*产品编号*/

charname[30];/*产品名称*/

floatprice;/*单价*/

charauther[20];/*作者*/

BOOLisExit;/*存在状态*/

charlendername[20];/*借书人姓名*/

charlendersex[2];/*借书人性别*/

charlendernum[15];/*借书人学号*/

}BOOKINFO;

voidmenu()

{

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

printf("\t\t\t图书管理系统\n");

printf("\t\t\t1:

新进图书基本信息的输入\n");

printf("\t\t\t2:

显示全部记录\n");

printf("\t\t\t3:

根据图书名称查询图书基本信息\n");

printf("\t\t\t4:

根据图书名称对撤销的图书信息进行删除\n");

printf("\t\t\t5:

按照图书名称从小大到排序\n");

printf("\t\t\t6:

统计某价格以上的图书数量\n");

printf("\t\t\t7:

列出所有未借出去的图书信息\n");

printf("\t\t\t8:

退出\n");

}

voidchoice_1_input_new()/*输入新进的图书信息*/

{

charchoice;

FILE*p;

BOOKINFOnewbook;

system("cls");

while

(1)

{

printf("输入图书编号:

");

gets(newbook.number);

printf("输入图书名称:

");

gets(newbook.name);

printf("输入图书单价:

");

scanf("%f",&newbook.price);

while(getchar()!

='\n');

printf("输入图书的作者:

");

gets(newbook.auther);

printf("输入借书人姓名:

");

gets(newbook.lendername);

printf("输入借书人性别:

");

gets(newbook.lendersex);

printf("输入借书人学号:

");

gets(newbook.lendernum);

printf("是否保存该条书目?

(Y/N)\n");

choice=getch();

while(choice!

='Y'&&choice!

='y'&&choice!

='N'&&choice!

='n')

choice=getch();

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

{

newbook.isExit=1;/*将图书状态设置成1,表示没有借出*/

p=fopen("c:

\\bookinfo.data","ab");

fwrite(&newbook,sizeof(BOOKINFO),1,p);

fclose(p);

printf("\n该条书目已添加到c:

\\bookinfo.data文件中!

\n");

}

else

{

printf("\n本条书目未保存!

\n");

}

printf("\n是否继续添加书目?

(Y/N)\n");

choice=getch();

while(choice!

='Y'&&choice!

='y'&&choice!

='N'&&choice!

='n')

choice=getch();

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

continue;

else

break;

}

}

voidchoice_2_display_all()/*显示全部图书信息*/

{

FILE*p;

intn;

BOOKINFObookinfo[100];

intbooknumber=0;

system("cls");

p=fopen("c:

\\bookinfo.data","rb");

while(!

feof(p))

{

fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

/*booknumber--;使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

booknumber--;

if(booknumber==0)

{

printf("没有任何图书信息!

\n\n");

}

else

{

n=0;

printf("图书信息如下\n");

printf("图书信息|借书人信息\n");

printf("编号名称单价作者图书状态|姓名

性别学号\n");

while(n

{

printf("%-6s%-12s%-8.1f%-8s%-9d|%-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

n++;

}

}

printf("\n\n按任意键回到主菜单!

\n");

getch();

}

voidchoice_3_search_according_name()/*根据图书名称显示图书的信息*/{

charsearch[20]="";/*search用来存放要查询的书名*/

intn;

FILE*p;

charchoice;

BOOKINFObookinfo[100];

intbooknumber=0;

system("cls");

p=fopen("c:

\\bookinfo.data","rb");

while(!

feof(p))

{

fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

while

(1)

{

printf("输入要查询的书本名称:

");

gets(search);

if(booknumber==0)

{

printf("书库中没有任何信息!

\n\n");

printf("按任意键回到主菜单!

\n\n");

getch();

break;

}/*if结束*/

else

{

for(n=0;n

if(strcmp(bookinfo[n].name,search)==0)

{

printf("该书的详细信息如下:

\n");

printf("图书信息|

借书人信息\n");

printf("编号名称单价作者图书状态|姓名

性别学号\n");

printf("%-6s%-12s%-8.1f%-8s%-9d|%-12s%-8s%-8s\n",bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

break;

}

if(n>=booknumber)

printf("没有查找该书的任何信息!

\n");

printf("\n\n是否继续查询?

(Y/N)\n");

choice=getch();

while(choice!

='Y'&&choice!

='y'&&choice!

='N'&&choice!

='n')

choice=getch();

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

continue;

else

break;

}/*else结束*/

}/*while

(1)结束*/

}

voidchoice_4_delete_according_name()/*根据图书名称对图书信息进行删除*/{

charsearch[20]="";/*search用来存放要删除的书名*/

intn,i;

FILE*p;

charchoice;

BOOKINFObookinfo[100];

intbooknumber;

system("cls");

while

(1)

{

printf("输入要删除的书本名称:

");

gets(search);

p=fopen("c:

\\bookinfo.data","rb");

booknumber=0;

while(!

feof(p))

{

fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("书库中没有任何信息!

\n\n");

printf("按任意键回到主菜单!

\n\n");

getch();

break;

}/*if结束*/

else

{

for(n=0;n

if(strcmp(bookinfo[n].name,search)==0)

{

break;

}

if(n>=booknumber)

printf("没有查找该书的任何信息!

\n");

else

{

printf("是否确认需要删除该条书目?

(Y/N)");

choice=getch();

while(choice!

='Y'&&choice!

='y'&&choice!

='N'&&choice!

='n')

choice=getch();

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

{

for(i=n;i

bookinfo[i]=bookinfo[i+1];

booknumber--;

p=fopen("c:

\\bookinfo.data","wb");

for(n=0;n

fwrite(&bookinfo[n],sizeof(BOOKINFO),1,p);

fclose(p);

printf("删除成功!

\n");

}

else

printf("\n\n该条书目没有被删除!

");

}

printf("\n\n是否继续进行删除操作?

(Y/N)\n");

choice=getch();

while(choice!

='Y'&&choice!

='y'&&choice!

='N'&&choice!

='n')

choice=getch();

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

continue;

else

break;

}/*else结束*/

}/*while

(1)结束*/

}

voidchoice_5_sort_according_name()/*根据图书名称排序*/

{

FILE*p;

intm,n;

BOOKINFOtemp;

BOOKINFObookinfo[100];

intbooknumber;

p=fopen("c:

\\bookinfo.data","rb");

booknumber=0;

system("cls");

while(!

feof(p))

{

fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("没有任何图书信息!

\n\n");

}

else

{

for(m=0;m

for(n=m+1;n

if(strcmp(bookinfo[m].name,bookinfo[n].name)>0)

{

temp=bookinfo[m];

bookinfo[m]=bookinfo[n];

bookinfo[n]=temp;

}

p=fopen("c:

\\bookinfo.data","wb");

for(m=0;m

fwrite(&bookinfo[m],sizeof(BOOKINFO),1,p);

fclose(p);

printf("\n\n完成排序!

\n\n");

}

printf("按任意键回到主菜单!

\n");

getch();

}

voidchoice_6_display_high_price()/*根据价格列出图书信息*/{

floatprice;

FILE*p;

intn;

intcount=0;

BOOKINFObookinfo[100];

intbooknumber;

system("cls");

printf("请输入价格:

");

scanf("%f",&price);

p=fopen("c:

\\bookinfo.data","rb");

booknumber=0;

while(!

feof(p))

{

fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("没有任何图书信息!

\n\n");

}

else

{

for(n=0;n

{

if(bookinfo[n].price>=price)

count++;

}

if(count==0)

printf("书库中没有比%.1f$价格高的图书!

",price);

else

{

printf("价格高于%.1f$的图书信息如下\n",price);

printf("图书信息|借书人信息\n");

printf("编号名称单价作者图书状态|姓名

性别学号\n");

for(n=0;n

{

if(bookinfo[n].price>=price)

printf("%-6s%-12s%-8.1f%-8s%-9d|%-12s%-8s%-8s\n",bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

}

}

}

printf("\n\n按任意键回到主菜单!

\n");

getch();

}

voidchoice_7_display_according_exitflag()/*根据存在状态列出图书信息*/{

FILE*p;

intn;

intcount=0;

BOOKINFObookinfo[100];

intbooknumber;

system("cls");

booknumber=0;

p=fopen("c:

\\bookinfo.data","rb");

while(!

feof(p))

{

fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;

fclose(p);

if(booknumber==0)

{

printf("书库中没有任何书目存在!

\n");

}

else

{

for(n=0;n

if(bookinfo[n].isExit==1)

count++;

if(count==0)

printf("书库中的书籍全部借出!

\n");

else

{

printf("书库中未被借出的图书信息如下:

\n\n");

printf("图书信息|借书人信息\n");

printf("编号名称单价作者图书状态|姓名

性别学号\n");

for(n=0;n

if(bookinfo[n].isExit==1)

{

printf("%-6s%-12s%-8.1f%-8s%-9d|%-12s%-8s%-8s\n",bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

}

}

}

printf("\n按任意键返回主菜单!

\n");

getch();

}

voidmain()

{

charchoice;

clock_ttm;

FILE*p;

if((p=fopen("c:

\\bookinfo.data","rb"))==NULL)

{

p=fopen("c:

\\bookinfo.data","wb");

fclose(p);

}

while

(1)

{

system("cls");

menu();

choice=getch();

switch(choice)

{

case'1':

choice_1_input_new();break;/*输入新进的图书信息*/

case'2':

choice_2_display_all();break;/*显示全部图书信息*/

case'3':

choice_3_search_according_name();break;/*根据图书名称显示图书的信息*/

case'4':

choice_4_delete_according_name();break;/*根据图书名称对图书信息进行删除*/

case'5':

choice_5_sort_according_name();break;/*根据图书名称排序*/

case'6':

choice_6_display_high_price();break;/*根据价格列出图书信息*/

case'7':

choice_7_display_according_exitflag();break;/*根据存在状态列出图书信息*/

case'8':

printf("\n\n\t\t\t谢谢使用,再见!

\n\t\t\t按任意键退

出!

\n");getch();return;

default:

printf("\n\n\t\t\t请输入菜单中的数字!

(1~8)");

tm=clock();

while(clock()

break;

}

}

}

 

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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