欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    U盘管理系统数据结构与算法课程设计.docx

    • 资源ID:12673425       资源大小:268.03KB        全文页数:21页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    U盘管理系统数据结构与算法课程设计.docx

    1、U盘管理系统数据结构与算法课程设计目 录 1 需求分析 11.1任务与分析 11.2测试数据 12 概要设计 22.1系统功能模块 22.2功能介绍 23 详细设计 33.1主函数的实现 33.2功能函数实现 44 调试分析 104.1调试 104.2测试 105 用户使用说明 166 测试结果 16结 论 17摘 要 本课题是编写一个U盘管理系统。将所有U盘信息录入一个二进制文件中,要进行操作时(增、删、改、查),把这些信息读取到顺序栈中,完全在顺序栈内操作,确保原始数据的安全性。当已确认要对原始数据进行更新操作时,再把栈中的信息录入二进制文件中。关键词:管理系统;顺序栈;安全性引 言 本课

    2、题名为U盘管理系统,该系统通过C+编程语言,并借助数据结构中的栈和文件流操作实现。系统共七个功能,分别实现对U盘信息的录入、显示、查找、删除等。这个系统大大减小人工管理U盘信息的难度和复杂度,且操作简单易懂,该管理人员带来莫大的好处。1 需求分析 1.1任务与分析 1.实现对U盘信息的录入,并以二进制文件保存。由于U盘信息非单一数据类型,所以需要借助结构体。2. 实现对U盘信息的读取(从二进制文本中),并将读取的信息存入顺序栈结构体中。此功能很重要,后面的功能实现都要借助栈来进行。3. 实现对U盘信息的查找,输入要查找的U盘容量进行查找。不改变栈中的数据。4. 实现对U盘信息的修改,在栈中找出

    3、需要修改的U盘,并进行修改。改变后的信息最终存入文本中。5. 实现对U盘信息的删除,在栈中找出需要删除的U盘,并进行删除。改变后的信息最终存入文本中。6. 实现对U盘信息的显示,将存入栈中的信息全部显示出来,不改变栈中的数据。1.2测试数据 1.打开系统直接选择录入,并输入以下信息。000016 金士顿 16 2 1 1 2000014 金士顿 32 1 2 1 2000012 金士顿 16 2 2 1 1001022 台电 8 1 2 1 2001011 台电 32 2 1 1 2000112 惠普 16 1 2 2 2000114 惠普 8 2 2 1 22.读取信息后,查找到所有容量为1

    4、6G的U盘,输入以下信息。163.修改第二条U盘信息,输入以下信息。2 000018 金士顿 8 1 2 1 24删除所有名字为金士顿,容量为16G的U盘,输入以下信息。金士顿 162 概要设计 2.1系统功能模块 系统功能图(2-1-1)2.2功能介绍1.录入信息:void add()。初始U盘信息或者中途添加U盘信息,并录入二进制文件。2.读取信息:void read()。将二进制文件中的所有信息读取到顺序栈中,方便后面的各种操作。3.显示信息:void show()。显示所有的U盘信息。4.修改信息:void alter()。找到要修改的U盘信息,并输入修改后的新信息。5.删除信息:vo

    5、id del()。按名字和容量查找到要删除的U盘,进行一条或多条信息的删除。6.查找信息:void find()。按容量进行查找。7.保存信息:void save()。在修改或删除操作后,确认对信息的更新,将新信息录入二进制文件中。3 详细设计3.1主函数的实现 void main() /主函数 int option; bool exit = 0; while (!exit) cout endl; cout U盘管理系统 endl; cout endl; cout 请选择操作: endl; cout 1.录入U盘信息 endl; cout 2.读取U盘信息 endl; cout 3.显示U盘信

    6、息 endl; cout 4.修改U盘信息 endl; cout 5.删除U盘信息 endl; cout 6.查找U盘信息 endl; cout 7.保存U盘信息 endl; cout 8.退出! endl; cout option; switch (option) case 1:add(); break; case 2:read(); break; case 3:show(); break; case 4:alter(); break; case 5:del(); break; case 6:find(); break; case 7:save(); break; case 8:exit =

    7、 1; break; default:cout 请输入1-7 endl;break; if (option != 8) system(pause); system(cls); 3.2功能函数实现1.录入U盘信息功能:手动输入U盘信息,该功能会将你输入的信息录入名为udisk.dat的二进制文本文件中。void add() /录入或添加记录 udisk u,n; char j, b, m, x; cout u.number; cout u.name; cout u.capacity; cout j; if (j = 1) strcpy_s(u.inferface,usb2.0); else st

    8、rcpy_s(u.inferface,usb3.0); cout b; if (b = 1) u.back_up = Y; else u.back_up = N; cout m; if (m = 1) u.encrypt = Y; else u.encrypt = N; cout x; if (x = 1) u.write_protect = Y; else u.write_protect = N; fstream outf; outf.open(udisk.dat, ios:app|ios:binary); if (!outf) cout 打开文件失败! endl; else outf.wr

    9、ite(char*)&u, sizeof(udisk); outf.close(); ss1.push(u); cout 录入成功! endl; 2.读取U盘信息功能:点击此选项,程序会自动将二进制文件udisk.dat中的记录压到顺序栈ss1中,并提示读取记录的个数。void read() /读取文本信息 fstream inf(udisk.dat, ios:in | ios:binary); if (!inf) cout 打开文件失败! endl; else while (!ss1.isempty() ss1.pop(); udisk u; while (!inf.eof() inf.re

    10、ad(char*)&u, sizeof(udisk); ss1.push(u); ss1.pop(); inf.close(); cout 读取成功,共有ss1.count()条记录 endl; 3.显示U盘信息功能:点击此选项,系统直接将所有的U盘信息显示出来,若无信息,则显示无信息。void show() /显示U盘信息 if (ss1.count() = 0)cout 未读取或无U盘信息! endl; else int i = 0; cout 番号 setw(10) 编号 setw(w) 名字 setw(10) 容量 setw(10) 接口 setw(10) 是否备份 setw(10)

    11、是否加密 setw(10) 是否写保护 endl; udisk u; while (!ss1.isempty() u = ss1.pop(); ss2.push(u); cout +i setw(10) u.number setw(w) u.name setw(7) u.capacity setw(12) u.inferface setw(5) u.back_up setw(10) u.encrypt setw(10) u.write_protect endl; while (!ss2.isempty() ss1.push(ss2.pop(); 4.修改U盘信息功能:点击此选项,系统会自动显示

    12、出所有的U盘信息,你只需选择要修改的U盘的番号,并输入修改后的信息, 修改后需点击保存选项将修改的信息存入二进制文件中。void alter() /修改U盘信息 if (ss1.count() = 0)cout 未读取或无U盘信息! endl; else int a, i = 1; udisk u; show(); cout a; if (a ss1.count() cout 您输入有误! endl; else while (i a) ss2.push(ss1.pop(); i+; u = ss1.pop(); char j, b, m, x; cout u.number; cout u.na

    13、me; cout u.capacity; cout j; if (j = 1) strcpy_s(u.inferface, usb2.0); else strcpy_s(u.inferface, usb3.0); cout b; if (b = 1) u.back_up = Y; else u.back_up = N; cout m; if (m = 1) u.encrypt = Y; else u.encrypt = N; cout x; if (x = 1) u.write_protect = Y; else u.write_protect = N; ss1.push(u); while

    14、(!ss2.isempty() ss1.push(ss2.pop(); cout 修改成功! endl; 5.删除U盘信息功能:点击此选项,系统会自动显示出所有的U盘信息,你只需选择要删除的U盘的番号,系统会自动删除你选择的信息,删除后需点击保存选项将信息存入二进制文件中。void del() /删除U盘信息 if (ss1.count() = 0)cout 未读取或无U盘信息! endl; else show(); int i=0;udisk u,n; cout n.name; cout n.capacity; while (!ss1.isempty() u = ss1.pop(); if(

    15、!strcmp(u.name,n.name)&u.capacity=n.capacity) cout u.number setw(w) u.name setw(7) u.capacity setw(12) u.inferface setw(5) u.back_up setw(10) u.encrypt setw(10) u.write_protect endl; i+; else ss2.push(u); while (!ss2.isempty() ss1.push(ss2.pop(); if(i) cout 成功删除i条信息! endl; else cout 无此属性的U盘! endl; 6

    16、.查找U盘信息功能:输入你要查找的U盘的容量,程序后自动输出所有满足要求的信息,若无,则显示未找到。void find() /按容量查找 if (ss1.count() = 0)cout 未读取或无U盘信息! endl; else int capa, i = 0, j = 0; cout capa; udisk u; while (!ss1.isempty() u = ss1.pop(); if (u.capacity = capa) if (j = 0) cout 编号 setw(w) 名字 setw(10) 容量 setw(10) 接口 setw(10) 是否备份 setw(10) 是否加

    17、密 setw(10) 是否写保护 endl; j+; cout u.number setw(w) u.name setw(7) u.capacity setw(12) u.inferface setw(5) u.back_up setw(10) u.encrypt setw(10) u.write_protect endl; i+; ss2.push(u); if (i = 0) cout 未找到! endl; while (!ss2.isempty() ss1.push(ss2.pop(); 4 调试分析4.1调试对字符串的比较,直接用“=”,导致删除操作无法实现。最后查阅资料,才发现有st

    18、rcmp()函数进行比较。4.2测试1、打开系统软件,选择录入信息,并依次输入测试信息(如图4-2-1、4-2-2)(图4-2-1)(图4-2-2)2、将信息读取到顺序栈中(如图4-2-3)(图4-2-3)3、显示U盘信息(如图4-2-4)(图4-2-4)4、按容量大小查找U盘信息(如图4-2-5)(图4-2-5)5、点击修改U盘信息,选择要修改的记录,输入修改结果,并保存(如图4-2-6、4-2-7、4-2-8)(图4-2-6)(图4-2-7)(图4-2-8)6、点击删除U盘信息,选择要删除的记录,并保存(如图4-2-9、4-2-10、4-2-11)(图4-2-9)(图4-2-10)(图4-

    19、2-11)5 用户使用说明 启动该管理系统后,根据界面显示的选项选择你所要进行的功能。若是第一次启动,请先选择录入U盘信息,因为此时文本文件为空,执行其他功能无效。若非第一次启动,在选择显示、修改、查找、删除功能之前要先选择读取U盘信息,因为尽管文本文件中有记录,但顺序栈为空,而这些功能都是在栈内操作。当栈内数据有改动(进行过修改或删除操作),要保存改动后的信息,一定要选择保存U盘信息选项,否则文本文件中的记录不会发生改动,修改无效。6 测试结果 基本功能实现无错,基本能识别不正确的测试数据,并能给出错误输入的提示。但界面设计不够美观,而且有两个bug未修复,一个就是当输入相同U盘信息时,系统

    20、不能识别出来,依然保存在文本中。之所以存在这个bug,是因为我对字符数组的比较还不够熟悉,不知道怎么实现。还有一个是,我用的编程软件VC+2013,当将这个管理系统移植到其他版本的软件时会提示错误且不能运行。结 论 本次课程设计用C+编写,运用顺序栈存储结构,完成增、删、改、查等功能,并且都能运行成功。 致 谢 致谢指导老师周立章!参考文献 1杨宝刚.开展企业管理信息化工作的步骤J.企业管理.2002.(11).12152Islamabad. Software tools for forgery detectionJ. Business line.2001. (5). 2932 3ClineMarshallP.ClineandGregA.Lomow,C+FAQs,Addison-Wesley,1995 4EckelBruceEckel,ThinkinginC+(C+编程思想,刘宗田等译),机械工业出版社,2000 5MaguireSteveMaguire,WritingCleanCode(编程精粹,姜静波等译),电子工业出版社,1993 6MeyersScottMeyers,EffectiveC+,Addison-Wesley,1992 7SummitSteveSummit,CProgrammingFAQs,Addison-Wesley,1996


    注意事项

    本文(U盘管理系统数据结构与算法课程设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开