U盘管理系统数据结构课程设计.docx
- 文档编号:25078014
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:22
- 大小:288.15KB
U盘管理系统数据结构课程设计.docx
《U盘管理系统数据结构课程设计.docx》由会员分享,可在线阅读,更多相关《U盘管理系统数据结构课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
U盘管理系统数据结构课程设计
数学与计算机学院
课程设计说明书
课程名称:
数据结构与算法
课程代码:
6014389
题目:
U盘管理系统
年级/专业/班:
2012级软件工程04班
学生姓名:
学 号:
312012080611425
开始时间:
2014年5月20日
完成时间:
2014年5月30日
课程设计成绩:
学习态度及平时成绩(20)
技术水平与实际能力(20)
完成情况(20)
创新(5)
说明书(计算书、图纸、分析报告)撰写质量(35)
总分(100)
指导教师签名:
年月日
目录
1需求分析1
1.1任务与分析1
1.2测试数据1
2概要设计2
2.1系统功能模块2
2.2功能介绍2
3详细设计3
3.1 主函数的实现3
3.2功能函数实现4
4调试分析10
4.1调试10
4.2测试10
5用户使用说明16
6测试结果16
结论17
摘要
本课题是编写一个U盘管理系统。
将所有U盘信息录入一个二进制文件中,要进行操作时(增、删、改、查),把这些信息读取到顺序栈中,完全在顺序栈内操作,确保原始数据的安全性。
当已确认要对原始数据进行更新操作时,再把栈中的信息录入二进制文件中。
关键词:
管理系统;顺序栈;安全性
引言
本课题名为U盘管理系统,该系统通过C++编程语言,并借助数据结构中的栈和文件流操作实现。
系统共七个功能,分别实现对U盘信息的录入、显示、查找、删除等。
这个系统大大减小人工管理U盘信息的难度和复杂度,且操作简单易懂,该管理人员带来莫大的好处。
1需求分析
1.1任务与分析
1.实现对U盘信息的录入,并以二进制文件保存。
由于U盘信息非单一数据类型,所以需要借助结构体。
2.实现对U盘信息的读取(从二进制文本中),并将读取的信息存入顺序栈结构体中。
此功能很重要,后面的功能实现都要借助栈来进行。
3.实现对U盘信息的查找,输入要查找的U盘容量进行查找。
不改变栈中的数据。
4.实现对U盘信息的修改,在栈中找出需要修改的U盘,并进行修改。
改变后的信息最终存入文本中。
5.实现对U盘信息的删除,在栈中找出需要删除的U盘,并进行删除。
改变后的信息最终存入文本中。
6.实现对U盘信息的显示,将存入栈中的信息全部显示出来,不改变栈中的数据。
1.2测试数据
1.打开系统直接选择录入,并输入以下信息。
000016金士顿162112
000014金士顿321212
000012金士顿162211
001022台电81212
001011台电322112
000112惠普161222
000114惠普82212
2.读取信息后,查找到所有容量为16G的U盘,输入以下信息。
16
3.修改第二条U盘信息,输入以下信息。
2000018金士顿81212
4.删除所有名字为金士顿,容量为16G的U盘,输入以下信息。
金士顿16
2概要设计
2.1系统功能模块
系统功能图(2-1-1)
2.2功能介绍
1.录入信息:
voidadd()。
初始U盘信息或者中途添加U盘信息,并录入二进制文件。
2.读取信息:
voidread()。
将二进制文件中的所有信息读取到顺序栈中,方便后面的各种操作。
3.显示信息:
voidshow()。
显示所有的U盘信息。
4.修改信息:
voidalter()。
找到要修改的U盘信息,并输入修改后的新信息。
5.删除信息:
voiddel()。
按名字和容量查找到要删除的U盘,进行一条或多条信息的删除。
6.查找信息:
voidfind()。
按容量进行查找。
7.保存信息:
voidsave()。
在修改或删除操作后,确认对信息的更新,将新信息录入二进制文件中。
3详细设计
3.1 主函数的实现
voidmain()//主函数
{
intoption;boolexit=0;
while(!
exit)
{
cout<<"︿﹀︿﹀︿﹀︿﹀︿"< cout<<"*U盘管理系统*"< cout<<"﹀︿﹀︿﹀︿﹀︿﹀"< cout<<"请选择操作: "< cout<<"1.录入U盘信息"< cout<<"2.读取U盘信息"< cout<<"3.显示U盘信息"< cout<<"4.修改U盘信息"< cout<<"5.删除U盘信息"< cout<<"6.查找U盘信息"< cout<<"7.保存U盘信息"< cout<<"8.退出! "< cout<<"你的选择: "; cin>>option; switch(option) { case1: add();break; case2: read();break; case3: show();break; case4: alter();break; case5: del();break; case6: find();break; case7: save();break; case8: exit=1;break; default: cout<<"请输入1-7"< } if(option! =8) { system("pause"); system("cls"); } } } 3.2功能函数实现 1.录入U盘信息功能: 手动输入U盘信息,该功能会将你输入的信息录入名为"udisk.dat"的二进制文本文件中。 voidadd()//录入或添加记录 { udisku,n;charj,b,m,x; cout<<"请输入编号: "; cin>>u.number; cout<<"请输入名字: "; cin>>u.name; cout<<"请输入容量: "; cin>>u.capacity; cout<<"请选择接口: 1.usb2.02.usb3.0"; cin>>j; if(j=='1')strcpy_s(u.inferface,"usb2.0"); elsestrcpy_s(u.inferface,"usb3.0"); cout<<"请选择是否备份: 1.yes2.no"; cin>>b; if(b=='1')u.back_up='Y'; elseu.back_up='N'; cout<<"请选择是否加密: 1.yes2.no"; cin>>m; if(m=='1')u.encrypt='Y'; elseu.encrypt='N'; cout<<"请选择是否写保护: 1.yes2.no"; cin>>x; if(x=='1')u.write_protect='Y'; elseu.write_protect='N'; fstreamoutf; outf.open("udisk.dat",ios: : app|ios: : binary); if(! outf) cout<<"打开文件失败! ! ! "< else { outf.write((char*)&u,sizeof(udisk)); outf.close(); ss1.push(u); cout<<"录入成功! ! ! "< } } 2.读取U盘信息功能: 点击此选项,程序会自动将二进制文件"udisk.dat"中的记录压到顺序栈ss1中,并提示读取记录的个数。 voidread()//读取文本信息 { fstreaminf("udisk.dat",ios: : in|ios: : binary); if(! inf) cout<<"打开文件失败! ! ! "< else{ while(! ss1.isempty()) { ss1.pop(); } udisku; while(! inf.eof()) { inf.read((char*)&u,sizeof(udisk)); ss1.push(u); } ss1.pop(); inf.close(); cout<<"读取成功,共有"< } } 3.显示U盘信息功能: 点击此选项,系统直接将所有的U盘信息显示出来,若无信息,则显示无信息。 voidshow()//显示U盘信息 { if(ss1.count()==0)cout<<"未读取或无U盘信息! ! ! "< else { inti=0; cout<<"番号"< udisku; while(! ss1.isempty()) { u=ss1.pop(); ss2.push(u); cout<<++i< } while(! ss2.isempty()) { ss1.push(ss2.pop()); } } } 4.修改U盘信息功能: 点击此选项,系统会自动显示出所有的U盘信息,你只需选择要修改的U盘的番号,并输入修改后的信息,修改后需点击保存选项将修改的信息存入二进制文件中。 voidalter()//修改U盘信息 { if(ss1.count()==0)cout<<"未读取或无U盘信息! ! !
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管理 系统 数据结构 课程设计