学生成绩管理系统的设计报告(完整版)_第1页
学生成绩管理系统的设计报告(完整版)_第2页
学生成绩管理系统的设计报告(完整版)_第3页
学生成绩管理系统的设计报告(完整版)_第4页
学生成绩管理系统的设计报告(完整版)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、 WORD整理版学生成绩管理系统专业学习参考资料 WORD整理版本程序可实现对学生语数外三门课程成绩的录入与保存。1 、设计目的本程序旨在训练读者的基本编程能力,了解管理信息系统开发流程,熟悉的各种语法、编写流程、以及能够熟练运用各种算法、以及各种函数的使用。C语言2 、 功能描述本程序可实现的功能:(1 )录入学生的成绩(2 )输出学生的成绩(3 )添加学生的成绩信息(4 )删除指定学生的成绩信息(5 )按照要求对学生成绩信息进行排序(6 )根据学号查询指定学生的成绩(7 )将学生的成绩信息以文件形式保存3 、总体设计3.1具体实现main()函数:程序首先调用 menu()函数,显示出系统

2、主菜单,然后将menu()函数返回的从用户读取的选项 k值赋予 k,接着进入 switch case语句进入对应选项函数,若输入错误没有该选项则给出提示(default)以上过程为一个死循环,直到用户输入 0为止。menu()函数:在屏幕上打印选项名称,然后用一个输入的选项,最后将其 return至主函数。int类型的变量接受从用户score *creatlink()函数:创建链表主要实现流程如下:专业学习参考资料 WORD整理版print()函数:先令 P=head,使 p指向第一个节点,当 head=!NULL时说明没有到链表尾端,那么就输出 p所指向的结构数据,然后让 p指向下一个节点,

3、直到发现p=NULL为止。而当 head=NULL说明链表中不存在数据,直接停止输出。score *add()函数,添加新的学生信息,具体实现路程如流程图所示(图片制作时没有加 Y/N判断,在判断图框中均为向左为真,向右为假):专业学习参考资料 WORD整理版score *search()函数:用来查询学生成绩,传递给函数指向链表的头指针,查询时,如果找到与输入相匹配的学号则打印此学生,反之则输出“没有任何学生资料!”:专业学习参考资料 WORD整理版score *sortdata()函数:该函数有学号、姓名、单科成绩排序(冒泡排序法) ,实行过程如图:专业学习参考资料 WORD整理版save

4、()函数:用来保存数据,首先从用户输入取得要保存的文件名,然后定义一个指向文件的指针,以读写方式打开文件。将写生信息依次存入文件。专业学习参考资料 WORD整理版score *load()函数:用于读取数据,通过“ r+”方式打开文件并判断是否打开成功。具体实现如下:专业学习参考资料 WORD整理版score *statistics()函数:它能实现程序的统计,通过 switch-case语句选择统计方式,通过循环计算总分或者平均分并打印出来,流程都是通过循环,让指针逐个遍历整个链表,读取相应的数据并实现统计3.2数据结构设计数据结构:定义了一个包含学生成绩信息的结构体( struct sco

5、renode),学生信息包括学号(number)、姓名(name10)、语文、数学、英语成绩(chinese、mathmatic、english)、以及指向下一个结构体的链表指针*next)。(struct scorenode3.3函数功能描述专业学习参考资料 WORD整理版main()函数:主函数功能主要是让程序选择将要进行的操作,通过menu()函数返回的选项进入其他函数执行。int menu(int k)函数:此函数显示主菜单内容,需要一个 int类型变量作为输入要执行的选项并返回给 main()函数。score *creatlink()函数:此函数用于创建链表,为了节省内存空间,我们采

6、用malloc()函数为结构体分配动态内存空间。另外考虑到学号不可能是0,所以用输入NULL,并返回一个指向0的方式来判断是否结束输入,将最后的结构体中的指针指向链表第一个结构的指针。void print(score *head)函数:此函数返回值为空,知识为了在 stdout流(屏幕)上打印出学生的成绩信息,需要一个指向链表头的指针来逐个向后打印。score *add(score *head , score *stu)函数:为学生信息中添加新的学生资料,然后重新排序(按学号),并返回头指针。传入函数的 head为链表头指针, stu指针指的是要添加的位置。score *search(scor

7、e *head)函数:按照学号查找学生信息,需要链表头指针并返回指向被搜索学生的指针。搜索原理就是从头向后面依次检索。score *dele(score *head)函数:删除指定学生的资料。传入头指针,在函数中创建变量储存要删除学生的学号,然后从头向尾检索,直至找到该学生并将其删除,返回头指针。score *sortdata(score *head)函数:用于按要求(学号、姓名、单科成绩)排序,最后返回头指针,排序运用老师上课时讲过的冒泡排序法。int save(score *p1)函数:将链表内的数据以文件的形式储存,传入的p1指针一开始指向链表头,随着储存顺序一个一个地向后面指,直到义一

8、个指向文件的指针 *fp,用于写入文件。NULL为止。函数内部定score *load(score *head)函数:读取文件数据, head为一个新建的链表头指针,读取文件数据之后令其保存至新建的链表之中,并返回头指针。score *statistics(score *head)函数:统计成绩,可以统计总分、平均分、最专业学习参考资料 WORD整理版高(低)分,返回操作后的链表首地址(头指针)。4 、程序实现4.1源代码#include #include #include#include #define LEN sizeof(struct scorenode)#define DEBUG/*=

9、数据结构 =*/struct scorenodeint number;/学生学号char name10;float chinese;/学生姓名/语文成绩float mathmatic;float english;/数学成绩/英语成绩struct scorenode *next;typedef struct scorenode score;/定义结构体变量typedef struct scorenode *scoreptr;int n,k;/定义结构体变量指针/*n,k为全局变量,本程序中的函数均可以使用它 ,分别用于记数和标记 */*=创建链表 =*/*返回一个指向链表头的指针 */score

10、 *creatlink()score*head;score *p1,*p2,*p3,*max;int i,j;float fen;char t10;n=0;p1=p2=p3=(score *)malloc(LEN);head=p3;/开辟一个新单元printf(请输入学生资料,输 0退出!n);repeat1: printf(学号应大于 0请输入学生学号 (学号应大于 0):);/输入学号,scanf(%d,&p1-number);while(p1-numbernumber);小于 0时,程序报错,提示重新输入学号/输入学号为字符或/当输入的学号为 0if(p1-number=0)goto e

11、nd;时,转到末尾,结束创建链表elsep3=head;if(n0)for(i=0;inumber!=p3-number)p3=p3-next;elseprintf( 学号重复 ,请重输 !n);goto repeat1;/*当输入的学号已经存在,程序报错,返回前面重新输入 */printf(请输入学生姓名: );scanf(%s,&p1-name);输入学生姓名 */*printf(请输入语文成绩 (0100):);入语文成绩,成绩应在 0-100*/scanf(%f,&p1-chinese);while(p1-chinesechinese100)/*输getchar();printf( 输

12、入错误,请重新输入语文成绩 );入错误,重新输入语文成绩直到正确为止 */scanf(%f,&p1-chinese);/*输/*输printf(请输入数学成绩 (0100):);入数学成绩,成绩应在 0-100*/scanf(%f,&p1-mathmatic);while(p1-mathmaticmathmatic100)专业学习参考资料 WORD整理版getchar();printf( 输入错误,请重新输入数学成绩 );/*输入错误,重新输入数学成绩直到正确为止 */scanf(%f,&p1-mathmatic);printf(请输入英语成绩 (0100):);/*输入英语成绩,成绩应在 0

13、-100*/scanf(%f,&p1-english);while(p1-englishenglish100)getchar();printf( 输入错误,请重新输入英语成绩 );scanf(%f,&p1-english);/*输入错误,重新输入英语成绩直到正确为止 */head=NULL;while(p1-number!=0)n=n+1;if(n=1)head=p1;elsep2-next=p1;p2=p1;p1=(score *)malloc(LEN);printf( 请输入学生资料,输 0退出!n);repeat2:printf(scanf(%d,&p1-number);while(p1

14、-numbernumber);/*输入学号为字/*当输入的学号符或小于 0时,程序报错,提示重新输入学号 */if(p1-number=0)goto end;为 0时,转到末尾,结束创建链表 */elsep3=head;if(n0)专业学习参考资料 WORD整理版for(i=0;inumber!=p3-number)p3=p3-next;elseprintf(学号重复 ,请重输 !n);goto repeat2;/*当输入的学号已经存在,程序报错,返回前面重新输入*/printf( 请输入学生姓名: );scanf(%s,&p1-name);名*/*输入学生姓printf( 请输入语文成绩 (

15、0100):);scanf(%f,&p1-chinese);绩,成绩应在 0-100*/while(p1-chinesechinese100)/*输入语文成getchar();printf(输入错误,请重新输入语文成绩 );scanf(%f,&p1-chinese);/*输入错误,重新输入语/*输入数学成文成绩直到正确为止 */printf( 请输入数学成绩 (0100):);scanf(%f,&p1-mathmatic);绩,成绩应在 0-100*/while(p1-mathmaticmathmatic100)getchar();printf(输入错误,请重新输入数学成绩 );scanf(%

16、f,&p1-mathmatic);/*输入错误,重新输/*输入英语成绩,入数学成绩直到正确为止 */printf( 请输入英语成绩 (0100):);scanf(%f,&p1-english);成绩应在 0-100*/while(p1-englishenglish100)getchar();printf(输入错误,请重新输入英语成绩 );scanf(%f,&p1-english);专业学习参考资料 WORD整理版/*输入错误,重新输入英语成绩直到正确为止 */end:p1=head;p3=p1;for(i=1;in;i+)for(j=i+1;jnext;if(max-numberp1-numb

17、er)k=max-number;max-number=p1-number;p1-number=k;中的学号值,使得学号大者移到后面的结点中 */strcpy(t,max-name);strcpy(max-name,p1-name);strcpy(p1-name,t);/*交换前后结点/*交换前后结点中的姓名,使之与学号相匹配 */fen=max-chinese;max-chinese=p1-chinese;p1-chinese=fen;/*交换前后结点/*交换前后结点/*交换前后结点中的语文成绩,使之与学号相匹配 */fen=max-mathmatic;max-mathmatic=p1-mat

18、hmatic;p1-mathmatic=fen;中的数学成绩,使之与学号相匹配 */fen=max-english;max-english=p1-english;p1-english=fen;中的英语成绩,使之与学号相匹配 */max=head;p1=head;指向链表头 */*重新使 max,p/*链表结尾 */p2-next=NULL;printf(输入的学生数为 :%d个!n,n);return(head);专业学习参考资料 WORD整理版/*=显示数据 =*/*函数 print,功能:显示学生成绩 */void print(score *head)score *p;if(head=NU

19、LL)printf(n没有任何学生资料 !n);elseprintf(%dn,n);printf(-n);printf(| 学号t|姓名t|语文t|数学t|英语t|n);printf(-n);/*打印表格域 */p=head;doprintf(|%dt|%st|%.1ft|%.1ft|%.1ft|n,p-number,p-name,p-chinese,p-mathmatic,p-english);printf(-n);/*打印表格域 */p=p-next;while (p!=NULL);/*=添加学生数据 =*/*函数 add,功能:追加学生资料 ,并且将所有学生资料按学号排序 */score

20、 *add(score *head,score *stu)score *p0,*p1,*p2,*p3,*max;int i,j;float fen;char t10;p3=stu=(score *)malloc(LEN);辟一个新单元 */*开/*输printf(n输入要增加的学生的资料 !);repeat4: printf( 请输入学生学号 (学号应大于 0):);scanf(%d,&stu-number);入学号,学号应大于 0*/while(stu-numbernumber);/*输入错/*当误,重新输入学号 */if(stu-number=0)goto end2;输入的学号为 0时,转

21、到末尾,结束追加 */elsep3=head;if(n0) for(i=0;inumber!=p3-number)p3=p3-next;elseprintf(学号重复 ,请重输 !n);goto repeat4;/*当输入的学号已经存在,程序报错,返回前面重新输入 */printf( 输入学生姓名: );scanf(%s,stu-name);生姓名*/*输入学/*输入语printf( 请输入语文成绩 (0100):);scanf(%f,&stu-chinese);文成绩,成绩应在 0-100*/while(stu-chinesechinese100) getchar();printf(输入错误

22、,请重新输入语文成绩 );scanf(%f,&stu-chinese);/*输入错误,重新输入语文成绩直到正确为止 */printf(请输入数学成绩 (0100):);scanf(%f,&stu-mathmatic);/*输入数学成绩,成绩应在 0-100*/while(stu-mathmaticmathmatic100)getchar();专业学习参考资料 WORD整理版printf( 输入错误,请重新输入数学成绩 );scanf(%f,&stu-mathmatic);/*输入错/*输误,重新输入数学成绩直到正确为止 */printf(请输入英语成绩 (0100):);scanf(%f,&s

23、tu-english);入英语成绩,成绩应在 0-100*/while(stu-englishenglish100)getchar();printf( 输入错误,请重新输入英语成绩 );scanf(%f,&stu-english);/*输入错误,重新输入英语成绩直到正确为止 */p1=head;p0=stu;if(head=NULL)head=p0;p0-next=NULL;/*当原来链表为空时,从首结点开始存放资料 */else/*链表不/*找到原为空*/if(p1-next=NULL)来链表的末尾 */p1-next=p0;p0-next=NULL;/*将/*还它与新开单元相连接 */el

24、sewhile(p1-next!=NULL)没找到末尾,继续找 */p2=p1;p1=p1-next;p1-next=p0;p0-next=NULL;n=n+1;专业学习参考资料 WORD整理版p1=head;p0=stu;for(i=1;in;i+)for(j=i+1;jnext;if(max-numberp1-number)k=max-number;max-number=p1-number;p1-number=k;/*交换前/*交后结点中的学号值,使得学号大者移到后面的结点中 */strcpy(t,max-name);strcpy(max-name,p1-name);strcpy(p1-n

25、ame,t);换前后结点中的姓名,使之与学号相匹配 */fen=max-chinese;max-chinese=p1-chinese;p1-chinese=fen;/*交换前/*交后结点中的语文成绩,使之与学号相匹配 */fen=max-mathmatic;max-mathmatic=p1-mathmatic;p1-mathmatic=fen;换前后结点中的数学成绩,使之与学号相匹配 */fen=max-english;max-english=p1-english;p1-english=fen;/*交换前后结点中的英语成绩,使之与学号相匹配 */max=head;p1=head ;/*重新使

26、max,p指向链表头 */ end2:printf( 现在的学生数为 :%d个!n,n);return(head);/*=查询数据 =*/*函数 search,功能:查询学生成绩 */score *search(score *head)int number;专业学习参考资料 WORD整理版score *p1,*p2;printf( 输入要查询的学生的学号: );scanf(%d,&number);while(number!=0)if(head=NULL) printf(n没有任何学生资料 !n);return(head);printf(-n);printf(|学号t|姓名t|语文t|数学t|英

27、语t|n);printf(-n);p1=head;while(number!=p1-number&p1-next!=NULL)p2=p1;p1=p1-next;if(number=p1-number) printf(|%dt|%st|%.1ft|%.1ft|%.1ft|n,p1-number,p1-name,p1-chinese,p1-mathmatic,p1-english);printf(-n);elseprintf(%d不存在此学生 !n,number);printf(输入要查询的学生的学号 ,);scanf(%d,&number);printf(已经退出了 !n);return(hea

28、d);/*=删除数据 =*/*函数 dele,功能:删除学生资料 */score *dele(score *head)score *p1,*p2;int number;printf( 输入要删除的学生的学号 (输入 0时退出 ):);scanf(%d,&number);getchar();while(number!=0)/*输入学号为 0时退出*/if(head=NULL)printf(n没有任何学生资料 !n);return(head);专业学习参考资料 WORD整理版p1=head;while(number!=p1-number&p1-next!=NULL)/*p1指向的不是所要找的首结点

29、,并且后面还有结点 */p2=p1;p1=p1-next;/*p1后移一个结点 */如果找到了 */if(number=p1-number)/*if(p1=head)head=p1-next;/*若 p1指向的是首结点,/*否则将下一个结点把地二个结点地址赋予 head*/elsep2-next=p1-next;地址赋给前一结点地址 */printf(删除:%dn,number);n=n-1;elseprintf(%dprintf(不存在此学生 !n,number);输入要删除的学生的学号 :);/*找不到该结点 */scanf(%d,&number);getchar();#ifdef DEB

30、UGprintf( 已经退出了 !n);#endifprintf(现在的学生数为 :%d个!n,n);return(head);/*=排序=*/*定义排序函数。此函数带回一个指向链表头的指针 */score *sortdata(score *head)score *p,*max;int i,j,x;float fen;char t10;if(head=NULL)printf(nreturn(head);/*没有任何学生资料,请先建立链表 !n);链表为空 */专业学习参考资料 WORD整理版max=p=head;for(i=0;i80;i+)printf(*);printf(1 按学生学号排序

31、 t2按学生姓名排序 t3按语文成绩排序 n);printf(4 按数学成绩排序 t5按英语成绩排序 tn);for(i=0;i80;i+)printf(*);printf(请选择操作 :);scanf(%d,&x);/*选择操作 */getchar();switch(x)/*用 switch语句实现功能选择 */case 1 :for(i=1;in;i+)for(j=i+1;jnext;if(max-numberp-number)k=max-number;max-number=p-number;p-number=k;/*交换前后结点中的学号值,使得学号大者移到后面的结点中strcpy(t,m

32、ax-name);*/strcpy(max-name,p-name);strcpy(p-name,t);/*交换前后结点中的姓名,使之与学号相匹配 */fen=max-chinese;max-chinese=p-chinese;p-chinese=fen;/*交换前后结点中的语文成绩,使之与学号相匹配 */fen=max-mathmatic;max-mathmatic=p-mathmatic;p-mathmatic=fen;/*交换前后结点中的数学成绩,使之与学号相匹配 */fen=max-english;max-english=p-english;p-english=fen;/*交换前后结点

33、中的英语成绩,使之与学号相匹配 */专业学习参考资料 WORD整理版max=head;p=head;/*重新使 max,p指向链表头 */print(head);break;/*打印值排序后的链表内容 */case 2 :for(i=1;in;i+)for(j=i+1;jnext;if(strcmp(max-name,p-name)0)/*strcmp:字符串比较函数 */strcpy(t,max-name);/*strcpy:字符串复制函数 */strcpy(max-name,p-name);strcpy(p-name,t);/*交换前后结点中的姓名,使得姓名字符串的值大者移到后面的结点中*

34、/k=max-number;max-number=p-number;p-number=k;/*交换前后结点中的学号值,使之与姓名相匹配 */fen=max-chinese;max-chinese=p-chinese;p-chinese=fen;/*交换前后结点中的语文成绩,使之与姓名相匹配 */fen=max-mathmatic;max-mathmatic=p-mathmatic;p-mathmatic=fen;/*交换前后结点中的数学成绩,使之与姓名相匹配 */fen=max-english;max-english=p-english;p-english=fen;/*交换前后结点中的英语成绩

35、,使之与姓名相匹配 */p=head;max=head;专业学习参考资料 WORD整理版print(head);break;case 3 :for(i=1;in;i+)for(j=i+1;jnext;if(max-chinesep-chinese)fen=max-chinese;max-chinese=p-chinese;p-chinese=fen;/*交换前后结点中的语文成绩,使得语文成绩高者移到后面的结点中*/k=max-number;max-number=p-number;p-number=k;/*交换前后结点中的学号,使之与语文成绩相匹配 */strcpy(t,max-name);st

36、rcpy(max-name,p-name);strcpy(p-name,t);/*交换前后结点中的姓名,使之与语文成绩相匹配 */fen=max-mathmatic;max-mathmatic=p-mathmatic;p-mathmatic=fen;/*交换前后结点中的数学成绩,使之与语文成绩相匹配 */fen=max-english;max-english=p-english;p-english=fen;/*交换前后结点中的英语成绩,使之与语文成绩相匹配 */p=head;max=head;print(head);break;case 4 :for(i=1;in;i+)for(j=i+1;j

37、next;if(max-mathmaticp-mathmatic)fen=max-mathmatic;max-mathmatic=p-mathmatic;p-mathmatic=fen;/*交换前后结点中的数学成绩,使得数学成绩高者移到后面的结点中*/k=max-number;max-number=p-number;p-number=k;/*交换前后结点中的学号,使之与数学成绩相匹配 */strcpy(t,max-name);strcpy(max-name,p-name);strcpy(p-name,t);/*交换前后结点中的姓名,使之与数学成绩相匹配 */fen=max-chinese;ma

38、x-chinese=p-chinese;p-chinese=fen;/*交换前后结点中的语文成绩,使之与数学成绩相匹配 */fen=max-english;max-english=p-english;p-english=fen;/*交换前后结点中的英语成绩,使之与数学成绩相匹配 */p=head;max=head;print(head);break;case 5 :for(i=1;in;i+)for(j=i+1;jnext;if(max-englishp-english)fen=max-english;max-english=p-english;p-english=fen;/*交换前后结点中的

39、英语成绩,使得英语成绩高者移到后面的结点中*/专业学习参考资料 WORD整理版k=max-number;max-number=p-number;p-number=k;/*交换前后结点中的学号,使之与英语成绩相匹配 */strcpy(t,max-name);strcpy(max-name,p-name);strcpy(p-name,t);/*交换前后结点中的姓名,使之与英语成绩相匹配 */fen=max-chinese;max-chinese=p-chinese;p-chinese=fen;/*交换前后结点中的语文成绩,使之与英语成绩相匹配 */fen=max-mathmatic;max-mat

40、hmatic=p-mathmatic;p-mathmatic=fen;/*交换前后结点中的数学成绩,使之与英语成绩相匹配 */p=head;max=head;print(head);break;default :printf( 输入错误 ,请重试! n);return (0);/*=保存数据 =*/*函数 save,功能:保存学生的资料 */void save(score *p1)FILE *fp;char filepn20;/*用来存放文件保存路径以及文件名 */printf(请输入文件路径及文件名 :);scanf(%s,filepn);if(fp=fopen(filepn,w+)=NUL

41、L)printf(exit(1);不能打开文件 !n);fprintf(fp,学生成绩管理系统n);fprintf(fp,n);专业学习参考资料 WORD整理版fprintf(fp,-n);fprintf(fp,|学号t|姓名t|语文t|数学t|英语t|n);fprintf(fp,-n);/*打印表格域 */while(p1!=NULL)fprintf(fp,%dt%st%.1ft%.1ft%.1ftn,p1-number,p1-name,p1-chinese,p1-mathmatic,p1-english);p1=p1-next;/*下移一个结点*/fclose(fp);printf( 文件

42、已经保存 !n);return ;/*=调入文件 =*/*函数 loadfile,功能 :从文件读入学生记录 */score *loadfile(score *head)score *p1,*p2;int m=0;char filename10;FILE *fp;printf(请输入文件路径及文件名 :);输入文件路径及名称 */scanf(%s,filename);/*if(fp=fopen(filename,r+)=NULL)printf(不能打开文件 !n);return 0;fscanf(fp,学生成绩管理系统n);fscanf(fp,n);fscanf(fp,-n);fscanf(f

43、p,|学号t|姓名t|语文t|数学t|英语t|n);fscanf(fp,-n);/*读入表格域 */printf(学生成绩管理系统n);printf(n);printf(-n);printf(|学号t|姓名t|语文t|数学t|英语t|n);printf(-n);/*打印表格域 */专业学习参考资料 WORD整理版m=m+1;if(m=1)p1=(score *)malloc(LEN);/*开辟一个新单元 */fscanf(fp,%d%s%f%f%f,&p1-number,p1-name,&p1-chinese,&p1-mathmatic,&p1-english);printf(|%dt|%st|%.1ft|%.1ft|%.1ft|n,p1-number,p1-name,p1-chinese,p1-mathmatic,p1-english);/* 文件读入与显示 */head=NULL;don=n+1;if(n=1) head=p1;else p2-next=p1;p2=p1;p1=(score *)malloc(LEN);/*开辟

温馨提示

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

评论

0/150

提交评论