版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)题 目:大学教育作为公共品的效率分析班 级:14级物联网应用技术(1)班二〇一六年九月一需求分析1.1引言通过程序设计,达到理论与实际应用相结合,提高对信息管理系统的分析能力,能够根据实际应用,初步实现系统功能模块及算法的设计,通过编程基本实现信息管理系统。1.2功能概述1.采用结构体的形式对数据进行输入输出。2.可以对通讯录进行简单的排序,筛选,删除。3.可以对任意信息就行修改。4.可以把数据已文件的形式输入输出。5.任意浏览信息。1.3数据描述以所示的文本数据位初始数据进行简单操作,也可另行添加。1.4系统菜单菜单系统图一实现以上功能需求。1.5性能概述1.能够进行简单的数据处理。2.具有对新信息处理打印打能力。1.6运行需求1.输入个人信息时以例如按照“编号、姓名、年龄、电话号码、通讯地址、电子邮箱”的顺序输入。2.输入时编号年龄、电话号码、通讯地址、电子邮箱以数字格式输入,输入姓名以文字输入。3.以(Y/N)形式判断时,仅限N或者n为否,其他字符真。4.进入排序功能后,要想见排序信息,到主菜单下见浏览信息功能。1.7任务计划1.样例输入和输出输入信息图二输出信息图三2.本通讯录管理程序,可以对数据进行输入输出,集排序,修改,打印,删除等功能。下面以上述数据描述的数据为测试数据进行简单输入输出。——1.未排序前的信息4).删除界面:删除界面图四删除后,通讯录里的显示记录:删除界面2图五5).查询界面:查询界面图六以姓名查询方式为例:查询界面图七6).修改界面:修改界面图八修改后,通讯录里的显示记录:修改界面图九7).保存界面:保存界面图十tongxunlu.txt文件截图:文件截图图十一二概要设计2.1总体设计主菜单主菜单保存修改查询显示删除添加保存修改查询显示删除添加添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件2.2数据类型设计(或数据结构设计)typedefstruct { charscore;/*编号*/ charname[10];/*姓名*/ charnum[15];/*号码*/ charemail[20]; /*邮箱*/ charage[8]; /*年龄*/ charadds[20]; /*住址*/ }Person;以结构体数组类型输入数据。 接口设计表2.1:函数列表函数名函数首部函数功能intmenu_select()void运行界面intInput(Personper[],intn)int输入函数voidDisplay(Personper[],intn)Void输出函数intDelete_a_record(Personper[],intn)int删除数据voidQuery_a_record(Personper[],intn)void查询数据voidChange(Personper[],intn)void更改数据voidWritetoText(Personper[],intn)void把数据写到文件2.3运行界面设计voidmain()/*主函数*/{ intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加记录到通讯录\n");/*添加记录*/ n=Input(pe,n); break; case2: printf("\n\t\t\t通讯录记录表\n");/*显示记录*/ Display(pe,n); break; case3: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(pe,n); /*删除记录*/ printf("\t"); system("pause"); break; case4: printf("\n\t在通讯录中查找记录\n"); Query_a_record(pe,n); /*查找记录*/ printf("\t"); system("pause"); break; case5: printf("\n\t修改通讯录中的记录\n"); Change(pe,n); /*修改数据*/ printf("\t"); system("pause"); break; case6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存数据*/ printf("\t"); system("pause"); break; case0: printf("\n\t\t谢谢使用,再见!\n");/*结束程序*/ printf("\n\t\t"); system("pause"); exit(0); } }}以switch为关键控制选着要调用函数的开关,然后以主菜单为主界面,其他功能为扩展界面来运行通讯录管理系统。主菜单代码为:intmenu_select() { charc; do{ system("cls"); printf("\t\t*****通讯录*****\n"); printf("\t\t||\n"); printf("\t\t│1.添加记录│\n"); printf("\t\t│2.显示记录│\n"); printf("\t\t│3.删除记录│\n"); printf("\t\t│4.查询记录│\n"); printf("\t\t│5.修改记录│\n"); printf("\t\t│6.保存记录│\n"); printf("\t\t│0.退出程序│\n"); printf("\t\t\||n"); printf("\t\t请您选择(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); }如图所示为主要运行界面:主程序图十二三详细设计3.1输入模块设计intInput(Personper[],intn){ inti=0; charsign,x[10]; while(sign!='n'&&sign!='N') { printf("\t编号:"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年龄:"); scanf("\t%s",per[n+i].age); printf("\t电话号码:"); scanf("\t%s",per[n+i].num); printf("\t通讯住址:"); scanf("\t%s",per[n+i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[n+i].email); gets(x); printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i);}3.2输出模块设计voidDisplay(Personper[],intn){ inti; printf("\n");/*格式*/ printf("编号姓名年龄电话号码通讯地址电子邮箱\n"); printf("\n"); for(i=1;i<n+1;i++) { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t\n"); printf("\t"); system("pause"); printf("\t\n"); } } printf("\n"); system("pause");}3.3查找模块设计voidQuery_a_record(Personper[],intn){ intm; printf("\t\n请选择查询方式:\n");printf("\t┌──────┐\n");printf("\t│1姓名│\n");printf("\t│2电话│\n");printf("\t│3地址│\n");printf("\t│4返回│\n");printf("\t└──────┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){ printf("输入错误,请重新选择:"); scanf("%d",&m); } if(m==1) { chars[20]; inti=0; printf("\t请输入想查询的姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号:%d\n",per[i].score); printf("\t此人年龄:%s\n",per[i].age); printf("\t电话号码:%s\n",per[i].num); printf("\t通讯地址:%s\n",per[i].adds); printf("\t电子邮箱:%s\n",per[i].email); }; if(m==2) { chars[20]; inti=0; printf("\t请输入想查询的电话:"); scanf("\t%s",s); while(strcmp(per[i].num,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号:%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年龄:%s\n",per[i].age); printf("\t通讯地址:%s\n",per[i].adds); printf("\t电子邮箱:%s\n",per[i].email); }; if(m==3) { chars[20]; inti=0; printf("\t请输入想查询的地址:"); scanf("\t%s",s); while(strcmp(per[i].adds,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号:%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年龄:%s\n",per[i].age); printf("\t电话号码:%s\n",per[i].num); printf("\t电子邮箱:%s\n",per[i].email); };}3.4删除模块设计intDelete_a_record(Personper[],intn){ chars[20]; inti=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf("\t\t\t已经成功删除!\n"); return(n-1);}3.5更改模块设计voidChange(Personper[],intn){ chars[20]; inti=0; printf("\t请输入想修改的记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t编号:"); scanf("\t%d",&per[i].score); printf("\t姓名:"); scanf("\t%s",per[i].name); printf("\t年龄:"); scanf("\t%s",per[i].age); printf("\t电话号码:"); scanf("\t%s",per[i].num); printf("\t通讯住址:"); scanf("\t%s",per[i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[i].email); printf("\t修改成功!");}3.6保存模块设计voidWritetoText(Personper[],intn){ inti=0; FILE*fp;/*定义文件指针*/ charfilename[20];/*定义文件名*/ printf("\t保存到文件\n");/*输入文件名*/ printf("\t请输入所保存的文件名:"); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("\t无法打开文件\n"); system("pause"); return; } fprintf(fp,"******************************************通讯录******************************************\n"); fprintf(fp,"编号姓名年龄电话号码通讯地址电子邮箱\n"); fprintf(fp,"\n"); while(i<n) { fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n",per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email); i++; } fprintf(fp,"\n"); fprintf(fp,"***************************************共有%d条记录****************************************\n",n); fclose(fp);/*关闭文件*/ printf("保存成功!\n");}voidmain()/*主函数*/{ intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加记录到通讯录\n");/*添加记录*/ n=Input(pe,n); break; case2: printf("\n\t\t\t通讯录记录表\n");/*显示记录*/ Display(pe,n); break; case3: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(pe,n); /*删除记录*/ printf("\t"); system("pause"); break; case4: printf("\n\t在通讯录中查找记录\n"); Query_a_record(pe,n); /*查找记录*/ printf("\t"); system("pause"); break; case5: printf("\n\t修改通讯录中的记录\n"); Change(pe,n); /*修改数据*/ printf("\t"); system("pause"); break; case6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存数据*/ printf("\t"); system("pause"); break; case0: printf("\n\t\t谢谢使用,再见!\n");/*结束程序*/ printf("\n\t\t"); system("pause"); exit(0); } }}四测试分析4.1测试程序执行情况1).显示的主菜单界面主菜单图十三2).添加界面:添加界面图十四3).显示界面:显示菜单图十五4).删除界面:删除界面图十六删除后,通讯录里的显示记录:显示界面图十七5).查询界面:查询界面图十八以姓名查询方式为例:查询界面图十九6).修改界面:修改界面图二十修改后,通讯录里的显示记录:显示界面图二十一7).保存界面:保存界面图二十二大部分功能以按上面图文描述,有不足的地方请老师批评指正。您的建议将帮我走得更好。4.2出现的问题和解决的方法1.当我在进行删除、查询、修改、保存等功能时,以查询为例,输入名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。因此,向别人请教后,在一些地方加入了system("pause");这个语言,用来对某项操作完成后进行暂停。五课程设计总结这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对C的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格式。当我选择通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。当然还有不少文件的读写问题,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心,有时while和do-while的区别也是十分重要的。还有一点体会就是,书上和老师教的内容是有限的,我们需要不断地靠自己去学习,向他人请教,了解和掌握更多的知识,这样我们才能编出更好的C程序。总体来说,这次C语言程序设计实验还是比较成功的,虽然最终程序还存在一些不足,但能取得这样的成绩我还是比较高兴的。最后,要感谢学校为我们提供这次实验机会,也要感谢老师的教导和好心人对我的帮助与支持。附录程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstruct { charscore;/*编号*/ charname[10];/*姓名*/ charnum[15];/*号码*/ charemail[20]; /*邮箱*/ charage[8]; /*年龄*/ charadds[20]; /*住址*/ }Person;Personpe[80];intmenu_select() { charc; do{ system("cls"); printf("\t\t*****通讯录*****\n"); printf("\t\t||\n"); printf("\t\t│1.添加记录│\n"); printf("\t\t│2.显示记录│\n"); printf("\t\t│3.删除记录│\n"); printf("\t\t│4.查询记录│\n"); printf("\t\t│5.修改记录│\n"); printf("\t\t│6.保存记录│\n"); printf("\t\t│0.退出程序│\n"); printf("\t\t\||n"); printf("\t\t请您选择(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); }intInput(Personper[],intn){ inti=0; charsign,x[10]; while(sign!='n'&&sign!='N') { printf("\t编号:"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年龄:"); scanf("\t%s",per[n+i].age); printf("\t电话号码:"); scanf("\t%s",per[n+i].num); printf("\t通讯住址:"); scanf("\t%s",per[n+i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[n+i].email); gets(x); printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i);}voidDisplay(Personper[],intn){ inti; printf("\n");/*格式*/ printf("编号姓名年龄电话号码通讯地址电子邮箱\n"); printf("\n"); for(i=1;i<n+1;i++) { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t\n"); printf("\t"); system("pause"); printf("\t\n"); } } printf("\n"); system("pause");}intDelete_a_record(Personper[],intn){ chars[20]; inti=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf("\t\t\t已经成功删除!\n"); return(n-1);}voidQuery_a_record(Personper[],intn){ intm; printf("\t\n请选择查询方式:\n");printf("\t┌──────┐\n");printf("\t│1姓名│\n");printf("\t│2电话│\n");printf("\t│3地址│\n");printf("\t│4返回│\n");printf("\t└──────┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){ printf("输入错误,请重新选择:"); scanf("%d",&m); } if(m==1) { chars[20]; inti=0; printf("\t请输入想查询的姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号:%d\n",per[i].score); printf("\t此人年龄:%s\n",per[i].age); printf("\t电话号码:%s\n",per[i].num); printf("\t通讯地址:%s\n",per[i].adds); printf("\t电子邮箱:%s\n",per[i].email); }; if(m==2) { chars[20]; inti=0; printf("\t请输入想查询的电话:"); scanf("\t%s",s); while(strcmp(per[i].num,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号:%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年龄:%s\n",per[i].age); printf("\t通讯地址:%s\n",per[i].adds); printf("\t电子邮箱:%s\n",per[i].email); }; if(m==3) { chars[20]; inti=0; printf("\t请输入想查询的地址:"); scanf("\t%s",s); while(strcmp(per[i].adds,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t此人编号:%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年龄:%s\n",per[i].age); printf("\t电话号码:%s\n",per[i].num); printf("\t电子邮箱:%s\n",per[i].email); };}voidChange(Personper[],intn){ chars[20]; inti=0; printf("\t请输入想修改的记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通讯录中没有此人!\n"); return; } printf("\t编号:"); scanf("\t%d",&per[i].score); printf("\t姓名:"); scanf("\t%s",per[i].name); printf("\t年龄:"); scanf("\t%s",per[i].age); printf("\t电话号码:"); scanf("\t%s",per[i].num); printf("\t通讯住址:"); scanf("\t%s",per[i].adds); printf("\t电子邮箱:"); scanf("\t%s",per[i].email); printf("\t修改成功!");}voidWritetoText(Personper[],intn){ inti=0; FILE*fp;/*定义文件指针*/ charfilename[20];/*定义文件名*/ printf("\t保存到文件\n");/*输入文件名*/ printf("\t请输入所保存的文件名:"); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("\t无法打开文件\n"); system("pause"); return; } fprintf(fp,"******************************************通讯录******************************************\n"); fprintf(fp,"编号姓名年龄电话号码通讯地址电子邮箱\n"); fprintf(fp,"\n"); while(i<n) { fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n",per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email); i++; } fprintf(fp,"\n"); fprintf(fp,"***************************************共有%d条记录****************************************\n",n); fclose(fp);/*关闭文件*/ printf("保存成功!\n");}voidmain()/*主函数*/{ intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加记录到通讯录\n");/*添加记录*/ n=Input(pe,n); break; case2: printf("\n\t\t\t通讯录记录表\n");/*显示记录*/ Display(pe,n); break; case3: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(pe,n); /*删除记录*/ printf("\t"); system("pause"); break; case4: printf("\n\t在通讯录中查找记录\n"); Query_a_record(pe,n); /*查找记录*/ printf("\t"); system("pause"); break; case5: printf("\n\t修改通讯录中的记录\n"); Change(pe,n); /*修改数据*/ printf("\t"); system("pause"); break; case6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存数据*/ printf("\t"); system("pause"); break; case0: printf("\n\t\t谢谢使用,再见!\n");/*结束程序*/ printf("\n\t\t"); system("pause"); exit(0); } }}参考文献[1]张宗杰.C语言程序设计实用教程.北京:电子工业出版社,2009.58-151[2]张淑平.程序员教程.北京:清华大学出版社.,2011.42-328[3]谭浩强.C程序设计.北京:清华大学出版社.,2005.91-310[4]高维春.C语言程序设计项目教程.北京:人民邮电出版社,2010.54-67[5]魏海新,李燕主编.C语言程序设计实用教程.北京:机械工业出版社,2007.161-174[6]李泽中,孙红艳主编.C语言程序设计.北京:清华大学出版社,2008.98-101[7]路俊维,马雪松主编.C语言程序设计.北京:中国铁道工业出版社,2009.78-98[8]王敬华等.C语言程序设计教程.北京:清华大学出版社,2005.45-64[9]张明慧.VisualC++开发图书管理系统.北京:北京师范大学,2005.32-40[10]陈朔鹰等.C语言程序设计基础教程.北京:兵器工业出版社,1994.78-97[11]谭浩强.C程序设计题解与上机指导.北京:清华大学出版社,2005.130-155[12]严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社,2007.59-107[13]C编写组编.常用C语言用法速查手册.北京:龙门书局,1995.34-45[14]张俐,杨莹编著.C语言高级程序设计.北京:清华大学出版社,2006.67-78[15]StephenGKochan.ProgramminginANSIC.HagdenBookIndianapolis:Indina,U.S.A,1994.129-201目录TOC\o"1-2"\h\z\u第一章总论 11.1项目概况 PAGE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年高级会所装修设计合同
- 2024幼儿园厨师工作环境优化与聘用合同3篇
- 2025版高端装饰板材定制加工合作协议2篇
- 2025版酒店管理权及品牌使用权转让及咨询服务合同3篇
- 2024年版权转让合同:创意作品专用2篇
- 北部湾大学《金融大数据分析与可视化》2023-2024学年第一学期期末试卷
- 2024年知名品牌服装连锁销售合同
- 2025版实习生实习期间生活费用补贴合同3篇
- 2024房屋转租协议:甲方出租房屋乙方可转租的具体条款
- 2024年电子商务平台合作伙伴激励协议
- plc--病床呼叫系统
- 永煤集团顺和煤矿液压销齿弯道推车机技术规格书
- 九型人格测试之180题(完整版)和答案解析
- 口内病例分析
- LS-MASTER-K-指令手册
- 堵盖与胶贴在车身堵孔方面的应用
- 清单计价规范附录附表详解PPT课件
- 光刻胶知识简介
- 乌兹别克语字母表
- 微机室学生上机记录
- 毕业设计(论文)基于单片机AT89C51的数字抢答器设计
评论
0/150
提交评论