C语言高级程序设计座.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言高级程序设计讲座 第五讲 汉化人机界面 鹏程C语言教学网站 庆祝建站一周年 特别企划 本文技术支持网站:29 任何一名程序编制人员,都希望自己辛辛苦苦做的程序,除了能完成目标任务还必须有一个友善、漂亮的人机界面,让更多的用户喜欢使用和认同自己的软件,因此,在图形方式下开发具有汉字信息的界面,是所有程序员的首选。 学习目标 ● 图形方式下彩色汉字处理 ● 图形方式下的人机对话 ● 多级菜单框架 人机界面的概念 所谓人机界面,即是指用户将指令施加于计算机并且从计算机获取信息时的操作手段与方式,主要包括菜单,交互对话框,程序运行信息提示和在线帮助,而人机界面的形式则分为文本方式和图形方式。 编制文本方式下的界面的优点在于程序的工作量较少,程序执行时显得较为快速,这种制作方式在计算机没有配置较高档显卡时,更加实用。但是,由于文本方式是25行*80列的西文字符显示方式,在对线框等菜单中必备的元素进行处理时就相当的麻烦,如显示一个四方框,就要输出拐角符号及若干个横和竖来组成边框,另外,在需要显示汉字信息时,必须首先启动如UCDOS之类的汉字平台,以支持你的程序在运行中直接汉字写屏,然而正是这种处理手段造成计算机的内存资源紧张,因为汉字平台的正在使用占了一定的内存,当你的程序要处理海量数据时,640K常规内存中已经没有太多的空间归你支配,这时,程序运行中频繁的死机是难以避免的。 而编制图形方式下的人机界面就可以很自由地显示你的创造力,因为: (1)C语言有专用的绘图库函数进行点、线、面、圆形的绘制和上色,灵活地应用这些库函数可以使界面多姿多彩。 (2)C所支持的图形方式下最大的分辨率为640X480像素点阵,屏幕画面的细腻程度远远高于文本方式下的输出,质感较强。 (3)在图形方式下输出汉字信息,每一个汉字是由程序从汉字字库中取出内码,根据内码画点到屏幕上,所以,图形方式下汉字是画出来的,对其进行放大,缩小和移动的处理就相当方便,汉字输出形式的灵活多变,可以增加界面的观赏性。 图形方式下彩色汉字的处理 为了使软件界面增加亲和力,我们所做的菜单与界面力求表达汉字信息,另外,要使得画面细腻,界面与菜单必须是在图形方式下做,这就牵涉到图形模式下汉字输出的技巧。为了在C集成环境下输入源程序时可以在源程序中打出汉字,进入集成编辑环境之前,需要UCDOS汉字环境启动。 C语言的初学者往往想采用在图形模式下使用gotoxy0函数定位,用pnntf()函数打印汉字的方法来输出汉字到计算机的屏幕上,常编出如下例的程序。 #includestdio.h #includeconio.h #includegraphics.h main() { char *str=大连理工大学; int gd=DETECT,gm; initgraph(gd,gm,); gotoxy(0,0); printf(%s,str); gotoxy(25,10); printf(%s,str); gotoxy(50,20); puts(str); getch(); closegraph(); } 往往输出的是乱码,一般我们变成千万不要指望使用printf()来输出汉字,我们一般采用调取汉字字模的方法在屏幕上画出汉字。下面是一个完整的例程。 /*使用UCDOS3.1汉字系统的字库hzk16*/ #include graphics.h #include conio.h #include stdio.h #include string.h int hz_printxy(char *hz,int x,int y,int tcolor,int bcolor); int getbit(unsigned char c,int n); int hzprintxy(char *hz,int x,int y,int tcolor,int bcolor); void main() { int gdriver = DETECT, gmode; initgraph(gdriver, gmode, ); hz_printxy(啊,22,33,11,0); hz_printxy(\xb0\xa1,122,33,14, 9); hz_printxy(。,222,33,14,0); hz_printxy(\xa1\xa3,322,33,14, 9); hzprintxy( 欢迎你使用汉字显示程序 ,22,55,15, 1); hzprintxy(12345 ABCDE abcde ()[]{} +-*/= !@#$%^,22,77,11, 5); hzprintxy( 使用UCDOS3.

文档评论(0)

sdfgrt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档