欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    通讯录课程设计.doc

    • 资源ID:2386147       资源大小:24.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    通讯录课程设计.doc

    通讯录程序设计基础课程设计报告二OO八 年 六月三十日目 录一、 编程目的设计要求 二、 各函数功能说明三、 流程图四、 总结参考数目:11一.编程目的及其设计要求:1.设计一个后缀式简单单步计算器类MyCalcu1(类型),具有如下一些功能:(1)从键盘读入后缀式算式str(为一个字符串),或通过一参构造函数设置算式str。(2)可以进行加、减、乘、除运算,运算对象为实型数据,遇等号结束计算并显示结果。(3)运算符没有优先级,即是说,总按“后缀式简单单步”形式执行。如:“9 3 - 4 *=”,意味着先取运算对象9 与3 进行后缀的减法运算得结果6,而后再将6 与后面的4 进行后缀的乘法运算得结果24,再往后遇到等号则将结果24 输出而结束处理。(4) 具有一定的排错功能,当用户输入错误的算式时提示用户。下面再例举一些输入与期望的相应输出结果的对应关系:输入:3 5 + = 输出:8 对应于:3+5输入:18 4 - 2 / = 输出:7 对应于:(18-4)/2输入:12.3 5 / 8.1 + 1.5 * = 输出:15.84 对应于:(12.3/5)+8.1)*1.5二.源程序:#include<iostream.h>#define MaxLen 100/存储空间int transform(char str, char exp)int stMaxLen;/转化过程使用的过度栈char ch;int i=0,t=0,top=-1;/i是str下标,t是exp下标,top是exp下标while(ch=stri+)!='0' )if(ch>='0' && ch<='9')/判断是数字expt=ch;/入栈t+;/栈顶指针上移while(ch=stri+)!='0' && ch>='0' && ch<='9')/其它位依次入栈expt=ch;t+;i-;/str原算术表达式栈向下遍历expt='#'/以特殊字符“#”表示结束t+; else if(ch='(')/判断为左括号top+;sttop=ch; else if(ch=')')/判断为右括号while (sttop!='(')expt=sttop;top-;/依次弹出t+;top-;/'('出栈 else if(ch='+' | ch='-')/判断为加减号while(top>=0 && sttop!='(')expt=sttop;top-;t+;top+;sttop=ch; else if (ch='*' | ch='/')/判断为乘除号while(sttop='*' | sttop='/')expt=sttop;top-;t+;top+;sttop=ch;while (top>=0)/将栈中所有运算符依次弹出存入exp栈中expt=sttop;t+;top-;expt='0'return 1;int compvalue(char exp,int *n)int stMaxLen,d;/st为数栈char ch;int t=0,top=-1;/t是exp下标,top是st的下标while(ch=expt+)!='0')if(ch>='0'&&ch<='9')/将数字字符转换成数字d=0;do d=10*d+ch-'0' while(ch=expt+)!='#');top+;sttop=d;/数字进栈else/运算符操作switch(ch)case'+':sttop-1=sttop-1+sttop;break;case'-':sttop-1=sttop-1-sttop;break;case'*':sttop-1=sttop-1*sttop;break;case'/':if(sttop!=0)sttop-1=sttop-1/sttop;elsereturn 0;/除0错误!break;top-;(*n)=sttop;return 1;void main()char strMaxLen;/存储原来算术表达式char expMaxLen;/存储转换成的后缀表达式int n;cout<<"输入算术表达式:"<<endl;cin>>str;if(transform(str,exp)=0)cout<<"原算术表达式不正确!"<<endl;elsecout<<"转换成后缀表达式输出:"<<endl<<exp<<endl;if(compvalue(exp,&n)=1)cout<<"表达式求值:"<<endl<<n<<endl;elsecout<<"计算错误!"<<endl;三.流程图:略四.总结:选课题的时候我以为我选了一个比较简单的题目,教工信息管理息统听起来是不难,但是做的时候却发现不是那么回事,比我想象的要难的多。首先是感觉太范,无从下手,到图书馆借了相应的书回来看了看,才发现我的想法太简单,完全处在做1+1=2的那种小程序的水平。然后我又找来了更加专业的书,找到了一个有点相似的程序,然后修改,扩充,原程序只有3项输入内容(姓名,学号,单科成绩),2 个调用函数(一个输出,一个查询)。我在内容的扩充还可以没有遇到难题,但是在编写函数时碰到了硬钉子。我用的是结构体和类,开始在连续建立对象时我没有想到用数组,苦思冥想就是想不到如何连续建立对象,最后还是看了一下别人的程序才想到用数组。然后是在编写插入,查询,删除的函数时都遇到了不大不小的问题。查询要求是要用两种复合方法,我用的是其中按工号和姓名两种方法,工号的好办,直接用if语句,但是在编用姓名查询时我却没有了思路,不知道如何去判断两个姓名一样,后来翻书看到了复制函数才反应过来。然后是在删除函数出了问题,从删除的那一项起把后面的每一项向前移一项,理论上不难,可是函数就是不执行,不管我怎么调试都不行,最后还是找了徐严军给我修改了,原来我把参数放反了。 通过本次课程设计,我检测了自己,看来自己学的还是非常的死板,书本上的知识学的不精,还有就是书本上的东西太少,想完成一个稍大点的程序就显得知道的太有限,从找的参考书还是从网上查,总有自己看不懂的东西。还有就是我的程序中大量运用了循环语句,尤其是,用地很是普遍,以致于我现在对while循环都有新的认识。这次课程设计大锻练了我的动手能力和自学能力,对我是一个很好的检测,我很认真地对待了这次课程设计,有付出就有回报,我的收获就是在做课程设计的过程中我能用学到的知识去解决问题,认我感到了知识的魅力。最后还要感谢在我做课题的过程中给予我帮助的人,还有给我提供电脑的人。 工程完成时间:2008-6-28 张俊 电信07参考数目 【1】谭浩强,C+程序设计,清华大学出版社,2006年。

    注意事项

    本文(通讯录课程设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开