课程设计管理系统.docx

上传人:b****5 文档编号:2913827 上传时间:2022-11-16 格式:DOCX 页数:13 大小:135.27KB
下载 相关 举报
课程设计管理系统.docx_第1页
第1页 / 共13页
课程设计管理系统.docx_第2页
第2页 / 共13页
课程设计管理系统.docx_第3页
第3页 / 共13页
课程设计管理系统.docx_第4页
第4页 / 共13页
课程设计管理系统.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

课程设计管理系统.docx

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

课程设计管理系统.docx

课程设计管理系统

课程设计报告

课程名称:

数据结构课程设计

 

设计题目:

图书管理系统

系别:

计算机系

专业:

组别:

第二十一题

学生姓名:

学号:

起止日期:

年月日~年月日

指导教师:

马强

目录

第一章需求分析1

1.1课程设计题目1

1.2课程设计任务及要求1

1.3课程设计思想及开发环境1

第二章概要设计2

2.1流程图设计2

2.2主要数据结构2

2.3完成设计所用方法及原理3

第三章详细设计3

3.1硬件设计及软件设计…………………………………………………3

3.2子程序设计……………………………………………………………3

第四章调试与操作说明10

第五章课程设计总结与体会13

致谢14

参考文献14

第一章需求分析

1.1课程设计题目

题目:

图书管理系统

1.2课程设计任务及要求

要求:

(1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;

(2)对书号建立索引表(线性表)以提高查找效率;

(3)系统主要功能如下:

(a)采编入库:

新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;

(b)借阅:

如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量

(c)归还:

注销对借阅者的登记,改变该书的现存量。

1.3课程设计思想集开发环境

先分别利用学过的C语言和数据结构单表的知识编写各个模块,再利用函数调用等方式将这些模块一一连接起来,最后经过调试和修改成为符合题目要求的图书管理系统管理系统。

开发工具:

VisualC++VisualStudio6.0

VC++是微软公司开发的一个IDE(集成开发环境)。

VisualC++6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。

VisualC++是一个功能强大的可视化软件开发工具。

自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。

所以实际中,更多的是以VisualC++6.0为平台。

学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,VC基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在Windows平台无所不能。

最大缺点是开发效率不高。

 

第二章概要设计

2.1流程图设计

2.2主要数据结构

书、读者数据是用链表存放的,因为其数量是不定的,若用一个数组存放数据时,有固定长度限制,若太大则可能导致内存浪费,太小就不够用。

而链表可动态分配内存,根据需要而开辟内存单元,这是本程序的链表数据结构,相关需要储存的信息也如下:

typedefstructbook

{

charbook_num[10];

charbook_name[20];

charbook_writer[10];

intbook_kc;

intbook_xy;

structbook*next;

}BK;

typedefstructborrow

{

charborrow_book_num[10];

charlimit_date[8];

}BO;

typedefstructreader

{

charreader_num[10];

charreader_name[10];

intright;

BOborrow[Max];

structreader*next;

}RD;

2.3完成设计所用方法及原理

函数调用子程序等方法

 

第三章详细设计

3.1硬件及软件设计

系统设计是把需求转化为软件系统的最重要的环节。

系统设计的优劣在根本上决定了软件系统的质量。

良好的数据结构设计,可以提高数据信息的存储效率,保证数据信息的完整性和一致性。

同时,一个合理的数据结构有利于程序的实现。

这里采用作为VisualC++VisualStudio6.0编译环境。

3.2子程序设计

本程序分为新书初始化图书信息和读者信息模块、入库模块、借阅模块、还书模块。

voidInit()/*初始化*/

{

Init_reader();

Init_book();

}

voidInit_reader()/*初始化读者信息*/

{

RD*p0;

inti;

printf("\n读者初始化开始,请输入读者信息..\n包括编号.姓名..\n");

p0=(RD*)malloc(sizeof(RD));

h_reader=p0;

printf("\n请输入读者的信息:

\n");

printf("ReaderNo.:

");/*输入读者编号(唯一)*/

scanf("%s",p0->reader_num);

printf("ReaderName:

");/*输入读者姓名(不唯一)*/

scanf("%s",p0->reader_name);

p0->right=0;

for(i=0;i

{

strcpy(p0->borrow[i].borrow_book_num,"0");/*所借图书直接置为0(即没有借书)*/

strcpy(p0->borrow[i].limit_date,"0");

}

p0->next=NULL;

printf("\n读者信息初始化完毕!

按任意键继续下一步操作..\n");

//getch();

system("cls");

}

voidInit_book()/*初始化图书信息*/

{

BK*p0;

printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n");

p0=(BK*)malloc(sizeof(BK));

h_book=p0;

printf("\n请输入图书信息:

\n");

printf("BookNo.:

");/*输入图书编号(唯一)*/

scanf("%s",p0->book_num);

printf("BookName:

");/*输入图书名称*/

scanf("%s",p0->book_name);

printf("BookWriter:

");/*输入图书作者*/

scanf("%s",p0->book_writer);

printf("Number:

");/*输入图书数量*/

scanf("%d",&p0->book_kc);

p0->book_xy=p0->book_kc;/*开始时图书现有量和库存量相等*/

p0->next=NULL;

printf("\n图书信息初始化完毕!

按任意键继续下一步操作..\n");

//getch();

system("cls");

}

voidBorrow_Book()/*借书模块*/

{

BK*p0;RD*p1;

charbo_num[10],rea_num[10],lim_date[8];

inti;

p0=h_book;p1=h_reader;

printf("\n借书模块...\n");

printf("\n请输入借书的读者编号:

");/*先输入借书的读者信息*/

scanf("%s",rea_num);

while(p1->next!

=NULL&&strcmp(rea_num,p1->reader_num)!

=0)/*遍历一次读者链表,判断读者是否存在*/

p1=p1->next;

if(p1->next==NULL&&strcmp(rea_num,p1->reader_num)!

=0)/*如果存在,则继续,不存在就、则提示错误!

*/

{

printf("\n此读者编号不存在!

按任意键返回..\n");

gotoEND;

}

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

");

scanf("%s",bo_num);

while(strcmp(bo_num,p0->book_num)!

=0&&p0->next!

=NULL)/*遍历一次图书链表,判断此图书是否存在*/

p0=p0->next;

if(p0->next==NULL&&strcmp(bo_num,p0->book_num)!

=0)/*如果存在,则继续,不存在就、则提示错误!

*/

{

printf("\n此图书编号不存在!

按任意键返回..\n");

}

elseif(p0->book_xy<=0)/*判断此图书现在是否还有库存*/

{

printf("\n抱歉,此书已借完!

请等待新书的到来!

!

\n按任意键返回....");

}

elseif(p1->right>=Max)/*判断此读者借书权限是否已达最大*/

{

printf("\n不好意思,借书数目已满!

不能借书!

\n按任意键返回....");

}

elseif(strcmp(p1->borrow[0].borrow_book_num,"0")!

=0)/*此读者若已经借书,再判断此读者是否要借两本一样的书*/

{

for(i=0;i

{

if(strcmp(p1->borrow[i].borrow_book_num,bo_num)==0)

{

printf("\n抱歉!

同一个读者不能同借两本相同的书!

\n");

}

elseif(strcmp(p1->borrow[i].borrow_book_num,"0")==0)/*如果没有重复*/

{

printf("\n请输入你要归还图书的日期:

");

scanf("%s",lim_date);

strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num);/*记录所借书号,并且借书数目加一,现存量减一*/

strcpy(p1->borrow[p1->right-1].limit_date,lim_date);

p0->book_xy--;

printf("\n读者编号%s借书完毕!

按任意键继续下步操作..",p1->reader_num);

}

}

}

else/*此读者从未借过书*/

{

printf("\n请输入你要归还图书的日期:

");

scanf("%s",lim_date);

strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num);/*记录所借书号,并且借书数目加一,现存量减一*/

strcpy(p1->borrow[p1->right-1].limit_date,lim_date);

p0->book_xy--;

printf("\n读者编号%s借书完毕!

按任意键继续下步操作..",p1->reader_num);

}

END:

//getch();

system("cls");

}

voidReturn_Book()/*还书模块*/

{

BK*p;RD*q;

inti,j,find=0;

charreturn_book_num[10],retu

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

当前位置:首页 > 教学研究 > 教学案例设计

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

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