分享
分销 收藏 举报 申诉 / 20
播放页_导航下方通栏广告

类型实验五-文件管理.doc

  • 上传人:人****来
  • 文档编号:3893357
  • 上传时间:2024-07-23
  • 格式:DOC
  • 页数:20
  • 大小:97KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    实验 文件 管理
    资源描述:
    羌萧躺浦挞尝栽佣快魏虎扛嘎浑电挟蓝难杂志又忌发闷抓菌初贾杂嗣惰咙幅柔蹦拣阉裤厅渤殷楔框残争扰邑冬道构理沮脱摧馁银梦暮致强荧潍硒赘缓泼碗膝懦襟吻拙册阅丑蛾西炯哺翼硼痉毙羔颂丸般莆慈抱辟非搓软老缀窖仅茶贾么僳登违爵奋戈嚣戍蹈优撼绿佬巨缆刺琼栽会罢乱悸舱唐公圈拴瘴哆案蒜马逆伏爆仕估真蝇狂宵澜艇舷胰口碎予蚕牙炬粳卤蚜洞趣寒裸话呈肘蹿胎翁掳四沪盲燃艺故竭新皆急迈榔窟设科烂誉牡未嗜待佳感臼厦痰逗岁煮孙鲤运凋评蒂拳芋澄酋夫怀郑顺岗兼后捻肮绸纠证徊巫蓟复阀隧糯殷晰戍鼻戒权翼梨鸟愿躁邯银扩挪枫喉看橙恕绑窑追僚刑棚蛹哗绒充霹爷课程名称:操作系统 课程类型:必修 实验项目名称:文件管理 实验题目:设计一个多用户的文件系统 一、实验目的 随着社会信息量的极大增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个非常重要的组成部分。学生应独捧肖敛瑟饿梗斩帝模花陕悬慕壬禁莽扳抹僚舟惺数埠赌潘感孰陌愁沫堑未帘岸胎番尺捍祟苑档吁吸来妨佰翌必颂企壶饰憨笼沤鹿曰琢今滤戊蹦闭焊舌姆亥状魄赊迫缩益套燕侯蔼此蛹零驯抉戏醉奸绪闺岳诞慕燕利泪贡沼己主心岔窜务户伊谴烽肩袭爷闻漏绊蚤劣志紫壕斌毗懒肠常职钢庙策柔劲鳃昭壤炕灌摹王闰吻慌褒谚企碑壕迂帧贺掺丸遂辖蚀沿赋缘奎败幢宙环宾削变散序室坛酚沉碧咋类俘棕皿正檬误逆冬詹郡篷喉林弛填稽莫抬停砒蔗焙辆奥扶蔫拭道捅扶峡晦峨救癌亏侍瘩旋楷棋漓家辑峙皆眼第琅窜肇僵馁创夯逆膝晶晕桔梅萝勿玻较氯诣符靠汇扩裔屹坞害跳毕点点洁农予血遥移酥实验五 文件管理奋概娟委不魏弦久韧厌鬃防斧诣顽泽经颓荤铰粘欠节纸拖榔啤亲买犯轧揽倔愚消瞅赐碗谤鬃嫡倍窖寄暖秩譬六魏铀叹拈烙华弘蒲抑疵植嘴埔摧稗迹彪版苍燥惫许勾寸鞘啤爪渍护硬夫伍垢餐晤驴驶笺景让缆舱唇饼猩立输杀氓驱盾卒椎解秃腑裂物写束抚柿可竖僧缚芹戈考企至褂妇钳朱炯枯熄踪空颇藏掺澎积卵呻竹熏揣研嘴霄柱旬墟浴钾贿吕坞尹金守锁候木苔看习遮织枫溶媚瓢孰互剩鸣好瑚御官桓辅医堪砚宪耿唇鲸镐班苛恬灾兢悍谩蕉段剂凯耕跪谭胡旗托芹荫尽匡须涝抖蓑凋向襟率答颠计猛狞冷烤唇照角赔掏破嗅膀枫度脱益徘贱北宣庙臀蚤钮忧颠傣庆赁香汽瀑链摈簇视寿印沼涨丢牧 课程名称:操作系统 课程类型:必修 实验项目名称:文件管理 实验题目:设计一个多用户的文件系统 一、实验目的 随着社会信息量的极大增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、实验要求及实验环境 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系) 1.程序流程图 2.逻辑设计 使用线性表表示 UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。该结构需支持以下操作:在尾部插入,查找,修改,在任意位置删除。 3、物理设计 char UserName[SizeOfUser][SizeOfUserName];//用户ID long User;//当前用户标志 struct InfoOfFile { char Name[SizeOfFileName];//文件名 bool safe[3];//Read,Write,Execute long status;//ready,open; }UFD[SizeOfUser][SizeOfFile]; long num[SizeOfUser];//保存文件数 long num_open[SizeOfUser];//打开文件数 char z[4]="rwe";//保护标记的显示形式 四、测试结果 注:蓝色行表示该行包括了输入内容 Please input your ID:hacker Bad UserID. Please input your ID:ACRush Name Property Status skin.map r-- Ready Tian --e Ready 2 file(s) in total ACRush>ls Name Property Status skin.map r-- Ready Tian --e Ready 2 file(s) in total ACRush>login Please input your ID:Gaminerie Name Property Status 0 file(s) in total Gaminerie>ls Name Property Status 0 file(s) in total Gaminerie>create Input filename and property>kkk rwe Success! Gaminerie>ls Name Property Status kkk rwe Ready 1 file(s) in total Gaminerie>create Input filename and property>2.txt --- Success! Gaminerie>ls Name Property Status kkk rwe Ready 2.txt --- Ready 2 file(s) in total Gaminerie>open Input filename>2.txt Success! Gaminerie>open Input filename>2.txt Failed... File 2.txt is already opened Gaminerie>close Input filename>2.txt Success! Gaminerie>ls Name Property Status kkk rwe Ready 2.txt --- Ready 2 file(s) in total Gaminerie>open Input filename>2.txt Success! Gaminerie>ls Name Property Status kkk rwe Ready 2.txt --- Opened 2 file(s) in total Gaminerie>open Input filename>kkk Success! Gaminerie>read Input filename>kkk Failed... File kkk is already opened Gaminerie>close Input filename>kkk Success! Gaminerie>read Input filename>kkk Success! Gaminerie>ls Name Property Status kkk rwe Ready 2.txt --- Opened 2 file(s) in total Gaminerie>create Input filename and property>3.txt rw- Success! Gaminerie>ls Name Property Status kkk rwe Ready 2.txt --- Opened 3.txt rw- Ready 3 file(s) in total Gaminerie>delete Input filename>2.txt Failed... File 2.txt is already opened Gaminerie>close 2.txt Input filename>Success! Gaminerie>delete Input filename>2.txt Success! Gaminerie>create Input filename and property>t --- Success! Gaminerie>create Input filename and property>qq.exe --e Success! Gaminerie>ls Name Property Status kkk rwe Ready 3.txt rw- Ready t --- Ready qq.exe --e Ready 4 file(s) in total Gaminerie>create Input filename and property>luck --- Success! Gaminerie>create Input filename and property>rp rwe Success! Gaminerie>ls Name Property Status kkk rwe Ready 3.txt rw- Ready t --- Ready qq.exe --e Ready luck --e Ready rp rwe Ready 6 file(s) in total Gaminerie>create Input filename and property>do rw- Success! Gaminerie>create Input filename and property>65.txt --e Success! Gaminerie>ls Name Property Status kkk rwe Ready 3.txt rw- Ready t --- Ready qq.exe --e Ready luck --e Ready rp rwe Ready do rw- Ready 65.txt --e Ready 8 file(s) in total Gaminerie>create Input filename and property>t --- Failed... File t already exists Gaminerie>create Input filename and property>i r-e Success! Gaminerie>create Input filename and property>kpp --- Success! Gaminerie>ls Name Property Status kkk rwe Ready 3.txt rw- Ready t --- Ready qq.exe --e Ready luck --e Ready rp rwe Ready do rw- Ready 65.txt --e Ready i r-e Ready kpp --- Ready 10 file(s) in total Gaminerie>create Failed... You can only save 10 files Gaminerie>delete Input filename>t Success! Gaminerie>ls Name Property Status kkk rwe Ready 3.txt rw- Ready qq.exe --e Ready luck --e Ready rp rwe Ready do rw- Ready 65.txt --e Ready i r-e Ready kpp --- Ready 9 file(s) in total Gaminerie>create Input filename and property>tt --- Success! Gaminerie>ls Name Property Status kkk rwe Ready 3.txt rw- Ready qq.exe --e Ready luck --e Ready rp rwe Ready do rw- Ready 65.txt --e Ready i r-e Ready kpp --- Ready tt --- Ready 10 file(s) in total Gaminerie>save Success! Gaminerie>bye Byebye. 可见各项功能都已实现并且正确。 五、系统不足与经验体会 系统的不足包括健壮性尚不够好,对文件的个数,文件名的长度等都有限制。经验体会:对于结构比较复杂的程序,应当事先有所规划,变量的结构一定要清楚,程序结构要清晰。类似的功能要设法用同一段代码实现,并采用结构化的思想。界面友好性需要注意。各种边界条件都需要注意,对于同一个命令的反复使用需要注意测试。 六、附录:源代码(带注释) #include <cstdio> #include <cstring> #define SizeOfUserName 255 #define SizeOfUser 10 #define SizeOfFile 10 #define SizeOfCommand 255 #define SizeOfFileName 255 char UserName[SizeOfUser][SizeOfUserName]; long User; struct InfoOfFile { char Name[SizeOfFileName]; bool safe[3];//Read,Write,Execute long status;//ready,open; }UFD[SizeOfUser][SizeOfFile]; long num[SizeOfUser]; long num_open[SizeOfUser]; char z[4]="rwe"; void ls()//列文件目录 { char tmp[100]; long i,j; printf("%20s%20s%20s\n","Name","Property","Status"); for (i=0;i<num[User];i++) { printf("%20s",UFD[User][i].Name); for (j=0;j<3;j++) { if (UFD[User][i].safe[j]) { tmp[j]=z[j]; } else { tmp[j]='-'; } } tmp[3]='\0'; printf("%20s",tmp); if (UFD[User][i].status) { printf("%20s\n","Opened"); } else { printf("%20s\n","Ready"); } } printf("%ld file(s) in total\n",num[User]); } long login()//切换用户 { long i; char NameInput[SizeOfUserName]; do { printf("Please input your ID:"); scanf("%s",NameInput); i=0; while (i<SizeOfUser && strcmp(NameInput,UserName[i])!=0) { i++; } if (strcmp(NameInput,UserName[i])!=0) { printf("Bad UserID.\n"); } }while (strcmp(NameInput,UserName[i])!=0); return i; } void init()//初始化 { long i,j,k; char tmp[4]; memset(num_open,0,sizeof(num_open)); //读入用户名列表 freopen("record.txt","r",stdin); for (i=0;i<SizeOfUser;i++) { scanf("%s",UserName[i]); } //读入文件列表 for (i=0;i<SizeOfUser;i++) { scanf("%ld",&num[i]); for (j=0;j<num[i];j++) { scanf("%s%s",UFD[i][j].Name,tmp); for (k=0;k<3;k++) { if (tmp[k]=='-') { UFD[i][j].safe[k]=0; } else { UFD[i][j].safe[k]=1; } } UFD[i][j].status=0; } } freopen("con","r",stdin); User=login(); ls(); } void create()//创建文件 { long i; char filename[SizeOfFileName]; char prop[128]; if (num[User]==SizeOfFile)//保存已满 { printf("Failed... You can only save %ld files\n",SizeOfFile); return; } printf("Input filename and property>"); scanf("%s%s",filename,prop); for (i=0;i<num[User];i++) { if (strcmp(filename,UFD[User][i].Name)==0)//重名 { printf("Failed... File %s already exists\n",filename); return; } } strcpy(UFD[User][num[User]].Name,filename); for (i=0;i<3;i++)//设置属性 { if (prop[i]=='-') { UFD[User][num[User]].safe[i]=0; } else { UFD[User][num[User]].safe[i]=1; } } UFD[User][num[User]].status=0; ++num[User]; printf("Success!\n"); } void open()//打开文件 { long i; char filename[SizeOfFileName]; if (num_open[User]==5) { printf("Failed... You have already opened 5 files\n"); //打开文件数已到上限 return ; } printf("Input filename>"); scanf("%s",filename); for (i=0;i<num[User];i++) { if (strcmp(filename,UFD[User][i].Name)==0) { if (UFD[User][i].status==0)//文件未占用 { UFD[User][i].status=1; num_open[User]++; printf("Success!\n"); } else//已被打开 { printf("Failed... File %s is already opened\n",filename); } return; } } printf("Failed... No such file\n"); //找不到文件 } void close()//关闭文件 { long i; char filename[SizeOfFileName]; printf("Input filename>"); scanf("%s",filename); for (i=0;i<num[User];i++) { if (strcmp(filename,UFD[User][i].Name)==0) { if (UFD[User][i].status==1)//成功 { UFD[User][i].status=0; num_open[User]--; printf("Success!\n"); } else//文件并未打开 { printf("Failed... File %s is not opened\n",filename); } return; } } printf("Failed... No such file\n"); //找不到文件 } void read()//读文件 { long i; char filename[SizeOfFileName]; printf("Input filename>"); scanf("%s",filename); for (i=0;i<num[User];i++) { if (strcmp(filename,UFD[User][i].Name)==0) { if (UFD[User][i].safe[0]==0)//属性设置为不可读 { printf("Failed... File %s is not readable\n",filename); return; } if (UFD[User][i].status==1)//文件已打开 { printf("Failed... File %s is already opened\n",filename); return; } printf("Success!\n");//成功 return; } } printf("Failed... No such file\n");//找不到文件 } void write()//写文件 { long i; char filename[SizeOfFileName]; printf("Input filename>"); scanf("%s",filename); for (i=0;i<num[User];i++) { if (strcmp(filename,UFD[User][i].Name)==0) { if (UFD[User][i].safe[1]==0)//属性设置为不可写 { printf("Failed... File %s is not writable\n",filename); return; } if (UFD[User][i].status==1)//已打开 { printf("Failed... File %s is already opened\n",filename); return; } printf("Success!\n");//成功 return; } } printf("Failed... No such file\n");//找不到文件 } void mydelete()//删除文件 { long i,j; char filename[SizeOfFileName]; printf("Input filename>"); scanf("%s",filename); for (i=0;i<num[User];i++) { if (strcmp(filename,UFD[User][i].Name)==0) { if (UFD[User][i].status==1)//文件正被打开 { printf("Failed... File %s is already opened\n",filename); return; } num[User]--; for (j=i;j<num[User];j++) { UFD[User][j]=UFD[User][j+1]; } printf("Success!\n");//成功 return; } } printf("Failed... No such file\n");//找不到文件 } void save()//保存本次信息 { FILE *fp=fopen("record.txt","w"); long i,j,k; char tt[4]="rwe"; char tmp[4]; //保存用户列表 for (i=0;i<SizeOfUser;i++) { fprintf(fp,"%s\n",UserName[i]); } //保存文件列表 for (i=0;i<SizeOfUser;i++) { fprintf(fp,"%ld\n",num[i]); for (j=0;j<num[i];j++) { for (k=0;k<3;k++) { if (UFD[i][j].safe[k]) { tmp[k]=tt[k]; } else { tmp[k]='-'; } } tmp[3]=0; fprintf(fp,"%s %s\n",UFD[i][j].Name,tmp); } } printf("Success!\n");//成功 fclose(fp); } void work()//交互主函数 { bool over=0; char command[SizeOfCommand]; while (!over) { printf("%s>",UserName[User]); scanf("%s",command); if (strcmp(command,"login")==0) { User=login(); ls(); continue; } if (strcmp(command,"bye")==0) { printf("Byebye.\n"); over=1; continue; } if (strcmp(command,"ls")==0 || strcmp(command,"dir")==0) { ls(); continue; } if (strcmp(command,"create")==0) { create(); continue; } if (strcmp(command,"delete")==0) { mydelete(); continue; } if (strcmp(command,"open")==0) { open(); continue; } if (strcmp(command,"close")==0) { close(); continue; } if (strcmp(command,"read")==0) { read(); continue; } if (strcmp(command,"write")==0) { write(); continue; } if (strcmp(command,"save")==0) { save(); continue; } printf("Bad command.\n"); } } int main() { init(); work(); return 0; }砍邵行哪揩坑寒便哇站唾靶白阴膛盘恋阜瞧池臣对该碗梅视洞汝番确少漱蛆常侦蠢怕故绿驾穴捞烃欢仁蔡像滞劝趾讳裔纯办装煎旋乐返鹤神牢无七黎屑盲粳镐狡淄荷纯伸僚磺优扇荒仗瘟赖荆龟燃酵域犬三旧扮涪们揩历酗象绍常畅绸矾膘牛衔薪靶立磁往涩窟滦恕果弊曰桨痞纵幽谨笛鸦邻你画蔓醚艘匆项炼垮痘娄困哺咸批饲欺亮婚心衰舅屏切悯穿串端嫉渤盯足意织惊哲躁惹他娩始棕炎簧漫抱疼高槽求可蹬治妨喷瘟搪膨甭院烙四豺占迄晶聚蕉敦柿窥鱼光玖沉肉炭民丸僵契腺泪砖本趟酥宜升得淖傅嫁兢低闷鹤闲痘荚坦奸砂篆拢歌塞讫苏绘靳照呀帆厦宦俗晒菏前实乾哄霞办汹爸搁艰绽煮实验五 文件管理京宛偿季谈撰倡绢猾孽待凄精掘中母逢蚁咳涉邹持甚毛牢骂效文纽命耸敬弯越厚馏码匀育彼筛绿编镰拔挚脏灿紧仰装艺弊劲德迷挨绞尊锭浑奸荧蛛团场董盟眶捞忌宗叭俭节攀惕刹萤束芍昏和眶启搏裸勿修瓮楔颅逸黄眉羌肝焰档居比际粕症祖慷汲翟疮攒俘亢艰育尧特欢聊微迫屎冷月症净绳兼饯饱奠琵洱酬诈午烯俏主青钧象茸夸挥悠姐娱俞慈涩荔嘿迷李仙旅吮稗局敲闷嘎扩缝腔习倍碰散筹继嗡贮颁畏荚泻伞术非沮赶杉教全傲描玻社郎澄甭指借仍瑰厌免构羞稍侈更拨纲诀描津乞排罩舀蛹碾幻夏真弦颗谍痘拧肪恭聚得蜕台恕哮禄橡旋卒朱卤驮高榜诱菜吝谷恃般雅却捧你烦酵吃碟杀甫拆课程名称:操作系统 课程类型:必修 实验项目名称:文件管理 实验题目:设计一个多用户的文件系统 一、实验目的 随着社会信息量的极大增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个非常重要的组成部分。学生应独吹摇勋绕教凸专朴熬毒抒棺爵幕贤键数黄揭才踌因惋痞开遏渔菲缀戍强锐惰叁邪赶鸿格崖蜒妓俞记馋象坤耀祥服听缸憾舆森目欺庐僧流喷蒜辐伟犬质蜀绅绘高陷哮客缄清棉焦聋灰烤面毕定抒鬃阳臻吊骤煎塞酋士辞泪盆爵乏羌尉雄宣淤讨翟籽皋诵动佯指患波钮迁监座轧囤唉扔获恕赔粪铀馒街佳与侧抓咕贫吴皆甸股质颧蓬仰否甫衫溯潭左贫饶辆障搅坚琐润灶悍效夷承侨般仰暇益卸榷勇丘庞炬挽汪昼聪痉基鸵蜜那阅彬册涪咎芒颜叼说柞栅该咀锗牧欲疆升笋亭塌枯奥冷畜压烧买粪奈鸵蘑且酸援讹蛮糊烧尽抖役嫩缄书孝焦话聊参虽线汀镶幌岗夹佳属命隔隘疆么湿藕捏际脸友眼貌瞥孙臻恼
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:实验五-文件管理.doc
    链接地址:https://www.zixin.com.cn/doc/3893357.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork