安徽师范大学c语言实验答案,安徽师范大学C语言课程设计计算器软件.doc

《C语言》

课程设计

本程序设计是一个将数学问题与C语言程序设计结合的程序设计问题。能够实现用用C语言编程让计算机模拟计算器的实验,可以改变计算数值,计算出不同的结果。

计算器是一种很常用的计算工具,他在日常生活中给了我们很大方便。“计算器”是一种关于多种控件的应用的比较复杂的程序,它包含对字符串的处理,多模块程序设计,数学函数的使用。所以它所需要的知识点较多,必须对各方面都有所了解。计算器的主要功能就是运算,但是任何一个数值的输入都是以字符的形式进行的,但是字符是无法参与运算的,不许转换成整形变量。

二、基本要求

能够实现加减乘除功能否

四、程序设计内容。

#include

#include

#include

#define N 50

void main(void)

{

int inti=0,intj=0;

double doux[N]={0},dousum=0;

char charx[N],chary[2*N];

printf("Please input:");

scanf("%s",chary);

while(inti

{

switch(chary[inti])

{

case '0':doux[(int)(inti/2)]=0;break;

case '1':doux[(int)(inti/2)]=1;break;

case '2':doux[(int)(inti/2)]=2;break;

case '3':doux[(int)(inti/2)]=3;break;

case '4':doux[(int)(inti/2)]=4;break;

case '5':doux[(int)(inti/2)]=5;break;

case '6':doux[(int)(inti/2)]=6;break;

case '7':doux[(int)(inti/2)]=7;break;

case '8':doux[(int)(inti/2)]=8;break;

case '9':doux[(int)(inti/2)]=9;break;

case '+':charx[inti/2]='+';break;

case '-':charx[inti/2]='-';break;

case '*':charx[inti/2]='*';break;

case '/':charx[inti/2]='/';break;

}

inti++;

}

inti=0;

while(inti

{

if(charx[inti]=='-')

{

doux[inti+1]=0-doux[inti+1];

}

else if(charx[inti]=='*')

{

doux[inti+1]=doux[inti+1]*doux[inti];

doux[inti]=0;

}

else if(charx[inti]=='/')

{

if(doux[inti+1]==0)

{

intj=1;break;

}

doux[inti+1]=doux[inti]/doux[inti+1];

doux[inti]=0;

}

else

{;}

inti++;

}

if(intj==1)

{

printf("Error\n");

}

else

{

for(inti=0;inti

{

dousum+=doux[inti];

}

printf("%lf\n",dousum);

}

system("pause");

}

五、程序设计截图。

输入正确计算公式屏幕显示:

容错能力屏幕显示:

六、程序设计心得

回顾起此次课程设计,,自从拿到题目到完成整个编程,从理论到实践可以学到很多很多的的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识通过这次课程设计懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的此次,应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。而这些问题,又都是课本上很少提到的、更深

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算器 一、 背景描述 该计算器模仿Windows自带的计算器,只实现标准型计算器功能。 在完成Swing的学习后,练习使用Swing包中JFrame、JButton、JLabel、JTextField、JMenu、JMenuItem等组件完成图形界面绘制。 二、 实现要求 前期能够独立思考并完成计算器的逻辑代码。 三、 实现技术 a) 熟练使用JButton、JTextField、JLabel等Swing包中组件。 b) 熟练使用BorderLayout、FlowLayout、BoxLayout、GridLayout等布局。 c) 能够根据需要覆盖paint函数,定制自己需要的组件。 四、 类图 a) 类图 b) 类图说明 类名称 Calculator 类描述 计算器界面类。 包描述 main 函数描述 Calculator() 计算器界面类缺省构造函数。 private void initMenu() 初始化菜单添加。 private void initButton() 初始化按钮。按钮的初始化、部署、事件添加等。 private void initAdd() 初始化各个容器的添加。 public void actionPerformed(ActionEvent e) 处理按钮事件。1.复制事件2.粘贴事件,此处应用正则表达式(详细请参考类 java.util.regex.Pattern)解析粘贴板中的内容,仅得到内容中最后的数字和小数点。3.关于事件 private boolean isContain(String str,String ch) 检测某字符串中是否包含某个字符串。 private void showResult(String result) 设置计算的得到的结果。 private void clearAll(String result) 清空结果。 private void countResult(double value2) 计算结果并显示结果。 内部类 private class ButtonListener extends AbstractAction 按钮事件。包括+、-、*、/、1/x、数字等按钮事件。 此类继承AbstractAction 类名称 CalculateButton 类描述 定制自己的按钮类。练习自己定制按钮。比如定制按钮的高度、宽度、文字等。 包描述 main 函数描述 public CalculateButton(Action listener,String text,int key,boolean isctrl) 构造一个具有缺省事件、指定文本、指定快捷键的JButton。 public CalculateButton(Action listener,String text,int key,boolean isctrl,Color color) 构造一个具有缺省事件、指定文本、指定快捷键、指定文本颜色的JButton。 public CalculateButton(Action listener,String text,int key,boolean isctrl,Color color,int width,int height) 构造一个具有缺省事件、指定文本、指定快捷键、指定文本颜色的JButton。 protected void paintBorder(Graphics g) 绘制边界。 c) 效果图 五、 技术技巧提问 a) 思考用户如果多次连续按如+、-、*、/等键时,应该怎么处理?请仔细考虑好该逻辑。 b) 练习使用剪贴板的功能,实现复制、粘贴功能。考虑当粘贴板中数据值带有多个小数点时如何处理然后显示到文字框上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值