个人书籍管理系统的设计与实现报告正文Word下载.docx

上传人:b****7 文档编号:22566385 上传时间:2023-02-04 格式:DOCX 页数:17 大小:139.11KB
下载 相关 举报
个人书籍管理系统的设计与实现报告正文Word下载.docx_第1页
第1页 / 共17页
个人书籍管理系统的设计与实现报告正文Word下载.docx_第2页
第2页 / 共17页
个人书籍管理系统的设计与实现报告正文Word下载.docx_第3页
第3页 / 共17页
个人书籍管理系统的设计与实现报告正文Word下载.docx_第4页
第4页 / 共17页
个人书籍管理系统的设计与实现报告正文Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

个人书籍管理系统的设计与实现报告正文Word下载.docx

《个人书籍管理系统的设计与实现报告正文Word下载.docx》由会员分享,可在线阅读,更多相关《个人书籍管理系统的设计与实现报告正文Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

个人书籍管理系统的设计与实现报告正文Word下载.docx

intyear;

intmonth;

intday;

//具体的购买日期

}DATE;

DATEdate;

//购买日期

charname[20];

//书的名字

charauthor[8];

//书的作者

inttype;

//存放书的类别(0计算机1物理2英语3数学)

intnum;

//存放书的位置编号

intprice;

//书的价格

}BOOK;

三、功能(函数)设计:

1.“菜单”模块menu():

此模块循环显示“请按键选择操作”命令菜单,接收键盘输入的

命令,检查命令是否合法,若合法则调用相应下层函数,若不合

法,则返回菜单,重新输入。

2.“输入”模块shuru():

此模块接收从键盘输入的书籍信息,保

存到建立的信息表中。

3.“查找”模块chazhao():

此模块提供查找功能,用户可根据编号或者类别两种途径对信息表l中的书籍进行查找,根据用户输入的信息,从而查找出整本

书的信息,并通过调用打印函数将查找到的书籍信息显示出来。

4.“排序”模块sort():

此模块有两种排序方法,按书名和类别进行排序,并通过打印函数将排过序的书籍信息显示出来。

5.“插入”模块insert():

此模块接受从键盘输入的一条新的

记录,按“购买日期”顺序插入到信息表l中。

6.“删除”模块delete():

此模块接收从键盘输入的一条记录

的“书名”,在信息表l中查找,如找到该记录则删除。

四、界面设计:

对界面进行一定的调整,使其看起来整齐、规范和美观,容易看出操作所需要的步骤和所需要输入的指令代码。

五、程序设计:

各函数功能说明及其流程图:

1.主函数main()

a.函数功能:

建立线性表,对相关的数据进行初始化,并对主界面进行设计,当选择执行相关的功能,调用相关的函数来实现所需要的功能。

开始

b.函数流程图

 

建立线性表l

输入书籍信息

1

f=6

按书名删除

f=5

按购买日期插入

f=4

按类别查找

f=3

按编号查找

f=2

按类别排序

f=1

按书名排序

显示插入后的信息

显示查找书籍信息

显示排序结果

显示删除后的信息

f=0,退出管理系统

结束

2.按书名排序函数sort1()

a.函数功能:

将已有的书籍按书名排序。

b.函数流程图

i=0,j=0

i+1=i

j=i+1

j+1=j

strcmp(l.elem[i].name,l.elem[j].name)>

temp=l.elem[i];

l.elem[i]=l.elem[j];

l.elem[j]=temp;

j<

l.length

i<

l.length-1

3.按类别排序函数sort2()

将已有书籍按类别升序排列。

l.elem[i].type>

l.elem[j].type

4.按编号查找函数chazhao1()

系统将根据用户输入的编号,找到对应的书籍,并通过调用print2函数显示找到的书籍信息。

l.length==0

low=0,high=l.length,mid,flag=0

low<

=high

mid=(low+high)/2

n==l.elem[mid].num

否是

flag=1

n>

l.elem[mid].num

是否是

print2(l,mid)

high=mid-1

low=mid+1

panduan1(ch)!

=0

chazhao1(l)

panduan2(ch)!

5.按类别查找函数chazhao2()

系统将根据用户输入的类别,找到对应的书籍,并通过调用print2函数显示找到的书籍信息。

n==l.elem[mid].type

l.elem[mid].type

chazhao2(l)

6.按购买日期插入函数insert()

用户输入要插入的书记的信息,函数将根据购买日期的先后顺序将新书插入到信息表中。

输入要插入书籍的信息

i=0

book.date.year<

l.elem[i].date.year

将新书信息直接存入信息表中

将新书放在最后位置上

将新书插入到第i-1个位置,此后的书依次向后移动一个位置

是否继续插入

7.按书名删除函数Delete()

用户输入要删除的书籍信息,函数在信息表中找到该书籍,并删除。

(strcmp(book.name,l.elem[i].name)==0

该书籍不存在

找到要删除的书籍,并删除,此后的书籍依次向前移动一个位置

是否继续删除

编码时遇到的问题及解决办法

问题1:

如何比较两个字符串是否相同?

解决办法:

不能够使用类似于“if(book[i].name==name)”的结构,比较两个字符串是否相等有专门的函数“strcmp”。

如:

strcmp(book[i].name,name)==0,则说明两个字符串相同。

问题2:

不能将书籍插入的书名信息显示出来

解决办法:

不能用l.elem[l.length].author=book.author直接将书名赋值,因为赋值只能是整型数据,而字符串要用字符串处理函数strcpy进行处理,即用strcpy(l.elem[k].author,book.author)处理。

六、运行与测试:

1、测试的数据及其结果:

测试的数据

第1本书籍信息:

书名编号作者类别价格购买日期(年月日)

aa14zz35720010114

第2本书籍信息:

ff12vv24720080216

插入的书籍信息

Ss13xx15820040312

测试结果

输入书籍信息

(1)按书名排序功能

(2)按类别排序功能

(3)按编号查找功能

(4)按类别查找功能

(5)按购买日期插入功能

(6)按书名删除功能

(7)退出管理系统功能

2、运行与测试期间遇到的问题及其解决办法。

问题1:

退出系统时出错

去掉break语句。

按编号查找函数中的是否继续查找功能,输入y后,应

该是继续按编号进行查找,而不是改成按类别查找。

把if(panduan2(ch)chazhao2(l)中的chazhao2(l)改成chazhao1(l),即仍调用按编号查找函数本身。

七、结论:

个人书籍管理系统的实现,从程序代码上很好的结合了线性表、查找和排序等知识,使得系统功能更加接近完善。

程序能将每一部分的功能显示出来,但是还有待进行改良。

比如说,主界面设计要优美,给用户一种清晰的感觉;

排序功能现在只有类别和书名排序两个,还应添加可以通过编号、价格和购买日期来排序的功能;

查找和删除模块一样要添加类似的功能,这样才能使得管理系统更加多功能化。

另外,要实现查找和排序两个功能还可以运用其他的算法,例如查找可以通过哈希表来实现,排序功能可以用直接插入排序、希尔排序等算法实现。

八、设计后的思考:

通过本次课程设计,对查找和排序等算法有了更深的认识和初步的运用,将平时课堂上学的理论知识运用到实际操作中。

这次课程设计过程让我找到了自己的许多不足之处,特别是在自己编写程序一块,不能将所学运用于所用,借鉴了别人运行成功的程序代码。

因此,要想让自己的操作能力加强,还必须从基本的开始做起,能够理解一个程序代码的意思是远远不够的,自己得编写简单的程序,从简单到复杂,慢慢的提升能力。

参考文献:

1、严蔚敏等.数据结构(C语言版).清华大学出版社2004

2、谭浩强.C语言程序设计.清华大学出版社.2002

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

当前位置:首页 > 工程科技 > 冶金矿山地质

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

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