C语言程序设计--图书管理系统

图书管理系统

本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、文件等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用文件存储结构实现对图书管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。

自定义问题

创建一个图书管理系统。假设图书管理系统中仅仅包含图书的书名和编号和作者等信息。程序的运行效果如图1.0所示,选择任意菜单后,实现相应功能

2系统设计

2.1总体设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述

编辑切换为居中

添加图片注释,不超过 140 字(可选)

2.2 详细设计

2.2.1数据结构设计

  1. 图书信息结构体

  2. struct describe

  3. {

  4. char book_name [10]; //书名

  5. int num ;//编号

  6. char author [10]; }book[N]//作者

2.2.2主控main()函数执行流程

图2.2 主控函数执行流程图

2.2.3 初始化图书模块:choice1()//初 始 化 图 书函数。 对图书进行输入和保存,

choice1()//初 始 化 图 书函数

{

int i,j,temp;//

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

printf("初始化图书的本书: ");

scanf("%d",&temp);

printf("--------书名 编号 作者 \n");

for(i=0;i<temp;i++)

{

printf("第%d本书:",i+1);

scanf("%s%d%s",book[i].book_name,&book[i].num,book[i].author);

for(j=0;j<i;j++)

{

again:

该函数对图书进行初始化录入保存,首先调用程序,首先输入要录入的图书的本书,如图

先输入要初始化的本数为1;接下来输入书的名字;编号;作者如图

输入完后,函数将结果保存到book.txt文件中.

2.2.4 /增 加 图 书模块,对图书馆购进新书时要对新书进行录入保存在图书管理系统。

choice2()//增 加 图 书函数

{

int i,m=0,y=1;

FILE *fp ;

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

if((fp=fopen("book.txt","rb"))==NULL)

{

printf("cannot open file\n");

exit(0) ;

}

while((fread(&book[m],sizeof(struct describe ),1,fp))!=0)

m++ ;

fclose(fp);

while(y)

{

again:

printf("书名 编号 作者\n");

scanf("%s%d%s",book[m].book_name,&book[m].num,book[m].author);

for(i=0;i<m;i++)

{

if((strcmp(book[i].book_name,book[m].book_name))==0||book[i].num==book[m].num)

{printf("添加图书失败!----你输入的数据违背了主键的唯一性!\n");

goto again;}

}

printf("是否继续(1继续or 0结束):");

getchar();

scanf("%d",&y);

m++;

}

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

{

printf("cannot open file\n");

exit(0) ;

}

for(i=0;i<m;i++)

{

if(fwrite(&book[i],sizeof(struct describe ),1,fp)!=1)//保存函数

printf("file write error\n");

}

fclose (fp);

}

该模块主要对图书馆新购买回来的书籍进行录入保存,输入数字2进入choice2()函数,依次输入书本的名字,编号,作者。函数要求输入1和0,以判断是否继续输入图书信息;如图

如果继续输入就输入1或者结束就输入0。

2.2.5修改图书模块:该模块对输入有错误的图书的信息进行修改。在主菜单中输入数字3,进入choice2()函数,

choice3()//修 改 图 书函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值