U盘管理系统数据结构课程设计.doc
《U盘管理系统数据结构课程设计.doc》由会员分享,可在线阅读,更多相关《U盘管理系统数据结构课程设计.doc(21页珍藏版)》请在沃文网上搜索。
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盘信息录入一个二进制文件中,要进行操作时(增、删、改、查),把这些信息读取到顺序栈中,完全在顺序栈内操作,确保原始数据的安全性。当已确认要对原始数据进行更新操作时,再把栈中的信息录入二进制文件中。关键词:管理系统;顺序栈;安全性引 言 本课题名为U盘管理系统,该系统通过C+编程语言,并借助
2、数据结构中的栈和文件流操作实现。系统共七个功能,分别实现对U盘信息的录入、显示、查找、删除等。这个系统大大减小人工管理U盘信息的难度和复杂度,且操作简单易懂,该管理人员带来莫大的好处。1 需求分析 1.1任务与分析 1.实现对U盘信息的录入,并以二进制文件保存。由于U盘信息非单一数据类型,所以需要借助结构体。2. 实现对U盘信息的读取(从二进制文本中),并将读取的信息存入顺序栈结构体中。此功能很重要,后面的功能实现都要借助栈来进行。3. 实现对U盘信息的查找,输入要查找的U盘容量进行查找。不改变栈中的数据。4. 实现对U盘信息的修改,在栈中找出需要修改的U盘,并进行修改。改变后的信息最终存入文
3、本中。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.读取信息后,查找到所有容量为16G的U盘,输入以下信息。163.修改第二条U盘信
4、息,输入以下信息。2 000018 金士顿 8 1 2 1 24删除所有名字为金士顿,容量为16G的U盘,输入以下信息。金士顿 162 概要设计 2.1系统功能模块 U盘管理系统录入信息查找信息读取信息显示信息修改信息删除信息保存信息保存信息系统功能图(2-1-1)2.2功能介绍1.录入信息:void add()。初始U盘信息或者中途添加U盘信息,并录入二进制文件。2.读取信息:void read()。将二进制文件中的所有信息读取到顺序栈中,方便后面的各种操作。3.显示信息:void show()。显示所有的U盘信息。4.修改信息:void alter()。找到要修改的U盘信息,并输入修改后的
5、新信息。5.删除信息:void 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.显示
6、U盘信息 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 = 1; break;d
7、efault: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 strcpy_s(u.inferface,usb
8、3.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;elseoutf.write(char*)&u, sizeof(udisk);outf.clo
9、se();ss1.push(u);cout 录入成功! endl;2. 读取U盘信息功能:点击此选项,程序会自动将二进制文件udisk.dat中的记录压到顺序栈ss1中,并提示读取记录的个数。void read() /读取文本信息fstream inf(udisk.dat, ios:in | ios:binary);if (!inf)cout 打开文件失败! endl;elsewhile (!ss1.isempty()ss1.pop();udisk u;while (!inf.eof()inf.read(char*)&u, sizeof(udisk);ss1.push(u);ss1.pop()
10、;inf.close();cout 读取成功,共有ss1.count()条记录 endl;3. 显示U盘信息功能:点击此选项,系统直接将所有的U盘信息显示出来,若无信息,则显示无信息。void show() /显示U盘信息if (ss1.count() = 0)cout 未读取或无U盘信息! endl;elseint i = 0;cout 番号 setw(10) 编号 setw(w) 名字 setw(10) 容量 setw(10) 接口 setw(10) 是否备份 setw(10) 是否加密 setw(10) 是否写保护 endl;udisk u;while (!ss1.isempty()u
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管理 系统 数据结构 课程设计