c语言图书馆管理系统文档格式.doc
- 文档编号:7204143
- 上传时间:2023-05-08
- 格式:DOC
- 页数:32
- 大小:225KB
c语言图书馆管理系统文档格式.doc
《c语言图书馆管理系统文档格式.doc》由会员分享,可在线阅读,更多相关《c语言图书馆管理系统文档格式.doc(32页珍藏版)》请在冰点文库上搜索。
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天
选择课程设计题目,分析课题的要求
第二天
编程
第三天
编程及调试
第四天
写课程设计报告
第五天
提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
目录
内蒙古科技大学课程设计任务书 I
第一章需求分析 3
1.1引言 3
1.2任务概述 4
1.3数据描述 4
1.4功能需求 4
1.5性能需求 4
1.6运行需求 5
1.7任务计划 5
第二章概要设计 7
2.1总体设计 7
2.2数据类型设计(或数据结构设计) 7
2.3接口设计 8
2.4运行界面设计 8
第三章详细设计 10
3.1输入模块设计 10
3.2查找模块设计 11
3.3删除模块设计 12
3.4借阅模块设计 14
3.5还书模块设计 16
3.6流程图 17
第四章测试分析 18
4.1测试程序执行情况 18
4.2出现的问题和解决的方法 21
第五章课程设计总结 22
附录:
程序代码 23
参考文献 30
致谢 31
第一章需求分析
1.1引言
随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。
图书馆在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。
随着图书的大量增加,其管理难度也越来越大,如何优化图书馆的日常管理也就成为一个大众化的课题。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
当前图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;
一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
因此图书管理信息化是发展的必然趋势。
用结构化系统分析与设计的方法,建立一套有效的图书信息管理系统,可以减轻工作,将工作科学化、规范化,提高了图书馆信息管理的工作质量因此根据图书馆目前实际的管理情况开发一套图书管理系统是十分必要的。
建立一个图书管理系统可以使图书管理工作规范化、系统化、程序化、避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书信息。
图书管理系统是一个对图书进行录入、删除、修改和查询的管理应用软件,管理员可以对文件中存储的图书进行查询和管理,了解图书的基本信息。
该系统充分利用计算机的功能实现对书籍管理的自动化控制,将会使图书馆管理工作大大减轻,方便友好的图形用户界面,简便的操作,完善的数据库管理,将会使图书馆信息管理系统极大限度地应用于现代化图书管理,成为图书管理人员的得力助手
1.2任务概述
1.3数据描述
图1.3
1.4功能需求
图1.4
1.5性能需求
在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。
1.6运行需求
1.输入图书信息时按照“图书编号、书名、作者、出版日期、图书价格”的顺序输入。
2.以(0/1)形式判断时,只能用阿拉伯数字。
3.进入排序功能后,要想见排序信息,到主菜单下浏览信息。
1.7任务计划
1.样例输出和输入
图1.7.1
下面以上述据描述的数据为测试数据进行简单输入输出
图1.7.2查询界面
图1.7.3删除界面
第二章概要设计
图书管理系统
2.1总体设计
信息录入
信息查询
信息浏览
信息删除
信息修改
退出系统
图2.1
录入:
可以添加图书信息,依次输入编号、书名、作者、出版时间、出版社后,会提示是否继续添加。
浏览:
可以以表格形式输出所有图书信息。
删除:
输入欲删除图书后,会自动删除图书信息的记录内容。
查询:
可以选择用图书名字方式查询。
修改:
输入欲修改的书名后,再依次输入编号、书名、作者、出版时间、出版社即可完成修改。
2.2数据类型设计(或数据结构设计)
structbooks
{
chartsmc[12];
inttsbh;
floatdj;
charzz[12];
charczzt[12];
charxm[12];
charxb[12];
intxh;
}s[M];
以结构体数据类型输入数据。
2.3接口设计
函数名
函数格式//即函数首部
函数功能
intmain()
int
建立主界面
voidsr
void
输入函数
voidcx
Void
查询图书
voidsc
删除图书
voidjs
借书图书
voidhs
还书图书
voidtc
退出
表2.3函数列表
2.4运行界面设计
/*主函数.主菜单*/
intmain()
intsele;
flag=0;
sele=1;
voidsr();
voidcx();
voidsc();
voidjs();
voidhs();
voidtc();
voidjsh();
//system("
tsgl"
);
printf("
\n\n"
******************************************\n"
1:
输入2:
查询3:
删除\n"
4:
借书5:
还书0:
退出\n"
while
(1)
{
\n\n请输入功能序号:
"
scanf("
%d"
&
sele);
if(sele>
=0&
&
sele<
=5)
switch(sele)
case1:
sr();
break;
case2:
cx();
case3:
sc();
case4:
js();
case5:
hs();
case0:
jsh();
}
if(flag)
break;
*****************************************\n"
输入2:
查询3:
借书5:
还书0:
else
printf("
输入错误请再次输入|\n\n"
************************************\n"
输入2:
查询3:
借书5:
还书0:
\n\n让任意键继续\n"
//wr_file();
}
第三章详细设计
3.1输入模块设计
voidsr()
intn,i;
N=0;
可输入的书本数:
scanf("
n);
N=n+N;
请输入相关信息:
\n"
for(i=1;
i<
=n;
i++)
图书名称:
%s"
s[N-n-1+i].tsmc);
图书编号:
s[N-n-1+i].tsbh);
单价:
%f"
s[N-n-1+i].dj);
作者:
s[N-n-1+i].zz);
strcpy(s[N-n-1+i].czzt,"
未借出"
strcpy(s[N-n-1+i].xm,"
无"
3.2查找模块设计
voidcx()
inti,j[100]={-1},d,k,t=0;
charm[20];
1:
图书名称2:
图书编号"
\n\n请输入查询选项:
k);
if(k==1)
请输入图书名称:
scanf("
m);
for(i=0;
N;
if(strcmp(m,s[i].tsmc)==0)
{
j[t]=i;
t=t+1;
}
elseif(k==2)
请输入图书编号:
d);
if(d==s[i].tsbh)
t++;
if(j[0]==-1&
t==0)
没有找到!
if(j[0]!
=-1&
t!
=0)
\t图书名称\t图书编号\t单价\t作者\t存在状态\t借书人姓名\t性别\t学号\n"
for(i=0;
t;
\t%s\t%d\t%f\t%s\t%s\t%s\t%s\t%d"
s[j[i]].tsmc,s[j[i]].tsbh,s[j[i]].dj,s[j[i]].zz,s[j[i]].czzt,s[j[i]].xm,s[j[i]].xb,s[j[i]].xh);
3.3删除模块设计
voidsc()
inti,d,k,t=0;
charms[20];
intja=-1;
ms);
if(strcmp(ms,s[i].tsmc)==0)
ja=i;
break;
确定删除该图书吗?
1表示Yes,其他No"
intp;
p);
if(p==1)
Congratulations,删除成功||\n"
if(ja!
p)
N=N-1;
for(i=ja;
strcpy(s[i].tsmc,s[i+1].tsmc);
s[i].tsbh=s[i+1].tsbh;
s[i].dj=s[i+1].dj;
strcpy(s[i].zz,s[i+1].zz);
strcpy(s[i].czzt,s[i+1].czzt);
strcpy(s[i].xm,s[i+1].xm);
strcpy(s[i].xb,s[i+1].xb);
s[i].xh=s[i+1].xh;
elseif(ja==-1)
printf("
没有找到!
3.4借阅模块设计
voidjs()
inti,j[100]={-1},d,k,t=0;
charm[20];
if(k==1)
printf("
scanf("
m);
for(i=0;
if(strcmp(m,s[i].tsmc)==0)
{
j[t]=i;
t=t+1;
}
strcpy(s[j[i]].czzt,"
已借出"
此书已借出\n"
=-1&
t!
=0&
s[j[i]].czzt=="
未借出"
)
%s%d%f%s%s%s%s%d"
确定借阅2:
退出\n"
switch(k)
case1:
printf("
请输入学号:
s[j[i]].xh);
请输入姓名:
s[j[i]].xm);
请输入性别:
s[j[i]].xb);
printf("
已借出,按任意键继续\n"
//getch();
case2:
3.5还书模块设计
voidhs()
t++;
break;
if(t==0)
%s%f%s%s%s%s%d\n"
s[j[i]].tsmc,s[j[i]].dj,s[j[i]].zz,s[j[i]].czzt,s[j[i]].xm,s[j[i]].xb,s[j[i]].xh);
确定归还2:
intp;
if(p==1)
strcpy(s[j[i]].czzt,"
strcpy(s[j[i]].xm,"
s[j[i]].xh=0;
已归还,按任意键继续\n"
//getch();
3.6流程图
主菜单
查询
数据添加
删除
还书
借书
图3.7
第四章测试分析
4.1测试程序执行情况
图4.1.1管理界面
图4.1.2添加图书
图4.1.3名称查询
图4.1.4编号查询
图4.1.5借书
图4.1.6还书
图4.1.7删除信息
4.2出现的问题和解决的方法
第五章课程设计总结
通过两周的课程设计,使我清楚地认识到了实践的重要性.经过有针对性地上机操作,不仅可以提高我对C语言的认识,更重要的是提高了自己的实践能力。
在课程设计过程中,我学到了许多道理,也懂得无论做什么事情都应该先拟定一个计划。
有了计划,就有了奋斗目标,我们就会冲着目标奋进。
通过这次学习使我对指针、数组、结构体以及循环有了深刻的理解,可以学以致用,觉得有了很大的收获。
与此同时也使我学会了如何克服不良情绪,怎样调整自己的心态。
在这次学习中,我遇到了许多困难,但经过我的耐心研究,同学们的帮助以及老师的谆谆教导,使我最终克服了困难,成功地完成了本次课程设计。
这让我懂得了,无论做什么事都不要轻言放弃,无论做什么事都要有耐心、信心加恒心,只有这样,我们才会成功。
在这次设计中,我的人生格言也在无时无刻地帮助着我,鼓励这我,在我感到困惑疲惫时,在我被问题萦绕百般不解时,它都会激励我,它就是————在磨练中成长、苦中作乐
程序代码
#include<
stdio.h>
stdlib.h>
string.h>
typedefstruct{
charnumber[10];
//书号
charname[20];
//书名
charauthor[20];
//作者
charpublish[50];
//出版社
chartime[20];
//出版时间
floatprice;
}mbook;
intcount;
//书的本数
mbookbook[100];
//最大可有100本书
}mlibrary;
mlibrarylibrary;
voidsave()//保存图书信息。
FILE*fp;
if((fp=fopen("
library.doc"
"
w"
))==NULL)
\n不能保存图书信息\n"
return;
fwrite(&
library.count,sizeof(int),1,fp);
fwrite(library.book,sizeof(library.book[0]),library.count,fp);
voidputin()/*定义录入函数*/
inty=1;
system("
cls"
whi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书馆 管理 系统