C语言图书馆项目设计报告

  • 格式:doc
  • 大小:412.50 KB
  • 文档页数:19

项目设计目的

利用静态数组实现一个小型图书管理系统,数组中每一个元素都是结构体数据类型,数据要求通过文件的读写操作写入到内存中。通过这个例子了解电子通信录的基本功能,掌握在数组中添加和删除元素的操作,数组元素为结构体的应用,数组作为函数参数、文件读写、自定义函数等知识。

项目设计内容

使用C语言在VC++6.0下设计一个基于文本的图书管理系统,实现对图书基本信息、读者基本信息进行计算机辅助管理,完成借书和还书有关信息的记录、修改、查询、删除等一系列任务的信息管理与实现。

项目设计功能

该软件主要是实现对图书信息进行系统化的管理,本系统要求实现以下的几个基本功能:

1. 实现简易的提示菜单界面,用所学的知识尽量实现良好的、美观的“人机界面”,便于软件的操作使用;

2. 管理员登录时,需要验证密码;

3. 图书管理功能:包括图书添加功能、图书修改功能、图书删除功能和图书查询功能;

图书添加功能:新书入库。图书购入后由图书管理人员将书籍编码并将其具体信息进行录入;

图书查询功能:提供按照图书名、作者和图书编号三种方式来查询图书,只考虑精确查询;

图书修改功能:如果有录入错误,可以实现管理员对图书信息进行修改;

图书删除功能:如果有图书丢失或损坏等情况,把图书注销掉。

4. 借阅管理功能

借书管理:输入图书编号,进行借书登记。 还书管理:根据图书编号,在借阅信息表中找到相应的记录,将借书记录删除。

项目详细设计

数据结构

开发这个系统首先要解决的就是怎么将图书信息、学生信息、图书借阅及还书完整的存放起来。每类信息又由几个基本的信息构成,所以需要选择结构体数据类型。

#include

#include

#include

#include

int count=8;

void display();

显示界面

void search();

搜索界面

void insert();

添加界面

void del

删除界面();

void updata();

更新界面

void sort();

排序界面

void borrow

借书界面();

void repay

还书界面();

void help

帮助界面();

struct tushu/*图书显示部分*/

{

int id; //编号

char shuming[20];//书名

char writer[10];//作者

int num;//数量

}

t[100]={{1,"解析几何 ","吕林根",5}, {2,"概率论 ","魏宗舒",2},

{3,"计算机基础","吴宏斌",4},

{4,"西方经济学","高鸿业",10},

{5,"数据库 ","清华IT",1},

{6,"西方经济学","刘天祥",1},

{7,"计量经济学","李子奈",3},

{8,"实变函数论","周民强",7}};

功能模块图

系统流程图

部分参考代码

1. 主界面设计(115043323张千峰)

void main()

{ int j;

char name[10];

char password[7];

/*定义密码数组*/

system("color f2");

/*改变界面字体颜色*/

printf("\n");

printf("\n");

printf("\n");

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

printf("\n");

printf("\n");

printf("\n");

printf("\n★★★★★欢迎进入图书管理系统 ★★★★★\n");

/*进入界面*/

printf("\n");

printf("\n");

printf("\n");

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

printf("\n");

printf("\t请按ENTER键进入下一界面...→");

fflush(stdin);

/*清空输入缓冲区,确保不影响后面的数据读取*/

scanf("%c",&ch);

2. 书籍管理界面设计(115043328王伟) do

{

int a;

system("cls");

/*清空屏幕,美观方便*/

printf("\t\t※※※※※※※※※※※※※※※※※※※※※※\n");

/*管理系统主界面*/

printf("\t\t☆ → 1、 显示 \n");

/*显示界面*/

printf("\t\t☆ → 2、 查询书目 \n");

/*查询界面*/

printf("\t\t☆ → 3、 录入书目 \n");

/*增加界面*/

printf("\t\t☆ → 4、 根据编号删除图书 \n");

/*删除界面*/

printf("\t\t☆ → 5、 修改图书 \n");

/*修改界面*/

printf("\t\t☆ → 6、 根据编号排序 \n");

/*排列界面*/

printf("\t\t☆ → 7、 借书 \n");

/*借书界面*/

printf("\t\t☆ → 8、 还书 \n");

/*还书界面*/

printf("\t\t☆ → 9、 帮助 \n");

/*帮助界面*/

printf("\t\t☆ → 0、 退出程序 \n");

/*退出界面*/

printf("\t\t※※※※※※※※※※※※※※※※※※※※※※\n");

printf("请选择功能(0-9)\n");

fflush(stdin);

/*清空输入缓冲区,确保不影响后面的数据读取*/

scanf("%d",&a);

switch(a)

3. 借书管理界面设计(115043323张千峰)

void borrow()

{

int i,b,c;

system("cls");

/*清空屏幕,美观方便*/

printf("请输入要借图书的编号:");

scanf("%d",&b);

for(i=0;i

{

if(t[i].id==b)

{

printf("您要借的书是:\n");

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

printf("\t%d\t%s\t%s\t\t%d\n",t[i].id,t[i].shuming,t[i].writer,t[i].num);

printf("请输入要借的图书的数量:");

scanf("%d",&c); if((t[i].num-c)>=0)

{

printf("借书成功!");

t[i].num=t[i].num-c;

}

else

{

printf("提示:该图书的数量不够!\n");

}

break;

}

}

if(i==count)

{

printf("没有你要借图书。\n");

}

}

4. 还书操作(115043323张千峰)

void repay()

{

int i,b,c;

system("cls");

/*清空屏幕,美观方便*/

printf("请输入要还图书的编号:");

scanf("%d",&b);

for(i=0;i

{

if(t[i].id==b)

{

printf("请输入要还图书的数量:");

scanf("%d",&c);

t[i].num=t[i].num+c;

printf("还书成功!");

break;

}

}

5. 修改图书(115043328王伟)

void updata()

/*修改书籍*/

{

int i,b;

system("cls");

/*清空屏幕,美观方便*/

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

scanf("%d",&b);

for(i=0;i

{

if(t[i].id==b)

{

break;

}

}

if(i==count)

{

printf("没有你要修改的信息。\n");

}

else

{

printf("请输入修改后的图书编号:");

fflush(stdin);

/*清空输入缓冲区,确保不影响后面的数据读取*/

scanf("%d",&t[i].id);

fflush(stdin);

/*清空输入缓冲区,确保不影响后面的数据读取*/

printf("请输入图书名称:");

gets(t[i].shuming);

printf("请输入图书的作者:");

fflush(stdin);

/*清空输入缓冲区,确保不影响后面的数据读取*/

gets(t[i].writer);

fflush(stdin);

/*清空输入缓冲区,确保不影响后面的数据读取*/

printf("请输入图书的数量:");

scanf("%d",&t[i].num);

printf("修改后的信息是:\n");

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

printf("\t%d\t%s\t%s\t\t%d\n",t[i].id,t[i].shuming,t[i].writer,t[i].num);

}

}