重庆邮电大学-软件技术基础实验报告耿道渠_第1页
重庆邮电大学-软件技术基础实验报告耿道渠_第2页
重庆邮电大学-软件技术基础实验报告耿道渠_第3页
重庆邮电大学-软件技术基础实验报告耿道渠_第4页
重庆邮电大学-软件技术基础实验报告耿道渠_第5页
已阅读5页,还剩73页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1软件技术基础实验报告实验名称顺序表的操作班级学号姓名第9周星期2、5,6节成绩一、实验目的1、掌握顺序表结构的实现方式;2、掌握顺序表常用算法的实现;3、熟悉利用顺序表解决问题的一般思路;4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。二、实验内容1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。(2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。(3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。要求实现菜单、初始化、添加、删除和显示等功能。三、实验结果2四、实验中遇到的问题及解决方法第一次编写C,感觉力不从心,回去多看看PPT。3五、实验心得体会对顺序表的一些常用语句不熟悉,对顺序表的整体思路理解不深刻以后要加强练习附源程序(自行编写或修改的程序。若为修改程序请注明修改部分的功能,若为书上实例则可不附。)INCLUDEINCLUDEINCLUDEINCLUDEDEFINEMAXSIZE20USINGNAMESPACESTDINTNUMTYPEDEFSTRUCTSTRINGSTUDENT_NUMBERSTRINGNAMESTRINGTELSTRINGHOME_PHONEINTIDTELVOIDSHUAXINTELVOIDDELETTEL4VOIDFINDTELVOIDSHOWTELINTMAINVOIDINTCHOOSETELLISTMAXSIZEWHILE1COUTCHOOSESYSTEM“CLS“WHILECHOOSE4COUTCHOOSESYSTEM“CLS“5SWITCHCHOOSECASE1SHUAXINLISTBREAKCASE2DELETLISTBREAKCASE3FINDLISTBREAKCASE4SHOWLISTBREAK/SYSTEM“CLS“RETURN0VOIDSHUAXINTELLISTINTI,JFORI0INUMWHILENUMMAXSIZESYSTEM“CLS“COUTNUMSYSTEM“CLS“COUTLISTJ1STUDENT_NUMBERCINLISTJ1NAMECINLISTJ1TELCINLISTJ1HOME_PHONECOUTJWHILEJNUMCOUTJWHILELISTIIDJIFORJIJTELNUM9SYSTEM“CLS“FORI0IINCLUDEINCLUDESTRUCTLNODEINTDATASTRUCTLNODENEXTLNODEFINDLNODEHEAD,INTXLNODEPHEADNEXTWHILEPNULL13RETURNPVOIDINSERTLNODEHEAD,INTI,INTXIFINEXTKIFPNULLCOUTDATAX14SNEXTPNEXTPNEXTSVOIDDELETELNODEHEAD,INTIIFINEXTKIFPNULL15COUTNEXTPNEXTDELETEPVOIDMAINLNODEHEAD,PHEADNEWLNODEHEADNEXTNULLINTI,X,YCOUTXINSERTHEAD,I,XI016COUTIDELETEHEAD,ICOUTNEXTWHILEPNULLCOUTDATANEXTCOUTXIFFINDHEAD,XNULLCOUTIX17INSERTHEAD,I,XCOUTNEXTWHILEPNULLCOUTDATANEXTCOUTINCLUDEINCLUDEINCLUDEDEFINELENSIZEOFTEL20DEFINESIZESIZEOFSIZEINTN0TYPEDEFSTRUCTTELCHARNAME10LONGNUMSTRUCTTELNEXTTELTYPEDEFSTRUCTTEL_SIZECHARNAME10LONGNUMSIZETELSEARCHVOID/从文件读取TELINSERTTELHEAD/插入TELDELTELHEAD/删除VOIDSHOWALLTELHEAD/输出到屏幕VOIDFIND_NAMETELHEAD/通过名字查找21VOIDFIND_NUMBERTELHEAD/通过号码查找TELREVISETELHEADVOIDSAVTELHEAD/储存INTMAINVOIDTELHEADNULLINTCHOOSEPRINTF“WELCOMETOTHISTELPHONENUMBERSYSTEMN“HEADSEARCHPRINTF“1INSERTN“/选择显示界面PRINTF“2DELN“PRINTF“3SHOWALLN“PRINTF“4FIND_NAMEN“PRINTF“5FIND_NUMBERN“PRINTF“6REVISEN“PRINTF“7SAVEN“PRINTF“8ENDN“DO/选择项22PRINTF“PLEASECHOOSEYOURCHOOSEN“SCANF“D“,SWITCHCHOOSECASE1HEADINSERTHEADBREAKCASE2HEADDELHEADBREAKCASE3SHOWALLHEADBREAKCASE4FIND_NAMEHEADBREAKCASE5FIND_NUMBERHEADBREAKCASE6HEADREVISEHEADBREAKCASE7SAVHEADBREAKCASE8RETURN0DEFAULTPRINTF“INPUTWRONGN“PRINTF“N“WHILE1RETURN023TELSEARCHVOID/寻找文件是否存在函数FILEFPTELHEADNULLTELP2,P1P1P2TELMALLOCLENIFFPFOPEN“TELNUMBERTXT“,“A“NULL/打开或者新建文件PRINTF“CANTOPENFILEN“EXIT0FSEEKFP,0L,0/文件指针倒回到开头WHILEFEOFFPIFFREADP1,SIZE,1,FP1/需要防止读出错误情况BREAKIFHEADNULLHEADP1ELSEP2NEXTP124P2P1NP1TELMALLOCLENFREEP1P2NEXTNULLFCLOSEFPRETURNHEADTELINSERTTELHEAD/插入新号码函数TELP0,P1,P2P0TELMALLOCLENPRINTF“PLEASEINPUTANAMEANDNUMBERN“SCANF“SLD“,P0NAME,P1HEADP2P1IFHEADNULL25HEADP0P0NEXTNULLELSEWHILESTRCMPP0NAME,P1NAME0P1P1NEXTIFSTRCMPP0NAME,P1NAMENEXTP0P0NEXTP1ELSEP1NEXTP0P0NEXTNULLN26RETURNHEADTELDELTELHEAD/删除函数TELP1,P2P1HEADLONGDELEPRINTF“PLEASEINPUTWHATNUMBERDOYOUWANTTODELN“/输入删除的电话号码SCANF“LD“,IFHEADNULLPRINTF“NULLLISTN“/空表情况ELSEWHILEDELEP1NUMP1P1NEXT27IFDELEP1NUMIFDELEHEADNUM/删除在头部情况HEADHEADNEXTELSEP2NEXTP1NEXT/输出删除的数据并用链表架空PRINTF“DELETHISPERSONNUMBERN“PRINTF“10S15LD“,P1NAME,P1NUMNELSEPRINTF“CANTFINDTHISPERSONN“/没找到情况RETURNHEADVOIDSHOWALLTELHEAD/打印函数INTI0TELPPHEADIFHEADNULLPRINTF“NULLLISTN“/空表情况28ELSEPRINTF“THEREISDNUMBERN“,NPRINTF“NAMENUMBERN“DOIPRINTF“D10S15LDN“,I,PNAME,PNUMPPNEXTWHILEPNULLVOIDFIND_NAMETELHEAD/以名字方式寻找号码TELPINTDIS0CHARF_NAME20PHEADPRINTF“PLEASEINPUTANAMEN“/输入名字SCANF“S“,F_NAMEIFHEADNULL29PRINTF“NULLLISTN“/空表情况ELSEDOIFSTRCMPPNAME,F_NAME0/只要找到同名均输出DIS1PRINTF“FINDTHISPERSONN“PRINTF“S15LDN“,PNAME,PNUMPPNEXTWHILEPNULLIFDIS0PRINTF“CANTFINDTHISPERSONN“VOIDFIND_NUMBERTELHEAD/以号码方式寻找号码TELP30LONGF_NUMINTDIS0/DIS作为判定是否找到变量PHEADPRINTF“PLEASEINPUTANUMBERN“/输入号码SCANF“LD“,IFHEADNULLPRINTF“NULLLISTN“/空表情况ELSEDOIFF_NUMPNUMDIS1BREAKELSEPPNEXTWHILEPNULLIFDIS131PRINTF“FINDTHISPERSONN“PRINTF“S15LDN“,PNAME,PNUMELSEPRINTF“CANTFINDTHISPERSONN“TELREVISETELHEAD/修改函数TELPHEADINTCHOOSE,NUM,IPRINTF“PLEASECHOOSEWHICHDOYOUWANTTOREVISE,INPUTTHENUMBERN“/FIND_NAMETELHEADSCANF“D“,FORI2INEXTPRINTF“1REVISENAMEN“PRINTF“2REVISETELEPHONENUMBERN“SCANF“D“,SWITCHCHOOSECASE132PRINTF“PLEASEINPUTNEWNAMEN“SCANF“S“,PNAMEBREAKCASE2PRINTF“PLEASEINPUTNEWTELEPHONENUMBERN“SCANF“LD“,BREAKRETURNHEADVOIDSAVTELHEAD/储存函数FILEFPTELPIFFPFOPEN“TELNUMBERTXT“,“A“NULL/打开或者新建文件PRINTF“CANTOPENFILEN“EXIT033PHEADWHILEPNULLIFFWRITEP,SIZE,1,FP1PPNEXTELSEPRINTF“SAVEWRONGN“EXIT0FCLOSEFP34软件技术基础实验报告实验名称栈的操作班级学号姓名第12周星期2、5,6节成绩一、实验目的掌握栈的的定义和运算,了解栈的应用。二、实验内容1、堆栈的测试和应用。要求设计一个主函数实现对顺序堆栈代码进行测试。测试方法为依次把数据元素1,3,5,7,9入栈,然后出栈堆栈中的数据元素并在屏幕上显示。三、实验结果35四、实验中遇到的问题及解决方法问题不是太多,但是编写过程还是比较艰辛。五、实验心得体会栈在本书中比较重要,要多多理解书本知识,多问老师,多实践。附源程序(自行编写或修改的程序。若为修改程序请注明修改部分的功能,若为书上实例则可不附。)INCLUDEINCLUDE36DEFINEMAX_SIZE30USINGNAMESPACESTDSTRUCTSQSTACKINTDATAINTTOPINTSTACKSIZEINTINITSTACKSQSTACK,INTVOIDPUSHSQSTACK,INTVOIDDELSQSTACKINTMAINVOIDINTCHOOSE,SIZEINTIN,ISQSTACKPCOUTSIZE37WHILEINITSTACKSYSTEM“CLS“WHILE1COUTCHOOSEWHILECHOOSE438COUTCHOOSESYSTEM“CLS“SWITCHCHOOSECASE1COUTINPUSHBREAKCASE2DELBREAKCASE3COUT1COUT0STOP1SDATANEWINTSIZERETURN0ELSECOUTTOPSTACKSIZE1STOP40SDATASTOPXELSECOUTTOP1XSDATASTOPSTOPCOUTINCLUDEUSINGNAMESPACESTDSTRUCTQNODEINTDATASTRUCTQNODENEXTSTRUCTLINKQUEUESTRUCTQNODEFRONTSTRUCTQNODEREAR44VOIDINITLINKQUEUEINTQUEUELENTHLINKQUEUEVOIDENQUEUELINKQUEUEVOIDDEQUEUELINKQUEUEINTMAINVOIDLINKQUEUEQINTCHOOSE,X,EINITQWHILE1COUTCHOOSEWHILECHOOSE3|CHOOSECHOOSESWITCHCHOOSECASE1SYSTEM“CLS“COUTXENQUEUEQ,XBREAKCASE2SYSTEM“CLS“DEQUEUEQBREAKCASE3SYSTEM“CLS“XQUEUELENTHQCOUTNEXTNULLQREARQFRONTINTQUEUELENTHLINKQUEUEINTLEN0WHILEPQREARLEN47PPNEXTRETURNLENVOIDENQUEUELINKQUEUEIFQREARNEXTQFRONTCOUTNEXTNULLQDATAXQREARNEXTQQREARQVOIDDEQUEUELINKQUEUEIFQFRONTQREARCOUTNEXTEQFRONTDATACOUTINCLUDEINCLUDEINCLUDEDEFINEMAXSIZE200TYPEDEFCHARDATATYPETYPEDEFSTRUCTNODEDATATYPEDATASTRUCTNODELCHILD,RCHILD51BITREEBITREECREATCHARCHBITREEQMAXSIZEINTFRONT,REARBITREEROOT,SROOTNULLFRONT1REAR0PRINTF“请输入二叉树的各节点,表示虚节点,表示结束N“SCANF“C“,WHILECHPUTCHARCHSNULLIFCHSBITREEMALLOCSIZEOFBITREESDATACHSLCHILDNULLSRCHILDNULL52REARQREARSIFREAR1ROOTSELSEIFSELSEQFRONTRCHILDSIFREAR21FRONTSCANF“C“,RETURNROOTVOIDPREORDERBITREEPIFPNULLPRINTF“C“,PDATAPREORDERPLCHILDPREORDERPRCHILD53RETURNVOIDINORDERBITREEPIFPNULLINORDERPLCHILDPRINTF“C“,PDATAINORDERPRCHILDRETURNVOIDPOSTORDERBITREEPIFPNULLPOSTORDERPLCHILDPOSTORDERPRCHILDPRINTF“C“,PDATARETURN54VOIDMAINBITREEROOTINTNUMCHARTWHILE1COUTNUMIFNUM455COUTNUMSYSTEM“CLS“SWITCHNUMCASE1ROOTCREATGETCHARBREAKCASE2COUTUSINGNAMESPACESTDCONSTINTMAX_SIZE30CLASSDATAPRIVATEINTDATAMAX_SIZEINTLENTHPUBLICDATAINTLENTH_GETVOIDALL_SETINTDATA_GETINTLENINTBINSEARCHINTKEY文件DATACPPIFNDEFDATADEFINEDATA60INCLUDEINCLUDE“DATAH“USINGNAMESPACESTDDATADATALENTH0INTDATALENTH_GETRETURNLENTHINTDATADATA_GETINTLENRETURNDATALENVOIDDATAALL_SET61INTKEY,IIFLENTHMAX_SIZECOUTKEYINTLOW0,HIGH0,MID0HIGHLENTH1IFHIGH1DATA0KEYLENTHRETURNWHILEKEYDATALOWMIDLOWHIGH/2IFKEYDATAMIDLOWMIDELSEHIGHMID62FORILENTHIMIDIDATAIDATAI1DATAMIDKEYLENTHINTDATABINSEARCHINTKEYIFLENTH0COUTINCLUDE“DATAH“USINGNAMESPACESTDINTMAINVOID/INTDATA301,2,3,4,5,6,7,8,9,10DATANEW_DATANEWDATAINTCHOOSEINTKIS,LENWHILE164COUTCHOOSEWHILECHOOSE3COUTCHOOSESWITCHCHOOSECASE1NEW_DATAALL_SETBREAKCASE2COUTKISKISNEW_DATABINSEARCHKIS65IFKIS1CONTINUEELSECOUTDATA_GETKISLENTH_GETLENTH_GETLENCOUTDATA_GETLENDEFINEMAX_SIZE30USINGNAMESPACESTDCLASSDATAPRIVATEINTNUMMAX_SIZEINTNUM_1MAX_SIZEIN

温馨提示

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

最新文档

评论

0/150

提交评论