1、 bool search(char fileroad,char filename); /寻找指定元素类外的函数函数名称返回类型所含参数实现功能in_word()intchar fileroadchar filename对文件进行输入编辑copy_word()char fileorignlchar fileroad 对文件中的内容进行拷贝creatfile()voidfilestack &fstack1fstack3fstack4创建新文件并备份deletefile() fstack删除文件操作recoverfile() fstack,恢复删除的文件recoverfileroad()char o
2、fileroad复制文件路径undo_moreoperate() fstack1 fstack2 fstack3 fstack4char & opchar froado撤销之前的某步操作undo_operate()撤消操作searchroad()寻找文件路径redo_file()重做操作delete_copyoperate()删除副本(及删除“copy”文件夹里的文件)save()对所有操作进行保存,不可恢复f_operate()无对文件进行操作(三) 用户手册程序运行时,首先提示选择要进行的操作。对于创建文件时,提示输入文件路径以及文件名对于撤消操作时,提示进行撤销上一步还是撤销之前的操作;
3、对于重做操作,提示进行恢复的路径;对于结束所有操作,提示是否保存所有操作。(四) 调试及测试运行实例:(1)创建文件的操作(2)撤销操作(3)重做操作(4)保存所有操作进一步改进(1)目前程序中,主要以建立文件,删除文件以及恢复文件为主要功能,辅以对文件进行编辑。以后可以加入打开文件等其他功能。(2)目前是通过控制台进行操作,并不是很直观,在以后可以借助图形界面(MFC)来实现对文件的操作。附录 源程序(1)f_stack.h#include stringfstreamusing namespace std;enum error_codesuccess,underflow;struct nod
4、e char froad50; /存储文件路径 char fname30; /存储文件名 node * next;class filestackpublic: bool search(char fileroad,char filename) ;private: int count; node * top;filestack:filestack() count=0; top=NULL;bool filestack:empty()const return count=0;error_code filestack:get_top(char fileroad,char filename)const i
5、f(empty() return underflow; else strcpy(fileroad,top-froad); strcpy(filename,top-fname); return success;push(char fileroad,char filename) node *s=new node; strcpy(s-froad,fileroad);fname,filename); s-next=NULL;next=top; top=s; count+; return success;pop() node *u=top; top=top-next; delete u; count-;
6、pop(char fileroad,char filename) char croad80; strcpy(croad,fileroad); strcat(croad,filename); filestack f1; else char fr50,frc50,fn30; get_top(fr,fn); strcpy(frc,fr); if(strcmp(strcat(frc,fn),croad)=0) pop(); else while(strcmp(strcat(frc,fn),croad)!=0) f1.push(fr,fn); get_top(fr,fn); strcpy(frc,fr)
7、; while(!f1.empty() f1.get_top(fr,fn); push(fr,fn); f1.pop();/寻找指定文件search(char fileroad,char filename) return false; return true; return false;/析构函数/对文件进行文字编辑int in_word(char fileroad,char filename) char c=A; char frc50; strcpy(frc,fileroad); /拷贝文件路径 char fname80; strcpy(fname,strcat(frc,filename);
8、 ofstream outfile(fname,ios:out|ios:trunc); /打开相应文件 if(!outfile) cerropen error!endl; exit(1); coutc; outfile outfile.close(); return 0;/对文件中的内容进行拷贝int copy_word(char fileorignl,char filename,char fileroad )/创建新文件并备份void creatfile(char fileroad,char filename,filestack & fstack1,filestack & fstack3,f
9、ilestack & fstack4) /指定备份路径 char fr80=copy/ char frc80= char frs80=redosave/ char frsc180= char frsc280= char frsr80=redosaveroad/ char frscr180= char frscr280= /创建文件 ofstream outfile1(strcat(croad,filename),ios:outfile1) outfile1.close(); /备份到指定路径 ofstream outfile2(strcat(fr,filename),ios:outfile2)
10、copy error! outfile2.close(); /对所有创建操作建立映像 ofstream outfile3(strcat(frs,filename),ios:outfile3)savecopy error! outfile3.close(); /对创建文件的路径进行保存 ofstream outfile4(strcat(frsr,filename),ios:outfile4) char c50; int i=0; while(fileroadi!0 ci=fileroadi; i+; ci= i=0; while (ci! outfile4ci; outfile4.close()
11、;成功建立(更新)fileroadfilenamechoice; switch(choice) case N coutfileroad; strcpy(froado,fileroad);请输入要撤销之前创建的文件名:filename; deletefile(fstack1,fileroad,filename); deletefile(fstack3,sfile,filename); deletefile(fstack4,srfile,filename); fstack2.push(ofile,filename); op=请输入要恢复之前删除的文件路径:请输入要恢复之前删除的文件名: recov
12、erfile(fstack1,fileroad,filename);已成功恢复文件 recoverfile(fstack3,sfile,filename); recoverfileroad(fstack4,fileroad,srfile,filename); fstack2.pop(ofile,filename);请确认输入编号是否正确 while(choice!/撤消操作void undo_operate(filestack &O请确认撤消操作!撤销上一步键入O,其它请键入Mn请输入: if(op= fstack1.get_top(fileroad,filename); strcpy(fro
13、ado,fileroad); deletefile(fstack1,fileroad,filename); deletefile(fstack3,sfile,filename); deletefile(fstack4,srfile,filename); fstack2.push(ofile,filename); cout成功删除文件! ; op= else fstack2.get_top(fileroad,filename); recoverfile(fstack1,froado,filename); recoverfile(fstack3,sfile,filename); recoverfileroad(fstack4,froado,srfile,filename); fstack2.pop();
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2