c语言最全的图书管理系统程序.docx

上传人:b****5 文档编号:6361331 上传时间:2023-01-05 格式:DOCX 页数:14 大小:54.13KB
下载 相关 举报
c语言最全的图书管理系统程序.docx_第1页
第1页 / 共14页
c语言最全的图书管理系统程序.docx_第2页
第2页 / 共14页
c语言最全的图书管理系统程序.docx_第3页
第3页 / 共14页
c语言最全的图书管理系统程序.docx_第4页
第4页 / 共14页
c语言最全的图书管理系统程序.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

c语言最全的图书管理系统程序.docx

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

c语言最全的图书管理系统程序.docx

c语言最全的图书管理系统程序

题目名称:

图书管理系统

算法分析:

1用结构体标出信息系统的成员:

图书书号,书名,作者姓名,出版社,价格

2利用c语言的文件知识将系统的信息存放在c盘下的“projectchoose.txt”的文件夹下

3定义各个子函数

(1)定义输入信息函数,将图书信息按一定格式用scanf函数输入(统计M本的信息);

(2)定义输出函数,每3个表一页直到最后一个;

(3)定义信息查询函数。

a,定义按书号查询函数,如果输入的数字等于图书编号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个作者姓名字符串则输出信息;c,定义按出版社名称查找函数,如果输入的字符串等于其中出版社名称,则输出该信息;e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abc四个函数。

(4)定义删除信息函数。

输入的数字作为要删除的图书编号,输出要删除的图书信息后选择是否删除,删除后将第g+1个的信息赋给第g个,输出删除后的信息表。

(5)定义信息修改函数。

输入的数字等于要修改的图书编号,输出要修改的图书信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出图书信息。

(6)定义信息统计函数。

输入一个字符串作为出版社,比较M本书的出版社字符串是否等于输入的字符串,统计相等的个数n输出。

(7)定义图书编号排序函数。

用冒泡排序法将M本的书的图书编号按从大到小的顺序排列后输出。

4定义主函数。

调用读取文件函数,输入数字1-5分别对应调用

修改图书信息函数,删除图书信息函数,查找图书信息函数,统计图书信息函数,图书排行信息函数,0表示退出系统。

最后调用保存文件函数。

结束程序。

 

流程设计:

 

 

代码设计:

#include

#include

#include

#defineM2

#definePAGE3

/*图书结构体类型*/

typedefstruct

{intnum;/*图书号*/

charname[20];/*书名*/

charzuozhe[20];/*作者姓名*/

charchubanshe[20];/*出版社*/

intprice;/*价格*/

}BOOKS;

intread_file(BOOKSbooks[])

{FILE*fp;

inti=0;

if((fp=fopen("projectchoose.txt","rt"))==NULL)

{printf("\n\n*****库存文件不存在!

请创建");

return0;

}

while(feof(fp)!

=1)

{fread(&books[i],sizeof(BOOKS),1,fp);

if(books[i].num==0)

break;

else

i++;

}

fclose(fp);

returni;

}

voidsave_file(BOOKSbooks[],intsum)

{FILE*fp;

inti;

if((fp=fopen("projectchoose.txt","wb"))==NULL)

{printf("读文件错误!

\n");

return;

}

for(i=0;i

if(fwrite(&books[i],sizeof(BOOKS),1,fp)!

=1)

printf("写文件错误!

\n");

fclose(fp);

}

/*输入模块*/

intinput(BOOKSbooks[])

{inti=0;

printf("\n\n录入图书信息(最多%d种)\n",M);

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

do

{printf("\n第%d本图书",i+1);

printf("\n图书编号:

");

scanf("%d",&books[i].num);if(books[i].num==0)break;

printf("\n图书名称:

");

scanf("%s",books[i].name);

printf("\n作者:

");

scanf("%s",books[i].zuozhe);

printf("\n出版社:

");

scanf("%s",&books[i].chubanshe);

printf("\n图书价格:

");

scanf("%d",&books[i].price);

i++;

}while(i

printf("\n--%d种图书信息输入完毕!

--\n",i);

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

");

getchar();

returni;

}

/*输出模块*/

voidoutput(BOOKSbooks[])

{inti=0,j=0,page=1;

printf("\n\n--图书信息表--第%d页\n\n",page);

printf("图书编号----图书名称-----作者-----出版社-----图书价格\n");

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

do

{if(books[i].num!

=0)

{j++;

if(j%PAGE!

=0)

{printf("%4d%10s%10s%10s%8d\n",books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

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

}

else

{printf("按任意键继续!

");

getchar();

printf("\n\n--图书信息表--第%d页\n\n",++page);

printf("图书编号--图书名称--作者--出版社--图书价格\n");

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

printf("%4d%10s%10s%10s%8d\n",books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

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

}

}

i++;

}while(books[i].num!

=0);

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

");

getchar();

}

/*给定编号,作者,出版社查找信息模块*/

voidfind_by_num(BOOKSbooks[],intsum)

{inti,find_num;

printf("\n请输入要查找的图书编号:

");

scanf("%d",&find_num);

for(i=0;i

if(books[i].num==find_num)

{

printf("这是您所查找到的图书:

\n");

printf("图书编号----图书名称----作者----出版社---图书价格\n");

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

printf("%4d%10s%10s%10s%8d\n",books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

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

break;

}

else

{

printf("\n未找到要查找的图书信息,按任意键返回!

");

getchar();

}

}

voidfind_by_zuozhe(BOOKSbooks[],intsum)

{

inti;

charfind_zuozhe[20];

printf("\n请输入要查找的作者姓名:

");

scanf("%s",find_zuozhe);

for(i=0;i

if(strcmp(books[i].zuozhe,find_zuozhe)==0)

{printf("这是您所查找到属于该作者的图书:

");

printf("图书编号--图书名称--作者--出版社--图书价格\n");

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

printf("%8d%10s%10s%10s%8d\n",books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

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

}

else

{printf("\n未找到要查找的图书信息,按任意键返回!

");

}

}

voidfind_by_chubanshe(BOOKSbooks[],intsum)

{

inti;

charfind_chubanshe[20];

printf("\n请输入要查找的出版社名称:

");

scanf("%s",find_chubanshe);

for(i=0;i

if(strcmp(books[i].chubanshe,find_chubanshe)==0)

{printf("这是您所查找到属于该出版社的图书:

");

printf("图书编号--图书名称--作者--出版社--图书价格\n");

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

printf("%8d%10s%10s%10s%8d\n",books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

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

}

else

{printf("\n未找到要查找的图书信息,按任意键返回!

");

getchar();

}

}

voidfind(BOOKSbooks[],intsum)

{intchoice;

printf("\n您要按照哪种方式查找?

\n");

printf("\n1.按图书编号查找\n");

printf("\n2.按图书作者查找\n");

printf("\n3.按出版社查找\n");

printf("\n0.退出\n");

printf("\n请选择(0-3):

\n");

scanf("%d",&choice);

switch(choice)

{case1:

find_by_num(books,sum);break;

case2:

find_by_zuozhe(books,sum);break;

case3:

find_by_chubanshe(books,sum);break;

case0:

break;

}

}

/*删除信息模块*/

voiddel(BOOKSbooks[])

{inti,sum;

intdel_num;

printf("\n请输入要删除的图书编号:

");

scanf("%d",&del_num);

for(i=0;i

if(books[i].num==del_num)

{

printf("这是您所要删除图书信息:

\n");

printf("图书编号----图书名称----作者----出版社----图书价格\n");

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

printf("%8d%10s%10s%10s%8d\n",books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

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

printf("您确认要删除吗?

");

printf("按任意键继续!

");

getchar();

printf("已成功删除图书信息!

");

}

}

/*信息修改模块*/

voidmodify(BOOKSbooks[],intsum)

{inti=0,choice,modify_num,flag;

do

{

printf("请输入要修改的图书编号:

");

scanf("%d",&modify_num);

for(i=0;i

if(books[i].num==modify_num)

{printf("\n\n--图书信息--\n\n");

printf("图书编号----图书名称----作者----出版社----图书价格\n");

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

printf("%8d%10s%10s%10s%8d\n",books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

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

printf("\n您要修改哪一项?

\n");

printf("\n1.图书名称\n");

printf("\n2.作者\n");

printf("\n3.出版社\n");

printf("\n4.图书价格\n");

printf("\n请选择(1-4):

\n");

scanf("%d",&choice);

switch(choice)

{case1:

printf("\n请输入修改后的图书名称:

");

scanf("%s",books[i].name);break;

case2:

printf("\n请输入修改后的作者姓名:

");

scanf("%s",books[i].zuozhe);break;

case3:

printf("\n请输入修改后的出版社名称:

");

scanf("%s",books[i].chubanshe);break;

case4:

printf("\n请输入修改后的图书价格:

");

scanf("%d",&books[i].price);break;

}

printf("\n\n--图书信息--\n\n");

printf("图书编号----图书名称----作者----出版社----图书价格\n");

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

printf("%8d%10s%10s%10s%8d\n",books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

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

break;

}

else

{printf("\n该书不存在!

");

getchar();

}

printf("\n修改成功!

\n");

printf("您要继续修改吗?

(Y/N)");

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

{flag=1;

printf("\n继续!

\n");

}

elseflag=0;

}while(flag==1);

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

");

getchar();

}

/*图书信息统计模块*/

voidcount(BOOKSbooks[],intsum)/*统计某个出版社的图书数*/

{inti;

charcount_chubanshe[20];

intn=0;

printf("请输入一个出版社名称:

\n");

scanf("%s",count_chubanshe);

for(i=0;i

{

if(strcmp(books[i].chubanshe,count_chubanshe)==0)

n++;

break;

}

printf("统计出属于该出版社一共有%d本书\n",n);

}

/*排序模块*/

voidsort(BOOKSbooks[],intsum)/*按图书编号排序模块*/

{BOOKSt;

inti,j;

printf("\n--图书信息--\n");

printf("\n排名图书编号图书名称作者出版社图书价格\n");

for(i=1;i

for(j=i+1;j

if(books[j].num>books[i].num)

{t=books[j];

books[j]=books[i];

books[i]=t;

}

for(i=0;i

{printf("%2d%8d%12s%12s%12s%6d\n",i+1,books[i].num,books[i].name,

books[i].zuozhe,books[i].chubanshe,books[i].price);

}

}

voidmain()

{BOOKSbooks[M];

intchoice,sum;

sum=read_file(books);

if(sum==0)

{printf("请录入基本图书信息!

*******\n");

sum=input(books);

}

do

{

printf("\n\n\n*******图书馆理系统*******\n\n");

printf("1.修改图书信息\n\n");

printf("2.删除图书信息\n\n");

printf("3.查找图书信息\n\n");

printf("4.统计图书信息\n\n");

printf("5.图书排行信息\n\n");

printf("0.退出系统\n\n");

printf("请选择\n\n");

scanf("%d",&choice);

switch(choice)

{case1:

modify(books,sum);break;

case2:

del(books);break;

case3:

find(books,sum);break;

case4:

count(books,sum);break;

case5:

sort(books,sum);break;

case0:

break;

}

}while(choice!

=0);

save_file(books,sum);

}

运行结果:

 

友情提示:

范文可能无法思考和涵盖全面,供参考!

最好找专业人士起草或审核后使用,感谢您的下载!

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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