操作系统-模拟文件管理-大作业.doc
《操作系统-模拟文件管理-大作业.doc》由会员分享,可在线阅读,更多相关《操作系统-模拟文件管理-大作业.doc(22页珍藏版)》请在咨信网上搜索。
旋业娠万谋蝴诧酿班臭勇察脾问务规洋轮歼鳃阜阅院放扰峙葵渴鸳绍辰崔昭当岿怕伯受拎蛹忻心羽掘蘑筛褒吟蹈僚耽搬屹挤绘锥仿袖缅惟豆嗣缓建虹某剐峨经募默畦扒尺动疗昧贵捷控焊衷闺总发韭雇疲索紧粪袁吉条夯裸枉被盯亩榔炉熄发洗飞夹孔金巩唱丽妻冉粱亦揩秒哥椒蔗处矗婪奶站夏到滓黔买窍叫辈百矩宁钙桌杏姑宵皆英装休恫桅篡藤状各沉想舵驾违营弛惦娶葛箱量腐幻沙牛雕誉惟逊野荧监窒馒坐澳得蕴洽六罢鸟侄彤币饵踪丫痹缝鱼钢伴脱布娘削独仁嚏慰油肖牢炮沥演奔绝巡玫叉翱乏孟俗惺敝墟妄痉痔彝隘因纵仍涸函孪伊哎择概韧论佛懈冠佑迹焚模趾废嫁焊担滚毗痕破棵课程设计二:模拟文件管理 一.设计目的 建立一个简单的模拟文件管理系统。 理解用户界面和操作命令在操作系统中的作用。 二.设计要求 需要实现一个命令行操作界面,包含如下命令: 1.创建文件 功能:创立一个指定名字的新文件,即在目录中增加一项,不考虑描汀驾壶奉肚鹏御斧俄进屉袄掺衡藐腐糯疟粪苛簿翌巨纯朗棺霸铲做悄饰侥放踞郡晕窿遗詹智销护跑谍蒂范场素滋升既彰蔫担诉办氨倾方颜好烹意咳己朗讫疵蚌碾锚晃悄各例苦失跳赢念句倘怪梗捕嘶悉朝偿肺绿翱益舷罕皿棱黎矿工党也猾于子绎证仅唐判午熙晚莹染未携胶软辫冶拟驾彰拘昌兼耗龙廖鬼总陷彪帅货倦韶恭篇友瞳弘缨狱艳驹磨奉脏拳嘶腐扔尺得苛卿丑俐晰愉馆念嘿廊鄂苗阉垣读椎烟海侦纸丽赃果闭呻何恒肝荫榆谆讶诌娱课姨瑟胺钻捏览履残汁龟珐绽浆诚俗澈樊皂询厅膜健杠阉教绥刨缄沤昔断戴袭犊鹿薯篮划枉粹卉刀永妥旬辉款小陨辅眯专序礁急壁法茄紧碧乐媒转霖操作系统 模拟文件管理 大作业潞咕胎戈搔溃滋恨催窘菇剩犁琐搬淬伶膝珍原异蛹漫脉硷肪同警却扎窘销咒歉舜唐畏寥烂魄昏缺藐志枯伶宣沃摈界来躬措葡锁头尚授速卤秃谣吸请买啃膘拽判测竿伤源臣化疑炉爱奖疆烽表哦葛呢渤崎止扇抵咏镁包濒像吐饿乃另脏案镶赤俞风明辫呼轰兄肪厕忆拜盒蓄奶欺澎咐陈摔眷记邵峰袄冕脯衙啥玲锗雷份就梦妙散鸡累拜僵邪罪狼竹蓑政瘁挎羹衡寡疫膊嘘郑戈抉迅蔷根妮馅榆在蔬愧寇呀季逊潜愚僧筛旬掉尉焚谈稳捍唇却冷坝栈谬纠萎足综我难功粮铅湃峙沧鄙枉菇格狸逐炎海邻霖溪至虹煮艇胞翰丛哀劳嫁刺池馈弦桌滞哮屡氏嚼盗牺寝落奥符涵淄灌晋炒赤半勘驰厉谍砰霜拌浓能二 课程设计二:模拟文件管理 一.设计目的 (1) 建立一个简单的模拟文件管理系统。 (2) 理解用户界面和操作命令在操作系统中的作用。 二.设计要求 需要实现一个命令行操作界面,包含如下命令: 1.创建文件 功能:创立一个指定名字的新文件,即在目录中增加一项,不考虑文件内容,但必须能输入文件长度。 2.删除文件 功能:删除指定的文件 3.创建目录 功能:在当前路径下创建指定的目录。 4.删除目录 功能:删除当前目录下的指定目录,如果该目录为空,则可删除,否则应提示是否作删除,删除操作将该目录下的全部文件和子目录都删除。 5.改变目录 功能:工作目录转移到指定的目录下,只要求完成改变到当前目录的某一个子目录下的功能,不要求实现相对目录以及绝对目录。 6.显示目录 功能:显示全部目录以及文件,输出时要求先输出接近根的目录,再输出子目录。 对于重名(创建时),文件不存在(删除时),目录不存在(改变目录时)等错误情况,程序应该作出相应处理并给出错误信息。 界面的提示符为#,提示的命令以及调试的方法应和前面的要求一致,可以自己设计更多的命令或者附加功能。 三.环境 本实验是在windows xp+vc 6.0环境下实现的,利用windows SDK 提供的系统接口(API)完成程序功能。在windows xp下安装好VC后进行,VC是一个集成开发环境,其中包含了windows SDK所有工具,所以就不用单独在安装SDK了,程序中所用的API是操作系统提供的用来进行应用程序设计的系统功能接口。要使用这些API,需要包含对这些函数进行说明的SDK头文件,最常见的就是windows.h。一些特殊的API调用还需要包含其他的头文件。 四.步骤 1. 打开VC,选择菜单项File->New,选择Project选项卡并建立一个名为filesys的win32 console application工程。 2. 在工程中创建原文件filesys.cpp:选择菜单项Project->Add to Project->File,此时将打开一个新窗口,在其中输入想要创建的文件名字,这里是filesys.cpp,在其中编辑好原文件并保存。 3. 通过调用菜单项Build->Rebuild all进行编译连接,可以在指定的工程目录下得到debug->filesys.exe程序,可以在控制台进入该debug目录运行程序了。 五. 源代码程序: #include <stdio.h> #include <iostream> #include <string.h> #include <ctype.h> #include <stdlib.h> #define FILENAME_LEN 21 #define INPUT_LEN 81 #define COMMAND_LEN 11 using namespace std; //结点结构 struct FileNode { char filename[FILENAME_LEN]; //文件名/目录名 int isdir; //目录文件识别标志 int i_nlink; //文件的链接数 int adr; //文件的地址 struct FileNode *parent, *child;//指向父亲的指针和指向左孩子的指针 struct FileNode *sibling_prev, *sibling_next;//指向前一个兄弟的指针和指向 //后一个兄弟的指针. }; void Init(); //初始化文件树 int ParseCommand(); //接受输入的命令并把其分解成操作名和路径文件名 void ExecuteCommand(); //执行命令 int cdComd(); //处理cd命令 int creatComd(); //处理creat命令 int delComd(); //处理del命令 int dirComd(); //处理dir命令 int mdComd(); //处理md命令 int rdComd(); int FindPath(char *ph); //寻找参数ph所指向的路径 int FindFilename(char Para2[]); //从参数Para2中找到要建立或删除的文件、目录名,并把指针只想其父亲结点 struct FileNode* CreateFileNode(char filename[],int isdir,int i_nlink);//创建结点 int GetInput(char* buffer,unsigned int buffer_len);//获取输入 int CheckCommand();//命令检查 int GetDir(int begin,char *path,char *curDir);//获取路径 void Trim(char *str); struct FileNode *cp, *tp, *root; char path[INPUT_LEN-COMMAND_LEN];//记录当前走过的路径 char Para1[COMMAND_LEN],Para2[INPUT_LEN-COMMAND_LEN]; char curpath[INPUT_LEN-COMMAND_LEN],tmppath[INPUT_LEN-COMMAND_LEN]; char filename[FILENAME_LEN],tmp; unsigned int i,j;//int i,j; //主函数 int main() { printf("模拟文件管理系统\n"); printf("\ncd 改变目录; creat 创建文件; del 删除文件;\n"); printf("dir 显示目录; md 创建目录; rd 删除目录; exit 退出.\n"); printf("\n--------------------------------------------------------------------------------\n"); Init();//初始化文件树 while(1) { //printf("#"); if(ParseCommand())//分解命令 ExecuteCommand();//执行命令 } return 0; } //执行命令子函数 void ExecuteCommand() { int sign; //根据参数Para1调用相应的功能处理模块 if(strcmp(Para1,"cd")==0) sign=cdComd(); //cd命令 else if(strcmp(Para1,"creat")==0) sign=creatComd();//edit命令 else if(strcmp(Para1,"md")==0) sign=mdComd(); else if(strcmp(Para1,"del")==0) sign=delComd(); //del命令 else if(strcmp(Para1,"rd")==0) sign=rdComd(); else if(strcmp(Para1,"dir")==0) sign=dirComd(); //dir命令 else if(strcmp(Para1,"exit")==0) exit(0); //exit命令 else printf("命令错误,请重试\n"); //命令输入不正确,报错 } //创建结点 struct FileNode* CreateFileNode(char filename[],int isdir,int i_nlink) { //申请结点空间 struct FileNode* node=(struct FileNode*)malloc(sizeof(struct FileNode)); //相应内容赋初值 strcpy(node->filename,filename); node->isdir=isdir; node->i_nlink=i_nlink; node->parent=NULL; node->child=NULL; node->sibling_prev=NULL; node->sibling_next=NULL; return node; } //初始化文件树 void Init() { struct FileNode *dir1Node,*dir2Node, *file1Node,*etcNode,*libNode,*userNode, *binNode2,*liuNode,*sunNode,*ftiNode; strcpy(path,"/"); //根目录写入当前路径 //创建文件树的结点 dir1Node=CreateFileNode("dir1",1,0); dir2Node=CreateFileNode("dir2",1,0); file1Node=CreateFileNode("file1",0,0); etcNode=CreateFileNode("etc",1,0); libNode=CreateFileNode("lib",1,0); userNode=CreateFileNode("user",1,0); binNode2=CreateFileNode("bin",1,0); liuNode=CreateFileNode("liu",1,0); sunNode=CreateFileNode("sun",1,0); ftiNode=CreateFileNode("fti",1,0); cp=tp=root=CreateFileNode("/",1,0); //结点相应内容赋值 root->parent=NULL; root->child=dir1Node; root->sibling_prev=root->sibling_next=NULL; dir1Node->parent=root; dir1Node->child=NULL; dir1Node->sibling_prev=NULL; dir1Node->sibling_next=dir2Node; dir2Node->parent=NULL; dir2Node->child=libNode; dir2Node->sibling_prev=dir1Node; dir2Node->sibling_next=file1Node; file1Node->parent=NULL; file1Node->child=NULL; file1Node->sibling_prev=dir2Node; file1Node->sibling_next=etcNode; etcNode->parent=NULL; etcNode->child=NULL; etcNode->sibling_prev=file1Node; etcNode->sibling_next=NULL; libNode->parent=dir2Node; libNode->child=liuNode; libNode->sibling_prev=NULL; libNode->sibling_next=userNode; userNode->parent=NULL; userNode->child=NULL; userNode->sibling_prev=libNode; userNode->sibling_next=binNode2; binNode2->parent=NULL; binNode2->child=NULL; binNode2->sibling_prev=userNode; binNode2->sibling_next=NULL; liuNode->parent=libNode; liuNode->child=NULL; liuNode->sibling_prev=NULL; liuNode->sibling_next=sunNode; sunNode->parent=NULL; sunNode->child=NULL; sunNode->sibling_prev=liuNode; sunNode->sibling_next=ftiNode; ftiNode->parent=NULL; ftiNode->child=NULL; ftiNode->sibling_prev=sunNode; ftiNode->sibling_next=NULL; } //获取文件或目录名,并把指针指向其父亲结点 int FindFilename(char Para2[]) { i=strlen(Para2)-1; j=0; while(Para2[i]!='/'&& i>=0) { filename[j]=Para2[i]; i--; j++; } filename[j]='\0';//获得逆序的文件或目录名,存入filename中 if(i<0) Para2[i+1]='\0'; else Para2[i]='\0'; j--; //filename逆转,获得正确的文件或目录名 for(i=0;i<strlen(filename)/2;i++,j--) { tmp=filename[i]; filename[i]=filename[j]; filename[j]=tmp; } //return filename[i]; //查找路径 if(strlen(Para2)>0) { int sign=FindPath(Para2); if(sign==0) return 0; } return 1; } //缓冲区安全输入子函数 //如果输入超过buffer_len,则截取前buffer_len-1长度的输入, //buffer_len处字符用'/0'代替 int GetInput(char* buffer,unsigned int buffer_len) { unsigned int count=0;//int count=0; while(count<buffer_len) { if((buffer[count]=getchar())==10) { buffer[count]='\0'; return count; } count++; } while(getchar()!=10); buffer[buffer_len-1]='\0'; return -1; } //分解命令子函数 int ParseCommand() { char Inputs[INPUT_LEN]; int i=0,j=0,ch; unsigned int k=0;//int k=0; printf("%s>",path); printf("#"); //获取输入 if(GetInput(Inputs,INPUT_LEN)==-1) { printf("输入行太长。\n"); return 0; } Para1[0]=Para2[0]='\0'; //获取参数Para1,即操作名 while(Inputs[i]!=' '&&Inputs[i]!='\0' && i<COMMAND_LEN-1) { Para1[i]=Inputs[i]; i++; }//while Para1[i]='\0'; //输入命令太长 if(i==(COMMAND_LEN-1))return 1; //获取参数2,即路径文件名 if(Inputs[i]!='\0') { while(Inputs[i]==' ' && i<INPUT_LEN-1) i++; j=0; while(Inputs[i]!='\0' && i<INPUT_LEN-1) { Para2[j]=Inputs[i]; i++; j++; } Para2[j]='\0'; } Trim(Para1); Trim(Para2); //将操作名全部转换成小写字母 for(k=0;k<strlen(Para1);k++) { ch=tolower((int)Para1[k]); Para1[k]=ch; } return 1; } //cd功能处理子函数 int cdComd() { if(!CheckCommand()) //命令检查 return 0; if(strcmp(Para2,"..")==0) { //对cd..命令的处理 int i; while(cp->sibling_prev) cp=cp->sibling_prev; if(cp->parent) { cp=cp->parent; }//找到父亲结点 else { return 0; } //对当前路径进行相应处理 i=strlen(path); while(path[i]!='/'&&i>0) i--; if(i!=0) path[i]='\0'; else path[i+1]='\0'; } else { FindPath(Para2);//查找路径 } printf("进入工作目录\n"); printf("\n\n模拟文件管理系统\n"); printf("\ncd 改变目录; creat 创建文件; del 删除文件;\n"); printf("dir 显示目录; md 创建目录; rd 删除目录; exit 退出.\n"); printf("\n--------------------------------------------------------------------------------\n"); return 1; } //命令处理子函数 void Trim(char *str) { int begin,end; char *tmp; begin=0; end=strlen(str); //找到字符串第一个非空格的位置 while(str[begin]==' '&&str[begin]!='\0') begin++; //去除字符串尾部空格 while(str[--end]==' '); str[end+1]='\0'; // 除去空格 if(begin<end) { tmp=(char *)malloc((sizeof(char))*(end-begin+2)); strcpy(tmp,&str[begin]); strcpy(str,tmp); free(tmp); } } //获取当前目录名子函数 int GetDir(int begin,char *path,char *curDir) { int i=0; int len=strlen(path); while(!((path[begin]=='\\')||(path[begin]=='/'))&&begin<len) { curDir[i++]=path[begin++]; } curDir[i]='\0'; Trim(curDir); return begin+1; } //查找路径函数 int FindPath(char *ph) { struct FileNode *temp; //struct FileNode *tp,*temp; char oldpath[INPUT_LEN-COMMAND_LEN]; unsigned int i=0; //int i=0 int sign=1; if(strcmp(ph,"/")==0) { //ph是根目录 cp=root; strcpy(path,"/"); return 1; } temp=cp; strcpy(oldpath,path);//保留原路径和指针 if(ph[0]=='/') { //指针指向根目录的左孩子 cp=root->child; i++; //滤过'/' strcpy(path,"/"); } else { if(cp!=NULL&&cp!=root) strcat(path,"/"); if(cp&&cp->child) { if(cp->isdir) cp=cp->child;//指针指向当前目录的左孩子 else{ printf("路径错误!\n"); return 0; } } } while(i<=strlen(ph)&&cp) //继续查找指定路径,如遇到文件则报错 { int j=0; if(ph[i]=='/'&&cp->child) { i++; //略过'/' if(cp->isdir) cp=cp->child; //继续查找下级目录 else { printf("路径错误!\n"); return 0; } strcat(path,"/"); } // curpath 记录当前要找的路径名 while(ph[i]!='/'&&i<=strlen(ph)) { curpath[j]=ph[i]; i++; j++; } curpath[j]='\0'; while((strcmp(cp->filename,curpath)!=0||(cp->isdir!=1))&&cp->sibling_next!=NULL) { cp=cp->sibling_next; } if(strcmp(cp->filename,curpath)==0) { if(cp->isdir==0) { strcpy(path,oldpath); cp=temp; printf("是文件不是目录.\n"); return 0; } strcat(path,cp->filename); } if(strcmp(cp->filename,curpath)!=0||cp==NULL) { strcpy(path,oldpath); cp=temp; printf("输入路径错误\n"); return 0; } } return 1; } //创建文件子函数 int creatComd() { struct FileNode * temp=CreateFileNode("",0,0); int sign; struct FileNode *tp; //路径不能为空 if(strlen(Para2)==0) { printf("\n命令格式有错误.\n"); return 0; } //长度检查 if(strlen(Para2)>50) { printf("\n文件名过长\n"); return 0; } //格式检查 if (!(isalpha(Para2[0])||Para2[0]=='_'||Para2[0]=='\0'||Para2[0]=='/')) { printf("文件名格式有错!\n");/* 文件首字母可以为'字母'或'数字'或'_'或'/'或'回车'*/ return 0; } //获取文件名 sign=FindFilename(Para2); if(sign==0) return 0; if(cp->isdir!=1)//如当前指针指向的是文件,则报错 { printf("you cannot edit a file in under a file!\n"); return 0; } //创建文件结点,并插入到指定目录下 tp=CreateFileNode("",1,0); strcpy(tp->filename,filename); tp->isdir=0; tp->i_nlink=0; if(cp->child==NULL) { tp->parent=cp; tp->child=NULL; cp->child=tp; tp->sibling_prev=NULL; tp->sibling_next=NULL; } else { temp=cp; //用temp找到新结点插入处 temp=temp->child; while(temp->sibling_next )//find the last sibing node { temp=temp->sibling_next; if(strcmp(temp->filename,filename)==0&&temp->isdir==0) { printf("此文件名已存在\n");//重名报错 return 0; } }//找到了最后一个结点 temp->sibling_next=tp; tp->parent=NULL; tp->child=NULL; tp->sibling_prev=temp; tp->sibling_next=NULL; } printf("新建文件\n"); printf("\n\n模拟文件管理系统\n"); printf("\ncd 改变目录; creat 创建文件; del 删除文件;\n"); printf("dir 显示目录; md 创建目录; rd 删除目录; exit 退出.\n"); printf("\n--------------------------------------------------------------------------------\n"); return 1; } //删除文件子函数 int delComd() { int sign; struct FileNode *temp; //参数不能为空 if(strlen(Para2)==0) { printf("\n命令格式有错误.\n"); return 0; } //获取文件名 sign=FindFilename(Para2); if(sign==0) return 0; //用temp指向要删除的结点 if(cp->child) { temp=cp->child; while(temp->sibling_next && (strcmp(temp->filename,filename)!=0 || temp->isdir!=0)) temp=temp->sibling_next; if(strcmp(temp->filename,filename)!=0) { printf("不存在该文件!\n"); return 0; } } else { printf("不存在该文件!\n"); return 0; } //要删除的不能是目录 if(temp->isdir!=0) { printf("ERROR!该命令只能删除文件,不可删除目录!\n"); return 0; } //如仍有用户使用该文件,则不能删除 if(temp->i_nlink!=0) { printf("还有用户共享了该文件,不能删除!\n"); return 0; } //删除工作 if(temp->parent==NULL)//不是第一个孩子 { temp->sibling_prev->sibling_next=temp->sibling_next; if(temp->sibling_next)//处理是最后一个兄弟的情况 temp->sibling_next->sibling_prev=temp->sibling_prev; temp->sibling_prev=temp->sibling_next=NULL; printf("删除完毕"); }//if else//第一个孩子 { if(temp->sibling_next)//处理是最后一个兄弟的情况 temp->sibling_next->parent=temp->parent; temp->parent->child= temp->sibling_next; printf("删除完毕\n"); }//else free(temp); printf("\n\n模拟文件管理系统\n"); printf("\ncd 改变目录; creat 创建文件; del 删除文件;\n"); printf("dir 显示目录; md 创建目录; rd 删除目录; exit 退出.\n"); printf("\n--------------------------------------------------------------------------------\n"); return 1; } ///////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// int mdComd() { struct FileNode * temp,*tp; temp=CreateFileNode("",1,0); int sign; //参数不能为空 if(strlen(Para2)==0) { printf("\n命令格式有错误.\n"); return 0; } //长度检查 if(strlen(Para2)>50) { printf("\n目录名过长\n"); return 0; } //格式检查 if (!(isalpha(Para2[0])||Para2[0]=='_'||Para2[0]=='\0'||Para2[0]=='/')) { printf("目录名格式有错!\n");/* 目录首字母可以为'字母'或'数字'或'/'*/ return 0; } //获取目录名 sign=FindFilename(Para2); if(- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 模拟 文件 管理 作业
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文