通讯录课程设计.doc

上传人:文库蛋蛋多 文档编号:2386147 上传时间:2023-02-17 格式:DOC 页数:10 大小:24.50KB
返回 下载 相关 举报
通讯录课程设计.doc_第1页
第1页 / 共10页
通讯录课程设计.doc_第2页
第2页 / 共10页
通讯录课程设计.doc_第3页
第3页 / 共10页
通讯录课程设计.doc_第4页
第4页 / 共10页
通讯录课程设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《通讯录课程设计.doc》由会员分享,可在线阅读,更多相关《通讯录课程设计.doc(10页珍藏版)》请在三一办公上搜索。

1、通讯录程序设计基础课程设计报告二OO八 年 六月三十日目 录一、 编程目的设计要求 二、 各函数功能说明三、 流程图四、 总结参考数目:11一.编程目的及其设计要求:1.设计一个后缀式简单单步计算器类MyCalcu1(类型),具有如下一些功能:(1)从键盘读入后缀式算式str(为一个字符串),或通过一参构造函数设置算式str。(2)可以进行加、减、乘、除运算,运算对象为实型数据,遇等号结束计算并显示结果。(3)运算符没有优先级,即是说,总按“后缀式简单单步”形式执行。如:“9 3 - 4 *=”,意味着先取运算对象9 与3 进行后缀的减法运算得结果6,而后再将6 与后面的4 进行后缀的乘法运算

2、得结果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#define MaxLen 100/存储空间int transform(char str, char exp)int stMaxLen;/转化过程使用的过度栈char ch;int

3、 i=0,t=0,top=-1;/i是str下标,t是exp下标,top是exp下标while(ch=stri+)!=0 )if(ch=0 & ch=0 & ch=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

4、 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;cas

5、e/: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输入算术表达式:str;if(transform(str,exp)=0)cout原算术表达式不正确!endl;elsecout转换成后缀表达式输出:endlexpendl;if(compvalue(exp,&n)=1)cout表达式求值:endlnendl;elsecout计算错

6、误!endl;三.流程图:略四.总结:选课题的时候我以为我选了一个比较简单的题目,教工信息管理息统听起来是不难,但是做的时候却发现不是那么回事,比我想象的要难的多。首先是感觉太范,无从下手,到图书馆借了相应的书回来看了看,才发现我的想法太简单,完全处在做1+1=2的那种小程序的水平。然后我又找来了更加专业的书,找到了一个有点相似的程序,然后修改,扩充,原程序只有3项输入内容(姓名,学号,单科成绩),2 个调用函数(一个输出,一个查询)。我在内容的扩充还可以没有遇到难题,但是在编写函数时碰到了硬钉子。我用的是结构体和类,开始在连续建立对象时我没有想到用数组,苦思冥想就是想不到如何连续建立对象,最

7、后还是看了一下别人的程序才想到用数组。然后是在编写插入,查询,删除的函数时都遇到了不大不小的问题。查询要求是要用两种复合方法,我用的是其中按工号和姓名两种方法,工号的好办,直接用if语句,但是在编用姓名查询时我却没有了思路,不知道如何去判断两个姓名一样,后来翻书看到了复制函数才反应过来。然后是在删除函数出了问题,从删除的那一项起把后面的每一项向前移一项,理论上不难,可是函数就是不执行,不管我怎么调试都不行,最后还是找了徐严军给我修改了,原来我把参数放反了。 通过本次课程设计,我检测了自己,看来自己学的还是非常的死板,书本上的知识学的不精,还有就是书本上的东西太少,想完成一个稍大点的程序就显得知道的太有限,从找的参考书还是从网上查,总有自己看不懂的东西。还有就是我的程序中大量运用了循环语句,尤其是,用地很是普遍,以致于我现在对while循环都有新的认识。这次课程设计大锻练了我的动手能力和自学能力,对我是一个很好的检测,我很认真地对待了这次课程设计,有付出就有回报,我的收获就是在做课程设计的过程中我能用学到的知识去解决问题,认我感到了知识的魅力。最后还要感谢在我做课题的过程中给予我帮助的人,还有给我提供电脑的人。 工程完成时间:2008-6-28 张俊 电信07参考数目 【1】谭浩强,C+程序设计,清华大学出版社,2006年。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号