C语言课程设计_第1页
C语言课程设计_第2页
C语言课程设计_第3页
C语言课程设计_第4页
C语言课程设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE25课程设计报告课程名称C语言程序设计课题名称通讯录管理系统专业汽车服务班级0901班学号200902180114姓名伏铄臻指导教师王宁陈多2010年9月12日

湖南工程学院课程设计任务书课程名称C语言程序设计课题通讯录管理系统专业班级汽车服务0901学生姓名伏铄臻学号200902180114指导老师王宁陈多审批王宁陈多任务书下达日期2010年9月12日任务完成日期2010年9月13日通讯录管理系统通讯录管理系统要求分析及其主要功能1、问题描述:通过该系统实现对通讯录信息进行录入、显示、修改、删除、插入、排序、保存等操作的管理。2、功能要求:1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:编号、姓名、电话号码。2)本系统显示这样的菜单:请选择系统功能项:通讯信息录入通讯信息显示通讯信息保存通讯信息删除通讯信息修改通讯信息查询按编号查询按姓名查询按电话号码查询g.退出系统3)、执行一个具体的功能之后,程序将重新显示菜单。4)、将通讯信息保存到文件中。3、算法提示:1)、数据结构:结构体类型数组2)、数据库结构:下表构成该系统的基本数据库。编号姓名电话号码charcharChar4、测试数据:纪录数205、其它对该系统有兴趣的同可以在实现上述基本功能后,完善系统的其它功能功能模块的划分系统功能模块图:主菜单录入显示主菜单录入显示删除修改保存查询C查询hacha查询编号查询姓名查询电话查询编号查询姓名查询电话查询录入:可以添加通讯录记录,依次输入编号、姓名、电话号码后,会提示是否继续添加。显示:可以以横排形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、编号三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件主要功能的实现详细设计主函数voidemain()通过主函数main()利用无限次循环结构for(;;)和switch()结构实现各函数的调用。系统根据数字选项来调用函数。菜单选择函数intmenu_select()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,再自行返回该函数。输入记录函数intInput()这是一个无参函数,用数组函数输入所需记录人员的信息。用字符sign来标记是否将继续记录输入信息。显示记录函数Display();此函数利用for循环从输入第一个人的信息至最后一个人的信息全都显示出来。使用if语句。删除记录函数Delete_a_record()用比较字符串处理函数strcmp()逐一比较输入的字符串,是否相同,无相同,则显示无此人,若输入的字符串和s【】中的某一个相同,则用函数strcpy(),只取字符串1的地址,即删去了字符串2的内容,从而删除记录。流程图如图一。查询记录函数Query_a_record()该函数先用while循环来判断查询方式是否正确,再用if语句来判断输入的m的值,从而选择查询方式。如姓名查询,同样用strcmp()函数将输入的姓名与s【】比较,若匹配则显示此人信息,不匹配则显示无此人。其它查询方式类似。流程图如图二所示。输入删除的姓名输入删除的姓名输出“通讯录没有此人”删除该记录YN输入查询的名称判断是否有此人判断是否有此人输出“通讯录中没此人”显示此人所有信息YN开始开始结束结束图一图二修改数据函数Change()该函数先是调用strcmp()函数进行匹配,若无匹配显示无此人,若有则对该人的信息通过scanf()重新记录,即对该人信息进行修改。开始开始输入修改的姓名判断是否有此人输出“通讯录中无此人”依次输入修改的内容YN结束保存数据函数WritetoText(pe,n)通过文件指针来保存所要保存的文件。四、程序调试程序调试与分析在程序运行前总有一些错误或警告,最开始显示主菜单函数后,当进入其他功能项时主菜单在TC屏幕上消失,后了解到用system(“c\s)可以控该现象使主菜单一直显示。与此相似的还有system(“pause”)都是有关的函数。文件的保存没有涉及了解,经过查寻料了解到(fp=fopen(filename,"w"))==NULL这句话是说打开文件,打开只写文件,若文件存在则文件长度为0,即该文件消失,若文件不存在则建立该文件。而fprintf是写数据到打开的文件中,调试过程中经常因排版不太整齐而多次去修改,Printf和字符所在宽度影响排版。在通讯信息查询这一模块中,特别是对按编号查询这一项与电话查询和姓名查询不一样不能用strcmp()函数配对查找因为没有留意字符串数组来定义数编号。运行时程序出现了错误后经该正将子符串数组改为字符型。程序虽能运行但按编号查询时运行结果不能正常输出查询信息还自动终止程序。经过再次检测原来是最基本scanf()函程序数中取地址的&没有写。当加上程序正常运行。测试:1).显示的主菜单界面在开始由于录入界面通讯信息显示在函数中写成了保存而出现下面界面,经过修改后正确显示。2).录入界面:在录入的时候经常因为按下ENTER键太快,而导致一些信息的录入损失,后检测是因为编号的查询方式有误导致,修改后无次现象,程序正常运行。3).显示界面:由于受字符串的宽度影响,姓名过长时导致年龄不能对齐显示,增加域宽后此现象可避免。4).删除界面:5).查询界面:以姓名查询方式为例:由于程序在编号查询时的程序代码编写错误,程序虽然能运行,但是按编号查询时显示无此人,经过对程序的修改最终正常运行。6).修改界面:7).保存界面:8)退出系统:总结在这一次C语言别课程设计,通过对程序的设计进一步提高了自己对程序的认识,也收获了各方面许多东西在课程设计方面,加深了已有知识的了解和巩固,如对字符串处理函数的认识,对for循环与while循环的认识与使用。更加了解了自己的模糊概念,在此次程序设计中清晰明了。像reture语句,在此次设计中可以了解到可以将整个函数赋给n,即将return中的返回值赋给n。了解到一些新的知识,如与系统有关的函数system()。还有文件的保存,以前从未涉及的知识这次得以扩充。还有有重新体会到了文档的编版,受益匪浅。不仅在学习方面在与同学合作过程中体会到了同学间合作的快乐。在设计过程中相互请教,相互讨论如何使程序正确运行。经不断的合作修改终将程序运行出来。不仅如此,我还在老师要求的基础上,参考其它资料,在此次设计中对于信息的录入还添加了年龄这一信息的记录,完善程序。同时让我体会到在电脑上一个简单的记录运行之后所付出的努力,可想而之,复杂的运行操作后会有更大更复杂的一系列程序构成。让我体会到程序的博大精深和奥妙无穷。在刚开始接受这个程序设计课题时,原本以为自己什么也不会做,但随着对其它程序的理解,和对相关资料的查找了解,慢慢的加深了对该课题的了解与掌握,直至和大家一起把程序运行出来。同时发现了许多缺点,一不小心就出现错误。像scanf()函数的使用,既然忘了写&,而且越简单却越难找出错误,所以一定要细心,而且要有耐心。总之,这次程序设计使我得到了巨大的收获。附件主要原程序代码/*10.3.2源程序*//******头文件(.h)***********/#include"stdio.h"/*I/O函数*/#include"stdlib.h"/*标准库函数*/#include"string.h"/*字符串函数*/#include"ctype.h"/*字符操作函数*/#defineM50/*定义常数表示记录数*/typedefstruct/*定义数据结构*/{charname[20];/*姓名*/charunits[30];/*单位*/chartele[10];/*电话*/}ADDRESS;/******以下是函数原型*******/intenter(ADDRESSt[]);/*输入记录*/voidlist(ADDRESSt[],intn);/*显示记录*/voidsearch(ADDRESSt[],intn);/*按姓名查找显示记录*/intdelete(ADDRESSt[],intn);/*删除记录*/intadd(ADDRESSt[],intn);/*插入记录*/voidsave(ADDRESSt[],intn);/*记录保存为文件*/intload(ADDRESSt[]);/*从文件中读记录*/voiddisplay(ADDRESSt[]);/*按序号查找显示记录*/voidsort(ADDRESSt[],intn);/*按姓名排序*/voidqseek(ADDRESSt[],intn);/*快速查找记录*/voidcopy();/*文件复制*/voidprint(ADDRESStemp);/*显示单条记录*/intfind(ADDRESSt[],intn,char*s);/*查找函数*/intmenu_select();/*主菜单函数*//******主函数开始*******/main(){inti;ADDRESSadr[M];/*定义结构体数组*/intlength;/*保存记录长度*/clrscr();/*清屏*/for(;;)/*无限循环*/{switch(menu_select())/*调用主菜单函数,返回值整数作开关语句的条件*/{case0:length=enter(adr);break;/*输入记录*/case1:list(adr,length);break;/*显示全部记录*/case2:search(adr,length);break;/*查找记录*/case3:length=delete(adr,length);break;/*删除记录*/case4:length=add(adr,length);break;/*插入记录*/case5:save(adr,length);break;/*保存文件*/case6:length=load(adr);break;/*读文件*/case7:display(adr);break;/*按序号显示记录*/case8:sort(adr,length);break;/*按姓名排序*/case9:qseek(adr,length);break;/*快速查找记录*/case10:copy();break;/*复制文件*/case11:exit(0);/*如返回值为11则程序结束*/}}}/*菜单函数,函数返回值为整数,代表所选的菜单项*/menu_select(){chars[80];intc;gotoxy(1,25);/*将光标定为在第25行,第1列*/printf("pressanykeyentermenu\n");/*提示压任意键继续*/getch();/*读入任意字符*/clrscr();/*清屏*/gotoxy(1,1);printf("********************MENU*********************\n\n");printf("0.Enterrecord\n");printf("1.Listthefile\n");printf("2.Searchrecordonname\n");printf("3.Deletearecord\n");printf("4.addrecord\n");printf("5.Savethefile\n");printf("6.Loadthefile\n");printf("7.displayrecordonorder\n");printf("8.sorttomakenewfile\n");printf("9.Quickseekrecord\n");printf("10.copythefiletonewfile\n");printf("11.Quit\n");printf("***********************************************\n");do{printf("\nEnteryouchoice(0~11):");/*提示输入选项*/scanf("%s",s);/*输入选择项*/c=atoi(s);/*将输入的字符串转化为整型数*/}while(c<0||c>11);/*选择项不在0~11之间重输*/returnc;/*返回选择项,主程序根据该数调用相应的函数*/}/***输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/intenter(ADDRESSt[]){inti,n;char*s;clrscr();/*清屏*/printf("\npleaseinputnum\n");/*提示信息*/scanf("%d",&n);/*输入记录数*/printf("pleaseinputrecord\n");/*提示输入记录*/printf("nameunittelephone\n");printf("\n");for(i=0;i<n;i++){scanf("%s%s%s",t[i].name,t[i].units,t[i].tele);/*输入记录*/printf("\n");}returnn;/*返回记录条数*/}/*显示记录,参数为记录数组和记录条数*/voidlist(ADDRESSt[],intn){inti;clrscr();printf("\n\n*******************ADDRESS******************\n");printf("nameunittelephone\n");printf("\n");for(i=0;i<n;i++)printf("%-20s%-30s%-10s\n",t[i].name,t[i].units,t[i].tele);if((i+1)%10==0)/*判断输出是否达到10条记录*/{printf("Pressanykeycontinue...\n");/*提示信息*/getch();/*压任意键继续*/}printf("************************end*******************\n");}/*查找记录*/voidsearch(ADDRESSt[],intn){chars[20];/*保存待查找姓名字符串*/inti;/*保存查找到结点的序号*/clrscr();/*清屏*/printf("pleasesearchname\n");scanf("%s",s);/*输入待查找姓名*/i=find(t,n,s);/*调用find函数,得到一个整数*/if(i>n-1)/*如果整数i值大于n-1,说明没找到*/printf("notfound\n");elseprint(t[i]);/*找到,调用显示函数显示记录*/}/*显示指定的一条记录*/voidprint(ADDRESStemp){clrscr();printf("\n\n********************************************\n");printf("nameunittelephone\n");printf("\n");printf("%-20s%-30s%-10s\n",,temp.units,temp.tele);printf("**********************end***********************\n");}/*查找函数,参数为记录数组和记录条数以及姓名s*/intfind(ADDRESSt[],intn,char*s){inti;for(i=0;i<n;i++)/*从第一条记录开始,直到最后一条*/{if(strcmp(s,t[i].name)==0)/*记录中的姓名和待比较的姓名是否相等*/returni;/*相等,则返回该记录的下标号,程序提前结结束*/}returni;/*返回i值*/}/*删除函数,参数为记录数组和记录条数*/intdelete(ADDRESSt[],intn){chars[20];/*要删除记录的姓名*/intch=0;inti,j;printf("pleasedeletedname\n");/*提示信息*/scanf("%s",s);/*输入姓名*/i=find(t,n,s);/*调用find函数*/if(i>n-1)/*如果i>n-1超过了数组的长度*/printf("nofoundnotdeleted\n");/*显示没找到要删除的记录*/else{print(t[i]);/*调用输出函数显示该条记录信息*/printf("Areyousuredeleteit(1/0)\n");/*确认是否要删除*/scanf("%d",&ch);/*输入一个整数0或1*/if(ch==1)/*如果确认删除整数为1*/{for(j=i+1;j<n;j++)/*删除该记录,实际后续记录前移*/{strcpy(t[j-1].name,t[j].name);/*将后一条记录的姓名拷贝到前一条*/strcpy(t[j-1].units,t[j].units);/*将后一条记录的单位拷贝到前一条*/strcpy(t[j-1].tele,t[j].tele);/*将后一条记录的电话拷贝到前一条*/}n--;/*记录数减1*/}}returnn;/*返回记录数*/}/*插入记录函数,参数为结构体数组和记录数*/intadd(ADDRESSt[],intn)/*插入函数,参数为结构体数组和记录数*/{ADDRESStemp;/*新插入记录信息*/inti,j;chars[20];/*确定插入在哪个记录之前*/printf("pleaseinputrecord\n");printf("************************************************\n");printf("nameunittelephone\n");printf("\n");scanf("%s%s%s",,temp.units,temp.tele);/*输入插入信息*/printf("\n");printf("pleaseinputlocatename\n");scanf("%s",s);/*输入插入位置的姓名*/i=find(t,n,s);/*调用find,确定插入位置*/for(j=n-1;j>=i;j--)/*从最后一个结点开始向后移动一条*/{strcpy(t[j+1].name,t[j].name);/*当前记录的姓名拷贝到后一条*/strcpy(t[j+1].units,t[j].units);/*当前记录的单位拷贝到后一条*/strcpy(t[j+1].tele,t[j].tele);/*当前记录的电话拷贝到后一条*/}strcpy(t[i].name,);/*将新插入记录的姓名拷贝到第i个位置*/strcpy(t[i].units,temp.units);/*将新插入记录的单位拷贝到第i个位置*/strcpy(t[i].tele,temp.tele);/*将新插入记录的电话拷贝到第i个位置*/n++;/*记录数加1*/returnn;/*返回记录数*/}/*保存函数,参数为结构体数组和记录数*/voidsave(ADDRESSt[],intn){inti;FILE*fp;/*指向文件的指针*/if((fp=fopen("record.txt","wb"))==NULL)/*打开文件,并判断打开是否正常*/{printf("cannotopenfile\n");/*没打开*/exit(1);/*退出*/}printf("\nSavingfile\n");/*输出提示信息*/fprintf(fp,"%d",n);/*将记录数写入文件*/fprintf(fp,"\r\n");/*将换行符号写入文件*/for(i=0;i<n;i++){fprintf(fp,"%-20s%-30s%-10s",t[i].name,t[i].units,t[i].tele);/*格式写入记录*/fprintf(fp,"\r\n");/*将换行符号写入文件*/}fclose(fp);/*关闭文件*/printf("****savesuccess***\n");/*显示保存成功*/}/*读入函数,参数为结构体数组*/intload(ADDRESSt[]){inti,n;FILE*fp;/*指向文件的指针*/if((fp=fopen("record.txt","rb"))==NULL)/*打开文件*/{printf("cannotopenfile\n");/*不能打开*/exit(1);/*退出*/}fscanf(fp,"%d",&n);/*读入记录数*/for(i=0;i<n;i++)fscanf(fp,"%20s%30s%10s",t[i].name,t[i].units,t[i].tele);/*按格式读入记录*/fclose(fp);/*关闭文件*/printf("Youhavesuccessreaddatafromfile!!!\n");/*显示保存成功*/returnn;/*返回记录数*/}/*按序号显示记录函数*/voiddisplay(ADDRESSt[]){intid,n;FILE*fp;/*指向文件的指针*/if((fp=fopen("record.txt","rb"))==NULL)/*打开文件*/{printf("cannotopenfile\n");/*不能打开文件*/exit(1);/*退出*/}printf("Enterordernumber...\n");/*显示信息*/scanf("%d",&id);/*输入序号*/fscanf(fp,"%d",&n);/*从文件读入记录数*/if(id>=0&&id<n)/*判断序号是否在记录范围内*/{fseek(fp,(id-1)*sizeof(ADDRESS),1);/*移动文件指针到该记录位置*/print(t[id]);/*调用输出函数显示该记录*/printf("\r\n");}elseprintf("no%dnumberrecord!!!\n",id);/*如果序号不合理显示信息*/fclose(fp);/*关闭文件*/}/*排序函数,参数为结构体数组和记录数*/voidsort(ADDRESSt[],intn){inti,j,flag;ADDRESStemp;/*临时变量做交换数据用*/for(i=0;i<n;i++){flag=0;/*设标志判断是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(t[j].name,t[j+1].name))>0)/*比较大小*/{flag=1;strcpy(,t[j].name);/*交换记录*/strcpy(temp.units,t[j].units);strcpy(temp.tele,t[j].tele);strcpy(t[j].name,t[j+1].name);strcpy(t[j].units,t[j+1].units);strcpy(t[j].tele,t[j+1].tele);strcpy(t[j+1].name,);strcpy(t[j+1].units,temp.units);strcpy(t[j+1].tele,temp.tele);}if(flag==0)break;/*如果标志为0,说明没有发生过交换循环结束*/}printf("sortsucess!!!\n");/*显示排序成功*/}/*快速查找,参数为结构体数组和记录数*/voidqseek(ADDRESSt[],intn){chars[20];intl,r,m;printf("\nPleasesortbeforeqseek!\n");/*提示确认在查找之前,记录是否已排序*/printf("pleaseenternameforqseek\n");/*提示输入*/scanf("%s",s);/*输入待查找的姓名*/l=0;r=n-1;/*设置左边界与右边界的初值*/while(l<=r)/*当左边界<=右边界时*/{m=(l+r)/2;/*计算中间位置*/if(strcmp(t[m].name,s)==0)/*与中间结点姓名字段做比较判是否相等*/{print(t[m]);/*如果相等,则调用print函数显示记录信息*/return;/*返回*/}if(strcmp(t[m].name,s)<0)/*如果中间结点小*/l=m+1;/*修改左边界*/elser=m-1;/*否则,中间结点大,修改右边界*/}if(l>r)/*如果左边界大于右边界时*/printf("notfound\n");/*显示没找到*/}/*复制文件*/voidcopy(){charoutfile[20];/*目标文件名*/inti,n;ADDRESStemp[M];/*定义临时变量*/FILE*sfp,*tfp;/*定义指向文件的指针*/clrscr();/*清屏*/if((sfp=fopen("record.txt","rb"))==NULL)/*打开记录文件*/{printf("cannotopenfile\n");/*显示不能打开文件信息*/exit(1);/*退出*/}printf("Enteroutfilename,forexamplec:\\f1\\te.txt:\n");/*提示信息*/scanf("%s",outfile);/*输入目标文件名*/if((tfp=fopen(outfile,"wb"))==NULL)/*打开目标文件*/{printf("cannotopenfile\n");/*显示不能打开文件信息*/exit(1);/*退出*/}fscanf(sfp,"%d",&n);/*读出文件记录数*/fprintf(tfp,"%d",n);/*写入目标文件数*/fprintf(tfp,"\r\n");/*写入换行符*/for(i=0;i<n;i++){fscanf(sfp,"%20s%30s%10s\n",temp[i].name,temp[i].units,temp[i].tele);/*读入记录*/fprintf(tfp,"%-20s%-30s%-10s\n",temp[i].name,temp[i].units,temp[i].tele);/*写入记录*/fprintf(tfp,"\r\n");/*写入换行符*/}fclose(sfp);/*关闭源文件*/fclose(tfp);/*关闭目标文件*/printf("youhavesuccesscopyfile!!!\n");/*显示复制成功*/} }}参考文献1、C语言程序设计教程,谭浩强,张基温清华大学出版社,20062、C程序设计题解与上机指导,谭浩强,清华大学出版社,20063、零起点一本通天合教育电子科技大学出版社,20094、C语言实用程序荟萃,西安电子科技大学出版社,19935、C语言函数手册,机械工业出版社,19996、C语言的实际应用,安徽科学技术出版社,2000:机械工程学院课程设计评分表课题名称:通讯录管理系统项目评价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩教师签名:日期:(注:1.此页附在课程设计报告最后一页;2.综合成绩按优、良、中、及格和不及格五级评定。)基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现HYPERLINK"/detail.htm

温馨提示

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

评论

0/150

提交评论