




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
经典word整理文档,仅参考,双击此处可删除页眉页脚。本资料属于网络整理,如有侵权,请联系删除,谢谢!高级语言程序设计报告班姓学成时级:名:号绩:间:指导教师:设计目的通过对图书的收录,创建出动态链表(存在文件中,并能从文件中读取所存储的数据);对图书编号、书名、、现存本数、出版社、出版日期、摘要等信息进行管理;使其有按图书编号的查找、排序以及添加、删除等操作功能。需求概述:设计图书管理系统,使之能提供以下功能:录入图书信息并保存到数据文件显示所有收录图书信息检索所需图书信息修改图书信息并保存5)将收录的图书编号排序5)添加图书信息6)创建新的数据文件7)删除图书信息8)修改保存密码需求说明:图书信息包括图书编号、书名、、现存本数、出版社、出版日期、摘要;录入的图书信息要求用文件形式保存,并可以对其进行检索、增添、排序、删除等基本操作;图书收录时的信息的显式不需要求有一定的规范格式,可任意中英文输入;信息的记录;系统开始前应以指定账号密码登陆,其中登陆有三次机会;所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户异常情况。总体设计通过对图书的收录,创建出动态链表(存在文件中,并能从文件中读取所存信息进行管理;使其有按图书编号的查找、排序以及添加、删除等操作功能。该系统可以按功能进行模块划分,其模块图如下:修改密码保存到文件中图书编号书名作者现存本书出出版日期摘要版社系统模块图其中:录入信息模块完成图书信息的输入到文件功能,输入信息包括创建文件名,图书编号,,现存本数,出版社,出版日期和摘要等;显示信息模块完成已录入图书信息的显示;检索信息模块完成图书信息的查询,查询时对应有按输入图书编号方式查询;添加图书信息模块完成图书信息的添加及保存功能;图书排序模块完成对录入图书的编号进行排序功能;创建图书信息新文件模块可完成通过建立新的文件夹录入新的图书信息功能;图书信息删除模块完成图书信息的删除及保存删除功能;修改密码模块完成新用户名及用户密码的收录功能;数据结构本系统中主要的数据结构就是图书的管理结构,包含检索,增加,删除,排属性来进行处理。程序流程系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,流程图如下:NY(载入)创建数据文件检索增加删除排序退出修改密码返回上层输入编号输入新密码结束程序流程图详细设计根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:1)登录模块欢迎界面;提示输入用户名;提示输入密码(暗文);While(用户名密码匹配不成功){提示输入用户名;提示输入密码(暗文);}if(错误次数大于三次)提示并退出程序;2)一级菜单:询问用户创建新的数据文件或载入旧文件并等待读入指令;While(输入指令不正确){等待输入指令;根据输入指令调用不同函数;}3)创建新数据文件:询问新文件的名称;While(继续输入){读入图书信息并创建链表;提示是否继续输入;}创建并打开数据文件;将读入信息添加到图书信息文件中;4)载入旧数据文件:询问文件名称;打开文件;While(无法打开文件){提示错误;询问文件名称;打开文件;}从文件中读入信息并创建链表;提示打开成功;5)二级菜单:给出信息提示;绘制菜单(检索、增加、删除、排序、返回上一级菜单、修改密码、退出);提示菜单选择并读入到变量;while(输入指令不是退出){指令错误时给出提示;根据读入变量的值调用不同的模块函数;}6)增加图书信息模块:读入图书信息;插入到链表末端;提示是否继续输入;while(继续输入){读入图书信息;插入到链表末端;提示是否继续输入;}询问是否保存更改;if(选择保存更改){打开图书信息文件;将新的链表保存到图书信息文件中;关闭图书信息文件;}else不保存至文件中;7)图书信息查询模块:提示输入要查找的图书编码;链表中遍历查找;if(找到)提示并输出该图书信息;else给出未找到的提示;8)图书信息删除模块:提示并读入待删除的图书的编号;查找是否有符合条件的图书记录;if(有符合条件的记录){从链表中删除该结点;提示删除成功;}else提示没有符合条件的记录存在;询问是否保存更改;if(选择保存更改){打开图书信息文件;将新的链表保存到图书信息文件中;关闭图书信息文件;}else不保存至文件中;9)修改密码模块:提示输入用户名;提示输入密码(暗文);While(用户名密码匹配不成功){提示输入用户名;提示输入密码(暗文);}if(错误次数大于三次)提示并退出模块;提示输入新密码;提示再输入一遍新密码;if(两次输入密码不一致)提示不正确并返回上一级菜单;else{修改密码;提示成功;}数据结构如下:图书信息结构体:typedefstruct//储存图书信息的数据结构{charnum[20];charname[20];charauthor[20];intleftnum;//编号//书名////现存本数//出版社//出版日期//摘要charpub[20];chardate[20];charabs[50];}Lib;链表结点结构:structnode//链表中每一个结点的结构//图书信息Libbook;structnode*next;};每一次出现bugC语言的强今后我会更加努力的学习C语言的知识,提升自己对C语言的应用能力。通过一个学期的c语言学习,我们领略了c语言程序设计领域之广泛,在期末的c上的东西付诸于实际问题的证明。作为通信有关专业的一名学生,深知这门课的重要性,通过一学期对C语言践生活中。总之,这次基于链表的图书管理系统的顺利完成,从中受益匪浅。虽然已经学习了一学期的C语言程序设计,但在完成本次的课题“基于链表:3.创建文件夹和载入图书信息4.进入主菜单6.增加图书信息7.删除图书信息过程中出现的问题和解决措施:1)在使用二级菜单中,输入的指令编号不是数字时程序会重复上一次的指令,scanfscanf致程序崩溃。2)在某些模块调用save函数时,如果当前链表为空的话,会导致内存不能为written的错误。检查程序后,发现如果传入save函数的头指针为空的话,fwrite函数则会导致内存不能为writtensave函数中加上对头指针意考虑当前操作指针为空时的情况,否则对一个空指针操作会导致程序崩溃。3)在使用删除图书信息模块时,如果原链表中只有一个节点时,删除该节点会导致内存不能为written把要删除的节点的前一个节点的next指针指向了要删除的节点的后一个节点,程序访问了一个空指针的next指针,导致内存错误。加入一个对于这种情况特殊处理的if语句即可解决问题。还是在对指针操作时一定要考虑指针为空的情况。4)在使用载入旧文件的功能模块时,从文件中读出数据创建链表之后,总会在\0作为终止符,但是在写入文件时乱码部分也会写入,因而造成在读入最后一个指针记录下来倒数第二个节点也就是有用的最后一个节点,将其next指针指向NULL即可。源程序清单3////{//{*{//////{}}//{{}}{////{//!!},{}//{}}//{{!}//{{}}}{library_user.txt,library_user.txt文件{}}{//{}////}{//{}{}//{}}//{}{{}//{}////}{{//{}}{}}{//
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 平方转让女儿协议书
- 林地协议书格式范文
- 美容学员培训协议书
- 民房转让协议书注意
- 私人债务重整协议书
- 林木砍伐协议书范本
- 芍药种植协议书范文
- 乡村硬化公路协议书
- 农村邻居建房协议书
- 清洁公司承包协议书
- 《漂亮的热带鱼》课件
- 地下建筑结构知到智慧树章节测试课后答案2024年秋南京工业大学
- 中心静脉压的监测与临床意义
- 2024年安阳职业技术学院单招职业技能测试题库
- 2025年上海外服招聘笔试参考题库含答案解析
- 2025南水北调东线山东干线限责任公司人才招聘30人管理单位笔试遴选500模拟题附带答案详解
- 【MOOC】人体寄生虫学-山东大学 中国大学慕课MOOC答案
- 第10课 竹节人-2023-2024学年六年级语文上册同步分层作业设计系列(统编版)
- 痛风的形成与治疗
- 专科医学生的职业规划
- 高空作业车(剪叉式、曲臂式)验收表
评论
0/150
提交评论