教师信息管理系统(C语言课程设计汇本)_第1页
教师信息管理系统(C语言课程设计汇本)_第2页
教师信息管理系统(C语言课程设计汇本)_第3页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计任务书计算机科学与技术专业年级班设计题目教师信息管理系统设计教师信息包括教师号、性别、年龄、学历、职称、工资、住址、等教 师号不重复。试设计一教师信息管理系统,使之能提供以下功能:1系统以菜单方式工作2教师信息录入功能 输入3教师信息删除功能4教师信息浏览功能一一输出5查询和排序功能:(至少一种查询方式)一一算法按教师号查询按职称查询等三、具体要求围绕课程设计的目的和意义,根本要求如下:1 、认真阅读?C语言课程设计?指导书,明确课程设计的目的、意 义和要求;2 、快速总结C程序设计语言的精华,如:函数的概念、函数的设 计和函数的调用;3、快速熟悉Tuber C或C+勺上机环境。能熟练

2、进展高级编辑操 作特别是字块操作;熟悉步进式、断点跟踪的程序调试方法,提高 工作效率。4 、根据“课程设计题目,采用构造化的程序设计思想,确定系 统的总体设计方案、确"定时间进度。如果是多人共一题,那么要首先 完成小组的人员分工及安排,不允许重题现象。5 学习并了解良好的程序设计风格。按质、按量、并按时间完成 课程设计的任务。6 提供可运行的课程设计系统,参加上机面试辩论。本次课程设计的重点是:学会设计并编写函数,掌握好各函数之 间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各 种操作;掌握几种典型算法的应用如:冒泡法、选择排序法和折半 查找法。同时锻炼学生根据题目进展分

3、析、设计、编码、调试程序和 书写必要文档的综合处理能力,从实践中学习并体会程序设计的构造 化思想和设计方法。四、进度安排依照教学方案,课程设计时间为 3周。按照软件工程的思想,软件系 统的分析设计至关重要,并要充分重视书写“文档。防止甚至杜绝“拿到题目就编码的现象。建议将时间分为三个阶段:第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各 程序模块的算法,并画出相应的 N-S图,同时编写相应的文档;第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过 的各个子模块进展集成调试;第三阶段,归纳文档资料,按要求填写在 ?课程设计说明书?上, 并参加辩论。三个阶段时间分配的大概比例是:

4、35 : 45: 20。五、完成后应上交的材料1 课程设计的题目、系统的总功能和各子模块的功能;2题目的设计思想或算法简述;3 主要程序的框图要求用 N-S图;4源程序代码要求在关键的位置有注释,从而增加程序的可读 性;5课程设计的总结报告,主要包括以下容:1课程设计中遇到的主要问题和解决方法;2你的创新和得意之处;3设计中存在的缺乏及改良的设想;4本次课程设计的感想和心得体会。以上完成的源程序及相关文档,填写在 ?课程设计说明书?上,要 求干净整洁,符合课程设计的要求和规。六、总评成绩指导教师签名日期年月日系主任审核日期年月日目录题目设计思想简述5.程序的N S图72.1总程序的N-S图72

5、.2各子函数的N S图72.2.1教师信息录入函数82.2.2教师信息浏览函数82.2.3教师信息删除函数92.2.4教师信息查询函数92.2.5教师信息排序函数-10三.源程序代码.11四.程序运行效果图 334.1登陆界面334.2菜单栏334.3录入功能344.4浏览功能344.5删除功能354.6查询功能354.7排序功能36五. 总结报告375.1课程设计中遇到的主要问题和解决方法375.2你的创新和得意之处375.3设计中存在的缺乏及改良的设想375.4本次课程设计的感想和心得体会38.题目设计思想简述如上图所示,该教师信息管理系统主要是一个以动态链表的应用 为根底来实现对教师信息

6、的录入,查询,删除等功能。定义教师构造体如下:struct teacherlong num;/ 教师号char n ame20;char sex5;/性别int age;/ 年龄char edu20; 学历char title20;职称long wage;/ 工资char addr100; / 地址char telep15; struct teacher *n ext;*head=NULL;主函数只进展口令函数和菜单栏函数的调用,主要工作通过菜单函数实现。口令为 123456。菜单栏函数通过用switch语句实现不同功能的选择,不同的功能 用不同的子函数实现。录入教师信息通过建立动态单链表来实

7、现。浏览教师信息那么通过将链表所有数据顺序输出来实现。查询功能只要从链表头开场不断往下一个结点读取信息跟所要查 找的信息比拟,直到读取到的信息跟所要查找的信息一样或链表尾为 止,并把此结点的信息输出。删除教师信息的函数是通过查找链表中有该信息的结点后将该结 点移出链表,即使该结点前一个结点直接指向该结点后面的结点来到 达删除信息的目的。排序函数是通过交换结点在链表中的位置来实现的,即使得各结 点在链表中的位置便是所要得到的排序该信息应在的位置,这样直接 顺序输出链表的信息时就能按所要的排序输出了。9 / 40二.程序的N S图2.1总程序的N S图说明:各功能都是通过调用子函数来实现的2.2各

8、子函数的N S图子函数主要包括教师信息录入,教师信息浏览,教师信息删除, 教师信息查询和教师信息排序等 5个。在退出系统时调用了一个保存 信息到文件中的函数,该函数只是简单的应用了文件的读写功能,在 此不写出其N S图。教师信息录入函数p仁(struct teacher *)malloc(LEN)输入一个教师号 p1->num教师号为0F链表头为空Head =p1p3=head当p3->next不为空p3=p3->n extp3->n ext=p1当教师号不为0输入教师的某,性别,年龄,学历,职称,月薪,住址,n=n+1厂f录一一Thead=p1p2->n ext

9、=p1p2=p1p仁(struct teacher *)malloc(LEN)输入一个教师号 p1->nump2-> next=NULL说明:p仁(struct teacher *)malloc(LEN) 中 LEN是在程序开头 的宏定义#define LEN sizeof(struct teacher)。其中 n 为全局变量,用来统计链表的结点数,以下出现的n都是同一个。教师信息浏览函数p=head链表头为空显示“还输出p所指向的位置中的教师的所有信息未录入过信p=p->n ext自"丿 111、直到p为空说明:实际程序中在链表头为空是提供了可以浏览之前保存在文

10、件中的信息的功能,中选择该功能时就调用了一个读取文件的函数。 该函数只是对文件读写的简单应用,详细请看后面第三局部代码,这 里不写出其N-S图。教师信息删除的函数卞、链表头一输出“还 未录 入过 教师 信 自"丿 111、输入要删除教师信息的教师号ip仁head当 i!=p1->numVp1>QeX 为空退出 循环p2=p1p1=p1- >n exti!=p1->num?一F输出“已录入 的教师信息 中没有该教 师号为链表头head=p1- >n ext p2->n ext=p1- >n ext9 / 40n=n-1224教师信息查询的函数在

11、查询方面程序为用户提供了 4种不同方式的查询,每一种方式 的查询为一个子函数,此时也是采用一个菜单栏函数进展选择查询方 式并调用该种方式的函数。菜单栏函数跟主程序菜单栏的算法一样, 此处只给出查询函数的N S图。输出“还未录入程序并退出函数输入要查找的教师信息的对应方法的对应数据ip=head当p非空时应信息不等输出p所指向的位置的教师的所有信息j=j+1p=p->n ext不为 0F输出“已录入的信息中不存在符合i的信息的教师说明:该N-S图是对应,教师号,职称,年龄四种查找方式的函 数的。中选择教师号查找时,输入i的即为教师号,与i做比拟的为p 中的教师号,选择其他查找方式时类似。教

12、师信息排序函数排序也跟查询一样给出多种排序方式并采用菜单栏函数,此处也只输出“还未录入过教师信息并退出函数第二个结点为空Fp仁headp2=head->n exti=1当i小于n时j=0当j小于n-i时、p1中的对应信息小过p2一一TFp3=p1为链表头head=p2p3->n ext=p2p仁p2p4=p2->n extp2->n ext=p1p2=p2-p1- >n ext=p4P3=p2>n extp2=p4p仁headp2=p1- >n ext调用教师信息浏览函数说明:p1,p2指向的结点用来比拟,p3, p4是用来记录结点的,中选用的排 序方

13、式不同,p1,p2用来比拟的信息为所选方式的信息。三.源程序代码#i nclude <stdio.h>#i nclude <malloc.h>#i nclude <stdlib.h>#include <string.h>#defi ne LEN sizeof(struct teacher)/宏定义构造体字节数int n=0;struct teacher/定义构造体long num;/ 教师号char n ame20;char sex5;/ 性别int age;/ 年龄char edu20;/ 学历char title20;职称long wage;

14、/ 工资char addr100;/地址char telep15;struct teacher *n ext;/ 指向下一个结点17 / 40*head=NULL;void key()口令检查的函数int i;long a;for(i=0;i<3;i+)printf("请输入口令(还可输入£次):n",3-i);sea nf("%ld",&a);if(a=123456)检查口令是否正确printf(" 欢送进入系统n");break;else printf("口令错误 n");if(i=3)

15、判断可以输入口令的次数是否用完prin tf("可使用的口令输入次数已用完,将自动退出!n");exit(0);void save()把数据存入文件的函数FILE *fp;int i;char file name20;struct teacher *p;prin tf("n是否把此次登录系统录入和修改后的教师信息保存到文件中n");printf("1:【是】0:【否】n请选择:");sea nf("%d",&i);while(i!=0)&&( i!=1)判断输入的选择是否有效printf(&

16、quot;选择无效,请重新输入正确选项:");sea nf("%d",&i);if(i=1)判断是否选择了要保存prin tf("n请输入要保存数据的文件名:");scan f("%s",file name);if(fp=fope n(file name,"wb")=NULL)printf("n无法翻开文件n");exit(0); for(p=head;p!=NULL;p=p->n ext) if(fwrite(p,sizeof(struct teacher),1,fp)

17、!=1)printf("n此处数据有误n");fclose(fp);exit(0);void read()从文件读出数据的函数struct teacher teach299,temp;int i=0;FILE *fp;char file name20;prin tf("n请输入存有教师信息的文件名:");sca nf("%s",file name);if(fp=fope n(file name,"rb")=NULL)printf("n 无法翻开文件n");exit(0);fseek(fp,-si

18、zeof(struct teacher),2);/*将位置指针从文件末尾后退一个构造体的字节数*/fread(&temp,sizeof(struct teacher),1,fp);/*从所指向的文件中读出数据存储到构造体变量temp中*/fseek(fp,0,0);将位置指针移到文件的开头if(fread(&teachi,sizeof(struct teacher),1,fp)=1)/*判断文件开头读入的数据是否为空*/printf("n存有的教师信息如下:n");while(teachi. nu m!=temp. num)/进展循环读取文件printf(&

19、quot; 教师号:%ld,:%s,性别:%s,年龄:%d,学历:%s,",teachi. nu m,teachi. name,teachi.sex,teachi.age,);printf("职称:%sn月薪:%ld,住址:%s,:%sn ",teachi.title,teachi.wage,teachi.addr,teachi.telep);i=i+1;fread(&teachi,sizeof(structteacher),1,fp);/*从文件中读入数据存储到构造体变量teach【i】中*/输出文件中的最后一个信息printf(&q

20、uot;教师号:%ld,:%s,性别:%s,年龄:%d,学历:%s,",teachi. nu m,teachi. name,teachi.sex,teachi.age,);printf("职称:%sn月薪:%ld,住址:%s,:%sn ",teachi.title,teachi.wage,teachi.addr,teachi.telep);fclose(fp);else printf(”该文件中无教师信息n");/文件为空时输出此void creat()录入教师信息的函数struct teacher *p1,*p2,*p3;p1=p2

21、=(struct teacher *)malloc(LEN);/*申请一个构造体字节数的空间用来存储一个教师的信息*/printf("请输入一位教师的教师号完毕录入请输入0");sca nf("%ld",&p1-> nu m);if(p1- >n um!=0)判断用户是要完毕录入还是要存储信息if(head=NULL) head=p1;/* 判断链表是否为空,是那么将 链表头指向p1*/else /链表不为空那么将链表尾指向p1p3=head;/p3用来记录链表的尾部 while(p3->next!=NULL)/* 假设p3不是

22、链表尾那么将p3指向下一个结点*/p3=p3->n ext;p3-> next=p1;将最后一个结点指向p1while(p1-> num!=0) 判断用户是否完毕录入功能/录入该教师号的教师对应的信息prin tf(":");sca nf("%s",p1- >n ame);printf("性别:");21 / 40sea nf("%s",p1->sex);printf("年龄:");sea nf("%d",&p1->age);pri

23、ntf("学历:");sea nf("%s",p1->edu);printf("职称:");sea nf("%s",p1->title);printf("月薪:");sea nf("%ld",&p1->wage);printf("住址:");sea nf("%s",p1->addr);printf(":");sea nf("%s",p1->telep);n=n

24、+1;/给统计录入的教师数n加一/*判断是否为第一个录入的信息,是那么将链表头指向p1,否那么将p2指向p1*/if(n=1) head=p1;else p2->n ext=p1;p2=p1;/p2用来记录链表的最后一个结点p仁(struct teacher *)malloc(LEN);重新申请空间printf("请输入一位教师的教师号(完毕录入请输入0):");sea nf("%ld",&p1-> nu m);p2->next=NULL;将最后一个结点指向空void prin t()输出教师信息的函数struct teache

25、r *p;int i;p=head;if(head!=NULL) 判断链表是否为空printf("n这dB教师的信息为:n",n);doprintf(" 教师号:%ld,:%s,性别:%s,年龄:%d,学历:%s,职称:%sn",p->nu m,p->n ame,p->sex,p->age,p->edu,p->title);printf("月薪:%ld,住址:%s,:%sn ",p->wage,p->addr,p->telep);p=p-> next;/将下一个结点的首地址赋

26、给 pwhile(p!=NULL);到链表尾时完毕循环else/链表为空时执行以下局部prin tf("n你此次登录系统还没有录入教师信息,可进展以下操作:n");printf("1:【浏览以前保存在文件中的教师信息】2:【开场录入教师信息】n");printf("3:【退出系统】4:【返回菜单】n");printf("请选择:");sea nf("%d",&i);while(i<1)&&( i>4)printf("选择无效,请重新输入正确选项:sc

27、an f("%d",&i);if(i=1) read();/调用从文件读取数据的函数if(i=2) creat();调用录入信息的函数if(i=3) exit(O);/退出系统void del()删除教师信息的函数struct teacher *p1,*p2;long i;if(head=NULL)判断链表是否为空printf("n还未录入过教师信息n");链表为空时输出return;printf("请输入要删除教师信息的教师号:");sca nf("%ld",&i);p仁head;while(i!

28、=p1->num)直到pl指向的结点是要删除的信息位置if(p1-> next=NULL) break;/p1的下个结点为空那么退出循环p2=p1;/p2用来记录pl的前一个结点p1=p1-> next;/p1指向下一个结点if(i=p1->num)/判断pl是否为要删除的信息if(p1=head) head=p1->next;/* 假设 pl 为头结点那么将头指针指向p1的下一个结点*/else p2->next=p1->next;/*p1非头结点那么将p1后面的结点连接到p1前一个结点的后面*/printf("n已删除教师号为%ld的教师

29、信息n",i);n=n-1;/记录教师数的n要减一p1不是要删除的信息那么表示要删除的信息不再链表中else printf("n已录入的教师信息中没有教师号为 %ld的n",i);return;void sort1()/按教师号进展排序的函数struct teacher *p1,*p2,*p3,*p4;int i,j;if(head=NULL)printf("n还未录入过教师信息n");return;if(head-> next!=NULL) /判断是否只有一个信息/用冒泡法排序p仁head;/p1记录用来比拟的两个结点中的前面一个p2=

30、head-> next;/p2记录比拟的两个结点中的后面个for(i=1;i<n;i+)实现n-1趟比拟的外循环for(j=0;j<n-i;j+)在每一趟中进展n-i次比拟的循环if(p1-> num>p2-> nu m)/*比拟相邻两个结点中教师号大小*/当p1的教师号大时那么对调两个结点的位置if(p1=head) head=p2;else p3-> next=p2;/*p1为头结点时那么将头指针指向p2,否那么就将p2连接到用来记录p1前一个结点的p3的后 面*/p4=p2->next;/p4 用来记录p2后面的结点 p2->next

31、=p1;/p1的结点换到原来p2的位置p1->next=p4; 原来p2后面的结点连接到p1 p3=p2;/p3记录下p2的位置p2=p4;/p2指向原来位置的下一个结点else/*p1中教师号没有打过p2中教师号,那么将pl, p2都指向它们各自位置的下一个结点*/p3=p1;记录pl后移一位后它前个结点的位P仁 p2;p2=p2->n ext;p仁head;/p1指向链表头,开场下一趟外循环的准备 p2=p1-> next;/p2指向链表第二个结点prin tf("n按教师号排序后的教师信息如下:n");prin t();/调用教师信息浏览函数void

32、 sort2()/按月薪排序的函数,算法跟按教师号排序的一样struct teacher *p1,*p2,*p3,*p4;int i,j;if(head=NULL)prin tf("n return;还未录入过教师信息n");27 / 40if(head-> next!=NULL)p仁head;p2=head->n ext;for(i=1;i <n ;i+)for(j=0;j <n-i;j+) if(p1->wage>p2->wage)if(p1=head) head=p2; else p3->n ext=p2; p4=p2-

33、>n ext;p2->n ext=p1;p1- >n ext=p4;p3=p2;p2=p4;elsep3=p1;P仁 p2;p2=p2->n ext;p仁head;p2=p1- >n ext;prin tf("n按月薪排序后的教师信息如下:n");prin t();void sort3()按年龄排序的函数,算法跟按教师号排序的一样struct teacher *p1,*p2,*p3,*p4;int i,j;if(head=NULL)printf("n还未录入过教师信息n");return;if(head-> next!

34、=NULL)p仁head;p2=head->n ext;for(i=1;i <n ;i+)for(j=0;j <n-i;j+)29 / 40if(p1->age>p2->age)if(p1=head) head=p2; else p3->n ext=p2;p4=p2->n ext;p2->n ext=p1;p1- >n ext=p4;p3=p2;p2=p4;elsep3=p1;P仁 p2;p2=p2->n ext;p仁head;p2=p1- >n ext;n");prin tf("n按年龄排序后的教师信

35、息如下:prin t();void choose1()选择排序方式的函数int i;printf("排序方式n");printf("1:【按教师号排序】2:【按年龄排序】n");printf("3:【按月薪排序】n");printf("请选择:");sea nf("%d",&i);while(i<1)|(i>3)printf("选择无效,请重新输入正确选项:");sea nf("%d",&i);switeh(i)ease 1:s

36、ort1();break;ease 2:sort3();break;case 3:sort2();break;void search1()按教师号查找的函数struet teaeher *p;long i;存储用户输入的想要删除的教师号31 / 40if(head=NULL)printf("n还未录入过教师信息n");return;prin tf("请输入要查找的教师信息的教师号:");scan f("%ld",&i);for(p=head;p!=NULL;p=p->n ext)p顺序指向结点与i比拟,找出有i的数据的结

37、点并输出if(p->num=i)printf("教师号:ld,:%s,性别:%s,年龄:%d,学历:%s,职称:%sn",p->nu m,p->n ame,p->sex,p->age,p->edu,p->title);printf("月薪:%ld,住址:%s,:%sn ",p->wage,p->addr,p->telep);return;printf("已录入的教师信息中不存在该教师号n");void search2()按查找的函数struct teacher *p;char

38、 i20;记录用户输入的想要删除的int j=0;/j用来记录找到了多少个信息33 / 40if(head=NULL)printf("n还未录入过教师信息n");return;printf("请输入要查找的信息的教师:");scan f("%s",i);for(p=head;p!=NULL;p=p->n ext)if(strcmp(p->n ame,i)=0)/比拟p指向的结点中的跟i的是否一致,是那么输出printf("教师号:ld,:%s,性别:%s,年龄:%d,学历:%s,职称:%sn",p-&g

39、t;nu m,p->n ame,p->sex,p->age,p->edu,p->title);printf("月薪:%ld,住址:%s,:%sn ",p->wage,p->addr,p->telep);j=j+1;每输出一个教师的信息那么j加一if(j=0) pri ntf("已录入的教师信息中不存在该的教师n");void search3()按职称查找的函数,算法与按查找的一样struct teacher *p;char i20;int j=0;39 / 40printf("n还未录入过教师信息

40、n");return;prin tf("请输入要查找的信息的教师职称:");scan f("%s",i);for(p=head;p!=NULL;p=p->n ext)if(strcmp(p->title,i)=O)printf("教师号:ld,:%s,性别:%s,年龄:%d,学历:%s,职称:%sn",p->nu m,p->n ame,p->sex,p->age,p->edu,p->title);printf("月薪:%ld,住址:%s,:%sn",p-&g

41、t;wage,p->addr,p->telep);j=j+1;if(j=0) pri ntf("已录入的教师信息中不存在该职称的教师n");void search4()按年龄查找的函数,算法与按教师号查找的一样struct teacher *p;int i,j=0;printf("n还未录入过教师信息n");return;printf("请输入要查找的信息的教师年龄:");scan f("%d",&i);for(p=head;p!=NULL;p=p->n ext) if(p->age

42、=i)printf(" 教师号:%ld,:%s,性别:%s,年龄:%d,学历:%s,职称:%sn",p->nu m,p->n ame,p->sex,p->age,p->edu,p->title);printf("月薪:%ld,住址:%s,:%sn ",p->wage,p->addr,p->telep);j=j+1;if(j=0) pri ntf("已录入的教师信息中不存在该年龄的教师n");void choose2()选择查找方式的函数int i;prin tf("查询方

43、式n");printf("1:【按教师号查询】2:【按查询】n");printf("3:【按职称查询】4:【按年龄查询】n");printf("请选择:");sea nf("%d",&i);while(i<1)|(i>4)printf("选择无效,请重新输入正确选项:");sca nf("%d",&i);switch(i)case 1:search1();break;case 2:search2();break;case 3:search

44、3();break;case 4:search4();break;void me nu() 菜单栏函数int i;printf("菜单n");printf("1:【教师信息录入】2:【教师信息输出】n");# / 40printf("3:【教师信息删除】41 / 404:【查询个人信息】n");printf("5:【排序】6:【退出系统】n");printf(" 请选择:");sea nf("%d",&i);while(i<1)|(i>6)printf(&

45、quot;选择无效,请重新输入正确选项:");sca nf("%d",&i);switch(i)case 1:creat();break;case 2:pri nt();break;case 3:del();break;case 4:choose2();break;case 5:choose1();break;case 6:save();menu();void mai n()主函数key();menu();四.程序运行效果图4.1登陆界面4.2菜单栏45 / 40弋茂師围浸译訝计、5DebugX2(n(ni4124医針IJ吕尸3*聯犢fi釧5:【册序】.*

46、 第 Rill 2 4U ±s- 亠£1 忌八统 师逗出 書退荒单二暮3皆无*5;渤序f?七滋程序假程时5DetiLig01<BMl羽库舖Lh回1-1=1人统 师询出 科杳® r k-F kF L3 J 土忌 砸J-f 师询吕 醫退 J-1J-击总備入口知还可艳人12J45C胃迎进系统4.3录入功能1獸二上姗的奶号 宙屯录人请输入町:2 亠4陈星生訓男壬甌33邂:番鼬帀匸肝:3000frill:杵山市禅械区在話一路“号岂话:347312334韜-tfe师的戯师号唏京录人请输/ 8>: «T甲4.4浏览功能-禎5寤临聲H51Debud201gli±.341 町 -D 一申Tr一龜部 >£薄酉S缚却血环謝冷畫“S2-Hbkllb舉zFltST ilr-iiil; 零A沏 匚齐i; 抨zt倒5鰻義咛谯®HI鹽独載摘“荃.嚼“黑賢 灯邹审®T#iltwL!JsWJIKwil丄曙冲、e时:34234善;H4乔司旨

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论