操作系统课程设计--模拟磁盘文件管理的程序.doc
《操作系统课程设计--模拟磁盘文件管理的程序.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计--模拟磁盘文件管理的程序.doc(55页珍藏版)》请在咨信网上搜索。
中南林业科技大学 操作系统课程设计 课程题目:模拟磁盘文件管理的程序 姓名: 学号: 专业: 计算机科学与技术 年级: 2006 计算机科学学院 2021年11月 模拟磁盘文件管理的程序 一、 课程设计内容 ⑴ 自定义磁盘文件管理的数据结构; ⑵ 能够自由创建、修改、删除文件; ⑶ 文件具有一定自定义的属性; ⑷ 能够显示当前系统文件的状态。 二、 课程设计的数据结构说明 程序中定义了两个类: class file//文件类 {private: char name[10]; //文件名 public: int tag; //删除标记 1:已删 0:未删 file( ){ } char *getname( ){return name;} //获取文件名 int gettag( ){return tag;} //获取删除标记 int getlength() {return length;} //获取文件大小 int getblocknum() {return blocknum;} // 磁盘块数 int getblocksum1(){return blocksum1;} //磁盘块号的始点 int getblocksum2(){return blocksum2;} //磁盘块号的终点 int length,blocknum,blocksum1,blocksum2; void setname(char na[ ] ) {strcpy(name,na);} //设置文件名 void delwenjian(){ tag=1; }//设置删除标记 1:已删 0:未删 void creatfile(char *na,int L,int num,int s1,int s2) //创建文件 void deltefile(char *na) {tag=1; strcpy(name,na);} //删除文件 void disp( )//输出文件信息 class fdatabase //文件库类 { private: int top; //文件记录指针 file f[50]; public: fdatabase(){top=-1;} //构造函数 int search(char *fname)//按文件名查找 int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在 int deltefile(char *na)//删除文件时先查找是否存在 void disp() //输出所有文件信息 }; 三、 课程设计的模板说明 1、初始化,建立文件系统 输入磁盘大小(G),每个盘块大小(M),自动建立位示图,位示图字长定为32位 输出位示图的行数,以及行号、列号与磁盘块号的转换公式(都从0开始编号)。 2、 循环选择执行以下功能 1、存储文件 输入建立的文件名和文件大小,如果该文件名已经存在,则输出不能建立的信息否则计算所需的磁盘块数 为其分配足够多的磁盘块,并记录下来 输出所占用的磁盘块号 2、删除文件 输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,否则收回该文件所占用的磁盘块 删除该文件名 3、显示位示图情况 显示位示图的情况 显示剩余磁盘块的数目 4、显示文件列表 显示文件名,文件大小,占用的磁盘块数目和磁盘块号 四、 课程设计的源代码 #include<iostream.h> #include <math.h> #include<iomanip.h> #include<string.h> #include<fstream.h> int i=0,j=0,sum=0,tt=0,r,ii,k,g,m; int a[100][32]; class file//文件类 {private: int no; //文件编号 char name[10]; //文件名 public: int tag; //删除标记 1:已删 0:未删 file( ){ } char *getname( ){return name;} //获取姓名 int gettag( ){return tag;} //获取删除标记 int getno() {return no;} //获取文件编号 int getlength() {return length;} //获取文件大小 int getblocknum() {return blocknum;} // 磁盘块数 int getblocksum1()//磁盘块号的始点 { return blocksum1; } int getblocksum2()//磁盘块号的终点 { return blocksum2;} int length; //文件大小 int blocknum;//盘块数 int blocksum1;//所占盘块号的始点 int blocksum2;//所占盘块号的终点 void setname(char na[ ] ) //设置文件名 {strcpy(name,na);} void delwenjian(){ tag=1; }//设置删除标记 1:已删 0:未删 void creatfile(char *na,int L,int num,int s1,int s2) //创建文件 { tag=0; length=L; blocknum=num; blocksum1=s1; blocksum2=s2; strcpy(name,na); blocknum=length/m; //盘块数=文件大小/盘块大小 if(length%m!=0) //盘块数取上整 blocknum=blocknum+1; cout<<" 所需磁盘块数:"<<blocknum<<endl<<endl; if((sum+blocknum)<=32) //所有盘块数只占用一行,直接赋值 { for(;j<(sum+blocknum);j++) a[i][j]=1; sum=sum+blocknum; //再进行下面文件的盘块数累加 } else { //占用多行,先赋值整行 for(;j<32;j++) a[i][j]=1; i=i+1; for(j=0;j<(sum+blocknum)-32;j++) //再进行剩余项赋值 { a[i][j]=1; } sum=sum+blocknum-32; } tt=tt+blocknum; //输出文件所占用的盘块号 cout<<" 所占磁盘块号:"<<tt-blocknum<<" to "<<tt-1<<endl; blocksum1=tt-blocknum; blocksum2=tt-1; } void deltefile(char *na) //删除文件 { tag=1; strcpy(name,na); } void disp( )//输出文件信息 {cout<<setw(8)<<name <<setw(10)<<length<<setw(18)<<blocknum<<setw(12)<<blocksum1<<" to "<<blocksum2<<endl;} }; class fdatabase //文件库类 { private: int top; //文件记录指针 file f[50]; public: fdatabase() //构造函数 {top=-1;} int search(char *fname)//按文件名查找 { for ( ii=0;ii<=top;ii++) { if (strcmp(f[ii].getname(),fname)==0 && f[ii].tag==0) return 0; } return 1; } int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在 { int p; p=search(na); if (p==1) { top++; f[top].creatfile(na,L,num,s1,s2); return 1;} else {cout<<" !!!该文件已存在,不能创建!!!\n\n"; return 0; } } int deltefile(char *na)//删除文件时先查找是否存在 {int b,p,x=0,n1,n2,q1,q2,t; p=search(na); if (p==0) //若文件存在 { //进行删除文件赋值 f[ii].tag=1; b=f[ii].length/m; //盘块数=当前文件大小/盘块大小 if(ii==0) // 对第一个删除文件进行赋值 for(k=0;k<b;k++) a[x][k]=0; else{ n1=(f[ii-1].blocksum2+1)/32; //被查找的文件之前文件所占用的盘块数/32, //大于0表示跨行 n2=(f[ii].blocksum2+1)/32; //所有文件所占用的盘块数/32,大于0表示跨行 q1=(f[ii-1].blocksum2+1)-n1*32; // 当前文件的开始盘块号 q2=(f[ii].blocksum2+1)-n2*32; // 用于跨行后计算盘块号 t=n2-n1; if(t==0) //若n2与n1相等,表明当前所有被占用盘块在同一行 for(k=q1;k<1+b;k++) a[n2][k]=0; else { if((f[ii-1].blocksum2+1)%32==0) //前面所占用的盘块数是32倍数 { x=x+n1; //当前文件赋值 for(;t-1>=0;t--,x++) //循环进行整行赋值 for(k=0;k<32;k++) a[x][k]=0; x=n2; //对剩余项赋值 for(k=0;k<b-(t-1)*32;k++) a[x][k]=0; } else //对当前文件前几项赋值 { x=n1; for(k=q1;k<32;k++) a[x][k]=0; x=x+1; int t1=t; for(;t-1>0;t--,x++) //中间整行赋值 for(k=0;k<32;k++) a[x][k]=0; x=n2; //最后剩余项赋值 for(k=0;k<(f[ii].blocksum2+1)-t1*32;k++) a[x][k]=0; } } return 1; } } else {cout<<"该文件不存在"; return 0;} } void disp() //输出所有文件信息 { for (int i=0;i<=top;i++) if(f[i].tag==0) f[i].disp(); } }; void bit_map(int I) { int s=0; cout<<"---------------------------------------------------------------"<<endl; for(int p=0;p<I;p++) {for(int q=0;q<32;q++) cout<<a[p][q]<<" "; cout<<endl; } out<<"----------------------------------------------------------------"<<endl; for(int p1=0;p1<I;p1++) for(int q1=0;q1<32;q1++) if(a[p1][q1]==1) s=s+1; s=(g*1024)/m-s; cout<<" 剩余盘块数:"<<s<<endl; } void main() { int I,l,b,i,j,ss1,ss2,sum=0; char fname[20]; fdatabase p; file w; cout <<"\t\t************************************************\n"; cout <<"\t\t* *\n"; cout <<"\t\t* 初始化,建立文件系统 *\n"; cout <<"\t\t* *\n"; cout <<"\t\t************************************************\n"; cout <<" 请输入磁盘大小GB: "; cin >>g; cout<<endl; cout <<" 请输入盘块大小MB: "; cin >>m; cout<<endl; I=(g*1024)/(32*m); for( i=0;i<I;i++) for( j=0;j<32;j++) a[i][j]=0; cout<<" 建立的位示图为:"<<endl; bit_map(I); cout<<" 行数:"<<I<<endl; cout <<"\t\t************************************************\n"; cout <<"\t\t* *\n"; cout <<"\t\t* 行号、列号与磁盘块号的转换公式为: *\n"; cout <<"\t\t* 磁盘块号=行号*32+列号 *\n"; cout <<"\t\t* 行号=磁盘块号/32 *\n"; cout <<"\t\t* 列号=磁盘块号%32 *\n"; cout <<"\t\t* *\n"; cout <<"\t\t************************************************\n"; char choice; while(choice!='0') {cout <<"\t\t************************************************\n"; cout <<"\t\t* *\n"; cout <<"\t\t* 文 件 管 理 系 统 *\n"; cout <<"\t\t* *\n"; cout <<"\t\t************************************************\n"; cout <<"\t\t\t1 存 储 文 件\n\n\t\t\t2 删 除 文 件 \n\n\t\t\t3 显示位示图情况 \n\n\t\t\t4 显示文件列表"<<endl; cout <<" 请输入选择项: "; cin >> choice; cout<<endl; switch (choice) { case '1': cout <<" 请输入文件名: "; cin>>fname; cout<<endl; //创建文件前,先查找是否有同名文件存在 int q; q=p.search(fname); if (q==0) { cout<<" !!!该文件已存在,不能创建!!!\n\n"; break; } cout <<" 请输入文件大小MB: "; cin>>l; cout<<endl; if(l>g*1024) {cout<<" !!!文件大小超过磁盘最大容量,无法进行分配!!!"<<endl; break;} p.creatfile(fname,l,b,ss1,ss2); break; case '2': cout <<" 请输入文件名: "; cin>>fname; cout<<endl; q=p.search(fname); if (!q==0) { cout<<" !!!该文件不存在,无法删除!!!\n\n "; break; } p.deltefile(fname); break; case '3': cout <<"\t\t**************显示位示图如下*********************\n"; bit_map(I); cout<<endl; break; case '4': cout <<"\t\t*************文件列表如下************************\n"; cout<<"---------------------------------------------------------------"<<endl; cout<<setw(10)<<"文件名"<<setw(15)<<"文件大小(MB)"<<setw(15)<<"所占盘块数"<<setw(15)<<"所占盘块号"<<endl; p.disp(); cout<<endl; break; default: cout<<"输入错误,请从新输入: \n\n"; break; } } } 五、 课程设计程序运行结果 1、初始化,建立文件系统 (1)用户根据提示输入磁盘大小(GB)与每个盘块大小(MB); (2)程序首先根据用户输入的磁盘大小(GB)与每个盘块大小(MB),自动建立位示图,即初始化位示图,位示图每一行长度固定为32位(即列固定为32);位示图中每一位表示一个盘块,取值0和1分别表示空闲和占用。初始化的位示图应全为0; (3)程序再输出位示图的剩余盘块数,行数,以及行号、列号与磁盘块号的转换公式 (行列皆从0开始编号); 这样,初始化,建立文件系统完成。运行结果: 2、选择执行:存储文件,删除文件,显示位示图情况,显示文件列表 【显示文件管理系统列表】显示文件系统管理列表,并提示输入信息1——4。用户输入文件操作命令1(存储文件),2 (删除文件)、3(显示位示图情况)、4(显示文件列表); 格式如下:键入1,创建文件名为fname,大小为L(MB)的文件; 键入2,删除文件名为fname的文件; 键入3,显示位示图情况; 键入4,显示所有文件信息。 运行结果: 【存储文件】 用户输入文件操作命令是1(存储文件)。系统提示你输入你要建立的文件名和文件大小,如果该文件名已经存在,则系统提示输出不能建立此文件的信息,否则计算所需的磁盘块数和所占用的磁盘块号,并输出结果。相应的在位示图上,因为位示图是矩阵,可以用数组存储,根据所占用的磁盘块号和公式: 磁盘块号=行号*32+列号 行号=磁盘块号/32 列号=磁盘块号%32 计算出文件占用的磁盘块在位示图上的位置,现在是创建文件,所以将位示图该位置上的二进制数置1,表示已分配出去。 分别创建名为ll,zz和mm三个文件,文件大小分别为224MB,320MB和56MB。 此时对应的位示图如下: 文件列表如下: 若再创建一个已经创建过的文件,则显示如下信息: 若创建的文件大小超过磁盘的最大容量,则显示如下信息: 【删除文件】 用户输入文件操作命令是2 (删除文件) 。系统提示你输入要删除的文件名,如果该文件名不存在,则输出删除出错信息。在位示图上,根据所占用的磁盘块号和公式: 磁盘块号=行号*32+列号 行号=磁盘块号/32 列号=磁盘块号%32 计算出文件占用的磁盘块在位示图上的位置,现在是删除文件,所以将位示图该位置上的二进制数置0,表示收回该文件所占用的磁盘块。 删除第二个文件zz,结果如下: 则相应的位示图和文件列表变为: 若删除一个不存在的文件,则显示如下信息: 【显示位示图情况】 如果用户输入文件操作命令是我wst() (显示位示图情况),系统输出此时位示图的情况,状态位为'0'表示对应盘块空闲,状态位为'1'表示该盘块已被分配出去。系统再显示剩余磁盘块的数目。 以下是删除zz文件,创建xx后和创建xx后,删除ll的位示图: 【显示文件列表】 如果用户输入文件操作命令是disp()(显示所有文件情况),系统会显示所有文件的文件名,文件大小,占用的盘块数和盘块号。 以下是删除zz文件,创建xx后和创建xx后,删除ll显示的文件列表: 目录 第一章课程设计目的和要求………………………………………………………………………1 1。1 课程设计的目的……………………………………………………………………………1 1。2 课程设计实现的要求………………………………………………………………………1 第二章 课程设计任务内容…………………………………………………………………………2 第三章 详细设计说…………………………………………………………………………………3 3.1 模块…………………………………………………………………………………………3 3。1。1 模块描述………………………………………………………………………………3 3.1。2功能模块图……………………………………………………………………………3 3.2性能…………………………………………………………………………………………4 3。3 函数说明……………………………………………………………………………………4 3.3.1 学生信息录入函数……………………………………………………………………4 3。3.2所有学生上机费用计算函数…………………………………………………………6 3。3.3 学生信息查询函数……………………………………………………………………8 3.4 系统流程图………………………………………………………………………………11 第四章软件使用说明………………………………………………………………………………12 4.1 软件使用说明及出现的问题…………………………………………………………12 4.2 运行结果………………………………………………………………………………12 4.2。1 初始运行界面……………………………………………………………………12 4。2。2 查询界面…………………………………………………………………………13 4。2.3 计算界面…………………………………………………………………………13 第五章 课程设计心得与体会………………………………………………………………………14 附录一 参考文献……………………………………………………………………………………15 附录二 程序清单……………………………………………………………………………………16 机房收费管理系统 第一章 课程设计目的和要求 1。1 课程设计的目的 进一步巩固《C++程序设计》所学的知识,特别加强数组,指针,结构体,文件数据类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以及用C/C++ 语言解决实际问题的能力,为以后后续课程的学习打好基础. 此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力.要求熟悉运用一些编程软件(如:Microsoft Visual C++ 6.0),对我们所学的理论知识进一步的深化. 1。2 课程设计实现的要求 在程序设计中,既可以用传统的结构化程序设计方法,也可以用先进的面向对象程序设计方法。机房收费管理系统主要应用在机房,将每位上网同学的学号、班级、姓名、上机起始时进行录入,对每位同学的上网费用进行计算并按班级、学号、姓名进行查询. 第二章 课程设计任务内容 用C/C++语言实现一个机房收费管理系统,该系统主要应用在机房管理上,通过这个系统可以录入学生信息的总数,学生信息包括学生的学号、班级、姓名,还有学生上机的起始时间。在本程序中要有学生信息录入功能,上机费用计算功能,按条件查询功能,信息的录入是要录入学生的学号、班级、姓名、上机时间,上机费用按每小时1元计算,不足一小时也按一小时计算,上机费用=上机的时间*1.0/h,上机的时间为从上机时起到下机时所在电脑的当时时间为准。录入完成后可以按学生的学号、班级、姓名来查询学生的上机情况. 第三章 详细设计说明 3.1 模块 3.1。1模块描述 定义一个结构体,在其中声明结构变量,然后定义字符串,来存放要用到的变量.然后定义此程序的其他功能模块的原型.主函数调用各个功能子函数,定义各个功能子函数,通过 addition做一个学生信息录入的函数,实现学生学号、班级、姓名以及上机时间的录入,通过calculate做一个计算学生上机费用的函数,实现上机费用的计算,通过search创建一个查询函数,实现对上机学生情况的查询。在程序中需要输入的内容包括: (1)学生信息的录入 实现过程:根据提示选择“1”进入学生信息录入界面,按界面文字提示输入要录入信息的学生数,,按步骤输入学生的信息,以“Enter"键结束,系统自动保存所输入的信息。 (2)上机费用的计算 实现过程:根据提示选择“2”进入计算界面,以“Enter"键结束,由系统自动计算出所有学生的上机费用. (3)学生信息查询 实现过程:根据提示选择“3"进入信息的查询界面,按自己的需要通过学生的学号、班级、姓名来查询学生的信息,系统自动调出所查询学生的信息,以“Enter”键结束,此时所有的基本信息都被要求重新输入。 3.1。2功能模块图 此系统的函数功能模块图如图3-1所示。 机房收费管理系统 学生信息的录入 学生上机费用的计算 某个同学上机费用查询 图3—1 函数功能模块图 3。2 性能 该模块性能要求 (1)灵活性要求 输出的数据能准确的按照操作代码输出。 (2)时间特性要求 输入的各项操作代码能及时反应其运行结果。 3。3 函数说明 3。3。1 学生信息录入函数 (1)原型:void addition() (2)功能:该函数用来录入学生信息,包括要录入学生信息的总数,录入学生的学号、班级、姓名以及上机时间。 (3)流程图:如图3—2所示。 开始 i=1 i<=n 输入第i个学生的学号 假 真 输入第i个学生的班级 录入学生信息 输入第i个学生的上机时间 i++ 结束 输入第i个学生的姓名 3—2学生信息录入函数的流程图 (4)对应代码 void addition() { int i; printf("\n请输入录入学生信息的总数:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("\n\t请输入第%d个学生学号:”,i); scanf(”%s",student[i-1].num); printf(”\n\t请输入第%d个学生班级:”,i); scanf(”%s",student[i—1]。theclass); printf(”\n\t请输入第%d个学生姓名:",i); scanf(”%s”,student[i—1]。name); printf("\n\t请输入第%d个学生上机时间(例08:00):",i); scanf("%s",student[i—1].ontime); printf(”\n\t提示:您已成功录入第%d条信息\n",i); } } 3.3.2所有学生上机费用计算函数 (1)原型:void calculate() (2)功能:该函数用来计算学生上机的费用, (3)流程图:如图3—3所示。 开始 i=1 假 i<=n 真 输出第i个学生的费用 假 上机总时间是否不足一小时 真 上机费用=上机时间*1 上机费用=上机的整时间*1+1 i++ 结束 图3—3 成绩查询函数的程序流程图 (4)对应代码 void calculate() { int hours; char times[30]; time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime(&rawtime ); strcpy(times,asctime(timeinfo)); printf("\t所有学生上机费用如下:\n"); for(int i=1;i<=n;i++) { printf(”学生%d费用:",i); if((student[i-1]。ontime[3]-48)*10+student[i-1]。ontime[4]>(times[14]—48)*10+times[15]) hours=(times[11]-48)*10+times[12]-(student[i—1].ontime[0]-48)*10—student[i-1].ontime[1]; else hours=(times[11]-48)*10+times[12]—(student[i-1].ontime[0]—48)*10-student[i—1]。ontime[1]+1; printf(”%d\n",hours); } } 3。3.3 学生信息查询函数 (1)原型:void search() (2)功能:该函数用来按照条件显示学生上机时间。 (3)流程图:如图3-4所示。 开始 输出请选择查询方式:1.根据学号查询;2.根据班级查询;3.根据姓名查询: 分别按学生的学号、班级、姓名查询 假 1、继续0、返回主菜单 真 结束 图3-4 成绩修改函数的程序流程图 (4)对应代码 void search() { int i,b,c,count; do { char find[20]; printf("\n请选择查询方式:1.根据学号查询;2.根据班级查询;3.根据姓名查询:"); scanf("%d",&b); switch(b) { case 1: count=PF_FLOATING_POINT_PRECISION_ERRATA; printf("\n请输入学生的学号:”); scanf("%s”,find); for(i=0;i<n;i++) { if (strcmp(student[i]。num,find)==0) { count++; if(count==PF_FLOATING_POINT_EMULATED) printf(”学生学号\t学生班级\t学生姓名\t上机时- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 模拟 磁盘 文件 管理 程序 实用 文档
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文