条目中图分类号查询系统设计报告

分类号查询  时间:2021-02-28  阅读:()

Visual Basic课程设计报告

中图分类号查询系统

姓名:XXXXXXXX班级:XXXXXXXXXXX学号XXXXXXXXXX

难度☆☆☆☆©知识点 (1)树形视图控件的应用 (2)文本文件的读写;(3)拖放操作;

(4)选项卡的应用 (5)字符串处理 (6)图像列表控件的应用。

一. 设计功能

《中国图书馆分类法》是我国建国后编制出版的一部具有代表性的大型综合性分类法,是当今国内图书馆使用最广泛的分类法体系简称《中图法》 。本课程要求编制一个"中图分类号查询系统"程序供用户方便地浏览、查询、修改、添加和删除分类号。

具体需实现功能如下

(1) 启动程序后自动将中图分类号添加到树形视图中供用户实施浏览、查询、修改、添加和删除分类号的操作。

(2) 用户可以使用鼠标操作展开、折叠各个条目,浏览各个层次的分类号。如果一个分

□□

类号是一个大类(包含子条目)f显示文件夹图标~ ,否则显示为気。展开的大类显示

文件夹图标开3 。

(3)窗口右侧提供三个选项卡提供查询、添加和删除功能。在〃查询"选项卡的〃查询关键字〃文本框中输入要查询的学科名称(或名称的一部分) ,选择一种〃查找方式〃 然后点击〃放大镜"按钮放1 。用户单击"放大镜"按钮后,程序搜索用户要求的关键字所对应的分类号并添加到列

表框中。如在精确查找的模式下不能查找则弹出消息框询问用

户是否进行模糊查询。在模糊查询中只要学科名中包含查找关键字即被搜索排列出来前

面有"+"号的表示的是大类下辖子条目。另外 “查找结果"的列表框下面显示查到的条目数。

在"查找结果"列表框中双击一个分类号左侧的树型视图中自动展开显示相应条目。

4中图分类号是在不断发展和更新的通过"添加“选项卡可以添加新的分类号。首先在左侧树型视图中选择一个条目,在“添加〃选项卡的〃新条目编号"和〃新条目名称冲输入最新内容再单击〃添加到当前条目〃的按钮,新的条目会作为当前条目的子条目。如果选择的条目不是大类无子条目 添加新条目之后即升级为大类。

如果添加的条目编号已经存在程序会显示"条目编号已经存在。 、 丿_、  / 。在该系统中,一个条目的编号一定是以上一级的编号为开头所以添加新条目时程序会自动判断新输入的内容是否满足命名规则如果不符合会弹岀对话框显示〃请输入新条目编号和新条目

名称 、a编号应以上一级编号开头。 、 r等。

(5)在"删除"选项卡有两种方式可以删除已有的分类号,一种是从左边树型视图中选择一个条目然后单击"删除所选条目〃按钮或者是在按住"Ctrl 〃键的同时从树型视图中选择将要删除的条目确认删除后将其拖放至窗口右下方的"垃圾箱〃图标六上回收站的图标也随之改变为~

6修改分类号使用树型视图的〃在位编辑"功能类似于W i ndows资源管理器中文件夹的重命名。先要选择修改条目双击即可 确认后进入编辑状态输入新内容后回车或单击非编辑区即可修改分类号。

i j进入编辑迖态后只龍修改条目名擁不能修改编号\ 「厂 / 。

V注鎗卑与名称之向用一不空格芬隔。 

(7)程序在退出时 弹出对话框 询问是否保存更改内容,单击〃是"按钮保存并退出程序单击"否"则不保存内容。而取消则回到上一步。

二. 设计难点分析与心得:

(1)文本文件“ZTF L H.txt"的数据读入和保存时写入,即字符串的批量处理:

I .在数据读入的过程中首先需要使用Dir函数确认文件是否存在。

IfDir(fn)=”"Then 判断文件是否存在

msgl=MsgBox(…ZTFLH.txt”文件遗失,请找回该文件X X,vbOKOnlyf"中图分类号查询系

If msgl=1 Then '确定声明文件丢失

SS Tab.Enabled=False '选项卡置灰

End If

口.接着需要使用InStr函数定位Mid函数取出所选择的数据。in ti二In S tr(s td"*") '在字符串strl开始搜索*第一次出现的位置str2二Mid(strl,Z inti-1) '删掉已读入的字符,读出它前一个的位

皿.并用Line Input#语句整行读入。另外需要用EOF函数判断当前位置是否为文件尾位置。如果是返回True;否则返回False。

Do While Not EOF(l) 'EOF(])为文件尾e Input#1 s廿1 '读入—行IV.在写入修改文件时,需要使用For语句和Do. . .Loop的嵌套实现条目的逐个读入。

ForIngl二]7b Tree Viewl.Nodes.Count j二InStr(Tree Viewl.Nodes(lngl).text,"”)stKL=

Tree Vie wl ・No des(lngl).text '找到条目编

Setnodel二Tree Vie wl.Nodes(lngl) 存放该节Do 点

Set node2二nodel

If nodel.Parent Is Nothing Then '无父节点,无鱷作

Exit Do

End If

Set nodel=node2.Parent 有父节点s tr2二n o de l.Key&s tr2 '给str2赋上子时节点的数Loop Un til nodel Is Nothing strl 搜寻到根据条目时跳到下一个大类二strl&""&i&str2 i=0 '有父节点,则将子节点添加在航,并编s tr2二"”

Prin t#1,s trl

Next '将strl的数据写入文本文件"Z TFL H.txt"

(2)使用树型视图(TreeView)控件以层次形式显示分类号:

I •首先进行初始设置,并与ImageList空间连接。

Tree ViewLLineStyle二tvwTreeLines

TreeViewl. ImageList二ImageListl '使用ImageList图像控件保存图Tree Viewl.Style=tvwTreelinesPlusMinusPicture Text 标

I I •在程序运行中,要时刻注意TreeView状态的一致性,以删除过程为例保证图标的及时变化。

If msg二1 Then

If TreeViewLSelectedltem.Index v>0 Then

If Tree Viewl.Selectedltem.Previous Is Nothing And Tree ViewlSelectedltem.Next Is

Nothing Then

TreeViewl.Selectedltem.Paren t.Expa ndedlmage=3

TreeViewl.Nodes.Remove TreeViewl.Selectedltem.Index

TreeViewl.Nodes.Remove TreeViewl.Selectedltem.Index

End If

Imagel.Picture二ImageListl.ListImages(4) ・Picturechange=True

Exit Sub

End If

皿使用TreeView的在位编辑功能,注意要对新录入的条目仔细检查。

Private Sub TreeViewl_AfterLabelEdit(Can cel As Integer;NewString As String)

If NewString="“Then '未输入新内容

Cancel二1 'Cancel参数赋非零值,取消编辑回到之前内

Elself InStr(Ne wString, "")=0 Then '未输入正确格式

Call MsgBox("编号与名称之间用一个空格分隔! 、U vblnformation, "中图分类号查询系统7

Cancel二1 'Cancel参数赋非零值,取消编辑回到之前内

Else

inti二InStr(Ne wString,"”) '找到编号鏈_____If Mid(NewString,Z inti -1)v>Tree Viewl.Selectedltem.Key Then__________________________

'检查编号是否匹配Call MsgBox("只能修改条目名称不能修改编号 、 (-vblnformation, "中图分

类号查询系统") '不匹配报

Cancel二1 'Cancel参数赋非零值,取消编辑回到之前内

Else

CallMsgBoxC你所做的修改会在程序退出时自动保存! vb OKOnly+vblnformation,

"中图分类号查询系统") '弹出提示框

_______change=True '旧内容被改变,Change逻辑量置为真

End If

En d Sub

(3)使用拖放操作(Drag And Drop)实现拖动功能

「使用Drag方法实现什么时候调用该方法进入拖放状态也很重要。鼠标单击可以把插入点放置到文本框中为了不影响正常的编辑功能使用Ctrl键加鼠标启动拖放操作。

If Shift二2 Then '按下Ctrl键选择删除条目,开始拖放

HostMem,最新优惠促销,全场75折优惠,大硬盘VPS特价优惠,美国洛杉矶QuadraNet机房,KVM虚拟架构,KVM虚拟架构,2核2G内存240GB SSD,100Mbps带宽,27美元/年

HostMem近日发布了最新的优惠消息,全场云服务器产品一律75折优惠,美国洛杉矶QuadraNet机房,基于KVM虚拟架构,2核心2G内存240G SSD固态硬盘100Mbps带宽4TB流量,27美元/年,线路方面电信CN2 GT,联通CU移动CM,有需要美国大硬盘VPS云服务器的朋友可以关注一下。HostMem怎么样?HostMem服务器好不好?HostMem值不值得购买?HostMem是一家...

RAKsmart 2021新年新增韩国服务器及香港美国日本VPS半价

RAKsmart 商家我们肯定不算陌生,目前主要的营销客户群肯定是我们。于是在去年的时候有新增很多很多的机房,比如也有测试过的日本、香港、美国机房,这不今年有新增韩国机房(记得去年是不是也有增加过)。且如果没有记错的话,之前VPS主机也有一次磁盘故障的问题。 这不今天有看到商家新增韩国服务器产品,当然目前我还不清楚商家韩国服务器的线路和速度情况,后面我搞一台测试机进行...

棉花云1折起(49元), 国内BGP 美国 香港 日本

棉花云官网棉花云隶属于江西乐网科技有限公司,前身是2014年就运营的2014IDC,专注海外线路已有7年有余,是国内较早从事海外专线的互联网基础服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务(SaaS),拥有丰富的国内BGP、双线高防...

分类号查询为你推荐
中国联通话费查询请问中国联通如何查询剩余话费?yy频道中心yy频道怎么进频道中心,求图~!淘宝收费淘宝网的收费项目有哪些博客外链博客外链怎么做好湖南商标注册在湖南商标注册到底有什么用,不就是一个图标吗?今日热点怎么删除今日热点怎么卸载删除 今日热点新闻彻底卸载删神雕侠侣礼包大全神雕侠侣手游每天送的元宝买什么合适雅虎天盾高手进来看看我该怎么办 新装的ie8 内存使用率达到100%了创维云电视功能创维健康云电视有什么功能?lockdowndiphone4s 完美越狱5.1.1时出现Could not connect to lockdownd。求救啊!!
北京主机租用 美国vps 互联网域名管理办法 edgecast 联通c套餐 sub-process 好看qq空间 小米数据库 国外免费asp空间 电信虚拟主机 网通服务器托管 江苏双线服务器 域名dns 东莞idc 中国电信测速器 linode支付宝 成都主机托管 hdroad 重庆联通服务器托管 聚惠网 更多