C语言课程设计报告图书管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

..

C语言课程设计报告

院系:

学号:

班号:

姓名:

标题:图书管理系统

目录

第一部分

题目要求 (3)

第二部分

需求分析 (3)

第三部分

总体设计 (4)

第四部分

详细设计 (4)

1)主函数 (4)

2)各功能模块设计 (6)

3)公共函数 (16)

第五部分

上机操作 (17)

第六部分

总结 (20)

附录

(源代码) (22)

第一部分题目要求

图书管理系统包括:图书名称、图书编号、单价、作者、存在状态、借书人、性别、学号等,是设计一图书管理系统,使之能够提供以下功能:

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

2. 图书基本信息的查询。

3. 对撤销图示基本信息的删除。

4. 办理借书手续。

5. 办理换书手续。

第二部分需求分析

根据题目的要求,需要建立一个文件来保存图书信息,每本书的信息用一个结构体来保存,结构体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书人、性别、学号,结构体中的存在状态可设为整型,用不同数字代表借还状态;在借书和还书手续中,要注意结构体的成员变量存在状态的值,使用指针会比较方便。

程序中需要对图书信息实现输入、查询、删除、借书和还书的功能,首先要使用菜单进行各项功能的选择;其次需要有文件的输入、输出功能,提供显示、查找等操作。在程序的运行过程中,注意各功

能在使用完毕后返回菜单的设置,以方便运行。

第三部分总体设计

根据上面的需求分析,可以将整个图书管理系统分为输入模块、查找模块、删除模块、借书模块和还书模块(如图3-1所示)。

图3-1 系统功能模块图

第四部分详细设计

在这个程序里,每本书的信息用一个结构体book来保存,结构

体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书

人、性别、学号,结构体中的存在状态设为整型,用不同数字代表库

中高本书的数量。

struct book

{ char title[30];

int number;

char author[30];

float price;

int store;

char borrower_name[20];

char borrower_gender[5];

int borrower_number;

}s[N];

其中的N定义为该系统所管理书籍的最大值。

#define N 100 //书籍的最多本数

4.2 主函数

【说明】

主函数中,对“菜单”进行了输出,将各个模块的函数列出来,实现对各种功能的选择。其流程图如图4.1-1所示。

图4.1-1 主函数流程图

【程序】

void main()

{ int x;

do

{printf("**************************************菜单**************************************\n"

" *********** 1.输入图书信息 ********** \n"

" *********** 2.查找图书信息 ********** \n"

" *********** 3.删除图书信息 **********

\n"

" *********** 4.借阅图书 ********** \n"

" *********** 5.归还图书 ********** \n"

" *********** 0.退出 ********** \n");

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

printf("请在0-5中选择,以回车键结束\n");

scanf("%d",&x);

switch(x)

{ case 1: input(&s[0]);break;//输入新图书信息模块

case 2: search(&s[0]);break;//查找模块

case 3: del(&s[0]);break;//删除模块

case 4: borrow(&s[0]);break;//借书模块

case 5: retur(&s[0]);break;//还书模块

case 0: break;//退出

}

}while(x!=0);

}

4.2 各功能模块设计

(1)输入模块

【分析】

在输入模块中,主要以输入输出语句为主,使用了do…while…和for…这两种循环方式,do…while…是作为一级循环,for…为二级循环。

在输入图书的基本信息过程中,使用指针进行字符串及值的传递。全局变量m是用于记录图书的储存位置,便于在后来的查询、删除等功能中的使用。调用save(struct book*p)来保存输入的数据。定义的整型变量y,用来储存是否继续的指令。该模块的流程图如下图4.2-1所示。

图4.2-1 输入模块流程图

【程序】

void input(struct book *p)

{ int y;

for(;p<(&s[0]+N);p++)

{ printf("请输入书名:");scanf("%s",p->title);

printf("请输入编号:"); scanf("%d",&p->number);

printf("请输入作者:"); scanf("%s",p->author);

printf("请输入图书价格:"); scanf("%f",&p->price);

printf("请输入图书数量:"); scanf("%d",&p->store);

m++;

printf("第%d个信息已经输入完毕,是否继续?\n按任意键继续,按0键结束.",m);

scanf("%d",&y);//读取是否继续

if(y==0)

{ save(&s[0]);

read(&s[0]);//调用读取文件函数

break;

}

}

}

(2)查找模块

【分析】

相关文档
最新文档