图书管理系统设计报告.docx

上传人:b****5 文档编号:8049555 上传时间:2023-01-28 格式:DOCX 页数:24 大小:387.80KB
下载 相关 举报
图书管理系统设计报告.docx_第1页
第1页 / 共24页
图书管理系统设计报告.docx_第2页
第2页 / 共24页
图书管理系统设计报告.docx_第3页
第3页 / 共24页
图书管理系统设计报告.docx_第4页
第4页 / 共24页
图书管理系统设计报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

图书管理系统设计报告.docx

《图书管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统设计报告.docx(24页珍藏版)》请在冰豆网上搜索。

图书管理系统设计报告.docx

图书管理系统设计报告

(此文档为word格式,下载后您可任意编辑修改!

C语言程序课程设计报告

设计题目:

图书管理系统

专业班级:

电气10级

学生:

XXX

CentralSouthUniversity

目录

第一章课程设计的目的、意义

1.1程序设计的主要目的……………………………………1

1.2程序设计的作用意义……………………………………1

第二章课程设计的任务要求

1.1课程设计的任务…………………………………………2

1.2.1课程设计的总体要求……………………………………2

1.2.2图书管理系统设计的具体要求…………………………3

第三章总体设计方案

1.1图书管理系统程序设计基本结构框架……………………4

1.2系统结构分析………………………………………………6

1.3程序结构设计………………………………………………8

第四章软件设计

第五章系统软件的调试及使用操作说明

1.1进入界面……………………………………………………11

1.2选择菜单……………………………………………………11

1.3输入图书……………………………………………………12

1.4查找图书……………………………………………………12

1.5修改图书……………………………………………………12

1.6删除图书……………………………………………………12

1.7统计图书……………………………………………………13

第六章收获、体会

1.1课程设计的任务………………………………………………14

1.2课程设计的体会………………………………………………14

参考文献……………………………………………15

附录:

源程序清单……………………………………16

第一章课程设计的目的、意义

1.1程序设计的主要目的

这次课程设计是C程序设计课程的一个关键环节。

它是根据教学计划的要求,在教师的指导下,对学生实施程序设计训练的必要过程,是对前期课堂学习内容的综合应用及其效果的检验和提高。

其目的在于培养学生综合运用理论知识来分析和解决实际问题的能力、以及严谨的科学态度和良好的程序设计习惯。

在课程设计中,要求学生能够遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照选定的课程设计题目要求,独自地完成设计、编写、调试和测试应用程序及编写文档的任务。

1.2程序设计的作用意义

《C语言程序设计课程设计》是计算机科学与技术专业软件工程方向重要的一门专业基础课,内容庞大,涉及面广,知识点多,教、学难度都非常大,往往费了大量时间而达不到预期教学效果。

俗语说:

学习的最好方法是实践。

C语言程序设计课程设计正是基于此,力求为学生提供一个理论联系实际的机会,通过布置一定难度的课题,要求学生独立完成。

通过实践,建立系统设计的整体思想,锻炼编写程序、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经验、探索前言知识的习惯。

同时,C语言程序设计课程设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷,更好地帮助学生从全局角度把握课程体系。

通过实践,学生可以掌握编程的基本要领,从而更好地学习C语言。

第二章课程设计任务的要求

1.1课程设计的任务

本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设计有关的书籍和资料,自学有关“软件工程”和“数据结构”的基本概念和方法,利用TurboC设计环境与开发工具,在两周时间,独立完成设计任务中的一个管理系统。

1.2.1课程设计的总体要求

1、用结构化程序设计思想进行TurboC环境下程序设计。

2、设计一个管理系统,上机编程、调试并通过该管理系统中的各功能模块。

3、设计完成后,每人必须提交程序清单及关于程序设计、维护和使用方面的图文材料即程序设计说明书各一份。

4、基于结构化程序设计思想和所使用的TurboC语言开发环境与开发工具,并运用“软件工程”和“数据结构”中的有关概念和方法,针对具体设计题目和要求,分析功能要求,划分功能模块,用链表结构设计功能模块函数,以菜单方式调用相应功能模块来实现信息和数据处理

1.2.2图书管理系统功能设计要求

1.输入记录:

将图书的基本信息包括书号、书名、作者,单价、库存、借出的数量等数据作为一个记录。

该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。

 2.显示记录:

根据用户提供的记录或者根据书号或书名显示一本或几本书的库存与借出的统计数量。

3.修改记录:

可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。

4.查找记录:

可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。

5.删除记录:

可删除数据文件中的任一记录。

6.恢复记录:

能恢复被删除的任一记录。

7.添加记录:

可以在数据文件中添加记录并添加记录后对记录内容进行显示。

8.统计:

(A)计算各类图书数量及金额;(B)统计每页合计图书数量及金额;(C)统计2000年以前和2000年以后出版的图书数量及金额;(D)累计图书总数量及总金额;(E)按字符表格形式打印全部图书资料信息表(包括图书总数量及总金额)。

9.保存数据文件功能。

10.打开数据文件功能。

经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。

程序运行结果如下表所示(记录个数至少8个)。

图书资料信息表

序号

书代号

书名

作者

出版时间

单价(元)

库存数量(本)

借出数量(本)

总数量(本)

01

056201

信号与系统

张望

2005

12.6

198

109

307

02

116848

计算机网络

李明

2002

21.8

135

94

229

03

127500

传感器技术

王小民

1999

15.9

98

64

162

04

041234

多媒体技术

张效章

2006

8.6

210

116

326

05

125605

自控原理

彭山

2004

25.4

84

61

145

各项统计

725

444

1169

表1.1

第三章总体设计方案

1.1图书管理系统程序设计基本结构框架

1.头文件说明

如:

#include

#include

#include

#include

定义结构类型;

定义全局变量;

定义、编写记录(数据)输入函数;定义、编写记录(数据)显示函数;

定义、编写记录(数据)修改函数;定义、编写记录(数据)查找函数;

定义、编写记录(数据)删除函数;定义、编写记录(数据)恢复函数;

定义、编写记录(数据)添加函数;定义、编写记录(数据)统计函数;

定义、编写数据文件保存函数;定义、编写打开数据文件函数;

2.主函数结构如下:

main()

{chari;

intdrive=DETECT,mode;

initgraph(&drive,&mode,"");初始化显示器为图形方式

cleardevice();清屏幕

setbkcolor(9);设置屏幕背景颜色

getch();等待击键

for(;;)循环执行功能菜单

{

cleardevice();

setbkcolor(9);

i=getch();

elseswitch(i)

{case'a':

调用记录输入函数;break;

case'b':

调用记录显示函数;break;

case'c':

调用记录修改函数;break;

case'd':

调用记录查找函数;break;

case'e':

调用记录删除函数;break;

case'f':

调用记录恢复函数;break;

case'g':

调用记录添加函数;break;

case'h':

调用记录统计函数;break;

case'i':

调用数据保存函数;break;

case'j':

调用数据文件打开函数;break;

}}}

1.2系统结构分析

1、系统功能模块结构图

本图书管理系统理由输入记录,显示记录,修改记录,查找记录,删除记录,增加记录,统计数据,恢复记录八个大模块组成,其总体结构图如下:

图1.1图书管理系统总体结构图

2、系统调用的函数

函数名称

函数功能

cleardevice();

清屏函数

setbkcolor();

界面颜色函数

addbookk()

输入图书函数

showbook()

显示图书函数

Addbook()

增加图书函数

Delbook()

删除图书函数

savebook();

保存图书函数

countbook();

图书统计函数

Addbook();

增加图书函数

editboor();

修改图书函数

Lendcount()

借书统计函数

openbook

打开图书函数

表1.1系统调用函数表

3、图书管理系统的思路

图1.2数据流程图

1.3程序结构设计

1主函数结构流程

N

Y

图1.3系统主函数流程图

第四章软件设计

1菜单栏流程图

N

图1.4

 

 

图1.5

2子菜单流程图

图1.6

第五章系统软件的调试及使用操作说明

1.1进入界面

图1.7

打开程序,进入开始界面,按任意键就可以进入菜单栏。

1.2选择菜单

图1.8进入主菜单页面,选择子菜单进行下一步操作

1.3输入图书

图1.9输入书本的种数,再逐一地输入图书的具体数据,按回车键结束。

1.4查找图书

图2.0返回主菜单,选中查找图书的子菜单,再根据书得代号查找图书。

1.5修改记录

图2.1

1.6删除记录

图2.2

图2.3

1.7统计图书

图2.4

第六章收获、体会

1.1课程设计中的收获

历经两个星期,我终于把课程设计做出来了,虽然这个过程中我参考了好多的程序,但是我在总结和分析了其他人的设计之后也写出了自己的程序,并经过调试成功运行了。

这一次的课程设计我真的学到了很多,我学会了写比较复杂的程序,也学会了对程序中的一些错误进行修改,,这是我的一次独立探索的过程,同时也让我喜欢上了编程。

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,从拿到题目到完成整个编程,从理论到实践,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,还要把所学的理论知识与实践相结合起来,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,因为这毕竟第一次做。

有好多是些小问题,这都是因为我粗心大意造成的,所以设计程序一定要仔细。

编程是一项高精度的工作,所以我们要有规范化,标准化的代码编写习惯,还要有模块化思维能力,模块化思维就是编程任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作。

1.2课程设计的体会

刚开始看到这个课题的时候,我很担心,自己就有点不自信,因为这对我来说是一项大工程,我从来就没有编过这么复杂的程序。

这次的课程设计从拿到题目到完成整个编程,从理论到实践,我很认真的去做,在老师的指导与同学的帮助与鼓励下,自己翻书本,上网查找和上机实践,逐步地完成了这项作业。

本次实验,不仅使我所学c语言的知识更加巩固,而且可以使理论与实践相结合,更好的掌握所学到的知识。

在编写程序的时候我也发现了自己很多的不足之处,例如在课堂上学的理论知识有的时候很难把它应用到实际程序中,看似一个简单的功能模块往往需要很多知识的融合。

在图书管理系统的编写过程中,我也更加的明白了程序刚开始设计时结构与算法的重要性。

另外由于编写代码时的一个小失误,导致整个程序无法运行,结果后期花很多的时间去调试,在这里希望大家以此为戒,编写代码的时候一定要细心、谨慎。

参考文献

[1]刘振安等.C程序设计课程设计.北京:

机械工业出版社,2004.9

[2]谭浩强等.c语言程序设计.(第二版).清华大学出版社,2002,.8

[3]曹衍龙等.c语言实例解析精粹.人民邮电出版社,2005.4

[4]张引等著《C程序设计设计基础课程设计》浙江大学出版社2007

[5]曹哲等《C程序设计课程设计》机械工业出版社2010.7

[6]吕凤翥等.C语言程序设计:

基础理论与案例.清华大学出版社2005

附录:

源程序代码

#include

#include

#include

typedefstruct

{

charnum[5];

charid[10];

charname[15];

charzz[10];

inttime;

floatdj;

intkc;

intjc;

}BOOK;

BOOKs[10];

BOOKall[10];

BOOKd[10];

intlength=0;

intk=0;

charfname[10];

intmenu();

intinput();

intdisplay();

intdelete1();

intdeletef(intlocal);

intsearch();

intmodify();

intmodifyf(inti);

inthome();

intshowsingle(int);

intadd();

intrecovery();

intcount();

intsave();

intopen();

intmain()

{inti;

home();

while

(1)

{

system("cls");

i=menu();

if(i==0){printf("\n请按任意键退出\n");return1;}

if(i==1){input();system("cls");}

if(i==2){display();system("cls");}

if(i==3){modify();system("cls");}

if(i==4){search();system("cls");}

if(i==5){delete1();system("cls");}

if(i==6){recovery();system("cls");}

if(i==7){add();system("cls");}

if(i==8){count();system("cls");}

if(i==9){save();system("cls");}

if(i==10){open();system("cls");}

}

return1;

}

inthome()

{system("cls");

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

printf("XXX\n\n");

printf("图书管理系统\n\n");

printf("设计者:

XXX\n\n");

printf("请按Enter键进入");

while(getchar()!

='\n');

return1;

}

intmenu()

{

intflag=0;

printf("中南大学图书管理系统\n");

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

printf("*1输入图书信息2显示图书信息*\n");

printf("*3修改图书信息4查找图书信息*\n");

printf("*5删除图书信息6恢复图书信息*\n");

printf("*7添加图书信息8统计图书信息*\n");

printf("*9保存图书信息10打开图书信息*\n");

printf("*0退出*\n");

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

printf("请选择0~10:

");

scanf("%d",&flag);

returnflag;

}

intinput()

{

intnum,i;

printf("\n请输入你想添加的图书数量:

");

scanf("%d",&num);

printf("\n");

for(i=0;i

{

printf("序号:

");

scanf("%s",&s[length].num);

printf("书代号:

");

scanf("%s",&s[length].id);

printf("书名:

");

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

printf("作者:

");

scanf("%s",&s[length].zz);

printf("出版时间:

");

scanf("%d",&s[length].time);

printf("单价:

");

scanf("%f",&s[length].dj);

printf("库存数量:

");

scanf("%d",&s[length].kc);

printf("借出数量:

");

scanf("%d",&s[length].jc);

printf("\n");

++length;

}

system("pause");

return1;

}

intshowsingle(inti)

{

printf("序号书代号书名作者出版时间单价库存数量借出数量\n");

printf("%4s%7s%11s%6s%7d%8.1f%7d%8d\n",s[i].num,s[i].id,s[i].name,s[i].zz,s[i].time,s[i].dj,s[i].kc,s[i].jc);

return1;

}

intdisplay()

{

inti,j;

intz;

inta[2];

printf("\n序号书代号书名作者出版时间单价库存数量借出数量总数量\n");

for(i=0;i

{

z=s[i].kc+s[i].jc;

printf("%4s%7s%11s%6s%7d%8.1f%7d%8d%9d\n",s[i].num,s[i].id,s[i].name,s[i].zz,s[i].time,s[i].dj,s[i].kc,s[i].jc,z);

}

for(j=0;j<2;j++)

{

a[j]=0;

if(j==0)

for(i=0;i

{

a[j]+=s[i].kc;

}

if(j==1)

for(i=0;i

{

a[j]+=s[i].jc;

}

if(j==1)printf("各项统计:

%9d%8d\n\n",

a[0],a[1]);

}

system("pause");

return1;

}

intmodify()

{

charname[30];

inti,n;

printf("输入要修改图书的书代号:

");

scanf("%s",name);

printf("\n");

for(i=0;i

{

if(strcmp(s[i].id,name)==0)

n=modifyf(i);

}

printf("\n");

if(n!

=1)printf("对不起,该图书不存在\n\n");

system("pause");

return1;

}

intmodifyf(inti)

{

showsingle(i);

printf("\n请输入要修改的数据:

\n\n");

printf("序号:

");

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

printf("书代号:

");

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

printf("书名:

");

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

printf("作者:

");

scanf("%s",&s[i].zz);

printf("出版时间:

");

scanf("%d",&s[i].time);

printf("单价:

");

scanf("%f",&s[i].dj);

printf("库存数量:

");

scanf("%d",&s[i].kc);

printf("借出数量:

");

scanf("%d",&s[i].jc);

printf("\n");

printf("修改结果如下:

\n\n");

showsingle(i);

return1;

}

intsearch()

{

charname[30];

inti,n;

printf("请输入要查询的图书的书代号:

");

scanf("%s",name);

printf("\n");

for(i=0;i

{

if(strcmp(s[i].id,name)==0)

n=showsingle(i);

}

printf("\n");

if(n!

=1)printf("对不起,该图书不存在\n\n");

system("pause");

return1;

}

intdelete1()

{

charname[30];

inti,n;

printf("请输入要删除的图书的书代号:

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(s[i].id,name)=

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1