C语言实训项目分析及源码详解.doc
《C语言实训项目分析及源码详解.doc》由会员分享,可在线阅读,更多相关《C语言实训项目分析及源码详解.doc(35页珍藏版)》请在咨信网上搜索。
防灾科技学院 实习报告书 实习题目: 网络工程认识实习(C语言) 学号: ### 姓名: ### 专业: 网络工程 系别: ### 实习时间: 2015.5-2015.6 实习地点: 北504 指导教师: 杜春雷 孙晓玲 考勤成绩: 10 实习态度: 10 任务完成: 40 实习报告: 20 实习日志: 20 实习总成绩 100 指导 教师 评语 指导教师(签名): 2015年 7月 日 防灾科技学院 灾害信息工程系 2015年制 35 / 35 项目一 C语言实习 一、实习目的 本课程是网络工程专业的一门专业必修课程,是学生学习完C语言程序设计专业基础课程后,进一步学习其他专业课程前必须完成的一项实践教学环节。 本次实习通过1个综合性强、实用性强、趣味性强的应用实例,使学生进一步巩固C语言基本知识,掌握应用程序设计语言描述问题、分析问题和解决问题的方法和思想,为后继的面向对象程序设计、数据结构、Web应用技术、网络工程专业实习、网络工程生产实习、网络工程毕业实习课程等课程打下基础。 通过本课程的学习,使学生进一步明确学习目标、增强学习动力、培养学习兴趣。 二、实习任务概述 任务一:员工工资管理系统的设计与实现 本系统基于C语言,实现了一个小型的信息管理系统,主要包括以下功能: 1.信息的录入: a) 首次进入系统,可以添加职工的工号、姓名、基本工资、津贴、员工奖金等数据录入操作。 b) 系统再次登录,可以从文件导入信息,也可以对文件内容进行修改,保存退出。 2.删除操作:对离职的员工信息要从系统里删除。 3.显示操作:将结构体中职工信息输出到屏幕上。 4.查询与修改操作:分别按职工工号和职工姓名查询,修改职工信息并保存。 5.统计与排序操作:分别统计所有员工的总工资,实现对总工资的排序。 三、实习所用软件简介 VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。 使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。 Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。 四、参考文献 [1] 韩莹.C语言实训教程[M].北京交通大学出版社,2013. [2] 李新良.教学测评系统的应用与研究[J].湖南人文科技学院学报,2012(6):73-77. [3] 张高煜.C语言程序设计实训.中国水利水电出版社,2011.8. [4] 白帆.C语言开发实例详解.电子工业出版社,2012.5. [5] 王为青.C语言实战105例.北京:人民邮电出版社,2011. [6]明日科技编著.C语言项目案例分析.北京:清华大学出版社,2012. 五、实习日程安排 时间 实习内容 第1-2天 选题,对第一个选题进行功能需求分析、功能结构图和流程图的设计、系统架构设计 第3-5天 核心算法设计,程序设计及编码,逐步完善建立数据文件,增加数据,修改数据,查询数据,删除数据,对数据 序和屏幕显示数据等功能 第6-7天 代码调试、测试、撰写实习报告 六、实习内容及步骤 任务1 员工工资管理系统(C语言模块) 1.1 系统开发思路(需求分析) 随着计算机技术的发展,企业管理越来越趋于自动化,而工资管理是企业管理的重要的组成部分,它与企业的财务管理、人才管理有着密切的联系。由于企业员工工资结构存在一定的规律性,工资放在时间上和操作上存在的一定的重复性,这使得企业事业单位工资管理计算机的实现成为了可能。 1.2 数据结构设计 struct Worker { char workernum[10]; char workername[20]; int basicwage; int allowance; int Bonus; int totalwage; }Worker_Infor[100]; 1.3 系统设计与实现 1.3.1系统功能结构图及流程图 职工管理系统 员工信息的录入 员工信息查询 员工信息修改 员工工资排序 员工工资汇总 按工号查询 按姓名查询 选择查询方式 选择修改内容 数据文件保存 图1-1员工工资管理系统参考模块图. 开始 主操作界面 选择1 录入职工信息 继续? Y 主操作界面 N 选择2 职工总工资排序 选择3 录入数据文件保存 选择4 查询员工信息 按姓名查找 按工号查找 退出,回到主页面 选择5 修改员工信息 选择查询方式 选择修改选项 修改 选择6 查看所有员工信息 选择7 添加新的员工信息 选择8 删除员工信息 输入要删除的员工姓名 删除 选择9 退出程序 图1-2员工工资管理系统流程图. 1.3.2 主要函数设计 void Input_Infor() 函数功能:员工信息的录入 void Print_Worker(int i) 函数功能:员工工资的显示 void delet_worker() 函数功能:删除员工信息 int Search_Name() 函数功能:姓名查询 int Search_Num() 函数功能:工号查询 int Search_Worker() 函数功能:查询主函数,调用姓名/工号查询 void Modify_Worker() 函数功能:修改员工信息 void Cal_Wages() 函数功能:计算总工资 void Sort_Wage() 函数功能:对员工工资排序 int Save_Infor() 函数功能:文件写操作 void Up_Infor() 函数功能:读文件 void Input_worker(int i) 函数功能:添加新的员工信息 void main() 函数功能:主函数选择进入界面 1.3.3 系统功能设计与实现 下面分别对该模块中的具体功能进行详细描述,主要功能实现的代码相应功能实现的界面截图。 1.---------------------------------------//主函数 void main() { int c,t=1,i; Up_Infor(); printf("输入员工数量:"); scanf("%d",&n); while(t) { printf ("#######################################################\n"); printf ("## 欢迎进入职工工资管理系统: ##\n");printf ("## 1.录入员工信息 ##\n"); printf ("## 2.职工总工资进行排序 ##\n"); printf ("## 3.文件保存到硬盘上 ##\n"); printf ("## 4.查询员工信息 ##\n"); printf ("## 5.修改员工信息 ##\n"); printf ("## 6.查看所有员工信息 ##\n"); printf ("## 7.添加员工信息 ##\n"); printf ("## 8.删除员工信息 ##\n"); printf ("## 9.退出程序 ##\n"); printf("## ##\n"); printf ("## 请选择对应的编号(1—7) ##\n"); printf ("#######################################################\n"); scanf("%d",&c); getchar(); if (c<1||10<c){printf ("\t输入错误,请重新输入:\n");continue ;} switch(c) { case 1:Input_Infor();Cal_Wages();break; case 2:Sort_Wage();break; case 3:Save_Infor();printf ("\t按任意键继续!\n");getchar();break; case 4:Search_Worker();break; case 5:Modify_Worker();break; case 6:for (i=0;i<n;i++)Print_Worker(i);break; case 7:Input_worker(i);break; case 8:delet_worker();break; case 9:t=0;printf ("\t谢谢使用!\n");printf ("\t按任意键返回!");break; } } } 图1-3 2.----------------------------------------//读文件 void Up_Infor() { int i; FILE *pk; pk=fopen("D:\\worker.txt","at+"); for (i=0;i<100;i++) { fscanf(pk,"%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage); if (strcmp(Worker_Infor[i].workernum,"stop")==0)break; } fclose(pk); } 3.------------------------------//员工信息的录入 void Input_Infor() { char c; int i; if (n==0)i=0; else i=n-1; printf ("\t请输入职工工资信息!\n"); while (1) { printf ("\t请输入第%d位职工编号:",i+1); //gets(Worker_Infor[i].workernum); scanf("%s",Worker_Infor[i].workernum); getchar(); printf ("\t工号为%s职工的姓名:",Worker_Infor[i].workernum); gets(Worker_Infor[i].workername); printf ("\t%s职工基本工资:",Worker_Infor[i].workername); while(1) { scanf("%d",&Worker_Infor[i].basicwage); if (Worker_Infor[i].basicwage>=0) break; else printf ("\t输入错误,请重试!"); } printf ("\t%s职工的津贴:",Worker_Infor[i].workername); while(1) { scanf("%d",&Worker_Infor[i].allowance); if (Worker_Infor[i].allowance>=0) break; else printf ("\t输入错误,重新输入:"); } printf ("\t%s职工的奖金:",Worker_Infor[i].workername); while(1) { scanf("%d",&Worker_Infor[i].Bonus); if (Worker_Infor[i].Bonus>=0) break; else printf ("\t输入错误,重新输入:"); } i++; n=i; getchar(); printf ("\n是否继续输入:(Y/N )或者 (y/n):"); scanf ("%c",&c); if (c=='n'||c=='N')break; } } 图1-4 4.-----------------------------------//对员工工资排序 void Sort_Wage() { int i,j; int Worker_temp; Cal_Wages(); for (i=0;i<n;i++) { for (j=i+1;j<n;j++) if (Worker_Infor[j].totalwage<= Worker_Infor[i].totalwage) { Worker_temp=Worker_Infor[i].totalwage; Worker_Infor[i].totalwage=Worker_Infor[j].totalwage; Worker_Infor[j].totalwage=Worker_temp; } } for (i=0;i<n;i++) printf ("%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage); } 图1-5 5.---------------//文件写操作,文件保存到硬盘上 int Save_Infor() { int i; FILE *pk; Cal_Wages(); if ((pk=fopen("D:\\worker.txt","wr+"))==NULL) { printf ("文件打开失败!"); return 0; } for (i=0;i<n;i++) { fprintf(pk,"%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage); } fclose(pk); printf ("文件保存成功!"); return 1; } 图1-6 6.----------------- //查询员工信息 int Search_Worker() { int i,m; printf ("请选择查询方式:\n1.按姓名查找\n2.按员工工号查找\n3.退出\n"); scanf ("%d",&m); switch(m) { case 1:i=Search_Name();return i ;break; case 2:i=Search_Num();return i ;break; case 3:return -1; } } 6.1--------------------------------//姓名查询 int Search_Name() { int i; char name[20]; printf ("请输入要查询的姓名:"); scanf ("%s",name); for (i=0;i<n;i++) { if (strcmp(name,Worker_Infor[i].workername)==0) {printf ("%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage); return i;break;} } if (i==n) { printf ("没有找到该员工!\n");return -1; } //else return i; } 图1-7 6.2---------------------------//按工号查询 int Search_Num() { int i; char num[20]; printf ("请输入要查询的工号:"); scanf ("%s",num); for (i=0;i<n;i++) { if (strcmp(num,Worker_Infor[i].workernum)==0) {printf ("%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage); return i;break;} } if (i==n) { printf ("没有找到该员工!\n");return -1; } //else return i; }图1-8 7.--------------------------//修改员工信息 void Modify_Worker() { int i,m; printf ("请查询您要修改的员工:\n"); i=Search_Worker(); getchar(); printf ("#######################################################\n"); printf ("## 请选择您要修改的内容: ##\n"); printf ("## 1.员工号 ##\n"); printf("## 2.员工姓名 ##\n"); printf ("## 3.员工的基本工资 ##\n"); printf ("## 4.员工的津贴 ##\n"); printf("## 5.员工的奖金 ##\n"); printf("## 6.退出 ##\n"); printf ("#######################################################\n"); scanf ("%d",&m); switch(m) { case 1:printf ("请输入新的员工号:");scanf ("%s",&Worker_Infor[i].workernum);break; case 2:printf ("请输入新的员工名:");scanf ("%s",&Worker_Infor[i].workername);break; case 3:printf ("请输入新的员工基本工资:");scanf ("%d",&Worker_Infor[i].basicwage);break; case 4:printf ("请输入新的员工津贴:");scanf("%d",&Worker_Infor[i].allowance);break; case 5:printf ("请输入新的员工奖金:");scanf ("%d",&Worker_Infor[i].Bonus);break; case 6:return; } printf ("修改后的员工的基本信息为:\n"); Print_Worker(i); } 图1-9 8.---------------//查看所有员工信息void Print_Worker(int i) { printf ("%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage); } 图1-10 9.-------------------//添加新的员工信息 void Input_worker(int i){ char c; printf("\t请输入职工工资信息:\n"); while(1){ printf("\t第%d位职工的编号:",n+1); gets(Worker_Infor[i].workernum); printf("\t工号为%s职工的姓名:",Worker_Infor[n].workernum); gets(Worker_Infor[n].workername); printf("\t%s职工的基本工资:",Worker_Infor[n].workername); while(1){ scanf("%d",&Worker_Infor[n].basicwage); if(Worker_Infor[n].basicwage>=0)break; else printf("\t输入错误请重试:"); } printf("\t%s职工的津贴:",Worker_Infor[n].workername); while(1){ scanf("%d",&Worker_Infor[n].allowance); if(Worker_Infor[n].allowance>=0)break; else printf("\t输入错误请重试:"); } printf("\t%s职工的奖金:",Worker_Infor[n].workername); while(1){ scanf("%d",&Worker_Infor[n].Bonus); if(Worker_Infor[n].Bonus>=0)break; else printf("\t输入错误请重试:"); } i++; n++; getchar(); printf("是否想要输入下一个员工信息(Y/N):"); scanf("%c",&c); if(c=='N'||c=='n')break; getchar(); } }图1-11 图1-12 10.----------------//删除员工信息 void delet_worker() { int i,k=0; char name[20]; printf("输入需要删除的员工姓名:"); scanf("%s",name); for(i=0;i<n-1;i++) { if(strcmp(name,Worker_Infor[i].workername)==0);break;} while(1){ strcpy(Worker_Infor[i].workername,Worker_Infor[i+1].workername); strcpy(Worker_Infor[i].workernum,Worker_Infor[i].workernum); Worker_Infor[i].allowance=Worker_Infor[i].allowance; Worker_Infor[i].basicwage=Worker_Infor[i+1].basicwage; Worker_Infor[i].Bonus=Worker_Infor[i+1].Bonus; Worker_Infor[i].totalwage=Worker_Infor[i+1].totalwage; Print_Worker(i); i++; if(i==n-1)break; } } 图1-13 图1-14 1.4 结论 1.4.1 本次实习取得的成绩 第一次接触到这样多的代码的书写,不仅锻炼了自己的编程能力,而且学会了坚持的精神。通过这次的实训,我了解到了代码所具有的强大的功能;熟悉了结构体的使用,对于函数的调用也有了一个比较深刻的认识,我觉得这将更有力于我将来的c语言的学习。 1.4.2系统存在的问题 本次实训我所写的员工工资管理系统大致上还是令人满意的。 1.4.3 总结 这次的c语言实训说真的令人印象深刻,我在刚开始的时候,由于以前都没有写过这么久的代码,心里难免会有一种烦躁感。但是,随着管理系统的一点点成型,我的心里又不那么浮躁了,看着自己的付出有了回报,心里真的很开心。通过这段时间的学习,我发现以前的自己不那么注重手动上机练习,存在很大的学习漏洞。以前总觉得c语言不那么难,但是当发现自己不能将一个个的功能实现的时候,就觉得自己开始后悔没有好好掌握程序流程的学习。后来的日子,我慢慢赶了上来。虽然在实训的过程中不是那么一帆风顺,但是自己觉得真的学到了很多的东西,在发现问题、调试后来解决问题的过程中使我更加了解了c语言,也增加了我对c语言学习的信心。 项目二 综合布线 一、实习目的 通过实习使学生了解综合布线在生产实践和科学研究中的应用情况,使学生对生产过程中的网络和服务器等有初步的了解和认识,同时培育学生的现场安全生产意识及组织纪律观念。 二、实习要求 掌握综合布线的七个子系统的关系和区别。对七个子系统的实现进行整体连续操作。完成建筑物综合布线系统从设计、安装、检测到验收的过程。 三、实习内容及步骤 实验一、制作直通线、交叉线 直通线:又叫正线或标准线,两端采用568B做线标准,注意两端都是同样的线序且一一对应。直通线应用最广泛,不同设备之间,比如路由器和交换机、PC和交换机等。 交叉线:又叫反线,线序按照一端568A,一端568B的标准排列好线序,并用RJ45水晶头压好。交叉线一般用于相同设备的连接,比如交换机和交换机、电脑和电脑之间。 百兆双绞线只用8根双绞线的其中4跟,橙百线、橙线、绿白线、绿线。而千兆双绞线需要用到全部8根。 图2-1 电缆线序 实验步骤: 1、 使用网线钳中间的圆形剥线缺口,剥除双绞线外层绝缘外皮,把里面的4对双绞线一一拆开,排序。 1) 用剥线器延双绞线头部30mm左右,旋转1圈剥除外皮,注意不要损伤里面的8根线芯的绝缘层。 图2-2 2) 捋直弯曲的双绞线,排好线序把参差不齐的线头用网线钳的刀片剪齐,让它长度一致为14mm。如图 图2-3 2、插入RJ45水晶头开始压接。 1)水晶头有卡子的一头向下,按线序1-8从左至右的顺序把双绞线插入水晶头的最顶部,8根双绞线一定要到达水晶头的8个金属刀片的上方,没有接触到刀片的话就无法导电通信。 图2-4 2)把连上水晶头的双绞线,插入到网线钳的8p压口中去。注意钳子的压口的方向,8个金属刀片的压口在外侧,水晶头压口在自己内侧,不要放反了。用力压紧。 图2-5 3)压接完毕的水晶头检查下是否合格。做好双绞线两头后,将两头分别插入测线器的RJ45接口。检测是否连通 图2-6 3、检测方法 直通线测试,测线器的子母端的指示灯按照1-1,2-2,3-3,4-4,5-5,6-6,7-7,8-8的顺序轮流同时闪烁,表明8根线全部正常。直通线可以使用。如有不亮或者亮度很暗的,表明指示灯对应的双绞线连通不正常。 百兆交叉线测试,测线器的子母端的指示灯按照1-3,2-6,3-1,4-4,5-5,6-2,7-7,8-8的顺序轮流同时闪烁,表明正常。 千兆交叉线测试,测线器的子母端的指示灯按照1-3,2-6,3-1,4-7,5-8,6-2,7-4,8-5的顺序轮流同时闪烁,表明正常。 图2-7 实验二、配线架端接实验 实验步骤: 1、RJ45配线架端接: (1)取一段3米长的网线,用剥线器延双绞线头部40mm左右,旋转1圈剥除皮注意不要损伤里面的8根线芯的绝缘层。 (2)剥去外皮后露出里面的4对双绞线。 (3)按照配线架上的线序标记,把对应颜色的双绞线分别打入配线架的模块中 去。打线过程中打线钳要保持水平,用力一次把线打入。把网线的两头分别打入 两个配线架的相对应的接口中去。注意不要把打线钳拿反,刀口上的剪子是减掉多余的线头用的。 (4)一端打完后的样子。两端都打完后在配线架的对应接口中插入直通跳线,一头连接测线器,测试端接后两个配线架是否能够通信。 2、110配线架端接: (1)取2根3米长的网线,4根1米长的网线,剥开网线,露出4对双绞线。 (2)按照蓝橙绿棕的线序,蓝白、蓝、橙白、橙、绿白、绿、棕白、棕,把两根3米的网线,在110跳线架最左侧模块接口开始处分别把16根双绞线线芯放入对应的模块里。 (3)使用橡胶锤把110跳线架的模块砸入110配线架,用老虎钳或其他平面大又结实的工具垫一下,增大受力面积,防止损坏110跳线架。把两个模块都安装到110跳线架上。(注意110跳线架模块的正反,有颜色标记的一面面向自己,蓝色标记在左边第一个) (4)把两根3米的网线的另外一端。用同样的方法打入另一个110跳线架。 (5)取2根1米长的网线,在110跳线架的模块上按顺序用打线钳打入,网线的另一头按568B标准制作水晶头。另一个110跳线架使用剩下的两条1米长的双绞线制作方法相同。 (6)用测线器测试4个相对应的RJ45接口,观察是否连通。 3、检测方法 测线器的子母端的指示灯按照1-1,2-2,3-3,4-4,5-5,6-6,7-7,8-8的顺序轮流同时闪烁,表明8根线全部正常。如有不亮或者亮度很暗的,表明指示灯对应的双绞线连通不正常。 实验三、光纤熔接实验 实验步骤: (1)室外光缆中有两条钢筋加固,在剥去外层绝缘表皮前需要用老虎钳拉出其中的一条钢筋70cm,并剪断。 (2)用开缆刀在光缆7-10cm处,环切一圈,调整刀口深度继续环切,直到能看见里面白色的保护套管,注意不要切的太深,伤害里面的光芯。 (3)切断外层保护套以后,把外层保护套小心的取下,注意不要把里面的光纤 弄断,在向下切7-10cm,直到把70cm的外层保护套全部取下。把剩余的一根钢筋切断,留7cm的长度,留着把光缆放进光纤配线架的时候做固定用。 (4)用剥皮钳1.0缺口,剪断光缆的白色保护套管。也是一段一段的剪,一次5-7cm。直到剪够70cm。 (5)白色保护套管被切除后,光缆里边的玻璃光芯。上面的颜色是树脂,它有很多种颜色,和保护套管一样对光芯有一定的保护作用与标记作用。 (6)用光纤剥线钳,把上面的树脂剥掉。剥出5cm左右的玻璃芯。 (7)用棉球占少许酒精擦拭下,接下来就可以为熔接做准备了,再剥一根光缆准备做两根光缆的熔接实验。 (8)首先把光纤切割刀的刀片归位,拨到靠近自己的位置,上图没有归位。把剥好的光纤放到光纤切割刀上面去,上面是放单模光纤的,下面较粗的是放多模光纤的,有树脂的地方放在图片上红线的位置,最远不要超过中间的刻度,光纤的头部搭在靠近刀片的那一侧固定平台上。 (9)关好固定的盖子,用大拇指向前方快速拨动刀片,切断光芯,使光芯截面平整并有一个可以熔接的合适长度 (10)将切好的两根光芯分别放入光纤熔接机的两个固定装置里,光芯头部不要超过熔接机中间的两根针指向的位置(红圈所示)。 (11)盖上熔接机的两个固定装置,最后盖上盖子 (12)盖上盖子后会自动调整光芯的位置,可以通过显示器看到放大了的光芯的状态。如果位置安放不正确,切口不平,会再次提示请放入光纤,此时需要从新剥树脂,从新切口,再次放入光纤。没有问题,按run键开始熔接。如果熔接成功会显示光纤的损耗值,小于0.05算成功。 四、综合布线工程设计作业 点数统计表的编制 图2-8 2.综合布线系统- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 项目 分析 源码 详解
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文