1、 Linux 程序设计 课程设计报告 2010-2011 学年第 二 学期 设计题目: 基于 GNOME 的菜单构件 学 号: 姓 名: 成绩评定: 日 期: - 1 - 目录目录 一、设计任务书 . 1 1.1 题目与要求 . 1 1.2 本程序涉及的知识点 . 1 二、关键技术、程序难点与解决方案 2 三、功能设计 . 3 3.1、程序算法 3 3.2、主要功能流程图 5 3.3、具体功能说明图 5 四、程序设计主要代码 6 五、Linux 程序设计课设总结 7 - 2 - 一、一、设计任务设计任务书书 1.11.1、 题目与要求题目与要求 题目:编写一个能够包含菜单构件的 GNOME 程
2、序 要求:顶层菜单包含“文件”和“编辑”两项,其中在文件的子菜单中包含“新 建”和“关于” ,编辑的子菜单中包含“输入”和“输入” 当我们单击文件菜单的子菜单 “新建” 时, 在屏幕上输出 “Good Luck !” ; 当单击“关于”时,在屏幕上输出“Linux C” ; 当我们单击“输入”时,从终端读入一个字符串(字符串的长可是由编 程者自定) ;当单击“输出”时,从终端输出一我们刚刚读入的字符串, 如果没有读入字符串, 那么就提出 “请先输入字符串: ” 之后输入字符串, 再执行输出。 1.21.2、 本程序涉及的知识点本程序涉及的知识点 本程序涉及的知识点是首先要弄明白什么是 GNOM
3、E,在 GNOME 中的程序设计中, 需要知道菜单是如何定义、调用,之后根据对于 GNOME 的了解再将菜单创建出来, 定义函数将菜单的功能实现。当程序编写完成进行编译、连接时千万不能忘记连接 GNOME 类库。 GnomeApp 构件是 GNOME 应用程序的基本构件,这个构件能够包含菜单、工具栏 和数据的主要实现窗口。我们可以利用 gnome_app_new 函数来创建一个新的构件, 再调用gnome_app_create_menu或gnome_app_create_toolbar函数就能够实现菜单 的功能。 此外,在 gnome 的程序设计中类库的应用也是非常重要的,libgnome 和
4、 libgnomeui是任何GNOME编程中都要用到的两个主要库, 用来独立于任何特定的GUI 工具箱。 二、二、关键技术、关键技术、程序程序难点难点与与解决方案解决方案 先进行判断,再输入出数据,如果没有从终端接收到字符串,那么再次输入字符串 int shuru() scanf(“%s“, length=strlen(input); int shuchu(GtkWidget *widget,gpointer data) if(length=0) printf(“请先输入字符串:“); shuru(); - 3 - else printf(“%sn“,input); return 0; 创建编
5、辑菜单的子菜单: (采用类似于文件菜单中新建的方式编写编辑的子菜单输入和输出,并在基中 调用输入和输出函数) GnomeUIInfo edit_menu= GNOMEUIINFO_ITEM_NONE(“输入“,“Please into somethings“,shuru), GNOMEUIINFO_ITEM_NONE(“输出“,“Please output somethings“,shuchu), GNOMEUIINFO_END ; 创建输入和输出的工具条: (采用类似于退出的工具条来编写输入和输出的工具条,在工具的函数中调用 输入和输入函数) GNOMEUIINFO_ITEM_STOCK(“
6、输入“,“Please input somethings“,shuru,GNOME_STOCK_PIXMAP_COPY), GNOMEUIINFO_ITEM_STOCK(“输出“,“You will seeing the string“,shuchu,GNOME_STOCK_PIXMAP_PASTE), 三、三、功能设计功能设计 3 3.1.1、程序程序算法算法 想要知道当我们当时输出时, 是否有字符已经被接收, 如果没有接收到字符串, 那么何谈输出。所以首先我们先义一个整型常量用对保存我们输入字符串的长度, 如果有值,则说明我们已经接收到字符串,那么单击输出时就能显示出来。 在输入的函数中,计算出接收接字符的长度,在输出函数中进行判断,具体的 逻辑功能如下 1,具体实现图如下图 2 - 4 - 输出子菜单 判断是否有字符串 输出 调用输入函数 输入字符串 否 是 图 1 输出的逻辑功能 int shuru() scanf(“%s“, length=strlen(input); int sh