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

上传人:b****1 文档编号:1482897 上传时间:2023-04-30 格式:DOCX 页数:21 大小:268.03KB
下载 相关 举报
U盘管理系统数据结构与算法课程设计文档格式.docx_第1页
第1页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第2页
第2页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第3页
第3页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第4页
第4页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第5页
第5页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第6页
第6页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第7页
第7页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第8页
第8页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第9页
第9页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第10页
第10页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第11页
第11页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第12页
第12页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第13页
第13页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第14页
第14页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第15页
第15页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第16页
第16页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第17页
第17页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第18页
第18页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第19页
第19页 / 共21页
U盘管理系统数据结构与算法课程设计文档格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《U盘管理系统数据结构与算法课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《U盘管理系统数据结构与算法课程设计文档格式.docx(21页珍藏版)》请在冰点文库上搜索。

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

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<

<

"

︿﹀︿﹀︿﹀︿﹀︿"

<

endl;

*U盘管理系统*"

﹀︿﹀︿﹀︿﹀︿﹀"

请选择操作:

"

1.录入U盘信息"

2.读取U盘信息"

3.显示U盘信息"

4.修改U盘信息"

cout<

5.删除U盘信息"

6.查找U盘信息"

7.保存U盘信息"

8.退出!

你的选择:

;

cin>

>

option;

switch(option)

{

case1:

add();

break;

case2:

read();

case3:

show();

case4:

alter();

case5:

del();

case6:

find();

case7:

save();

case8:

exit=1;

default:

cout<

请输入1-7"

break;

}

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;

请输入名字:

u.name;

请输入容量:

u.capacity;

请选择接口:

1.usb2.02.usb3.0"

j;

if(j=='

1'

)strcpy_s(u.inferface,"

usb2.0"

elsestrcpy_s(u.inferface,"

usb3.0"

请选择是否备份:

1.yes2.no"

b;

if(b=='

)u.back_up='

Y'

elseu.back_up='

N'

请选择是否加密:

m;

if(m=='

)u.encrypt='

elseu.encrypt='

请选择是否写保护:

x;

if(x=='

)u.write_protect='

elseu.write_protect='

fstreamoutf;

outf.open("

ios:

:

app|ios:

binary);

if(!

outf)

cout<

打开文件失败!

else

outf.write((char*)&

u,sizeof(udisk));

outf.close();

ss1.push(u);

录入成功!

}

2.读取U盘信息功能:

点击此选项,程序会自动将二进制文件"

中的记录压到顺序栈ss1中,并提示读取记录的个数。

voidread()//读取文本信息

fstreaminf("

in|ios:

inf)

else{

ss1.isempty())

ss1.pop();

udisku;

inf.eof())

inf.read((char*)&

ss1.push(u);

ss1.pop();

inf.close();

读取成功,共有"

ss1.count()<

条记录"

3.显示U盘信息功能:

点击此选项,系统直接将所有的U盘信息显示出来,若无信息,则显示无信息。

voidshow()//显示U盘信息

if(ss1.count()==0)cout<

未读取或无U盘信息!

inti=0;

番号"

setw(10)<

编号"

setw(w)<

名字"

容量"

接口"

是否备份"

是否加密"

是否写保护"

u=ss1.pop();

ss2.push(u);

++i<

u.number<

u.name<

setw(7)<

u.capacity<

setw(12)<

u.inferface<

setw(5)<

u.back_up<

u.encrypt<

u.write_protect<

ss2.isempty())

ss1.push(ss2.pop());

4.修改U盘信息功能:

点击此选项,系统会自动显示出所有的U盘信息,你只需选择要修改的U盘的番号,并输入修改后的信息,修改后需点击保存选项将修改的信息存入二进制文件中。

voidalter()//修改U盘信息

inta,i=1;

udisku;

show();

请选择您要修改U盘的番号:

cin>

a;

if(a>

ss1.count())cout<

您输入有误!

else

while(i<

a)

ss2.push(ss1.pop());

i++;

请输入新编号:

请输入新名字:

请输入新容量:

if(j=='

)strcpy_s(u.inferface,"

elsestrcpy_s(u.inferface,"

if(b=='

elseu.back_up='

if(m=='

elseu.encrypt='

if(x=='

elseu.write_protect='

while(!

ss1.push(ss2.pop());

修改成功!

5.删除U盘信息功能:

点击此选项,系统会自动显示出所有的U盘信息,你只需选择要删除的U盘的番号,系统会自动删除你选择的信息,删除后需点击保存选项将信息存入二进制文件中。

voiddel()//删除U盘信息

inti=0;

udisku,n;

请输入您要删除U盘的名字:

cin>

n.name;

请输入您要删除U盘的容量:

n.capacity;

ss1.isempty())

if(!

strcmp(u.name,n.name)&

&

u.capacity==n.capacity)

i++;

else

ss2.push(u);

if(i)cout<

成功删除"

i<

条信息!

elsecout<

无此属性的U盘!

6.查找U盘信息功能:

输入你要查找的U盘的容量,程序后自动输出所有满足要求的信息,若无,则显示未找到。

voidfind()//按容量查找

intcapa,i=0,j=0;

请输入您要查找U盘的容量:

capa;

if(u.capacity==capa)

if(j==0)

{

cout<

j++;

}

if(i==0)

未找到!

4调试分析

4.1调试

对字符串的比较,直接用“==”,导致删除操作无法实现。

最后查阅资料,才发现有strcmp()函数进行比较。

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-2-11)

5用户使用说明

启动该管理系统后,根据界面显示的选项选择你所要进行的功能。

若是第一次启动,请先选择录入U盘信息,因为此时文本文件为空,执行其他功能无效。

若非第一次启动,在选择显示、修改、查找、删除功能之前要先选择读取U盘信息,因为尽管文本文件中有记录,但顺序栈为空,而这些功能都是在栈内操作。

当栈内数据有改动(进行过修改或删除操作),要保存改动后的信息,一定要选择保存U盘信息选项,否则文本文件中的记录不会发生改动,修改无效。

6测试结果

 基本功能实现无错,基本能识别不正确的测试数据,并能给出错误输入的提示。

但界面设计不够美观,而且有两个bug未修复,一个就是当输入相同U盘信息时,系统不能识别出来,依然保存在文本中。

之所以存在这个bug,是因为我对字符数组的比较还不够熟悉,不知道怎么实现。

还有一个是,我用的编程软件VC++2013,当将这个管理系统移植到其他版本的软件时会提示错误且不能运行。

结论

本次课程设计用C++编写,运用顺序栈存储结构,完成增、删、改、查等功能,并且都能运行成功。

致谢

致谢指导老师周立章!

参考文献

[1]杨宝刚.开展企业管理信息化工作的步骤[J].企业管理.2002.(11).12~15

[2]Islamabad.Softwaretoolsforforgerydetection[J].Businessline.2001.(5).29~32

[3][Cline] 

Marshall 

P. 

Cline 

and 

Greg 

A. 

Lomow, 

C++ 

FAQs, 

Addison-Wesley, 

1995 

[4][Eckel] 

Bruce 

Eckel, 

Thinking 

in 

C++(C++ 

编程思想,刘宗田 

等译),机械工业出版社,2000 

[5][Maguire] 

Steve 

Maguire, 

Writing 

Clean 

Code(编程精粹,姜静波 

等译),电子工业出版社,1993 

[6][Meyers] 

Scott 

Meyers, 

Effective 

C++, 

1992 

[7][Summit] 

Summit, 

Programming 

1996 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2