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);
}
}