当前位置:文档之家› 图形界面编程计算器的实现

图形界面编程计算器的实现

目录1引言 ........................................................................................................................ 11.1课题背景......................................................................................................................................................... 11.2课程设计目的................................................................................................................................................. 21.3课程设计任务................................................................................................................................................. 22系统需求分析.......................................................................................................... 32.1功能需求分析................................................................................................................................................. 32.2 性能需求分析................................................................................................................................................ 33总体设计................................................................................................................. 43.1功能模块分析与设计..................................................................................................................................... 43.2 系统功能模块设计........................................................................................................................................ 44系统功能测试.......................................................................................................... 94.1一个Helloworld窗口.................................................................................................................................... 94.2计算器功能测试......................................................................................................................................... 105 课程设计总结...................................................................................................... 14参考文献................................................................................................................. 141引言1.1课题背景简单的计算器是一种能实现加、减、乘、除等简单运算的工具。

要实现计算功能,可以用C语言的知识和GTK+编写程序来解决此问题。

该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。

该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。

GTK+2.0 是自由软件,并且是GNU 工程的一部分[1]。

GTK+2.0 的许可协议LGPL,允许任何开发者使用(包括那些开发中的专利软件)且不收任何费用。

GTK+2.0 是当今惟一百分之百零付费的工业级的图形界面开发工具。

本设计就以GTK+2.0 为开发工具,全面展示在Linux平台上开发应用程序的各个侧面,也展现在Linux平台上开发图形界面应用程序。

计算机信息管理技术的应用,除了能在相当大的程度上代替人工作业,从而减少人员工作量,减轻工作负担,减少工作中因人为原因而产生的错误从而避免不必要的损失外,更重要的是能建立准确畅通、简便的信息流通渠道,为工作提供所需要的准确、及时的信息以帮助做出正确而及时的选择与决定,从而给采用这门技术的单位带来了巨大的可见或不可见的利益与效益。

1.2课程设计目的现在大多数的计算器都具备+,-,*,/等四则运算的功能。

用计算器来算数显然比用脑袋或用纸笔计算要来得方便。

讲究高效的我们势必要用到傻瓜设备(就是拿到手看看说明就知道怎样使用的东东)。

当我们看到一个很长很大的表达式需要得到结果时,我们就会想到计算器,这样,本程序就是为解决大家基本四则运算的问题而产生的。

只要你读懂说明,那么你所输入的表达式就一定能得到正确的结果。

本文主要基于对表达式的分析并利用C进行编程进而实现算法的。

与Java和C#等其他高级语言相比,C在程序运行效率、内存使用的可控性和编程的灵活性上均具有较大的优势[2],与汇编语言和C语言更具有面向对象的优点,因此本文采用Ubuntu Linux 操作系统以及GTK+2.0,以达到算法快速有效地执行。

1.3课程设计任务本课程设计内容是在Linux平台下开发一个简单的计算器程序,采用GCC编程工具和GTK+2.0工具包等软件为开发工具以及C语言知识实现图形化的计算器程序。

该程序能够实现的对整数的加减乘除和小数的加减乘除。

2系统需求分析2.1功能需求分析(1)整数之间的加减乘除运算,如:1+2、6-5、24/12、90*2等。

(2)小数之间的加减乘除运算,如:1.2+2.3、3.1-1.2、4.2*1.9、66.1/2.1等。

(3)小数与整数之间的加减乘除运算,如:1.4+4、2.4*6等。

2.2 性能需求分析(1)硬件环境处理器:奔腾4或以上。

内存:128MB或以上。

硬盘空间:20M以上。

(2)软件环境操作系统:Linux Kernel 2.6.20以上版本。

工具软件:GTK+2.0工具包、GCC编程工具。

(3)技术需求GCC,即GNU Compiler Collection,GNU编译器套装,是一套由GNU 开发的编程语言编译器。

它是一套以GPL 及LGPL 许可证所发行的自由软件,也是GNU计划的关键部分,亦是自由的类Unix及苹果电脑Mac OS X 操作系统的标准编译器。

可处理C、C++、Fortran、Pascal、Objective-C、Java, 以及Ada与其他语言[3]。

GTK+是一种图形用户界面工具包。

也就是说,它是一个库(或者,实际上是若干个密切相关的库的集合),它支持创建基于GUI 的应用程序[4]。

可以把GTK+ 想像成一个工具包,从这个工具包中可以找到用来创建GUI 的许多已经准备好的构造块。

使用GTK+ 这样的库比起编写自己的GUI 代码来有多个优势。

例如,它可以显著节约开发时间,让开发人员把精力集中在项目真正重要和真正独特的地方,而不必重复公共的功能。

对于用户来说,这意味着他们使用的应用程序之间具有更好的一致性:工具包能在哪使用,应用程序就能跟到哪里。

就像使用LEGO一样,所有的人都使用同一兼容尺寸这一事实,意味着设计可以在使用库的人之间共享,不论他们在哪里使用它。

3总体设计3.1功能模块分析与设计本计算器主要是完成整数之间、小数之间、整数和小数之间的加减乘除的运算,使用GTK+完成界面布局。

根据需求分析的结果,总体结构如图3-1所示。

图3-1 总体结构图 3.2 系统功能模块设计本课程设计所实现的计算器可以分为以下几个模块实现:(1)图形界面设计(2)数字键处理模块(3)小数点处理模块(4)加减乘除运算按键处理模块(5)结果按键,即等号处理模块(6)清除模块 3.2.1 图形界面设计此程序采用一个纵向盒状容器和多个横向盒状容器来设计界面。

另外在单行输入控件的阅读方向属性上用函数gtk_widget_set_direction 设定为GTK_TEXT_DIR_RTL ,即从右向左,使此控件的数字显示更像一个计算器的显示屏。

(1)主窗体关键代码:window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //主窗体G_CALLBACK(gtk_main_quit),NULL);gtk_window_set_title(GTK_WINDOW(window),"我的计算器"); //窗体名称 gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); 简单的计算器 整数间的四则运算 小数间的四则运算 整数小数间的四则运算gtk_container_set_border_width(GTK_CONTAINER(window),10);vbox = gtk_vbox_new(FALSE,0);gtk_container_add(GTK_CONTAINER(window),vbox);hbox = gtk_hbox_new(FALSE,0);gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,5);(2)各个按键布局的关键代码:label = gtk_label_new("Calculator"); //标签名称gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,5);button = gtk_button_new_with_label("C"); //清除按键gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,5);构建一个hbox1容纳数字“1”、“2”、“3”、“+”四个按键:hbox1 = gtk_hbox_new(FALSE,0); //hbox1的构建gtk_box_pack_start(GTK_BOX(vbox),hbox1,FALSE,FALSE,5);button = gtk_button_new_with_label("3"); //按键3gtk_box_pack_start(GTK_BOX(hbox1),button,TRUE,TRUE,5);G_CALLBACK(on_num_clicked),NULL);button = gtk_button_new_with_label("2"); //按键2gtk_box_pack_start(GTK_BOX(hbox1),button,TRUE,TRUE,5);G_CALLBACK(on_num_clicked),NULL);button = gtk_button_new_with_label("1"); //按键1gtk_box_pack_start(GTK_BOX(hbox1),button,TRUE,TRUE,5);类似的构建hbox2控件容纳“4”、“5”、“6”和“-”四个按键,hbox3容纳“7”、“8”、“9”和“*”四个按键,hbox4容纳“0”、“.”、“=”和“/”四个按键。

相关主题