-
大小: 10KB文件類(lèi)型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-06-06
- 語(yǔ)言: C/C++
- 標(biāo)簽:
資源簡(jiǎn)介
簡(jiǎn)單目錄管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基本要求:利用樹(shù)型結(jié)構(gòu)設(shè)計(jì)并實(shí)現(xiàn)一個(gè)簡(jiǎn)單的目錄管理系統(tǒng)。功能主要包括:
(1)系統(tǒng)可以對(duì)所有目錄進(jìn)行管理,類(lèi)似C盤(pán)、D盤(pán)、E盤(pán);
(2)實(shí)現(xiàn)子目錄和文件的新建、刪除、查詢(xún)、子目錄和文件名稱(chēng)修改等功能;
(3)按某種順序輸出所有子目錄及文件信息(樹(shù)的遍歷操作)。
提高部分:以樹(shù)型結(jié)構(gòu)輸出所有子目錄和文件的信息。
代碼片段和文件信息
#include
#include
#include
using?namespace?std;
#define?MAX_LINE?1024
struct?node
{
char?cname[55];//孩子節(jié)點(diǎn)?
char?fname[55];//父親節(jié)點(diǎn)?
}wjj[33][10010];
void?Init()//初始化?
{
memset(wjj‘\0‘sizeof(wjj));
char?a[55]=“Cpan“??a1[55]=“Windows“?a2[55]=“users“ a3[55]=“intel“;
char?b[55]=“Dpan“??b1[55]=“Tencent“?b2[55]=“CloudMusic“ b3[55]=“l(fā)udashi“;
char?c[55]=“Epan“??c1[55]=“WeGame“??c2[55]=“Steam“ c3[55]=“LeagueClient“;
char?c4[55]=“學(xué)習(xí)資料“c5[55]=“ECJTU“c6[55]=“數(shù)據(jù)結(jié)構(gòu)“c7[55]=“文件夾“;
char?a4[55]=“文件夾“b4[55]=“文件夾“c8[55]=“文件夾“;
strcpy(wjj[1][0].cnamea)strcpy(wjj[1][1].cnameb)strcpy(wjj[1][2].cnamec);
strcpy(wjj[2][0].cnamea1)strcpy(wjj[2][0].fnamea)?strcpy(wjj[2][1].cnamea2)strcpy(wjj[2][1].fnamea)?strcpy(wjj[2][2].cnamea3)strcpy(wjj[2][2].fnamea);
strcpy(wjj[2][3].cnameb1)strcpy(wjj[2][3].fnameb)?strcpy(wjj[2][4].cnameb2)strcpy(wjj[2][4].fnameb)?strcpy(wjj[2][5].cnameb3)strcpy(wjj[2][5].fnameb);
strcpy(wjj[2][6].cnamec1)strcpy(wjj[2][6].fnamec)?strcpy(wjj[2][7].cnamec2)strcpy(wjj[2][7].fnamec)?strcpy(wjj[2][8].cnamec3)strcpy(wjj[2][8].fnamec);
strcpy(wjj[2][10].cnamea4)strcpy(wjj[2][10].fnamea)strcpy(wjj[2][11].cnameb4)strcpy(wjj[2][11].fnameb)strcpy(wjj[2][12].cnamec8)strcpy(wjj[2][12].fnamec);
strcpy(wjj[2][9].cnamec4)strcpy(wjj[2][9].fnamec);
strcpy(wjj[3][0].cnamec5)strcpy(wjj[3][0].fnamec4);
strcpy(wjj[4][0].cnamec6)strcpy(wjj[4][0].fnamec5);
strcpy(wjj[5][0].cnamec7)strcpy(wjj[5][0].fnamec6);
}
void?dangqian(int?ceng1int?ceng2)//打印當(dāng)前路徑?
{
if(ceng1>2)
{
for(int?i=0;i<300;i++)
{
if(strcmp(wjj[ceng1-2][i].cname??wjj[ceng1-1][ceng2].fname)==0)
{
dangqian(ceng1-1i);
break;
}
}
}
else?if(ceng1==2)
{
for(int?i=0;i<300;i++)
{
if(strcmp(wjj[1][i].cname??wjj[ceng1][ceng2].fname)==0)
{
dangqian(1i);
break;
}
}
}
cout< cout<<“?->?“;
return?;
}
void?dayin_now(int?ceng1int?ceng2)//打印當(dāng)前預(yù)覽文件夾目錄?
{
int?flag=0;
if(ceng1==1)
{
for(int?i=0;i<300;i++)
{
if(strlen(wjj[ceng1][i].cname)!=0)
cout< }
}
else
{
for(int?i=0;i<300;i++)
{
if(strcmp(wjj[ceng1][i].fname??wjj[ceng1-1][ceng2].cname)==0&&strlen(wjj[ceng1][i].fname)!=0)
cout< }
}
if(flag==0) cout<<“當(dāng)前文件夾為空!?(提示:請(qǐng)輸入0后并輸入1進(jìn)行新建文件夾操作)“< return?;
}
void?xinjian(int?ceng1int?ceng2char?name[])//新建文件夾將文件夾名加入當(dāng)前層級(jí)中并將其根目錄更新?
{
for(int?i=0;i<300;i++)
{
if(strlen(wjj[ceng1][i].cname)==0)
{
strcpy(wjj[ceng1][i].cnamename);
strcpy(wjj[ceng1][i].fnamewjj[ceng1-1][ceng2].cname);
break;
}
}
return?;
}
void?shanchu(int?ceng1char?name[])//刪除文件夾在當(dāng)前層級(jí)中搜索同名文件夾并重置其cnamefname?
{
for(int?i=0;i<300;i++)
{
if(strcmp(wjj[ceng1][i].cname??name)==0)
{
memset(wjj[ceng1][i].cname‘\0‘sizeof(wjj[ce
評(píng)論
共有 條評(píng)論