字典的C++实现Word格式.docx
- 文档编号:19566720
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:13
- 大小:16.62KB
字典的C++实现Word格式.docx
《字典的C++实现Word格式.docx》由会员分享,可在线阅读,更多相关《字典的C++实现Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
//递归函数,生成定长密码
voidAdvanced();
//提供高级功能的选择菜单
voidAddPrefix();
//添加前缀
voidAddSuffix();
//添加后缀
voidJoin();
//合并字典
voidFilter();
//过滤重复密码
voidByeBye();
//退出程序运行
voidmain(){
cout<
<
endl
<
"
"
Welcometo7dicV1.0"
Codebychris7"
Fineshedat2005-8-21"
E-mail:
[email]technevol@[/email]"
Blog:
endl;
Label:
charchoice;
Pleaseselectoneofthefollows:
1.Makeadictionary"
2.Advancedtools"
3.Exit"
endl<
Pleaseenteryourchoice(1to3):
;
do{
cin>
>
choice;
switch(choice){
case'
1'
:
Guide();
Build();
break;
2'
Advanced();
3'
ByeBye();
default:
BadInput!
Tryagain:
}
}while(choice<
'
||choice>
);
1.Backtothetopmenu"
2.Terminateme"
Pleaseenteryourchoice(1to2):
gotoLabel;
}
voidGuide(){
Pleaseselectonemodel:
1.GuideModel"
2.User-definedModel"
Pleaseselectcharactersneeded:
1.AllNumbers(0to9)"
2.AllSmallLetters(atoz)"
3.AllCapitalLetters(AtoZ)"
4.AllPrintedSpecialCharacters"
Pleaseentersomeofthenumbersabove:
getchar();
charnums[MaxCharNum];
inti;
boolerr;
gets(nums);
err=false;
for(i=0;
i<
strlen(nums);
i++){
if(err==true)break;
switch(nums[i]){
flags.Numbers=true;
break;
flags.SmallLetters=true;
flags.CapitalLetters=true;
4'
flags.SpecialCharacters=true;
'
err=true;
}while(err);
UserDefined=true;
Pleaseenterallthecharactersthatyouselect(lessthan"
MaxCharNum<
):
gets(chars);
voidBuild(){
intmaxpasslen;
Pleaseenterthemaximumlenthofthepassword:
maxpasslen;
intlen;
chartmp;
if(UserDefined==true){
len=strlen(chars);
for(inti=1;
len;
for(intj=0;
j<
i;
j++){
if(chars[i]==chars[j]){
chars[i]=chars[len-1];
chars[len-1]='
\0'
len--;
i--;
else{
len=0;
if(flags.Numbers==true)for(tmp='
0'
tmp<
='
9'
tmp++)chars[len++]=tmp;
if(flags.SmallLetters==true)for(tmp='
a'
z'
if(flags.CapitalLetters==true)for(tmp='
A'
Z'
if(flags.SpecialCharacters==true){
for(tmp='
['
{'
~'
chars[len]='
ofstreamfout("
7.dic"
if(!
fout){
cerr<
Cannotopenoutputfile!
intnow=0;
=maxpasslen;
i++)
GetPass(len,i,now,fout);
fout.close();
Thedictionaryneededhasbeenbulitsuccessfully."
fout){
if(now==passlen){
for(inti=0;
now;
i++)fout<
pass[i];
fout<
return;
strlen;
pass[now]=chars[j];
GetPass(strlen,passlen,now+1,fout);
voidAdvanced(){
1.Addprefixtoeachpasswordinthedictionary"
2.Addsuffixtoeachpasswordinthedictionary"
3.Joindictionariestogether"
4.Filteraspecifieddictionary"
5.Exit"
Pleaseenteryourchoice(1to5):
AddPrefix();
AddSuffix();
Join();
Filter();
5'
voidAddPrefix(){
Makesurethedictionarytobeaddedprefixisincurrentdirectory."
Pleaseenterthenameofthedictionary:
chardicname[MaxFileNameLen];
dicname;
ifstreamfin(dicname);
fin){
Cannotopeninputfile."
Pleaseentertheprefixneeded:
charprefix[MaxPassLen];
gets(prefix);
PreAdded.dic"
Cannotopenoutputfile."
charbuffer[MaxPassLen],PreAdded[MaxPassLen];
strcpy(PreAdded,prefix);
while(!
fin.eof()&
&
fin.good()){
fin.getline(buffer,sizeof(buffer));
if(strlen(buffer)!
=0){
strcat(PreAdded,buffer);
PreAdded<
fin.close();
Prefixhasbeenaddedtothespecifieddictionarysuccessfully."
voidAddSuffix(){
Makesurethedictionarytobeaddedsuffixisincurrentdirectory."
Pleaseenterthesuffixneeded:
charsuffix[MaxPassLen];
gets(suffix);
SufAdded.dic"
charbuffer[MaxPassLen];
strcat(buffer,suffix);
buffer<
Suffixhasbeenaddedtothespecifieddictionarysuccessfully."
voidJoin(){
Makesurethedictionariestobejoinedareincurrentdirectory."
Pleaseenternamesofdictionaries:
charcmdline[MaxFileNameLen*MaxFileNum];
gets(cmdline);
charfiles[MaxFileNameLen][MaxFileNum];
intlen=strlen(cmdline);
intname=0;
inttmp;
tmp=0;
while(cmdline[i]!
cmdline[i]!
\t'
len)files[name][tmp++]=cmdline[i++];
if(cmdline[i]=='
||cmdline[i]=='
){
files[name][tmp]='
while(cmdline[i+1]=='
||cmdline[i+1]=='
)i++;
name++;
Joined.dic"
=name;
ifstreamfin(files[j]);
Erroropeninginputfile:
files[j]<
."
Thespecifieddictionarieshavebeenjoinedsuccessfully."
voidFilter(){
Makesurethedictionarytobefilteredisincurrentdirectory."
Filtered.dic"
chartmp[MaxPassLen];
boolisin;
ifstreamfcmp("
fcmp){
isin=false;
fcmp.eof()&
fcmp.good()){
fcmp.getline(tmp,sizeof(tmp));
strcmp(tmp,buffer)){
isin=true;
isin)fout<
fcmp.close();
Thespecifieddictionaryhasbeenfilteredsuccessfully."
voidByeBye(){
Thanksforusingthisprogram."
Ifanybugisfound,pleasecontactme."
Pressentertoexit."
exit(0);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字典 C+ 实现