




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象技术课程设计题目:个人电脑资料管理系统专业:计算机科学与技术学号:姓名:扌旨导老师:完成日期:2016.5.28TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 1前言1 HYPERLINK l bookmark4 o Current Document 2需求分析1 HYPERLINK l bookmark6 o Current Document 2.1要求1 HYPERLINK l bookmark8 o Current Document 2.2任务1 HYPERLINK l bookmark10 o Current Doc
2、ument 2.3运行环境1 HYPERLINK l bookmark16 o Current Document 2.4开发工具1 HYPERLINK l bookmark18 o Current Document 3系统流程图2如图3所示。2 HYPERLINK l bookmark20 o Current Document 4编码与实现24.1分析2 HYPERLINK l bookmark22 o Current Document 4.2具体代码实现5 HYPERLINK l bookmark54 o Current Document 5课程设计总结23 HYPERLINK l book
3、mark56 o Current Document 参考文献241前言该程序用來管理个人电脑资料。首先输入用户的身份:游客可以浏览、查询资料;管理员可以对资料进行添加、修改、删除的操作,但是需要输入正确的密码才可以进入管理员模式。浏览资料时,文档已经按照类型整理好,并统计了大小及数量。2需求分析2.1要求(1)用C+语言实现程序设计;(2)画出程序流程图;(3)编写主函数大概流程;(4)编写系统功能模块;(5)完善界面,程序标注释。2.2任务(1)文档按照类型(txt、ppt、pdf、doc、htmlxml、图像、其他)的分类整理功能,增加文档分类类别功能;(2)可以浏览和查询资料;(3)添加
4、、删除、修改资料的功能;(4)用户的添加、删除、权限设置;(5)用户登陆、使用的权限设置功能;(6)统计各类文档资料的功能,如数量、大小等2.3运行环境(1)WINDOWS2000/XP系统(2)vs2010编译环境2.4开发工具C+诰言 3系统流程图如图3.1所示。开始修改文件名删除文件结束图3.1系统流程图4编码与实现4.1分析在程序代码中,采用了结构化与面向对象两种解决问题方法。结构化的思想主要应用在划分功能模块上,而面向对象的思想主要应用在把所有的属性和方法封装起來,以备各模块的调用,这样做的目的是为了让整个程序的结构清晰、体系完整,便于维护。C+提供的文件输入输出流的功能比较通用,所
5、以在这个文件管理系统下,需要将C+中所提供的输入输出流的功能进行改造,隐藏掉一些不需要在这个文件管理系统中使用的功能,以适合这个文件管理系统的需要。BaseClass有两个重载构造函数,这样做的目的是为了区分是哪个派生类使用的,方便管理。而且所有的打开方式均为二进制形式,目的是不破坏源文件。置标志位目的是依据使用的构造函数來进行析构。为了使程序的结构层次清晰,将各种操作封装到一个FunClass(操作类)中,方便main函数进行调用。CreatFile函数是用来在操作目录下创建一个新文件,可以自定类型。关键语句:FileOperatorOuta(k);if(a.ofile)returntrue
6、:returnfalse;用传入的参数(string类的一个对象,用于存放需要创建的文件名)來构造一个FileOperatorOut的对象(上面己经介绍过FileOperatorOut类)。OpenFile函数是用來在操作目录下获取一个文件,并显示其中的信息(一般用于查看txt、log等文件)。关键语句:FileOperatorlna(true,k);if(a.ifile)couta.readfile()endl;returntrue:elsereturnfalse:用传入的参数(string类的一个对象,用于存放需要打开的文件名)來构造一个FileOperatorln的对象如果构造成功,则读
7、取其中的内容显示到屏幕,否则返回falseoWritelnFile函数用来向操作目录下的某个文件写入信息。关键语句:stringt;FileOperatorOuta(k);cout,/请输入需要写入的内容,endl;getline(cin,t);a.WriteFile(t);先用k来构造一个FileOperatorOut的对象,用于先打开磁盘上相应的文件(如果磁盘上没有需要的文件则创建一个),然后用getline函数接受输入的内容,通过FileOperatorOut对象的WriteFile方法写入到相应的文件中去。ReName函数用于将操作目录下的文件进行重命需操作。关键语句:判断打开是否成功
8、ifstreamin(kdata();if(in)in.close();if(!rename(kdata(),NewNamedata()调用rename函数(windows提供,用于函数的重命名)进行重命名操作。在调用rename函数之前一定要先关闭打开的文件(即加上in.close()。4.2具体代码实现iiicludeiiicludeiiiclude#includeiiicludeiiiclude#includeusingnamespacestd;/*单个文件的操作*/classBaseClass/基类,制定了创建文件与删除文件的基本操作public:BaseClass(stimg&nam
9、e);BaseClass(boolastnng&name);virtualBaseClass();关闭文件ofstreamofile;lfstreamlfile;private:mtflag;BaseClass:BaseClass(stnng&name):flag(l)/构造函数ofile.open(nanie.data()Jos_base:out|ios_base:binaiy);/JTJFXft4wj出BaseClass:BaseClass(boola,stung&name):flag(2)/构造函数重载ifile.open(name.data04os_base:iii|ios_base:
10、binaiy);扌丁开文件输入BaseClass:BaseClass()/析构函数if(l=flag)oflle.closeQ;lfile.closeO;classFileOpeiatorIn:publicBaseClass/文件输入类的公有继承public:FileOperatoi!ii(boola,string&name):BaseClass(a,name)/打开一个文件inlinestungreadfileQ;/读取TXT文件中的内容-FileOperatoihi()private:stunglme;mlinestungFileOperatoiiii:readfile()/读取函数定义g
11、etline(ifileJine/O,);ietuniline;classFileOpeiatorOut:publicBaseClass/文件输出类公有继承public:FileOperatoiOut(string&name):BaseClass(name);创建一个文件uilinevoidWriteFile(string&content);/将content写入文件中-FileOpeiatorOut();mlinevoidFileOperatorOut:WriteFile(string&content)文件写入函数定义ofile.wnte(content.data(),coiitent.le
12、ngtli();classFimClass/操作类public:voidMenu();inlineboolCreatFile(stiing&kjconst;/创建文件uilineboolOpeiiFile(stnng&k)const;/打开文件uilinevoidWiiteniFile(stnng&k)const;/写入文件inlinevoidReName(stiing&k,stung&NewNnme)const;重命名inlinebooldeletefile(stnng&k)const;/删除文件mtPasswoid()const;/密码权限mtflle_scan()const;/分类mtf
13、ile_scanl()const;mtfile_scaii2()const;mtfile_scan3Qconst;mtfile_scan4()const;voidFunClass:Menu()菜单函数coutendl;coutendl;欢迎使用!请输入您的身份!coutnendl;coutendl;coutendl;coutnyV”*yendlcoutnyv”*yendlcoutny*1游*endlcoutncoutncoutn*2.管理员 # *yendlcoutny*yendlcoutny*yendlcoutny*0.退*endlcoutncoutnmtFunClass:PasswoidQ
14、const/密码函数定义coutupleasemputyourpassword:irendl;strmgsvspw=abc;定义密码mtm=0;while(m3)rstrmglme;cin.cleaiO;cin.syncO;getlme(cinjiiie);/获取用户输入密码if(syspw!=line)coiitvv”密码错误,请重新输入!Hendl;111+;敢m=3)coutH连续3次输入错误,退出!Hendl;exit(O);elsecout”密码正确!”endl;break;ietimi0;mtFunClass:file_scanQconst/txt扫描函数coutntxt文件:He
15、ndl;constchar*to_search=E:c卄课程设计*.txtn;/定义指向文件的指针longhandle;/句柄mtcount=0;/计数stmct_fiiiddata_tfileinfo;/定义一个_flnddata_t的结构体n(nH大小:nfilenifo.sizen字节,n),endl; handle=_flndfirst(to_seafch,&filemfo);返回句柄if(-l=handle)ietum-1;(H大小:fllemfo.size”字节)endl;COUllt+;while(!_findn
16、ext(handle,&fllemfb)count十十;,(”大小:fileinfo.size字节coutn共有McountH个yvendl;_fiiidclose(handle);ietum0;mtFunClass:file_scanl()const/ppt扫描函数cout1fppt文件:Hendl;constchar*to_search=ME:c+十课程设计*.pptn;longhandle;mtcount=0;stmct_fiiiddata_tfileinfo;liandle=_findfirst(to_seafch,&filemfb);if(-l=ha
17、ndle)ietum-1;COUllt+;while(!_findnext(handle,&fllemfb)count十十;,(”大小:fileinfo.size字节,),endl;coutn共有Mcountn个Hendl;_fiiidclose(handle);retuni0;mtFunClass:file_scaii2()const/pdf扫描函数coutnpdf文件:endl;constchar*to_search=HE:c+课程设计W.pdf;longhandle;mtcount=0;stmct_fiiiddata_tfileinfo;liandle=
18、_findfirst(to_seafch,&filemfb);if(-l=handle)ietum-1;n(nH大小:nfilenifo.sizen字节,n),endl;COUllt+;while(!_findnext(handle,&fllemfb)count十十;,(”大小:fileinfo.size字节coutn共有McountH个Hendl;_fiiidclose(handle);ietimi0;mtFunClass:file_scan3()const/doc扫描函数coutudoc文件:Mendl;constchar
19、*to_search=E:c+课程设计*.docu;longhandle;mtcount=0;stmct_fiiiddata_tfileinfo;liandle=_findfirst(to_seafch,&filemfb);if(-l=handle)ietum-1;(H大小:,filenifo.size字节)endl;COUllt+;while(!_findnext(liandle,&filemfb)encll;encll; #count十十;coutn共有McountH个yvendl;_fi
20、iidclose(handle);retuni0;mtFunClass:file_scan4()const/litml扫描函数coutnlitnil文件:”endl;constchar*to_search=E:c+十课程设计*.html;longhandle;mtcount=0;stmct_fiiiddata_tfileinfo;liandle=_flndfirst(to_seafch,&filemfb);if(-l=handle)ietum-1;(H大小:fllemfo.size”字节)endl;COUllt+;while(!_findnext(handle
21、,&fllemfb)count十十;n(Mn大小:Hfileinfo.sizeH字节n)uendl;n(Mn大小:Hfileinfo.sizeH字节n)uendl; coutn共有McountH个Hendl;_fiiidclose(handle);ietiun0;uilineboolFunClass:CieatFile(stnng&k)const/创建文件FileOpeiatoiOuta(k);/定义一个FileOperatoiOut对象if(a.ofile)ietumtine;elseietumfalse;mlinebo
22、olFunClass:OpeiiFile(stiing&k)const打开文件FileOpeiatoilna(tiue,k);/定义一个FileOperatorln对象if(a.ifile)couta.readfile()eiidl;ietumtine;else # retunifalse;mlinevoidFunClass:WiiteniFile(stimg&k)const/写入文件stungt;FileOpeiatorOuta(k);coutn请输入需要写入的内容:”endl;getline(cinj);a.WnteFile(t);mlinevoidFunClass:ReName(stnn
23、g&kstnng&NewName)const重命名文件lfstreamm(k.dataQ);if(in)如果文件存在m.close();if(!rename(k.data(),NewName.data()/删除成功coutkn成功重命名为:uNewNameencll;else/无法重命名:文件打开或无权限执行重命名cout文件无法重命名(可能原因如下):uendl;coutMtHn1.HNewNamen己存在Hendl;coutMtH,f2.HNewName,r正在使用,未关闭.Hendl; #coutMtHn3.HH你没有权限重命名此文件.Hendl;else/文件不存在coutk不存在,无
24、法重命名.,endl;uilineboolFunClass:deletefile(stnng&k)const/删除文件if(DeleteFileA(k.dataO)fetumtine;elsefetumfalse;mtmam()stungconunand.opeia;FunClassfun;while(l)fiui.MenuO;mtb;cinb;switch(b)casel:system(uclsn);while(l)coutendl;coutendl;coutn*yvendcoutn*yvendcoutn*1.文件分类*11endl;/visitorcoutn*2.打开文件endl;cout
25、n*3返回主菜单endl;coutn*请输入选项:endl;coutn*yvendcoutn*yvendliltc;cmc;switch(c)is casel:fxin.file_scan();coutn*yvend-fxin.file_scanl();coutn*yvendfxin.file_scaii2();coutn*yvendfxin.file_scan3();coutn*yvendfxin.file_scan4();coutn*yvendbreak;case2:cout请输入打开文件名:,endl;cuiopeia,cm.sync();fim.OpeiiFile(opera)?cou
26、tufr开成功!endl:coutJT开失败!vendl;break;case3:maui();break;default:cout*i择错误请重新选择!Hendl;break;case2:system(nclsn);fun.Password();while(l)coutendl;coutendl;coutMendl;coutMendl;coutM*yendl;/admin*coutM*11endl;coutM*endl;coutM*endl;coutM*endl;coutM*新建文件写入文件修改文件名删除文件返回主菜单请输入选项】endl;coutMendl;*coutMendl;*mta;cina;switch(a)case1:cout*请输入新建文件Hendl;cmopeia,cui.sync();fun.CreatFile(opera)?cout,|J建成功!endl:coutn创建失败!”endl;break;case2:coutHi#输入文件名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务成本的逻辑评估试题及答案
- 财务指标设定的思路试题及答案
- 全面覆盖2025年计算机二级Delphi试题及答案
- 计算机算法与Python结合试题及答案
- MySQL数据类型选用指南试题及答案
- 现代汉语在科技中的应用试题及答案
- 财务行业趋势试题及答案深度解读
- 突破MySQL知识瓶颈的试题及答案
- C++测试与验证编程试题及答案
- 实现数据分析工具试题及答案
- GB 6944-2005危险货物分类和品名编号
- GB 4789.3-2016食品安全国家标准食品微生物学检验大肠菌群计数
- GB 11291-1997工业机器人安全规范
- 装饰窗帘安装内部验收单
- 三角挂篮施工方案剖析
- 同等学力哲学学科综合考试大纲思考题汇总
- 2023年中医儿科学考试题库及答案(通用版)
- 骨科疑难病种清单(2021年版)
- 体育史-第三章-外国中古体育课件
- 农村常用法律法规知识讲座课件(村干部培训)
- 人教版高中语文全五册文言文注释汇总1
评论
0/150
提交评论