C语言程序管理系统课程设计报告

上传人:daj****de2 文档编号:183704566 上传时间:2023-01-31 格式:DOCX 页数:27 大小:78.05KB
收藏 版权申诉 举报 下载
C语言程序管理系统课程设计报告_第1页
第1页 / 共27页
C语言程序管理系统课程设计报告_第2页
第2页 / 共27页
C语言程序管理系统课程设计报告_第3页
第3页 / 共27页
资源描述:

《C语言程序管理系统课程设计报告》由会员分享,可在线阅读,更多相关《C语言程序管理系统课程设计报告(27页珍藏版)》请在装配图网上搜索。

1、C语言课程设计报告实验报告专业:班级:姓名:学号:题目:学生成绩管理程序该程序是一个简单的学生成绩管理程序。它可以录入多个同学的基本情况: 学号、姓名、数学,英语,C语言分数,同时还可以输出学生的平均,分总分,并且 能够将所有学生的基本情况和各课的成绩作适当修改和删除以及统计与排名,同时 能够将每个学生的成绩输出.一:数据结构设计及用法说明在整个程序中采用了多种数据结构,包括有基本类型中的:1:整型 int、char、long。2:浮点型:double、float。3:导出类型:指针、数组、结构(struct),链表。程序中的几个主要的结构:void main()int mm;for(; 1;

2、)printf (请输入密码n);scanf (%d”,&mm);if (mm=123)break;elseprintf (”密码错误;请重输入密码n”);Link l;/大定义链表大/FILE *fp;/大文件指针大 /int select;/大保存选择结果变量*/char ch;/*保存(y, Y, n, N) */int count=0;/*保存文件中的记录条数(或结点个数)*/Node *p, *r;/*定义记录指针变量大 /l= (Node*) malloc(sizeof (Node);if(! l)printf(”n内存分配失败”);/*如没有申请到,打印提示信息大/return

3、;/大返回主界面大/lnext=NULL;r=l;fp=fopen( C: student”,ab+); /*以追加方式打开一个二进制文件,可读可写, 若此文件不存在,会创建此文件*/if (fp=NULL)printf ( n=无法打开文件! n);exit(0);while(! feof (fp)p= (Node*)malloc (sizeof(Node);if(! p)printf ( memory malloc failure! n) ;/*没有申请成功大/exit (0);/大退出大/if (fread (p, sizeof (Node), 1, fp) =1) /大一次从文件中读取

4、一条学生成绩记 录*/pnext=NULL;rnext=p;r=p;/*r指针向后移一个位置大/count+;fclose (fp); /大关闭文件大/printf (n=打开文件成功,共记录的数目:d。n,count);menu();while(1)system (cls”);menu();p=r;printf (” n请输入您的选择(09): ” );/大显示提示信息大/scanf (%d,&select);if(select=0)if(saveflag=1) /*若对链表的数据有修改且未进行存盘操作,则此标志为1*/ getchar();printf ( n=是否保存修改记录文件?(y/

5、n): ” );scanf (”c”,&ch);if(ch=y I |ch=Y)Save (l);printf( =谢谢使用!”);getchar();break;switch (select) case 1:Add(l); break; case 2:Del (l);break;case 3: Qur (l); break; case 4: Modify (l);break; case 5:Insert (l); break; case 6: Tongji (l) ;break; case 7: Sort (l) ;break; case 8: Save (l); break; case 9

6、: system(”cls”);Dispprintf (按任何键返回 char a; scanf(”d”,&a);/大增加学生记录*/大删除学生记录大 /*查询学生记录大 /*修改学生记录大 /*插入学生记录大 /大统计学生记录*/*排序学生记录*/*保存学生记录大 /(l););break; /*显示学生记录*/default: Wrong (); getchar(); break;/大按键有误,必须为数值 09*/ 程序中建立了多个函数分别来完成每个所要求的功能:读文件和写文件函数,建链表函数,插入、修改和删除函数,排序、统计和输出 函数。程序利用各个函数来完成前面要求所需要的功能。二:程

7、序调用图:6统计 成绩7成绩 排序9显示成绩0退出系统三:功能菜单* * * * * * 菜单 * 大* * 大* * * :* 1输入成绩2删除成绩* 3查询成绩4修改成绩* 5插入成绩* 6统计成绩*7成绩排序*8保存成绩* 9显示成绩*0退出系统#* * * * * * * * * * * *四.实验结果;(见程序运行)五:体会:做完这个c语言程序设计的作业,我学会了很多新知识,对c语言有了更进一步 的了解。开始时,我想用结构数组来做这个程序,但后来我发现用做它,修改数据和读取 数据都显得很方便.于是,相比较之下,我便选择了链表。编程时会遇到一些困难,最令人头疼的莫过于程序运行时出错了

8、.有时哪怕是 一些很小的错误经常能导致难以预料到的后果,因此,编程时我尽量做到一丝不苟, 不敢有丝毫疏忽。通过这次c语言编程的练习,我的编程水平有了进一步的提高,同时也使我对编 程有了一个更清醒的了解和认识。六,程序密码123#include stdio.h”/*标准输入输出函数库*/#include stdlib。 h” /大标准函数库*/#include ” string。h / 大 字符串函数库大 /# include conio.h/大屏幕操作函数库大 /# define HEADER1 ”- 学生成绩 - -n# define HEADER2 I 学号 | 姓名 |C语言I数学I英

9、语I 总分I平均分I名次| n”#define HEADER3 III1I111I# define FORMAT” |% 10s |%15s| % 4d I % 4d|%4d I % 4d| %.2f I %4d I n”#define DATA pdata。num, pdata.name, p-data。egrade, pdata。mgrade, pdata。cgrade,p-data。total,pdata。ave, pdata.mingci# defineEND”nint saveflag=0; /大是否需要存盘的标志变量*/大定义与学生有关的数据结构*/typedef struct s

10、tudent/*标记为 student*/char num 10 ;/大学号*/char name 15 ; /*姓名大/int cgrade; /*C 语言成绩大 /int mgrade;/大数学成绩大 /int egrade;/大英语成绩大 /int total;/* 总分 */float ave;/*平均分大 /int mingci;/* 名次 */;/大定义每条记录或结点的数据结构,标记为:node*/typedef struct nodestruct student data; / 大数据域大 /struct node 大 next ;/* 指针域大 / Node,*Link; /*

11、Node为node类型的结构变量,*Link为node类型的指针变 量大/void menu () /大主菜单大/ system (cls”);/大调用DOS命令,清屏。与clrscr ()功能相同大/cprintf(-学生成绩管理系统n);cprintf( #* 大*大*大*大* * 菜单 * * * * #n,);cprintf*n”);(*1输入成绩*2删除成绩cprintf*n”);(*3查询成绩*4修改成绩cprintf(*5插入成绩*6统计成绩*n”);cprintf*n”);(*7成绩排序*8保存成绩cprintf(*n);”*9显示成绩*0退出系统cprintff”#* * *

12、 * * * * * * * *大大大* #n”);/*cprintf ()送格式化输出至文本窗口屏幕中*/void printheader() / *格式化输出表头* /printf (HEADER1);printf (HEADER2);printf(HEADER3);void printdata(Node *pp) / *格式化输出表中数据* / Node* p;p=pp;printf (FORMAT, DATA);void Wrong () / *输出按键错误信息*/printf (nnnnn * 输入有错!按任意键继续! * *n); getchar();void Nofind() /

13、大输出未查找此学生的信息大/printf (” n=没有找到这名学生! n”);void Disp (Link l) /大显示单链表l中存储的学生记录,内容为student结构中定义的 内容大/Node *p;p=lnext; / *l存储的是单链表中头结点的指针,该头结点没有存储学生信息,指针 域指向的后继结点才有学生信息*/if (! p) /*p=NULL, NUll 在 stdlib 中定义为 0*/printf( n=没有学生记录! n”);getchar();return;printf (nn” ;)printheader() ; / 大输出表格头部大 /while(p)/大逐条输

14、出链表中存储的学生信息大 /printdata(p);p=pnext; /大移动直下一个结点大/printf(HEADER3 );getchar();/* * * *作用:用于定位链表中符合要求的节点,并返回指向该节点的指针参数:findmess保存要查找的具体内容;nameornum 保存按什么查找;在单链表l中查找;*/Node* Locate(Link l, char findmess ,char nameornum )Node *r;if(strcmp(nameornum, num”)=0) /大按学号查询大/r=lnext;while (r)if(strcmp (r一data。num

15、, findmess)=0) /* 若找到 findmess 值的学号*/ return r;r=rnext;else if(strcmp (nameornum,” name”)=0) /大按姓名查询*/r=lnext;while(r)if (strcmp (r一data.name,findmess)=0)/*若找到 findmess 值的学生姓名*/return r;r=rnext;return 0; /*若未找到,返回一个空指针大 /大输入字符串,并进行长度验证(长度lens)*/void stringinput(char *t,int lens,char * notice)char n

16、255;doprintf(notice); / *显示提示信息大 /scanf (s”, n) ; /大输入字符串大/if (strlen (n)lens) printf (” n超过所需长度! n); /*进行长度校验,超 过lens值重新输入大 /while(strlen(n)lens);strcpy (t, n); /大将输入的字符串拷贝到字符串t中大/*输入分数,0 =分数= 100) */int numberinput ( char *notice )int t=0;do printf (notice);/*显示提示信息大/scanf (%d,&t) ;/*输入分数大/if (t10

17、0 I | t0) printf ( n 评分必须在0100 ! n) ;/*进行分数校验 大/ while (t100 | tnext!=NULL)r=r-next; /*将指针移至于链表最末尾,准备添加记录*/while(1) /大 一次可输入多条记录,直至输入学号为0的记录结点添加操作大/while(1) /大输入学号,保证该学号没有被使用,若输入学号为0,则退出添加记录操 作大/stringinput (num, 10,输入号码(按0返回菜单):);/大格式化输入学号并检 验大/flag=0;if (strcmp(num, ” 0”)=0) /大输入为0,则退出添加操作,返回主界面*/

18、return;s=lnext;while (s) /*查询该学号是否已经存在,若存在则要求重新输入一个未被占用的学号*/if(strcmp (sdata。num, num) =0)flag=1;break;s=s-next;if (flag=1) /*提示用户是否重新输入大/ getchar();printf(=人数s 是不存在的,再试一次? (y/n) :,num);scanf (”c”,&ch);if (ch=y| I ch=Y)continue;elsereturn;elsebreak;p= (Node *) malloc (sizeof (Node);/大申请内存空间*/if (! P

19、)printf(”n内存分配失败”);/*如没有申请到,打印提示信息大/return ;/大返回主界面*/strcpy (p一data。num,num);/* 将字符串 num 拷贝到 p-data.num 中*/ stringinput (pdata。name, 15,Name:);p一data.cgrade=numberinput( C 语言0-100: ); /大输入并检验分数,分数必 须在0100之间*/p-data.mgrade=numberinput (数学 Score 0-100:);/*输入并检验分数,分数必须在0100之间大/p一data。egrade=numberinput

20、 (英语 Score 0一100: ); /大输入并检验分数, 分数必须在0100之间*/p一data.total=pdata。egrade+p一data.cgrade+p-data.mgrade; /大计算总分 大/p一data.ave=(float) (p-data。total/3) ; /大计算平均分*/p-data。mingci=0;p-next=NULL; /大表明这是链表的尾部结点*/r一next=p; /大将新建的结点加入链表尾部中大/r=p;saveflag=1;return ;void Qur(Link l) /大按学号或姓名,查询学生记录大 /int select; /*1

21、:按学号查,2:按姓名查,其他:返回主界面(菜单)大/char searchinput20;/*保存用户输入的查询内容大 /Node 大 p;if(! l-next) /大若链表为空* /system (”cls);printf ( n=没有学生记录! n”);getchar ();return;system (”cls”);printf (”n=二1按学号搜寻=2按名称搜索n);printf (” please choice 1,2:”);scanf(%d”,& select);if(select=1)/大按学号查询大 /stringinput (searchinput,10,输入现有的学生

22、学号:);p=Locate (l, searchinput, num) ;/*在 l 中查找学号为 searchinput 值的节点,并返回节点的指针大/if (p) /*若 p! =NULL*/printheader();printdata(p);printf (END);printf (按任意键返回);getchar();elseNofind();getchar();else if (select=2) /*按姓名查询大 /stringinput(searchinput, 15,输入现有的学生姓名:);p=Locate (l, searchinput, ”name)if (p)printh

23、eader ();printdata (p);printf (END);printf (”按任意键返回);getchar ();elseNofind();getchar();elseWrong ();getchar();/大删除学生记录:先找到保存该学生记录的节点,然后删除该节点大/void Del (Link l)int sel;Node 大 p, *r;char findmess20;if (! l-next) system(”cls”);printf(” n=没有该学生的记录n);getchar();return;system(”cls”);Disp(l);printf (” n=1按学

24、号删除=二2按姓名删除n);printf ( 请选择1, 2:”);scanf (%d”,&sel);if (sel=1)stringinput (findmess,10, ”输入现有的学生学号:”);p=Locate(l,findmess, num”);if (p) /*p! =NULL*/r=l;while(rnext! =p)r=rnext;rnext=p-next;/*将p所指节点从链表中去除大/free (p); /大释放内存空间大/printf (” n=二删除成功! n”);getchar ();saveflag=1;elseNofind();getchar();else if(

25、sel=2) /*先按姓名查询到该记录所在的节点大 /stringinput (findmess,15,输入现有的学生姓名:);p=Locate(l, findmess, ”name)if(p)r=l;while (rnext! =p)r=rnext;rnext=p-next;free(p);printf (” n=删除成功! n);getchar();saveflag=1;elseNofind();getchar();elseWrong ();getchar();/*修改学生记录。先按输入的学号查询到该记录,然后提示用户修改学号之外的值,学号不能修改大 /void Modify (Link

26、l)Node 大 p;char findmess20;if(! l-next) system (cls”);printf (n=没有该学生记录!n);getchar ();return;system (”cls)printf (修改学生记录);Disp(l);stringinput (findmess,10,input the existing student number: ); /*输入并检验该学号 */p=Locate(l,findmess,num”); / 大查询到该节点大/if (p)/*若p! =NULL,表明已经找到该节点大/printf(Number: %s,n,pdata.n

27、um);printf (”Name:%s, , p-data.name);stringinput (p一data。name,15,输入新姓名:);printf ( C 语言分数:d, , p-data。cgrade);p-data.cgrade=numberinput( C 语言分数0-100:);printf (数学分数:d, , p一data。mgrade);p-data。mgrade=numberinput(数学分数0100:);printf(英语分数:d, , p一data.egrade);p-data。egrade=numberinput (英语分数0100:);pdata。tota

28、l=pdata.egrade+pdata。cgrade+p-data。mgrade;pdata。ave= (float) (p-data.total/3);p-data。mingci=0;printf( n=修改成功! n);Disp(l);saveflag=1;elseNofind();getchar();/大插入记录:按学号查询到要插入的节点的位置,然后在该学号之后插入一个新节 点。大/void Insert ( Link l)Link p,v,newinfo; /*p指向插入位置,newinfo指新插入记录*/char ch,num 10 ,s10; /*s 保存插入点位置之前的学号,n

29、um 保存 输入的新记录的学号*/int flag=0;v=lnext;system (”cls”);Disp(l);while (1) stringinput(s,10,”请输入要输入号码插入的位置:);flag=0; v=l-next;while (v) /大查询该学号是否存在,flag=1表示该学号存在大/if (strcmp(v-data。num,s)=0) flag=1; break;v=vnext;if (flag=1)break; /*若学号存在,则进行插入之前的新记录的输入操作*/else getchar();printf(n=学号s是不存在的,再试一次吗?(y/n) :,s)

30、;scanf (%c”,&ch);if (ch=y| I ch=Y)continue;elsereturn;/*以下新记录的输入操作与Add()相同大/stringinput(num,10,输入新学号:);v=l-next;while(v)if ( strcmp (vdata.num,num)=0)printf (=对不起,新的学号s已存在! n ,num);printheader ();printdata (v);printf(n”)getchar();return;v=vnext;newinfo= (Node *)malloc (sizeof (Node);if(! newinfo )一p

31、rintf( n allocate memory failure ); /*如没有申请到,打印提示信息大/ return ;/*返回主界面*/strcpy (newinfodata.num, num);stringinput (newinfodata.name, 15, Name:);newinfo-data。cgrade=numberinput(C 语言分数0-100:);newinfo一data。mgrade=numberinput (数学分数0100:);newinfodata。egrade=numberinput(英语分数0100:);newinfodata.total=newinfo

32、data。egrade+newinfo-data.cgrade+newinfodata.mgrade;newinfo-data。ave= (float)(newinfo一data。total/3);newinfo-data。mingci=0;newinfo-next=NULL ;saveflag=1; /大在main ()有对该全局变量的判断,若为1,则进行存盘操作*/ /大将指针赋值给p,因为l中的头节点的下一个节点才实际保存着学生的记录大/p=l-next;while(1)if(strcmp(p-data。num, s) =0) /*在链表中插入一个节点大/newinfonext=p-ne

33、xt;pnext=newinfo;break;p=pnext;Disp(l);printf (nn);getchar();/大统计该班的总分第一名和单科第一,和各科不及格人数大/void Tongji (Link l)Node大pm, *pe, *pc,*pt; /大用于指向分数最高的节点*/Node 大 r=lnext;int countc=0,countm=0, counte=0; /*保存三门成绩中不及格的人数大/if(!r) system (cls);printf( n=没有学生记录! n”);getchar();return;system (”cls”);Disp (l);pm=pe

34、=pc=pt=r ;while (r)if(r-data。cgrade60) countc+;if (rdata。mgrade60) countm+;if(rdata。egrade60) counte+;if(r-data。cgrade=pc-data。cgrade) pc=r;if(rdata。mgrade=pmdata。mgrade) pm=r;if (rdata.egrade=pedata。egrade) pe=r;if (r-data.total=ptdata。total)pt=r;r=rnext;printf (” n- 统计学生记录- -n);printf ( C 语言60:%d

35、An, countc);printf (数学60:%d An, countm);printf(英语data.name,ptdata.total); printf(英语最高分 :%s totoal score: %dn, pe一data.name, pe一data。egrade); printf (”数学最高分 :%s totoal score: %dn, pmdata.name,pmdata。mgrade); printf(C 语言最高分:s totoal score: %dn, pc-data。name,pcdata.cgrade); printf(”nnpress any key to r

36、eturn”);getchar();/*利用插入排序法实现单链表的按总分字段的降序排序,从高到低*/void Sort (Link 1)Link 11;Node *p,*rr, *s;int i=0;if(1一next=NULL) system(c1s);printf (n=没有学生记录!n”);getchar ();return ;11=(Node*) ma11oc (sizeof(Node) ;/*用于创建新的节点大/if (! 11)printf (” n内存分配失败);/*如没有申请到,打印提示信息*/return ;/大返回主界面大 /11next=NULL;system (cls”

37、);Disp (1); /*显示排序前的所有学生记录大/p=1-next;whi1e(p) /*p!=NULL*/s=(Node*)ma11oc (sizeof(Node) ; /*新建节点用于保存从原链表中取出的节点信息 大/if(! s) /*s=NULL*/printf (”n内存分配失败”);/*如没有申请到,打印提示信息大/return ;/*返回主界面大 /s-data=pdata; /大填数据域大/snext=NULL;/大指针域为空*/rr=11;/*rr链表于存储插入单个节点后保持排序的链表,11是这个链表的头指针,每次从头 开始查找插入位置大 /whi1e (rr-next

38、!=NULL & rrnextdata。tota1=p-data.tota1)rr=rr-next; /大指针移至总分比p所指的节点的总分小的节点位置*/ if(rrnext=NULL) /大若新链表ll中的所有节点的总分值都比p一data。total 大时,就将p所指节点加入链表尾部*/rr-next=s;else /*否则将该节点插入至第一个总分字段比它小的节点的前面大 /snext=rrnext;rrnext=s;p=pnext; /大原链表中的指针下移一个节点大/l-next=ll-next; /*ll中存储是的已排序的链表的头指针*/p=lnext;/*已排好序的头指针赋给p,准备填

39、写名次大/while (p!=NULL) /大当p不为空时,进行下列操作*/i+;/大结点序号*/pdata。mingci=i;/*将名次赋值大/p=pnext;/大指针后移大/Disp(l);saveflag=1;printf ( n=排序完成! n);/大数据存盘,若用户没有专门进行此操作且对数据有修改,在退出系统时,会提 示用户存盘大/void Save(Link l)FILE* fp;Node *p;int count=0;fp=fopen(c:student”,wb”); /*以只写方式打开二进制文件*/if(fp=NULL) /大打开文件失败大 /printf(” n=打开文件错误

40、! n”);getchar();return;p=lnext;while (p)if (fwrite(p,sizeof(Node), 1, fp)=1) /*每次写一条记录或一个节点信息至文件*/ p=pnext;count+;elsebreak;if (count0)getchar ();printf( nnnnn=保存文件的完整,总储存的记录数:dn, count);getchar();saveflag=0;else system (”cls);printf(”目前的链接是空的,没有学生记录保存!n”);getchar();fclose(fp); /大关闭此文件大 /void main (

41、)int mm;for(;1;)printf (请输入密码n);scanf (%d,&mm);if (mm=123)break;elseprintf (密码错误;请重输入密码n”);Link l;/大定义链表*/FILE大fp;/大文件指针大 /int select;/大保存选择结果变量大 /char ch;/*保存(y, Y,n, N)大/int count=0; /大保存文件中的记录条数(或结点个数)大 /Node大p,*r;/大定义记录指针变量大/ l= (Node*)malloc(sizeof(Node);if(! l)printf (”n内存分配失败”);/大如没有申请到,打印提示信

42、息大/return ;/*返回主界面大 /lnext=NULL;r=l;fp=fopen (C: student”, ab+); /大以追加方式打开一个二进制文件,可读可写,若此文件不存在,会创建此文件大/if(fp=NULL)printf ( n=无法打开文件!n”);exit(0);while(! feof(fp)p=(Node*) malloc (sizeof (Node);if(!p)printf ( memory malloc failure! n);/大没有申请成功大/exit (0) ;/大退出大/if (fread(p,sizeof (Node) ,1,fp)=1) /大一次从

43、文件中读取一条学生成绩记录大/pnext=NULL ;r-next=p;r=p;/*r指针向后移一个位置大/count+;fclose (fp); /*关闭文件*/printf (” n=打开文件成功,共记录的数目:%d。n”,count);menu ();while(1)system (”cls”);menu();p=r;printf(”n请输入您的选择(09): ) ;/大显示提示信息*/scanf(” d”,& select); if (select=0)if (saveflag=1) /*若对链表的数据有修改且未进行存盘操作,则此标志为1 大/ getchar();printf (”

44、n=二是否保存修改记录文件?(y/n):);scanf (%c”,&ch);if (ch=y II ch=Y)Save(l);printf (=谢谢使用!”);getchar();break;switch(select)case 1: Add (l) ;break;case 2: Del (l) ;break;case 3:Qur(l) ;break;case 4: Modify (l) ;break;case 5:Insert (l);break;case 6: Tongji(l) ;break;case 7: Sort(l) ;break;case 8:Save (l);break;case/大增加学生记录大 /*删除学生记录*/*查询学生记录大 /*修改学生记录大 /*插入学生记录大 /*统计学生记录大 /*排序学生记录大 /大保存学生记录大 /9: system (”cls) ;Disp (l); printf (”按任何键返回); char a;scanf(%d”,&a);break; /*显示学生记录大 /default:Wrong(); getchar();break;/*按键有误,必须为数值 0-9*/

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!