C语言学生选课系统_第1页
C语言学生选课系统_第2页
C语言学生选课系统_第3页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、学生选课系统1 需求分析1.1 任务要求制做学生选课系统,共包括课程信息和学生信息两部分。课程信息包括:课程 编码、课程名称、适用专业、课程类型 必修、限选、必选、实践、学习)、学 分、学时、主讲教师等。学生信息管理,学生选课管理 学生选课学分总数有一 定范围),学生可以对课程进行查询、浏览,选完课后可以退选、重选,并可 以按学号、姓名进行查询和统计。要求: 1.源文件采用多文件的项目结构。2. 数据储存采用文件形式。3. 标准的 C 输入输出。4. 功能完善,适当的注释。5. 关于文件的内容要自学。1.2系统功能需求分析1. 为存储课程信息,需要定义一个结构体类型 ,成员包括课程编码、课程名

2、称、 适用专业、课程类型、学分、学时、主讲教师,所选人数等等,并建立链表, 定义该结构体类型的指针,用于指向各节点;2. 为存储学生信息,需要定义一个结构体类型,成员包括学生编码、学生姓 名、所选课程编码、所选课程学分和等等,并建立链表,定义该结构体类型的 指针,用于指向各节点;3. 对于课程信息和学生信息,可以选择从键盘输入也可选择从文件中打开原来 存盘的信息,并对他们分别建立添加、删除、浏览、查询等功能的子函数,完 成相应的功能,对程序实现模块化。这其中要用到对链表的删除、插入、增加 等知识。删除包括课程删除和学生信息删除,删除时用一结构体指针指向链表 的第一个结点,检查该节点的值是否等于

3、输入的要删除的课程编号或学生学 号,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结 点,再添加。查询功能要设置按照学生姓名、学生编号等多种方式 。4. 学生选课是要先输入自己的学号,如果在已经输入的学生信息中找不到此学 号,则提示需要先输入自己的信息。如找到了自己的学号,则可以进行选课。 在选课之前要先对所有的课程信息进行浏览。选课有一定的学分限制,超过相应的学分 < 这里设置的是10个学分),系统就会显示可以选满的信息。此系统 还可以实现删除所选课程的功能,设计思路与选课功能相似。5 为实现存储功能,需用到文件的相关函数,打开文件,将添加、修改或删除 的信息存入磁盘中

4、。6. 实现易于使用者理解和使用的友好界面。2概要设计2.1系统总体设计框架对程序进行模块化可以使整个程序清晰明了。对课程信息和学生信息建立从 文件中输入、从键盘中输入、添加、删除、查询和浏览的功能,其各个子函数 中运用链表储存数据。选课管理建立学生选课、推选、查询、浏览的功能,其 各个子函数中运用链表储存数据。从主函数开始执行,依次调用各个子函数, 并运用文件的相关知识将信息进行存盘。2.2系统功能模块图3详细设计I路学生选课系统算法设计思路如下 、函数录void zha ng(增加删除选课退课信息存储)主要功能模块的1、课程信. 从键盘录入I定义指向结构体变量的指针;II从头指针指向的结构

5、体开始依次录入结构体中所包含的III直到输入的结构 从文件录入vvoid zhang1( >)I分别定义指向结构体变量的指针和指向文件的指针;II输入文件的路径,打开文件,若没有找到则有提示;III将文件中的信息依次读出,最后结构体的指针为N ULL2、课程信息管理 vvoid managementc(>增加课程信息 <void insert(struct course *incourse>I定义指向结构体变量的指针;vvoid拱的编号为 0,录入结束II 输入要增加的课程编号,从头指针指向的结构体依次向后,直到链表的最 后;III输入课程结构体各个成员的信息,使最后一

6、个结构体指针值为N ULL 删除课程信息 <void delc(int num1>)I 定义指向结构体变量的指针;II 输入要增加的课程编号,从头指针指向的结构体依次向后,直到找到课程编 号为输入值的那个结构体;III 将其删除,其前一个的结构体指针指向其后一个结构体3、学生信息录入函数 <void input<) 从键盘录入 <void putin( > )I 定义指向结构体变量的指针;II 从头指针指向的结构体开始依次录入结构体中所包含的各个成员;III 直到输入的结构体成员的编号为 0,录入结束 从文件录入 <void putin2( >

7、)I 分别定义指向结构体变量的指针和指向文件的指针;II 输入文件的路径,打开文件,若没有找到则有提示;III将文件中的信息依次读出,最后结构体的指针为N ULL4、学生信息管理 <void managements(>) 增加学生信息 <void inserts(struct student * incouse>)I 定义指向结构体变量的指针;II 输入要增加的学生编号,从头指针指向的结构体依次向后,直到链表的最 后;III输入学生结构体各个成员的信息,使最后一个结构体指针值为N ULL 删除学生信息 <void dels(int num2>)I 定义指向结

8、构体变量的指针;II 输入要增加的学生编号,从头指针指向的结构体依次向后,直到找到学生编 号为输入值的那个结构体;III 将其删除,其前一个的结构体指针指向其后一个结构体5、学生选课管理 <void elective(>)学生选课 <void elect(>)I 分别定义指向课程和学生结构体变量的指针;II 输入要选课的学生的编号,从头指针指向的结构体依次向后,直到找到学生 编号为输入值的那个结构体,如不存在则显示要录入学生信息;III 输入要选课程的编号,从头指针指向的结构体依次向后,直到找到课程编号 为输入值的那个结构体;IV 在学生结构体对应的所选课程编号中更改信

9、息,所选学分中加上相应分值, 课程结构体所选人数中相应加一学生退课 <void back(>)I 分别定义指向课程和学生结构体变量的指针;II 输入要退课的学生的编号,从头指针指向的结构体依次向后,直到找到学生 编号为输入值的那个结构体,如不存在则显示要录入学生信息;III 输入要退课程的编号,从头指针指向的结构体依次向后,直到找到课程编号 为输入值的那个结构体;IV 在学生结构体对应的所选课程编号中更改信息,所选学分中减去相应分值, 课程结构体所选人数中相应减一6、信息浏览和保存 <void into(> )课程信息浏览 <void listc(> )I

10、定义指向结构体变量的指针;II 从头指针指向的结构体依次向后,将课程结构体各成员的信息一次输出,直 到最后一个结构体指针的值为 NULL学生信息浏览 <void lists(>)I 定义指向结构体变量的指针;II 从头指针指向的结构体依次向后,将学生结构体各成员的信息一次输出,直 到最后一个结构体指针的值为 NULL 课程信息保存 <void intoc(> )I 定义指向课程结构体变量的指针和指向文件的指针;II 输入保存路径,如果没有保存则有显示;III 将课程信息写入文件中;IV 将课程信息进行保存,关闭文件 学生信息保存 <void intos(>)

11、I 定义指向学生结构体变量的指针和指向文件的指针;II 输入保存路径,如果没有保存则有显示;III 将学生信息写入文件中;IV 将学生信息进行保存,关闭文件7、学生信息查询 <void store(>)按学生姓名查询 <void search2(>)I 定义指向结构体变量的指针;II 输入要查询的学生的姓名,从头指针指向的结构体依次向后,直到找到学生 姓名为输入值的那个结构体;III 将该学生结构体成员的各信息依次输出按学生编号查询 <void search1(>)I 定义指向结构体变量的指针;II 输入要查询的学生的编号,从头指针指向的结构体依次向后,直到

12、找到学生 编号为输入值的那个结构体;III 将该学生结构体成员的各信息依次输出3 调试分析3.1 错误显示及分析a编译时出现错误,回看程序发现漏掉符号等细节错误。b. 运行时,界面格式与最初的设想不一致,通过重新编排,符号的增减及一 进,最终达到理想界面。c. 运行时,输入一个信息后,第二次输入数据时很难将输入光标移到想要的位 子,通过按键的摸索,最终了解了输入要领。d. 对输入的信息查询时没有记录,发现文件读取错误。3.2 修改完善1、开始程序执行时,各项大的功能每一次只能执行一个就自动跳出,为了使程序保持连续性和更好的实用性,使用了start,goto start,break,sysyem

13、(Clx ”等实现了逐渐免于更功能的循环。2、对于学生信息中已选课程的存储,一直不知如何存储。后用实型数组,并进 行循环,依次读入课程的编号,将课程编号进行存储。4 用户使用说明4.1适用范围适用于管理者将课程信息和学生信息录入到系统,并可以将课程信息和学生 信息进行保存,日后如果有需要在对课程和学生信息进行增加可删除。同时也 适用于学生在登录自己的学号后,浏览课程信息选课,进行选课和退课操作。 4.2使用方法 首先管理者将现有的课程信息 包括课程编号、课程名称、使用专业、课程类 型、学时、学分、教师、已选人数 初始为零)和学生信息 包括学生学号、 姓名、已选学时、已选课程编号)录入到系统,并

14、将其进行文件保存,以便以 后使用。若要修改 增加和删除)课程信息和学生信息,需要先从文件中录入已 存信息,再输入编号对其查找并进行相关操作。学生选课需要先输入自己的学 号,若没有此学号的学生信息,需先录入此人信息在进行选课和退课。在选课 和退课前,可以先浏览课程信息,并记住要选课程的编号,以便选课时需要。 此外还可以学号和姓名对学生信息进行查询。5测试结果55.1运行结果主界面 P:娱件远课豕執Debug谁果萦密取貳M W*M H STlUm M M M M M-M-H M K N fcM M M M W W-iMI欢迎使用此系统?览 息理息理浏息 SB® 程息主息曙生统信选華系 入

15、費生生息找岀 ->缰£卡囑-S 12345 6 78录入课程信息课程信息浏览S3敎师选课人数"菁0聿岩I 0王闸 05 5 5分学£B质必必必欢迎使用此系统,菜单:* Q:渓件谨课寻焼Debug陡果粟统.exe *号12 3 45678S修.王览 息理息理浏息 程息生息统 ¥1子第W-系 入程入生生息找出 录 l?f ®课程信息存储录入学生信息学生信息浏览学生信息存储学生选课选课后学生信息浏览回1菜单:Q:7衆件选课豕蜿Wbug谁盪鑒统.ex*1二主冃3自3麒木4: a_R存T:1- 程生息回入1234567 B览 自S理息理浏息 程皐息

16、屠主统 诰入生生息找出 录课恚盂于蕩一退学塞姿蚩it所选课程学分所选课程编号1欢迎使用此系统?选课后课程信息浏览课程信息管理-P:点件谨课盏執Deb四谐杲案烧课穆信息管理1.添加课程2则除课桓3.0谙输入丄3 =j 学生信息管理学生信息查找渓件选课盏统Debug谁澡鑒统心*|ipfl.返回王菜单学生信息査找j 退出系统7附录7.1课设小结通过这次课程设计,我对 C语言有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也又模糊逐渐变的清晰了。在程序 的运行与调试过程中出现了很多错误,通过反复地复习课本上的相关知识,不 停地修改与调试,我终于完成了这段程序。在调试过程中,我

17、认识到了C语言的灵活性与严谨性,同一个功能可以由不同的语句来实现,但编写程序时要特 别注意细节方面的问题,因为一个小小的疏忽就能导致整个程序不能运行。当 然我也认识到了自己的薄弱之处,如对链表相关知识的欠缺,文件运用的不熟 练,在以后的学习中我要集中精力、端正态度,争取把知识学得更扎实、更全 面。7.2存在不足1、系统不够强大,有点脆弱。2、当输入信息 课程信息,学生信息)后,不能自动保存,需手动保存。 对于以上不足,以后将进行改进,以确保达到更好。7.2详细代码#i nclude<stdio.h> #include<stdlib.h> #include<stri

18、ng.h> int N1,N2 。struct studentint num2。char name220。int nelenum50 。/所选课程编号int nelen。/所选课程学分和struct student * next。struct courseint num1。/课程编号char name120。char major20。char type20。int credit。int period。char teacher20。int people。/选此门课程的人数struct course *next。/结构体指针。struct course * head1。 struct stu

19、dent * head2。 void zhang(>/从键盘录入课程信息struct course *p1,*p2。N1=0 。 p1=p2=(struct course *>malloc(sizeof(struct course>>。printf("课程编号t课程名称t主修t课程性质t学分t课时t教师n">scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1- >credit,&p1->

20、period,p1->teacher>。p1->people=0。head1=NULL 。while(p1->num1!=0>N1=N1+1。if(N1=1>head1=p1。else p2->next=p1。p2=p1。p1=(struct course * >malloc(sizeof(struct course>>。scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1- >type,&p1->credit,

21、&p1->period,p1->teacher>。p1->people=0。p2->next=NULL 。void zhang1(>/从文件录入课程信息FILE * fp 。char filepath20 。struct course *p1,*p2。N1=0 。printf(" 请输入您要读取的路径 :"> 。getchar(>。gets(filepath>。if(fp=fopen(filepath,"r">>=NULL>printf("找不到 s 文件!n&qu

22、ot;,filepath>。exit(0>。p1=p2=(struct course*>malloc(sizeof(struct course>>。fscanf(fp,"%d%s%s%s%d%d%s%d",&p1->num1,p1->name1,p1->major,p1- >type,&p1->credit,&p1->period,p1->teacher,&p1->people>。while(!feof(fp>>N1=N1+1。if(N1=1>

23、; head1=p1。elsep2->next=p1。p2=p1。p1=(struct course * >malloc(sizeof(struct course>>。 fscanf(fp,"%d%s%s%s%d%d%s%d",&p1->num1,p1->name1,p1->major,p1- >type,&p1->credit,&p1->period,p1->teacher,&p1->people>。p2->next=NULL 。void load(>

24、/录入课程信息函数int i 。printf("ttt 录入课程信息 n"> 。printf("n1. 从键盘录入 "> 。printf("n2. 从文件录入 ">。printf("n3. 返回主菜单 n">。printf(" 请选择 1-3:"> 。 scanf("%d",&i> 。switch(i>case 1: zhang(>。 break。case 2:zhang1(> break。case 3:break

25、。void insert(struct course *incourse>/增/ 加课程信息struct course *p0,*p1,*p2。 p1=head1。p0=incourse。if(head1=NULL>head1=p0。p0->next=NULL 。else while(p0->num1>p1->num1> && (p1->next!=NULL>> p2=p1。p1=p1->next。if(p0->num1<=p1->num1>if(head1=p1>head1=p0。

26、elsep2->next=p0。p0->next=p1。elsep1->next=p0。p0->next=NULL 。N1=N1+1 。void delc(int num1>/删除课程信息struct course *p1,*p2。 if(head1=NULL>printf("n 无法删除 !n"> 。 goto end。p1=head1。while(num1!=p1->num1 && p1->next!=NULL>p2=p1。 p1=p1->next。if(num1=p1->num1&

27、gt; if(p1=head1> head1=p1->next。else p2->next=p1->next。printf(" 已删除 n"> 。N1=N1-1。elseprintf("没有此课程n">。end:。void managementc(>/课/ 程信息管理函数struct course * p1。int i,num1 。 printf("ttt 课程信息管理 n"> 。printf("1. 添加课程 n">。printf("2. 删除课程

28、n">。printf("3. 返回 n"> 。printf(" 请输入 1-3:n"> 。 scanf("%d",&i> 。switch(i>case 1:p1=(struct course *>malloc(sizeof(struct course>>。printf("课程编号t课程名称t主修t课程性质t学分t课时t教师 n">。scanf("%d%s%s%s%d%d%s",&p1->num1,p1->

29、name1,p1->major,p1- >type,&p1->credit,&p1->period,p1->teacher>。p1->people=0。 insert(p1>。break。case 2:printf("请输入您要删除的课程编号:n">。 scanf("%d",&num1>。delc(num1>。break。case 3:break。void putin(void>/ 从键盘录入学生信息int i。struct student *p1,*p2。N

30、2=0。p1=p2=(struct student *>malloc(sizeof(struct student>>。printf("学号 t 姓名 n">。scanf("%d%s",&p1->num2,p1->name2>。p1->nelen=0。for(i=0。 i<20。 i+> p1->nelenumi=0 。head2=NULL 。while(p1->num2!=0>N2=N2+1 。if(N2=1>head2=p1。elsep2->next=p1

31、。p2=p1。p1=(struct student * >malloc(sizeof(struct student>>。scanf("%d%s",&p1->num2,p1->name2>。p1->nelen=0。for(i=0 。 i<20。 i+> p1->nelenumi=0 。p2->next=NULL 。 void putin2(>/从文件录入学生信息int i=0 。FILE * fp 。char filepath20。struct student *p1,*p2。N2=0。print

32、f(" 请输入您要读取的路径 :">。getchar(>。gets(filepath>。if(fp=fopen(filepath,"rt">>=NULL>printf("找不到 s 文件!n",filepath>。 exit(0>。p1=p2=(struct student*>malloc(sizeof(struct student>>。 fread(p1,sizeof(struct student>,1,fp>。head2=NULL 。while(!feo

33、f(fp>>i=0 。N2=N2+1 。 if(N2=1>head2=p1。elsep2->next=p1。 p2=p1。p1=(struct student * >malloc(sizeof(struct student>>。 fread(p1,sizeof(struct student>,1,fp>。p2->next=NULL 。void input(>/录入学生信息函数int i。printf("ttt 录入学生信息 n">。printf("n1.从键盘录入 n">。pr

34、intf("2. 从文件录入 n">。printf("3. 返回主菜单 n">。 printf(" 请输入 1-3:n"> 。 scanf("%d",&i> 。switch(i>case 1:putin(>。 break。case 2:putin2(>。 break。case 3:break。void inserts(struct student * incouse>/增/ 加学生信息struct student *p0,*p1,*p2。 p1=head2。p

35、0=incouse。if(head2=NULL> head2=p0。 p0->next=NULL 。elsewhile(p0->num2>p1->num2> && (p1->next!=NULL>>p2=p1。 p1=p1->next。if(p0->num2 <= p1->num2>if(head2=p1> head2=p0。else p2->next=p0。 p0->next=p1。elsep1->next=p0。p0->next=NULL 。N2=N2+1。vo

36、id dels(int num2>/删除学生信息struct student *p1,*p2。if(head2=NULL>printf("n 无法删除 n"> 。goto end。p1=head2。while(num2!=p1->num2 && p1->next!=NULL> p2=p1。 p1=p1->next。if(num2=p1->num2>if(p1=head2>head2=p1->next。elsep2->next=p1->next。printf(" 已删除 n

37、"> 。N2=N2-1。elseprintf(" 没有此学生编号 n">end:。/学/ 生信息管理函数void managements(>struct student * p1。int i,num2 。 printf("ttt 学生信息管理 n"> 。printf("1. 添加学生信息 n">。printf("2. 删除学生信息 n">。printf("3. 返回主菜单 n">。 printf(" 请选择 1-3:n"&g

38、t; 。 scanf("%d",&i> 。switch(i> case 1:p1=(struct student *>malloc(sizeof(struct student>>。 p1->nelen=0。p1->nelenum0=0。 printf("numtnamen"> 。 scanf("%d%s",&p1->num2,p1->name2>。inserts(p1>。break。case 2:printf("请输入您要删除的学生编号:

39、n">。 scanf("%d",&num2>。 dels(num2>。 break。case 3:break。void elect(>/学生选课struct student * s。 struct course * p。 int a,i,b。printf(" 请输入您的学号 :n">。 scanf("%d",&a> 。s=head2。 while(s->num2>!=a&&s->next!=NULL> s=s->next 。 i

40、f(s->num2!=a>printf(" 您的信息不存在,请重新输入 :n">。 goto end。if(s->nelen>>10>printf(" 您的学分已满 ">。goto end。printf(" 请输入您要选修的课程编号 n">。 scanf("%d",&b> 。for(i=0。 (s->nelenumi>=0。 i+>。 s->nelenumi=b。p=head1。while(p->num1>!=b

41、> p=p->next。for(i=0。 (s->nelenumi>!=0 。 i+>。 s->nelenumi=b。(p->people>+。 (s->nelen>=(s->nelen>+(p->credit>。 (p->people>+。end:。void back(>/学生退课struct student * p。struct course * p1。int b,i,j,a 。printf(" 请输入您的学号 :n">。scanf("%d",

42、&a> 。p=head2。while(p->num2!=a&&p!=NULL> p=p->next 。if(p=NULL>printf(" 您的信息不存在 :n">。elseprintf(" 请输入您要退选的课程 :n"> 。scanf("%d",&b> 。p1=head1。while(p1->num1!=b> p1=p1->next 。 for(i=0。 p->nelenumi!=b。 i+>。 for(j=i 。 p-&g

43、t;nelenumj!=0。 j+> p->nelenumj=p->nelenumj+1 。p->nelenum-j=0。(p->nelen>=(p->nelen>-(p1->credit>。(p1->people>-。 printf("succeed!n">。void elective(>/学生选课信息管理int i。printf("ttt 学生选课信息管理 n">。prin tf("1.选课 n">。prin tf("2.退课

44、 n">。printf("3. 返回主菜单 n">。printf(" 请输入 1-3:n"> 。scanf("%d",&i> 。switch(i>case 1:elect(>。 break。case 2:back(>。 break。case 3:break。void listc(>/ 浏览课程信息struct course * p。 p=head1。printf(" 课程编号 课程名称 主修 课程性质 学分 课时 教师 选 课人数 n"> 。w

45、hile(p!=NULL>printf("%6d%13s%13s%10s%7d%7d%12s%5dn",p->num1,p->n ame1,p->major,p->type,p->credit,p->period,p->teacher,p->people> p=p->next。void lists(>/浏览学生信息struct student * p。int a。p=head2。printf("学生编号学生姓名所选课程编号所选课程学分n">。while(p!=NULL>p

46、rintf("%6d%13s",p->num2,p->name2>。printf("%6d",p->nelen> 。for(a=0。p->nelenuma!=0&&a<14。a+> printf("%d",p->nelenuma> 。printf("n"> 。p=p->next。void intoc(>/存储课程信息FILE * fp 。struct course * p。char filepath30。printf(&q

47、uot;输入路径:"。getchar(>。gets(filepath>。if(fp=fopen(filepath,"w">>=NULL>无法储存 !">。exit(0>。p=head1。while(p!=NULL>fprintf(fp,"%d%s%s%s%d%d%s%dn",p->num1,p->name1,p- >major,p->type,p->credit,p->period,p->teacher,p->people>。p=p-

48、>next。fclose(fp>。printf("已储存入 s文件!n",filepath>。void intos(>/存储学生信息FILE * fp 。 struct student * p。 char filepath30。printf("请输入路径:"。getchar(。 gets(filepath。if(fp=fopen(filepath,"wt"=NULLprintf("n 无法储存 !"。 exit(0。 p=head2。 while(p!=NULLfwrite(p,sizeof

49、(struct student,1,fp。 p=p-next。fclose(fp 。printf(” 已储存入 s 文件!n",filepath。void into(/信息存储函数int i。printf("ttt 信息存储 n"。printf("1.课程信息存储n"。 printf("2. 学生信息存储 tn"。 printf("3. 返回主菜单 n"。 printf(" 请输入 1-3n"。 scanf("%d",&i 。switch(icase(1&g

50、t;:intoc(>。 break。 case(2>:intos(>。 break。 case(3>:break。void store(>/信息存储浏览函数int i 。printf("tt 信息存储和浏览 n">。 printf("1. 课程信息浏览 n">。 printf("2. 学生信息浏览 n">。printf("3.信息存储 n">。 printf("4. 返回主菜单 n">。printf(" 请输入 1-4:n&q

51、uot;> 。 scanf("%d",&i> 。switch(i> case(1>:listc(>。 break。 case(2>:lists(>。 break。case(3>:into(>。 break。 case(4>:break。void search1(>/按/ 学生编号查找学生信息int a,b。 struct student * p。printf(" 请输入学生编号 ">。 scanf("%d",&a>。p=head2。print

52、f(" 学号 学生姓名 所选课程编号 所选课程学分 n"> while(p!=NULL>if(p->num2=a>printf("%6d%13s ",p->num2,p->name2>。for(b=0。p->nelenumb!=O&&b<14 。 b+>printf("%d",p->nelenumb> 。printf("%10dn",p->nelen> 。p=p->next。void search2(>/按/ 学生姓名查找学生信息int b。char name20。struct student * p。printf(" 请输入要查找的学生姓名 :">。 scanf("%s",name>。p=head2。printf(" 学号 学生姓名 所选课程编号 所选课程学分 n"> while(p!=

温馨提示

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

评论

0/150

提交评论