C语言课程设计报告.doc_第1页
C语言课程设计报告.doc_第2页
C语言课程设计报告.doc_第3页
C语言课程设计报告.doc_第4页
C语言课程设计报告.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

目 录1内容提要.32位数的大小排列.42.1实验的准备.4 2.1.1实验目的.4 2.1.2实验要求.42.2算法思想、关键数据说明. .42.2.1思路算法.42.2.2关键数据的数据类型、名称、用途的说明.42.3算法框图.42.4关键算法的源程序及注释.62.5调试运行情况的说明.73奇异的三位数.83.1实验的准备.8 3.1.1实验目的.8 3.1.2实验要求.83.2算法思想、关键数据说明. .83.2.1思路算法.83.2.2关键数据的数据类型、名称、用途的说明.83.3算法框图.93.4关键算法的源程序及注释.93.5调试运行情况的说明.94简单的计算器.104.1实验的准备.10 4.1.1实验目的.10 4.1.2实验要求.104.2算法思想、关键数据说明. .104.2.1思路算法.104.2.2关键数据的数据类型、名称、用途的说明.104.3算法框图.104.4关键算法的源程序及注释.114.5调试运行情况的说明.135学生成绩管理系统.145.1 实验目的.145.2 总功能说明(题目).145.3 系统总体设计.14 5.3.1 全局数据结构.14 5.3.2 系统总功能图或主函数流程图.14 5.3.3 主函数源程序代码.155.4 学生成绩子菜单函数.16 5.4.1 功能说明.16 5.4.2 参数说明.16 5.4.3 子函数算法及数据结构.16 5.4.4 算法流程图.16 5.4.5 源程序代码.17 5.4.6 调试运行.175.5 输入学生成绩子函数.185.6 显示学生成绩子函数.215.7 按姓名查询学生成绩子函数.235.8 按学号查询学生成绩子函数.265.9 按学号删除学生成绩子函数.285.10 按平均分进行插入法排序子函数.325.11 插入学生成绩子函数.355.12 保存学生成绩信息.395.13 读取学生成绩信息.416课程设计心得体会.467致谢.478参考文献.471 内容提要现代计算机技术的发展为人们的学习、生活、工作提供了很大的帮助,各行各业都需要特定 计算系统的运用,我们需要了解这些系统是怎么样为我们服务以及他们是怎样编辑出来的。 我们需要学习 C 语言编程,根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试 C 程序的经验;通过完成辅导教材中的编程题,逐渐培养编程能力、用计算机解决实际问题的能力,能够按照要求编辑一些基本的程序,提高 自己的思维能力。C 语言是一种编译型程序设计语言,编程设计是学习该语言的一个重要环节。通过温习已 学的知识,在上机实践中熟悉语言的编程环境,进而达到能够编写较复杂程序并将其实 际应用的程度。在实际编程中不断地深入学习数据结构、算法、编译原理、操作系统原理、 软件工程等知识,加深对C语言的理解,切实提高编程水平,这是 C 语言课程设计的主要目的。本课程设计报告中包括四个课题的设计,其中包括各个课题的实验的目的与要求、主要算法思想、关键数据的数据类型、名称、用途的说明、算法框图、关键算法的源程序及注释、调试运行情况的说明等方面。之后,课题设计人还总结了这次为期两周的课程设计心得体会。最后,本人向支持帮助其完成此次课程设计的人表示感谢,并注明了参考文献。这四个课题是:位数的大小排列、奇异的三位数、简单的计算器、学生成绩管理系统。2位数大小排序2.1实验的准备2.1.1实验的目的多位数整数与字符串的转化,数组中的数据排序,文件操作。2.1.2实验的要求子函数功能要求:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数。同时需要编写主函数和其它相关子函数进行调试。2.2算法思想、关键数据说明2.2.1思路算法将输入的五位整数拆开成五个数字,将五个数字组成一个一维数组,用冒泡法对五个数字进行由大到小排列。排好之后,把这五个数字转化为一个新的五位数输出。2.2.2关键数据的数据类型、名称、用途的说明x是int型,用于表示输入的五位数;a5是int型,用于存放拆开后的五个数字;t、i、j都是int型,是在冒泡法排序的时候用到的;s是int型,用于存放最后处理好的新的五位数。2.3算法框图 图2.3.1位数大小排列主函数 图2.3.2位数大小排列主函数2.4关键算法的源程序及注释 int fun(int x);#include #include main()FILE *fp;int x,s=0; fp=fopen(位数的排序数据文件.out,w); if(fp=NULL) printf(file is wrong ); return 0;printf(请输入要处理的一个五位数:n);scanf(%d,&x);printf(n要处理的这个五位数是:n%dn,x); fprintf(fp,n要处理的这个五位数是:n%dn,x);s=fun(x); /*调用函数fun*/printf(n处理后所求的数字是:n);printf(%d,s);fprintf(fp,n处理后所求的数字是:n);fprintf(fp,%d,s);printf(n*编者:通信1001卢亚军*n);fprintf(fp,n*编者:通信1001卢亚军*n);fclose(fp);int fun(int x) /*函数fun模块*/int i,j,t,s;int a5=0; a0=x/10000;a1=(x-10000*a0)/1000; a2=(x-10000*a0-1000*a1)/100;a3=(x-10000*a0-1000*a1-100*a2)/10; a4=x-10000*a0-1000*a1-100*a2-10*a3; /*将输入的五位整数拆开成五个数字,将五个数字组成一个一维数组*/for(j=0;j5;j+)for(i=0;i5-j;i+)if(aiai+1) /*用冒泡法对五个数字进行由大到小排列*/t=ai;ai=ai+1;ai+1=t;printf(排序后这五个数字是:n);for(i=0;i5;i+)printf(%3d,ai);s=a0*10000+a1*1000+a2*100+a3*10+a4; /*数字被转换成一个五位数的int型*/return (s);2.5调试运行情况的说明运算要处理的五位数是29837.结果的屏幕显示如图2.3。经运行调试,达到预期效果。图2.3 位数的大小排序运行界面3 奇异的三位数3.1实验的目的与要求一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。3.2算法思想、关键数据说明3.2.1思路算法根据题意可知,七进制和九进制表示的这全自然数的每一位一定小于7,可设其七进制数形式为kji(i、j、k的取值分别为16),然后设其九进制表示形式为ijk。如果符合i*9*9+j*9+k与i+j*7+k*7*7相等,则此时的ijk即满足要求。多次利用循环结构控制ijk三个的递增,并利用条件结构判断是否满足条件。3.2.2关键数据的数据类型、名称、用途的说明数据i、j、k、s都是int型,其中s表示所求数字的十进制数形式,其七进制数形式为kji,九进制数形式为ijk。3.3算法框图图3.3 奇异的三位数框图3.4关键算法的源程序及注释#include main()FILE *fp;int i,j,k,s=0;fp=fopen(奇异的三位数的数据文件.out,w);if(fp=NULL)printf(file is wrong );return 0;for(i=1;i7;i+)for(j=0;j7;j+)for(k=1;k7;k+)if(i*9*9+j*9+k=i+j*7+k*7*7) /*如果满足题意*/ s=i*9*9+j*9+k; /*s为所求数字的十进制形式*/printf(这奇异的三位数的三种进制数形式分别是:n);printf(%d%d%d(7)=%d%d%d(9)=%d(10)n,k,j,i,i,j,k,s);fprintf(fp,这奇异的三位数的三种进制数形式分别是:n); fprintf(fp,%d%d%d(7)=%d%d%d(9)=%d(10)n,k,j,i,i,j,k,s); fclose(fp); /*输出所求数的三种进制数的形式*/3.5调试运行情况的说明经过运行调试后,达到预期效果。屏幕输出如图3.5。图3.5 奇异的三位数运行界面调试过程中,首先因为没有对s赋初始值,最后结果出错。在修改的时候及时发现了问题。可以使结果正常输出,达到预期要求。另外,调试中还对输出的形式进行了优化,使所得数的三种进制的形式都能在结果中显示,并通过在后面注释(7)、(9)、(10)的方法,是结果和进制数形式一目了然。4简单的计算器4.1实验准备4.1.1实验目的指针的使用,switch语句,把字符串转化成多位数4.1.2实验要求请编写一个程序计算表达式:data1 op data2的值。其中,op为运算符、*、/。4.2算法思想、关键数据说明4.2.1思路算法 程序输入的数据为字符串,用p指针指向字符串第一个字符。辨别字符是否数字的同时,只要是数字,就将指针向后移动,直到出现运算符,将前几个数字转换成一个int型的整数型式,赋值为data1.继续将p所指的运算符赋值成op,之后将p加一,使它指向运算符之后。再将指针依次向后移动,直到此行结束。将从运算符到此行末尾的数字改写成一个int型的整数型式,赋值为data2.利用switch语句判断op是什么运算符,分别对应进行加减乘除计算后,输出结果。此过程中,主要用到指针、switch语句、while循环结构。4.2.2关键数据的数据类型、名称、用途的说明*p为char型,用途是通过指针控制要操作的字符数据;op也是char型,用来表示运算符;data1和data2是int型,用于分别储存原始字符串中剔出来的数字转化成的十进制数字;n是int型,用于分别记录data1和datt2的位数,方便进行字符串和十进制数之间的转换;a80是char型字符串,用于暂存原始数据。4.3算法框图图4.3 简单的计算器算法框图4.4关键算法的源程序及注释#include stdio.h#includemath.h#define OUT printf(上式的运算结果为%5.2f,output) main() char a80,*p,op; int n=0; int data1,data2,i; float output; printf(请输入要计算的运算式:n); scanf(%s,a); p=&a0; while(*p !=0 & *p =0) p+; n+; data1=0; for (i=0;in;i+) p-; data1+=(*p-0)*pow(10,i); /*第一个输入的数字被转换成多位数的int型data1*/ p=p+n; op=*(p+); n=0; while(*p !=0 & *p =0) p+; n+; data2=0; for (i=0;in;i+) p-; data2+=(*p-0)*pow(10,i); /*第二个输入的数字被转换成多位数的int型data2*/ switch(op) /*不同运算符对应不同的运算并将运算结果赋值为output*/ case +:output=(float)data1+data2;OUT;break; case -:output=(float)data1-data2;OUT;break; case *:output=(float)data1*data2;OUT;break; case /:output=(float)data1/data2;OUT;break; default:printf(您输入的计算式有误,无法输出结果n); 4.5调试运行情况的说明分别进行:55+8、14-8、24*5、33/9、23!78的五次运算。程序运行界面如下图4.5.1到图4.5.5。1、图4.5.1 简单的计算器运行界面(1)2、图4.5.2 简单的计算器运行界面(2)3、图4.5.3 简单的计算器运行界面(3)4、图4.5.4 简单的计算器运行界面(4)5图4.5.2 简单的计算器运行界面(5)通过运行和调试,此程序可以正常运行并且满足课题的要求,达到预期效果。 5学生成绩管理系统 5.1实验目的结构体数组、函数、指针、链表及文件等的综合应用5.2总功能说明有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:(1) 成绩录入,插入后按学号自动排序,创建链表;(2) 成绩文件的存取,创建链表;(3) 成绩的多种查询、修改;(4) 成绩的多种统计、排序;(5) 学生增加、删除、列表。5.3 系统总体设计5.3.1 全局数据结构 首先定义结构体数组struct stu,用于缓存数据。再对所有子函数进行声明。主函数中,首先进行链表初始化head=NULL;然后调用菜单函数,利用switch语句对菜单函数返回值n进行判断,在09中,每个数字分别对应一种功能,通过调用子函数实现。#include #include#include /*其它说明*/#include /*字符串函数*/#include /*字符操作函数*/#include /*动态地址分配函数*/#define LEN sizeof(STUDENT) /*宏定义*/typedef struct stu /*定义结构体数组用于缓存数据*/ char num6; char name20; int score3; int sum; float average; int order; struct stu *next;STUDENT; 5.3.2 系统总功能图或主函数流程图图5.3.2 学生成绩管理系统主函数功能图5.3.3 主函数源程序代码./*函数原型声明*/int menu_select(); /*菜单函数*/STUDENT *create(); /*创建链表*/void print(STUDENT *head); /* 显示全部记录*/void namesearch(STUDENT *head); /*按姓名查找记录*/void numsearch(STUDENT *head); /*按学号查找记录*/STUDENT *numdelete(STUDENT *head); /*按学号删除记录*/STUDENT *sort(STUDENT *head); /*排序*/STUDENT *insert(STUDENT *head,STUDENT *newnode); /*插入记录*/void save(STUDENT *head); /*保存文件*/STUDENT *load(); /*读文件*/*主函数界面*/main() STUDENT *head,newnode; head=NULL; /*链表初始化,使head的值为NULL*/ for(;) /*循环无限次使一次选择执行后不用跳出可以执行下一个*/ switch(menu_select() case 1:head=create();break; case 2:print(head);break; case 3:namesearch(head);break; case 4:numsearch(head);break; case 5:head=numdelete(head);break; case 6:head=sort(head); break; case 7:head=insert(head,&newnode);break; /*&newnode表示返回地址*/ case 8:save(head);break; case 9:head=load(); break; case 0:exit(0); /*如菜单返回值为9则程序结束*/ 5.4 学生成绩子菜单函数 5.4.1 功能说明 用于输出此系统的菜单,使操作者对此系统的功能一目了然,并且引导使用者输入要执行的操作,返回使用者的选择n。 5.4.2 参数说明 该函数没有实际参数,输入n为int型,函数返回值即是n。 5.4.3 子函数算法及数据结构 首先输出系统的菜单界面。再读入n的值,最后函数返回n 5.4.4 算法流程图图5.4.4 菜单函数框图 5.4.5 源程序代码/*菜单选择函数*/menu_select()int n;printf(*n);printf(tt 欢迎进入n);printf(ntt 学生成绩管理系统nn);printf(*菜单*n);printf(ttt1. 输入学生成绩记录n); /*输入学生成绩记录*/printf(ttt2. 显示学生成绩信息n); /*显示*/printf(ttt3. 按姓名查询学生成绩信息n); /*寻找*/printf(ttt4. 按学号查询学生成绩信息n); /*寻找*/printf(ttt5. 按学号删除学生成绩信息n); /*删除*/printf(ttt6. 按平均分进行插入法排序n); /*排序*/printf(ttt7. 插入学生成绩信息n); /*插入*/printf(ttt8. 保存学生成绩信息n); /*保存*/printf(ttt9. 读取学生成绩信息n); /*读取*/printf(ttt0. 安全退出n); /*退出*/printf(*n);do printf(nttt请输入你的选择(09):); canf(%d,&n); while(n10); /*如果选择项不在09之间则重输*/return(n); /*返回选择项,主函数根据该数调用相应的函数*/ 5.4.6 调试运行程序运行后即出现界面如图5.3所示。当输入1时,即开始进入输入子函数。通过编译和运行,达到预期目的。 图5.4.6 菜单函数的运行界面5.5 输入学生成绩子函数 5.5.1 功能说明用于输入学生的成绩记录,建立新的链表。5.5.2 参数说明没有实际参数,返回值是head头指针;i是int型,用于控制循环,使p-scorei中i依次取1、2、3;s是int型,用于暂时存放总分的累加;p是指针,它首先指向链表头,随着操作不断进行,依次移向下一个节点。 5.5.3 子函数算法及数据结构 首先将p指向链表头按顺序输入p-num(学号)、p-name(姓名),在输入三项成绩的时候,利用i循环三次,依次输入三门成绩,并用判断语句表达当成绩输入不在1-100之间时重新输入。累加各门成绩暂存于s,之后赋值给p-sum,并分别计算每位的平均成绩,赋值给p-average。而后把p后移,重复上述操作,直到链表结束。 5.5.4 算法流程图 图5.5.4 输入函数的框图 5.5.5 源程序代码/*输入函数*/STUDENT *create()int i,s;STUDENT *head=NULL,*p; /* 定义函数,此函数带回一个指向链表头的指针*/ for(;) p=(STUDENT *)malloc(LEN); /*开辟一个新的单元*/ if(!p) /*如果指针p为空*/ printf(nOut of memory.); /*输出内存溢出*/ return (head); /*返回头指针,下同*/ printf(请输入学号(如果学号首字符为0则结束输入):); scanf(%s,p-num); if(p-num0=0) break; /*如果学号首字符为0则结束输入*/ printf(请输入姓名:); scanf(%s,p-name); printf(请输入3门功课成绩(每门成绩必须在0100之间) n成绩1、2、3分别代表语文、数学、英语成绩n); /*提示开始输入成绩*/ s=0; /*计算每个学生的总分,初值为0*/ for(i=0;iscorei); if (p-scoreiscorei100) /*确保成绩在0100之间*/ printf(你输入的成绩有误,你还有一次机会重新输入.n); printf(成绩%d:,i+1); scanf(%d,&p-scorei); s=s+p-scorei; /*累加各门成绩*/ p-sum=s; /*将总分保存*/ p-average=(float)s/3; /*先用强制类型转换将s转换成float型,再求平均值*/ p-order=0; /*未排序前此值为0*/ p-next=head; /*将头结点做为新输入结点的后继结点*/ head=p; /*新输入结点为新的头结点*/ return(head); 5.5.6 调试运行选择操作1后,开始调用输入函数。按照输出引导输入合适的字符。最后在输入学号为0时,此函数中止。经过编译和运行,符合设计预期要求。运行界面如图5.5。 图5.5.6 输入函数的运行界面5.6 显示学生成绩子函数 5.6.1 功能说明 用于输出链表,其中包括序号、学号、姓名、三门学科分别的成绩、个人总成绩、个人平均分和名次。并且通过适当的排版输出,是结果形式上更加清晰。 5.6.2 参数说明Print函数的实参是struct stu的结构体指针,没有返回值;i是int型,用于统计记录条数,在输出中表示“序号”;p是指针,它首先指向链表头,随着操作不断进行,依次移向下一个节点。 5.6.3 子函数算法及数据结构利用while循环结构,输出一个学生的全部个人成绩信息,而后指针向后移一移,重复上述操作。一直这样重复操作,直到p为空指针。 5.6.4 算法流程图图5.6.4 显示函数的算法框图 5.6.5 源程序代码/* 显示全部记录函数*/void print(STUDENT *head)int i=0; /* 统计记录条数*/STUDENT *p; /*移动指针*/p=head; /*初值为头指针*/printf(n*STUDENT*n);printf(-n);printf(| 序号 | 学号 | 姓名 | 语文成绩| 数学成绩| 英语成绩 | 三门总分| 平均分 | 名次 |n);printf(-n); while(p!=NULL) i+; printf(| %3d | %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f |%-5d|n, i, p-num,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order); p=p-next; printf(-n);printf(*END*n);5.6.6 调试运行此运行是接着上述输入函数之后的。输入选择2之后,调用输出函数,屏幕显示如图5.6.6。图5.6.6 显示函数运行的界面5.7 按姓名查询学生成绩子函数 5.7.1 功能说明首先输入要查询学生的姓名,如果这个同学成绩信息在系统中就会显示出你所要查找的学生的所有信息。 5.7.2 参数说明samesearch函数的实参是struct stu的结构体指针,没有返回值。p是指针,它首先指向链表头,随着操作不断进行,逐渐向后移动。s20是char型,是存放姓名用的字符数组。 5.7.3 子函数算法及数据结构首先输入要查询学生的姓名到字符型数组s20中,将头指针赋给p。利用while语句,当记录的姓名不是要找的且指针不为空时移动指针,指向下一结点。不满足则跳出循环。如果此时p不是空指针,则此时p所指的节点正是要找的学生信息。将这个学生信息输出,完成此次查询过程。若p是空地址,则系统中没有此学生的信息,输出没有你要查找的学生信息。 5.7.4 算法流程图图 5.7.4 按姓名查找记录函数的算法框图 5.7.5 源程序代码/*按姓名查找记录函数*/void namesearch(STUDENT *head)STUDENT *p; /* 移动指针*/char s20; /*存放姓名用的字符数组*/printf(请输入要查找的学生姓名n);scanf(%s,s);p=head; /*将头指针赋给p*/while(strcmp(p-name,s) & p != NULL) /*当记录的姓名不是要找的且指针不为空时*/ p=p-next; /*移动指针,指向下一结点*/ if(p!=NULL) /*如果指针不为空*/ printf(n*查找到*n); printf(| 学号 | 姓名 | 语文成绩| 数学成绩| 英语成绩 | 三门总分| 平均分 | 名次 |n);printf(-n); printf(| %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f |%-5d|n, p-num,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order);printf(-n);printf(*END*n); else printf(n对不起,系统中没有姓名是 %s 的学生n,s); /*显示没有该学生*/ 5.7.6 调试运行输入要查询的学生姓名,如果此姓名的学生在系统中已经存在,则会输出此学生的成绩信息。例如输入jack,这个名字在系统中是存在的,所以可以输出学生jack的成绩信息,如图5.9所示。图5.7.6按姓名查询学生成绩子函数运行界面5.8 按学号查询学生成绩子函数 5.8.1 功能说明首先输入要查询学生的学号,如果这个同学成绩信息在系统中就会显示出你所要查找的学生的所有信息。 5.8.2 参数说明numsearch函数的实参是struct stu的结构体指针,没有返回值。p是指针,它首先指向链表头,随着操作不断进行,逐渐向后移动。s6是char型,是存放学号用的字符数组。 5.8.3 子函数算法及数据结构首先输入要查询学生的学号到字符型数组s6中,将头指针赋给p。利用while语句,当记录的学号不是要找的且指针不为空时移动指针,指向下一结点。不满足则跳出循环。如果此时p不是空指针,则此时p所指的节点正是要找的学生信息。将这个学生信息输出,完成此次查询过程。若p是空地址,则系统中没有此学生的信息,输出没有你要查找的学生信息。 5.8.4 算法流程图图5.8.4按学号查找记录子函数算法框图 5.8.5 源程序代码/*按学号查找记录函数*/void numsearch(STUDENT *head) STUDENT *p; /* 移动指针*/ char s6; /*存放学号用的字符数组*/ printf(请输入要查找的学生学号n); scanf(%s,s); p=head; /*将头指针赋给p*/ while(strcmp(p-num,s) & p != NULL) /*当记录的姓名不是要找的,或指针不为空时*/ p=p-next; /*移动指针,指向下一结点*/ if(p!=NULL) /*如果指针不为空*/ printf(n*查找到*n); printf(| 学号 | 姓名 | 语文成绩| 数学成绩| 英语成绩 | 三门总分| 平均分 | 名次 |n); printf(-n); printf(| %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f |%-5d|n, p-num,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order); printf(-n); printf(*END*n); else printf(n对不起,系统中没有学号是 %s 的学生n,s); /*显示没有该学生*/5.8.6 调试运行首先输入要查询学生的学号,如果这个同学成绩信息在系统中就会显示出你所要查找的学生的所有信息。例如,输入学号103,此学生在系统中存在,因此屏幕上显示了出输入者所要查找的学生的所有信息,如图5.11。 图5.8.6 按学号查找记录子函数运行界面5.9 按学号删除学生成绩子函数 5.9.1 功能说明首先输入要删除学生的学号,如

温馨提示

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

评论

0/150

提交评论