c++课设学生管理系统.doc_第1页
c++课设学生管理系统.doc_第2页
c++课设学生管理系统.doc_第3页
c++课设学生管理系统.doc_第4页
c++课设学生管理系统.doc_第5页
免费预览已结束,剩余58页可下载查看

下载本文档

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

文档简介

摘 要计算机飞速发展的今天,计算机的应用已在社会的各个领域深入开来,无论是在商业,工业还是政府部门都早已普及,如今就连教育行业也把计算机应用到各个方面的工作中,本次c+课设就是把计算机应用到学校学生信息管理中的范例。一、C+的介绍和应用:C+语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。C+以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C+完美地体现了面向对象的各种特性。 随着若干独立开发的C+实现产品的出现和广泛应用,正式的C+标准化工作在1990年启动。1998年正式发布了C+语言的国际标准C+,1998,对于要解决实际问题的程序员而言,C+使程序设计变得更有乐趣。C+是一门通用目的的程序设计语言,它: 1.是一个更好的C; 2. 支持数据抽象;3. 3.支持面向对象程序设计; 4.支持范型程序设计。对范型程序设计的支持在C+设计的后期才被作为一个明确、独立的目标来实现。而C+一直被应用于应用软件和系统软件的行列中,其中本系统的研发就是一个案例;正式这样,程序员一直把范型程序设计以及支持它的语言特性划归在“数据抽象”的大标题之下。二、学生成绩管理系统与C+的联系: 首先,我们了解学生成绩管理系统都以学生为中心展开的,而对于学生的各种数据包含他的姓名、学号、性别、名族以及各科成绩等,如果只是面向过程编程这样就不利于数据的调用,那么数据与数据之间也会产生混乱,因为学生毕竟不只是一个。对于面临这样的难题,我想封装就是再好不过的办法了,因此创建类也是避免不了的,也就是将学生的各种数据打包成一个整体,这个整体也就叫做类,在通过学生类去创建对象,这也就将数据整体化,简单化,界面化,从而减少了数据的复杂,也方便了数据之间的调用,减少了数据的累赘,使程序简洁明了,结构清晰了。C+恰好符合了这种编程的思想,因为C+语言是一种优秀的面向对象程序设计语言,这也是这次课设的主要目的-熟悉并掌握面向对象程序设计的一些套路和思想。三、 系统实现方案:第一步:分析题目,建立类并派生出它的子类,画出类图。 第二步:画出流程,根据流程图编写程序清单 第三步:上机调试程序(使用单步调试,设置断点、分块调试的方法)。 第四步:及时整理资料,撰写课程设计报告中有关这个题目的内容。 【关键词】 学生成绩管理 c+ 面向对象 类 目录摘 要- 4 -一、C+的介绍和应用:- 4 -二、学生成绩管理系统与C+的联系:- 4 -三、 系统实现方案:- 5 -绪 论- 8 -第一章 系统程序设计思路- 10 -1、系统功能设计:- 10 -2、类设计:- 11 -3、输入输出的设计:- 12 -4、选择菜单设计:- 12 -第二章 程序解析- 13 -程序中用到的头文件的解析:- 13 -主函数解析:- 14 -Condactor() 界面函数解析:- 15 -delete_stu(i,s)删除数据函数解析:- 18 -change(int a,stu *t50)修改数据的解析:- 20 -search()查找函数的解析:- 22 -scan(i,s)浏览函数的解析:- 23 -paixu(i,s)排序函数的解析:- 24 -pass(i,s)求平均分函数的解析:- 25 -remima()修改密码函数解析:- 26 -第三章 程序的运行结果- 28 -调试心得- 36 -1、代码调试:- 36 -2、调试心得:- 38 -总结和体会- 39 -总结自己的不足:- 39 -体会:- 39 -参考文献- 41 -附录- 42 -程序源代码:- 42 - 3 -绪 论本系统是一个学生课程和成绩管理系统,它是高校教务管理系统中的一个子系统。主要用户是学生、教师和管理员。系统方便了学生选课和查分。方便了教师的教学管理和学生成绩的录入。更为重要的是,系统方便了学校的教务管理。学生课程及成绩管理系统的产生大大减少了人力上的不便,让整个数据管理更加科学合理。学生管理是高校管理的重要组成部分,对于学校和政府教育管理单位来说都至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段。但是一直以来高校都使用人工的方式管理学生学籍、档案、成绩等,这种管理方式效率低、保密性差,不利于查找更新和维护。使用计算机对学生信息进行管理,能够极大地提高学生管理的效率,节约教育经费,这也是适应学校信息化建设发展趋势的重要因素。本系统主要通过c+程序设计,用学生所有的数据如(姓名、性别、学号、语文成绩,数学成绩,英语成绩,物理成绩,历史成绩以及个人总成绩,平均成绩)和一些成员函数如(类构造函数stu()、输出函数print()、获取平均分函数getaver()以及获取总分函数getsum() 等函数)创建一个student类。然后用类创建对象,将班级的所用数据信息都赋值到这些对象上,然后分别对这些对象进行各种处理,也就是调用各种函数如:修改函数change()、查找函数search()、删除函数delete_stu()、以及各种排序函数paixu()、界面输入函数Condactor() 等各种函数来实现各种数据操作,达到数据管理的目的。系统需要实现的目标如下:、 输入一个班级的学生基本信息(包括学号,姓名,性别,门课程成绩)。 、按姓名或学号查找、修改、删除和保存各个学生的信息。 、计算每个学生的各门功课总分和平均分,按学号或总分排序输出每个学生的基本信息及总分、平均分和名次等信息。 、计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息。 、显示每门科目中,成绩在90分以上的学生信息,以及每门科目中不及格的学生信息。 、设置系统登录密码,只有正确输入密码方可进入管理系统。可更改和保存登录密码。通过实现这些要求,从而使本系统达到能提高学生管理效率,节约管理成本,增强学生管理安全性的作用,并能够实现方便数据的扩展,满足学校发展的需要。为学校将来的整体信息化建设提供必要的支持。总之,通过该系统的建设来提高高校的学生管理效率,使得学校的发展能够适应当前的教育信息化建设的总体发展趋势。 - 5 -第一章 系统程序设计思路1、系统功能设计: 主程序各科中优秀和不及格的同学各科的平均分和低于平均分的同学查找删除修改统计输入显示退出输入密码 界面函数fasle采单程序初始化程序系统功能结构图:比较 读取数据 ture密码.txt存入数据修改密码读取数据读取数据读取数据存入数据学生数据.txt 储存数据2、类设计: 类:student 数据成员:学号,姓名,性别,数学成绩,英语成绩,语文成绩,物理成绩,历史成绩; 成员函数:无参和有参的构造函数,英语、数学、英语成绩等返回函数,总分和平均分返回函数,显示输出函数;因为在设计功能实现时,必定要调用类的对象,因此我就设计了三个友元成员函数,便于在这些函数要对对象进行处理时,或者进行比较时,可以调用的程序的私用数据,如:在search()函数中,不设置其为友元函数的话,那么在调用对象的name私有数据时,即执行程序 if(strcmp(n,(*tj).name)=0), 就会产生无法访问的错误; 友元函数:Char name20; Char sex10; Num,Math,Chinese,English,Phisical,History,AverageSum; 删除函数、修改函数、查找函数、界面函数 类的结构图为:数据成员get_eng()get_chin() get_math()getsum() getaver() 成员函数 Stu类Condactor(); Search(int a,stu *t50,char n20);Search(int a,stu *t50);Change(int a,stu *t50);Delete_stu(int a,stu *t50);友元函数3、输入输出的设计: 、界面设计 程序运行后会出现一个简捷的窗口,便于用户查询数据。主要包含了当前的记录学生人数、以及提示执行功能的相应数字和字母;界面设计的主要特点就是简洁,清楚,漂亮。 、功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和成绩的输入,以及判断密码的正确性和修改密码时判断两次输入是或相同,1、 当系统里没有数据输出时,就会输出“管理系统中没有录入数据或者数据已经被删除!”,然后就会提示“请按任意继续.”2、 我还设置了各科成绩当中如果没有大于90分或没有不及格的同学的时候,就输出“英语没有高于90分的”,如果有的这句话就不输出,输出高于90分的学生的个人信息。3、 由于在窗口中,要进行界面切换,为了能够即使返回主菜单,我就用了程序“system(cls)”来刷新屏幕。4、选择菜单设计: 操作: 成绩名词 ; (0)数据输入 (6)按总分查询排名 (1)删除人员 (7)按语文查询排名 (2)修改数据 (8)按数学查询排名 查询 (9)按英语查询排名 (3)按学号查询 系统操作 (4)按姓名查询 (e)退出系统 (5)输出全班的数据 各科平均分: (h)语文优和差的学生 (d)语文平均分: (i)数学优和差的学生 (f)数学平均分: (j)英语优和差的学生 (g)英语平均分: (c)修改密码 第二章 程序解析程序中用到的头文件的解析: #include /输入输出头文件主要用于在程序中调用“cout和cin”语句; #include /字符串处理头文件 主要用于在程序中调用“strcpy和strcmp函数”; #include /用getch()函数的头文件 调用getch()函数也就是为了能够获取整各字符串; #include /用exit()的头文件 #include /文件处理头文件 为后面调用程序: fstream outfile; outfile.open(e:学生数据.txt,ios:out); outfile fstream infile; infile.open(e:密码.txt,ios:in); infile.getline(s,sizeof(s); infile.close(); Outfile.close();埋下伏笔;而这些程序都是用于学生信息数据的存储和读取,从而达到将数据存入文件“学生数据.txt”从而保证了数据的安全性,类似的有:修改密码时,我也设置将密码保存到“密码文件.txt”以便于下次登入时能从这个文件中读取密码,从而实现了修改密码的功能。主函数解析: void main()char s20; char b20;fstream infile; infile.open(e:密码.txt,ios:in);if(!infile)coute:密码文件不能打开!n;abort(); infile.getline(s,sizeof(s);infile.close();coutb;if(!strcmp(s,b) system(cls); Condactor(); break;elsecout你的密码不正确,请重新输入:; 该程序用于设置密码,并将密码存入e:密码.txt文件中,为下面实现修改密码的功能埋下伏笔;如果输入的密码正确就进入Condactor(),或者输出你的密码不正确,请重新输入:,本文用了for(;)死循环来实现此功能,如果正确的,用break跳出;其中, 在进入界面函数前,我先设置刷新屏幕程序system(cls);,这也是界面设计的一大特点。Condactor() 界面函数解析: void Condactor() char p20,p1; /定义输入字符 char w20,c; /等待键盘输入的变量 int i=0,j=0,flag=0; /定义当前学生位置和学生数量,是否跳到主页面判断 stu *s50; /定义学生数组 fstream outfile; do cout当前已录人员总数:(i)endlp; system(cls); /刷新屏幕 if (strlen(p)=1) p1=p0; else p1=x; switch (p1) case 0: char name20; char sex10; double num,math,chinese,english,phisical,history; do outfile.open(e:学生数据.txt,ios:out); if(!outfile) cout学生数据文件不能打开!n; abort(); cout请输入 姓名name; outfilenameendl; cout请输入 性别sex; outfilesexendl; cout请输入 学号num; outfilenumendl; cout请输入 数学成绩:math; outfilemathendl; cout请输入 语文成绩:chinese; outfilechineseendl; cout请输入 外语成绩:english; outfileenglishendl; cout请输入 物理成绩:phisical; outfilephisicalendl; cout请输入 历史成绩:history; outfilehistoryendl; outfile.close(); j+; si=new stu(name,sex,num,math,chinese, english,phisical,history); i+; cout数据输入成功,想继续输入吗(y/n)w; do if (!strcmp(w,y) break; else if(!strcmp(w,n) flag=1; system(cls);break; cout指令错误!请重新输入!w; while (1); if(flag=1) flag =0; break; while(1); break; case 1:delete_stu(i,s);break; /删除学生数据;case 2: change(i,s);break; /修改学生数据;case 3:search(i,s) ;break; /以学生学号来查找学生数据;case 4: search(i,s,w);break; /以学生姓名来查找学生数据;case 5: scan(i,s);break; /实现显示所有学生数据的功能;case 6: sum_paixu(i,s);break; /实现按总分排序输出的功能;case 7:chin_paixu(i,s);break;/实现按语文成绩排名的功能; case 8:math_paixu(i,s);break; /实现按语文成绩排名的功能;case 9: eng_paixu(i,s);break; /实现按英语成绩排名的功能;case e: exit(0);/系统退出case d:chin_pass(i,s);break;/实现查询班级语文平均分和输出低于平均分学生的功能;case f:math_pass(i,s);break;/实现查询班级数学平均分和输出低于平均分学生的功能;case g: eng_pass(i,s);break;/实现查询班英语平均分和输出低于平均分学生的功能;case h:chin_avr(i,s,flag);break;/实现查询班级语文高于90分和不及格学生基本信息的功能;case i:math_avr(i,s,flag);break;/实现查询班级数学高于90分和不及格学生基本信息的功能;case j:english_avr(i,s,flag);break;/实现查询班级英语高于90分和不及格学生基本信息的功能;case c: remima();break;/实现修改密码的功能;default: system(cls); /刷新屏幕 coutendlendlendlendlendlendlendlendlendlendlendlendl 指令错误!按任意键重新输入!endlendlendlendlendlendlendlendlendlendl; c=getch(); system(cls); while(1); 界面函数主要是是将各个功能函数联合在一起,用switch和case的选择语句来实现输入对应符号选择对应的功能;在界面里为了显示“当前记录学生人数”,我定义了一个int 变量,用于存入该数据,如果增加学生数据,i就会自增;在case0里,我定义了一个input函数,就是将学生数据输入学生系统,并相应的将数据付给学生的对应的属性,我还设计了outfile语句,为了将这些数据分别存入对应的“e:学生数据.txt”;便于以后用于数据读取,实现数据的查询。我还特意的将p1的数据类型设为case里的相应的字符,如果非这些数据,就会输出 指令错误!按任意键重新输入!其中各个case语句的功能实现的函数将在下面一一列出。delete_stu(i,s)删除数据函数解析: void delete_stu(int a,stu *t50) char name20;bool flag3=0,flag=0;char w20;/flag 标识是否继续删除;flag3标识删除的目标是否存在 do cout请输入您要删除的学生姓名:name; for(int h=0;hname)=0) flag3=1; a-; do th=th+1; h+; while(h=a); if(flag3=0) cout您要求删除的对象本来就不存在!请检查输入的正确性!; cout要继续删除吗?(y/n)w; do if (!strcmp(w,y) break; else if(!strcmp(w,n) flag=1;break; cout指令错误!请重新输入!w; while (1); if(flag=1) flag =0; break; while(1); 首先,我定义一个a来接受i的数据,用stu *t用来作为s的形参,因为是指针作为形参,所以是传址传递。在函数中,我用flag3来判断删除的学生的姓名是否存在,并用dowhile 语句来实现是否继续删除,我还定义了一个char w;来接受用户的答案,如果是“y”就调出其所在的dowhile语句,如果是“n”就将flag=1为后面跳出case1提供条件。 其中,在实现删除的功能的程序中,用了一个for循环用来查找删除的数据,并又用strcmp(name,th-name)=0来进行判断是否存在该数据,存在的话,首先将a自减,然后将后面的数据都向前移,也就是通过 th=th+1来实现。change(int a,stu *t50)修改数据的解析: void change(int a,stu *t50) char name20,w20;char sex10; double num, mat,chin,eng,ph,hi;bool flag2=0,flag=0; do cout请输入您要修改的学生的姓名:name; for(int h=0;hname)=0) flag2=1; cout请输入新的 学号:num; cout请输入新的 性别:sex; cout请输入新的 数学成绩:mat; cout请输入新的 语文成绩:chin; cout请输入新的 外语成绩:eng; cout请输入新的 物理成绩:ph; cout请输入新的 历史成绩:hi; strcpy(th-sex,sex); th-num=num; th-chinese=chin; th-math=mat; th-english=eng; th-phisical=ph; th-history=hi; cout数据修改成功!; if(flag2=0) cout您要修改的学生本来就不存在!请检查重新输入!endl; cout想继续修改吗(y/n)w; do if (!strcmp(w,y) break; else if(!strcmp(w,n) flag=1;break; cout指令错误!请重新输入!w; while (1); if(flag=1) flag =0; break; while(1); 同理,我定义了flag2用来判断要修改的数据是否存在,并用w来接受用户的答案来判断是否继续输入,在输入新的数据之后,然后修改数据主要是靠指针来重新指向新的学生数据。search()查找函数的解析: void search(int a,stu *t50) double n; int j=0; char w20; do int flag=0; cout请输入你要查询的学生学号n; for(int j=0;jprint(); if(flag=0) cout对不起!您要查询的学生不存在!endl; cout您想继续查询吗?(y/n)w; do if (!strcmp(w,y) break; else if(!strcmp(w,n) flag=1;break; cout指令错误!请重新输入!w; while (1); if(flag=1) flag =0; break; while(1); Search()分别用a,stu *tz作为形参,用于接受i,s的数据,然后用for循环来搜索数据,并用if语句来判断查找数据的存在,如果存在,就输出且将flag=1就跳出不存在的那种情况,如果不存在,跟上面的一样输出您想继续查询吗?(y/n);同理用姓名查找就是用于判断的条件改为了strcmp(n,(*tj).name)=0,也就是判断有没有这个名字。scan(i,s)浏览函数的解析: void scan(int a,stu *t50) if(a=0) cout管理系统中没有录入数据或者数据已经被删除!endl; else cout本系统所有学生数据如下:endl; for(int k=0;ka;k+) coutk+1print(); warn(); void warn() char c1; cout请按任意继续.endl; /等待键盘输入 c1=getch(); system(cls); /刷新屏幕 浏览所用数据就是用 for(int k=0;ka;k+) 语句将所用的学生数据都输出,如果没有数据就输出管理系统中没有录入数据或者数据已经被删除!,然后就调用 warn()函数来刷新屏幕 ;paixu(i,s)排序函数的解析: void sum_paixu(int a,stu *t50) if(a=0) cout管理系统中没有录入数据或者数据已经被删除!endl; else int p;stu b; cout本系统所以学生数学排名如下:endl; for(int x=0;xa-1;x+) p=x; for(int y=x+1;ygetsum()getsum() p=y; if(p!=x) b=*tp; *tp=*tx; *tx=b; for(int k=0;ka;k+) coutk+1print(); warn(); 现以sum_paixu()为例,其他的排序函数与其类似,其中主要实现的是用冒泡法来实现按总分排序的;然后用for(int k=0;ka;k+) 来将其一一输出,再用warn()来刷新屏幕;pass(i,s)求平均分函数的解析: void math_pass(int a,stu *t50) if(a=0) cout管理系统中没有录入数据或者数据已经被删除!endl; else double math_sum=0; for(int k=0;kget_math(); cout全班的数学平均分为:math_sum/aendl;double math_aver=math_sum/a;for(k=0;kget_math()math_aver)cout低于数学平均分的有:print();warn(); 现以求数学平均分为例,开始一样,如果没有数据存入的话,就输出管理系统中没有录入数据或者数据已经被删除!如果有的话,就用for(k=0;ka;k+)统计所用的数学成绩,并求和、便求出平均分;然后根据平均分,用for循环搜寻所有的学生数据,如果数学分低于平均分就输出,再用warn()刷新屏幕;remima()修改密码函数解析: void remima()char a20;char b20;couta;coutb;do if(strcmp(a,b)cout密码两次输入的不同,请再次输入:b;else break;while(1);fstream outfile; outfile.open(e:密码.txt,ios:out); if(!outfile) cout密码文件不能打开!n; abort(); outfileaendl;outfile.close();system(cls); /刷新屏幕 先定义了2个字符串,用于接受2次输入的密码。如果输入的密码相同就再将该密码存入到e:密码.txt,或者用dowhile循环第二次输入的密码,直到相同为止,然后刷新屏幕;- 63 -第三章 程序的运行结果1、输入密码的界面如图所示,当输入密码错误的时候就会提醒你“你的密码不正确,请重新输入:”,然后直到你输正确为止或者退出界面。2、当进入系统后,整个界面的设计就如图所示,包括当前记录的人数,以及提示你相关操作的数字。3、首先时“0”操作,也就是输入界面,它会提示你输入相应的数据信息,如姓名,学号等等,当要结束一个学生的数据输入的时候,就会提醒你时候继续输入,如果是“y”的话就继续出现相应的数据输入提示,如果是“n”的话就跳出界面,返回到菜单界面,如果时其他的数字,就会提示“指令错误,请继续输入!”3、当返回界面以后,此时界面会输出当前已录人员总数为。4、然后选中删除功能选项(1),进入以后输入你要删除人的名字,再回车一下,会出现“要继续删除吗?”提示,表明那个数据已经成功被删除。输入“n”后,返回列表以后就会发现当前的记录人数为(1)了。5、返回菜单后,你选中“5”功能选项时,你会浏览到所有的数据,此时你会发现系统中只有一个数据,如图所示:6、再进入修改的功能菜单,界面如图所示,然后根据提示修改你要的数据,同样的道理,当一个人的数据输完以后,就会提示“数据修改成功!想继续修改吗(y/n)”输入“n”就返回主界面。 然后再进入浏览选项时,查看学生数据,此时会输出修改人的数据,界面如图所示:7、 选择“3”,进入查询功能,按照学生学号查询,如果你输入的学号在系统里根本就不存在的话,就会提示“对不起!你要查询的学生不存在!”然后会让你选择是否继续查询,当你查询的学号存在时,就会输出该学生的所用信息,如第二个图所示,按学生姓名查询与其类似。8、 进入“语文优和差的学生”的功能选项,如果没有优秀和不及格的学生就出现图1的画面,如果有的就会出现向查询英语时已样的界面,如图2:9、 为了能够判断排序功能实现成功与否,我又添加了一个学生数据,然后在进入数学排名选项菜单中,则出现了如下的界面,其中前面的序号就是数学的排名。同理,我还设计了英语,总分,语文排序的输出界面,其中英语的输出界面如图所示:10、进入科目平均分的选项,即输入“6”字符,就会出现以下的界面,然后按任意键就能返回协助界面了,其中其它的科目平均分的界面与其类似。11、学生修改密码选项,也是本系统的一大特色,首先判断输入的两次密码是否相同,如果不相同就出现如图1的界面,相同的话就修改成功,然后就在程序中将该密码存储到密码文件中。在下次登入时,再用原密码登入,就会出现图2的情形,在输入修改后的密码后就登入了系统了,说明了系统修改密码成功; 本功能实现主要用了第九章的fstream outfile;和fstream infile来实现文件的读取与保存,此程序执行后在磁盘中会产生的两个文件如图所示:调试心得1、代码调试: 1、友元函数的应用由于这是一个数据管理的系统,因此我创建了一个stu类,为了将学生的所有的数据信息进行统一管理,但是为了实现各种功能,因此各个功能函数要调用这个类的数据成员和成员函数也是必不可免的。因此我在就在这出现了问题,具体叙述如下:void search(int a,stu *t50) double n; int j=0; char w20; do int flag=0; cout请输入你要查询的学生学号n; for(int j=0;jprint(); if(flag=0) cout对不起!您要查询的学生不存在!endl; cout您想继续查询吗?(y/n)w; do if (!strcmp(w,y) break; else if(!strcmp(w,n) flag=1;break; cout指令错误!请重新输入!w; while (1); if(flag=1) flag =0; break; while(1); 在调用search()函数时,因为要以学生的学号作为查询,而学生的学号时stu类的使用变量,所以普通函数是无法直接调用这个数据成员,但为了要实现这个功能,我就试着将这个函数变成这个类的成员函数,但是问题又出现了,如果是成员函数,那么调用这个函数如:search(i,s) 就必须要这个类的对象来调用,而这个函数与对像又 没有任何关系,所以这又无话实现,因此

温馨提示

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

评论

0/150

提交评论