C语言程序设计大作业图书管理系统docx.docx

上传人:b****1 文档编号:14062027 上传时间:2023-06-20 格式:DOCX 页数:18 大小:293.68KB
下载 相关 举报
C语言程序设计大作业图书管理系统docx.docx_第1页
第1页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第2页
第2页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第3页
第3页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第4页
第4页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第5页
第5页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第6页
第6页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第7页
第7页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第8页
第8页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第9页
第9页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第10页
第10页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第11页
第11页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第12页
第12页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第13页
第13页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第14页
第14页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第15页
第15页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第16页
第16页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第17页
第17页 / 共18页
C语言程序设计大作业图书管理系统docx.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计大作业图书管理系统docx.docx

《C语言程序设计大作业图书管理系统docx.docx》由会员分享,可在线阅读,更多相关《C语言程序设计大作业图书管理系统docx.docx(18页珍藏版)》请在冰点文库上搜索。

C语言程序设计大作业图书管理系统docx.docx

C语言程序设计大作业图书管理系统docx

C语言程序设计大作业

设计报告

一.设计方案

本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。

二.模块说明及代码分析

1.主函数:

源代码:

voidmain()

{

inta;

printf("\n");

printf("\n");

printf("(^_^)WELCOME!

\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\t〉〉-------------BJTU图书管理系统--------------〈〈");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

do{

printf("1.借书2.还书3.新书录入4.查询0.退出");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("请选择序号:

");

scanf("%d",&a);

switch(a)

{

case1:

jieshu();break;

case2:

huanshu();break;

case3:

xinshu();break;

case4:

chaxun();break;

case0:

break;

default:

printf("请选择正确的序号!

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

}

}while(a!

=0);

printf("谢谢使用图书管理系统!

\n");

}

主函数提供人机交互界面,让操作者选择所需的操作项目,并有退出选项。

2.新书录入模块

源代码:

voidxinshu()

{

inti;

FILE*fp;

if((fp=fopen("library.txt","w"))==NULL)

{

printf("打开文件失败!

\n");

exit(0);

}

printf("请输入要录入的新书的编号:

");

scanf("%d",&s[count].number);

for(i=0;i

{

if(s[i].number==s[count].number)

{

printf("编号已存在,请重新输入:

");

scanf("%d",&s[count].number);

}

}

printf("请输入图书名称:

");

scanf("%s",&s[count].name);

printf("请输入图书作者:

");

scanf("%s",&s[count].author);

printf("请输入图书数量:

");

scanf("%d",&s[count].shuliang);

count++;

fclose(fp);

printf("录入成功!

\n");

printf("\n");

printf("\n");

printf("\n");

}

新书录入模块实现了新书的编号、书名、作者、数量的录入,并设计有输入错误时的提示。

3.借书模块

源代码:

voidjieshu()

{

intb,i,shu;

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

");

scanf("%d",&b);

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

{

if(s[i].number==b)

{

printf("您要借的书是:

\n");

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

printf("\t%d\t%s\t%s\t%d\n",s[i].number,s[i].name,s[i].author,s[i].shuliang);

printf("确认后请输入要借书的数量:

");

scanf("%d",&shu);

if((s[i].shuliang-shu)>=0)

{

printf("借书成功!

");

s[i].shuliang=s[i].shuliang-shu;

}

else

{

printf("抱歉,图书数量不够><请重新输入:

");

scanf("%d",&shu);

}

}

printf("\n");

printf("\n");

printf("\n");

}

}

借书模块实现了对指定图书的借出,并在借出时程序将图书数量自行减去借出数量,在所借图书数量超过现有数量时给出提示。

4.还书模块

源代码:

voidhuanshu()

{

inti,d,e;

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

");

scanf("%d",&d);

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

{

if(s[i].number==d)

{

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

");

scanf("%d",&e);

s[i].shuliang=s[i].shuliang+e;

printf("还书成功!

\n");

break;

}

}

if(i>count)

{

printf("此图书不存在");

}

printf("\n");

printf("\n");

printf("\n");

}

还书模块实现简便的还书过程,并用count的变化来调整图书数量。

5.查询模块

源代码:

voidchaxun()

{

inti,f;

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

");

scanf("%d",&f);

for(i=0;i

{

if(s[i].number==f)

{

printf("您要查询的图书是:

\n");

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

printf("\t%d\t%s\t%s\t%d\n",s[i].number,s[i].name,s[i].author,s[i].shuliang);

break;

}

}

if(i>count)

{

printf("此图书不存在\n");

}

printf("\n");

printf("\n");

printf("\n");

}

该模块实现对图书的查询功能,通过对图书编号的检索,给出该图书的对应信息,包括图书名称、作者、剩余数量。

三.数据文件名

数据文件名为library.txt,用于新书录入的数据存储。

四.系统运行测试结果分析

交互界面:

新书录入:

借书:

当所借数量小于等于所存数量时,即显示结束成功。

当所借书数量超过图书总量,则给出提示,重新输入。

查询:

从借书后的查询结果与新书录入时的数量相比较,可以看出已经减去所借出的图书数量。

还书:

还回借出的两本书里的一本后,经查询可得数量得到相对应的减少。

退出:

收获与体会:

经过一学期的C语言程序设计的学习后,对于C语言有了初步的认识,并能开始写简单的程序,但是对于这个大作业还是烦恼了一阵子,由于程序会写的很长,调试过程也会比较困难,所以我们决定组队一起完成这个大程序,xxx负责主函数以及借书、新书模块以及函数的调试过程等,xxxx负责查询、还书模块以及设计报告的封面等,

这个大程序占用了我们很多时间,调试过程中遇到了很多疑惑,也找过大神求助过,最后好不容易可以运行了,也是出现了好多小问题,就这样反反复复,最后的最后,得到成功的时候,我们都欢呼雀跃了,感觉到程序设计的神奇,看到自己写的程序可以实现这样的小功能就觉得非常自豪,当然,过程中也显示了我们的知识不扎实,才会如此辛苦,看来,学好C语言并不是一件容易的事,但是我们相信,只要有一次成功,就会有更多的成功。

我想,这就是我们学到的吧。

设计人员:

xxx:

设计报告封面,查询还书模块

xxx:

主函数,借书新书模块,程序运行调试

全代码:

#include

#include

#include

structBOOK

{

charname[20];charauthor[20];

intnumber,shuliang;

}s[10000];

intcount=0;

voidjieshu();

voidhuanshu();

voidxujie();

voidxinshu();

voidchaxun();

voidmain()

{

inta;

printf("\n");

printf("\n");

printf("(^_^)WELCOME!

\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\t〉〉-------------BJTU图书管理系统--------------〈〈");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

do{

printf("1.借书2.还书3.新书录入4.查询0.退出");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("请选择序号:

");

scanf("%d",&a);

switch(a)

{

case1:

jieshu();break;

case2:

huanshu();break;

case3:

xinshu();break;

case4:

chaxun();break;

case0:

break;

default:

printf("请选择正确的序号!

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

}

}while(a!

=0);

printf("谢谢使用图书管理系统!

\n");

}

voidxinshu()

{

inti;

FILE*fp;

if((fp=fopen("library.txt","w"))==NULL)

{

printf("打开文件失败!

\n");

exit(0);

}

printf("请输入要录入的新书的编号:

");

scanf("%d",&s[count].number);

for(i=0;i

{

if(s[i].number==s[count].number)

{

printf("编号已存在,请重新输入:

");

scanf("%d",&s[count].number);

}

}

printf("请输入图书名称:

");

scanf("%s",&s[count].name);

printf("请输入图书作者:

");

scanf("%s",&s[count].author);

printf("请输入图书数量:

");

scanf("%d",&s[count].shuliang);

count++;

fclose(fp);

printf("录入成功!

\n");

printf("\n");

printf("\n");

printf("\n");

}

voidhuanshu()

{

inti,d,e;

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

");

scanf("%d",&d);

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

{

if(s[i].number==d)

{

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

");

scanf("%d",&e);

s[i].shuliang=s[i].shuliang+e;

printf("还书成功!

\n");

break;

}

}

if(i>count)

{

printf("此图书不存在");

}

printf("\n");

printf("\n");

printf("\n");

}

voidchaxun()

{

inti,f;

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

");

scanf("%d",&f);

for(i=0;i

{

if(s[i].number==f)

{

printf("您要查询的图书是:

\n");

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

printf("\t%d\t%s\t%s\t%d\n",s[i].number,s[i].name,s[i].author,s[i].shuliang);

break;

}

}

if(i>count)

{

printf("此图书不存在\n");

}

printf("\n");

printf("\n");

printf("\n");

}

voidjieshu()

{

intb,i,shu;

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

");

scanf("%d",&b);

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

{

if(s[i].number==b)

{

printf("您要借的书是:

\n");

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

printf("\t%d\t%s\t%s\t%d\n",s[i].number,s[i].name,s[i].author,s[i].shuliang);

printf("确认后请输入要借书的数量:

");

scanf("%d",&shu);

if((s[i].shuliang-shu)>=0)

{

printf("借书成功!

");

s[i].shuliang=s[i].shuliang-shu;

}

else

{

printf("抱歉,图书数量不够><请重新输入:

");

scanf("%d",&shu);

}

}

printf("\n");

printf("\n");

printf("\n");

}

}

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2