收藏 分享(赏)

(C语言)汉字的显示与放大程序.doc

上传人:dzzj200808 文档编号:2241190 上传时间:2018-09-07 格式:DOC 页数:13 大小:89KB
下载 相关 举报
(C语言)汉字的显示与放大程序.doc_第1页
第1页 / 共13页
(C语言)汉字的显示与放大程序.doc_第2页
第2页 / 共13页
(C语言)汉字的显示与放大程序.doc_第3页
第3页 / 共13页
(C语言)汉字的显示与放大程序.doc_第4页
第4页 / 共13页
(C语言)汉字的显示与放大程序.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、电 子 信 息 与 电 气 工 程 系课程设计报告设计题目: 汉字的显示与放大程序 系 别: 电子信息与电气工程系 年级专业: 2006 级电气大类专业 学 号: 学生姓名: 指导教师: 二零零七年 三月 十七日2C 语言课程设计任务书论文题目 汉字的显示与放大程序导师姓名设计技术参数 1 用二维字符型数组来接汉字点阵信息。2 采用 UCDOS 下的基本汉字库,为 16 点阵。3 本程序要求在图形化界面下作出汉字图形,需要相应的图形化驱动。设计要求设计完成一个能够从字库文件中调出汉字点阵信息并把它显示放大的程序,该程序能够根据需要放大倍数,显示在屏幕上。本程序由一人独立完成。应完成的内容 1

2、第一周,熟悉汉字字符中信息的摆放方式。汉字内码与区位码的转换关系。编写部分程序实现汉字字库信息的取出。2 第二周,继续字库的取出,汉字的放大,程序的调试、完善。完成任务报告。参考文献谭浩强C 语言程序设计清华大学出版社刘振安C 语言程序设计课程设计机械工业出版社朱剑平工程问题 C 语言求解清华大学出版社(第三版)任志宏C 语言经典范例讲北京希望电子出版社3摘 要用 C 语言编写一个汉字显示与放大程序,设计完成一个能够从字库文件中调出汉字点阵信息并把它显示放大的程序,该程序能够根据需要放大倍数,显示在屏幕上。使用 UCDOS 下的基本汉字库(16 点阵)和 graphic.h 库中的作图函数,在

3、TC2 中用二维字符型数组来接汉字点阵信息,最终在图形化界面下作出汉字图形。关键词:汉字库 作图函数 二维字符型数组4目 录一、需求分析 05二、功能分析 05三、数据类型分析与设计06四、任务分配 06五、程序设计 07六、调试分析 10七、实习心得 115一、需求分析:C 语言程序设计作为计算机类的专业基础课,目的是使学生掌握程序设计的基本方法并逐步形成正确的程序设计思想, 能够熟练地使用 C 语言进行程序设计并具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。对于非计算机专业来说,该课程有实际应用价值,为用计算机解决实际问题提供了方法,是后续理论和实践教学的基础和重要

4、工具,同时也是计算机二级考试所统一要求的课程之一。本次课程设计实践培养学生正确的程序设计思想,增加软件设计的实践经验,将所学知识与生产结合, 训练并提高学生在分工合作、理论计算、结构设计、查阅设计资料等方面的能力,为往后进一步的学习打好基础。 二、功能分析:本程序能够利用相应的图形化驱动在图形化界面下作出汉字图形。具体来说,使用 graphic.h 库中的作图函数,从字库文件(UCDOS 下的基本汉字库)中调出汉字点阵信息,实现内码与区位码的转换并把它显示在屏幕上,另外,程序还能够根据用户需要对放大倍数作出修改。6三、数据类型分析与设计定义整型变量“int x,y”来进行位置设置;用字符型变量

5、“char buffer32”来存储一个汉字;定义“FILE *fp”,文件指针 fp 指向文件 FILE,实质是指向其中的结构体变量,从而通过结构体变量中的文件信息能够访问该文件; 定义寄存器变量“register m,n,i,j,k” (仅适用于整型变量和字符型变量);分别定义无符号的字符类型和偏移量“unsigned char qh,wh”“unsigned long offset”。另外,在 main 函数前做出声明“define ROW 1”和“define COL 2”分别控制纵、横坐标的放大倍数。四、任务分配“汉字的显示与放大程序”程序并不同于其他程序,它不是由多文件组成,整个程

6、序为一个单文件,仅有一个函数。所以,我组的三名成员无法分出数据模块,或每人做某一函数,全程序均由三人一起完成。7五、程序设计#include /TC 图形库#include /标准输入输出头文件#include /open 库函数#include /即 iostream.h#include /库函数,提供应用运算、类型转换、程序环境处理等#include /控制台输入与输出,字符屏幕处理函数#define ROW 1 /纵坐标放大倍数#define COL 2 /横坐标放大倍数void main()int x,y;char *s=“我“;FILE *fp; /定义文件指针 fp 指向文件 FI

7、LE,访问该文件 char buffer32; /buffer 来存储一个汉字register m,n,i,j,k; /寄存器变量(仅适用于整型和字符型变量)unsigned char qh,wh; /无符号的字符类型unsigned long offset; /无符号的偏移量int gd=DETECT,gm; /图形屏幕初始化;gd=graphdriver 是指向图形驱动序号变量的指针;gm=graphmode 是在 gd 选定后,指向图形驱动序号变量的指8针initgraph( /图形显示器和显示模式的路径的自动检测if (fp=fopen(“hzk16“,“rb“)=NULL) /打开汉

8、字库,该字库可以在ucdos 中找到 printf(“Cant open haz16,Please add it“); /输出语句getch(); closegraph(); exit(0);x=20; y=100; /汉字显示位置设置while(*s) /利用死循环 qh=*(s)-0xa0; /汉字区位码wh=*(s+1)-0xa0;/算出汉字的区位码,一个汉字两个字节,分别用 0、a0 合成它的区位码offset=(94*(qh-1)+(wh-1)*32L; /计算该汉字在字库中偏移量,汉字有 94 个区对应所在字库的位置,一个汉字点 32 字节fseek(fp,offset,SEEK_

9、SET); /将 fp 向前移动offsetfread(buffer,32,1,fp); /取出汉字 32 字节的点阵字模存入 buffer中(一个汉字)for (i=0;i(7-k)/按字节分解,相加对应的坐标,将对应的 0 和 1 进行画点,1 画、0 不画则显示阳型汉字,反之阴型s+=2; /因为一个汉字内码占用两个字节,所以 s 必须加 2x+=30; /进行相应的放大和偏移getch();closegraph();结果如下图:10六、调试分析原先,我们在 TC3 中进行程序编写,结果 TC3 根本无法调用图形库graphic.h,所以改用 TURBOC2,在虚拟 DOS 中编写。不同

10、于 C+的是,DOS环境下不承认汉字,于是我们又插入“天汇”汉字系统,其运行方式如图 6.1所示。随后有两大麻烦:一个是路径设置问题导致程序无法运行,改进方法是将文件全部安装于一个盘(如 C 盘) ,然后在 DIRECT 中改变默认路径为所用盘符;另一个是如何将汉字放大,记得我们组一再地在主函数中调试,结果完全不变,最后发现竟然是在主函数前的声明中改变初始化赋值。6.111七、实习心得由于这次课程设计并不是像以前停课两周专门去做,而是一边上课一边做的,所以说实话很累,但当我可以随便调整黑屏上绿字的大小时,我由衷得感到一切都是那么值得。过程中我们遇到了无数的困难,记得刚开始我们参考的是网上的废程

11、序,结果竟然显示“too many errors”!后来编写对了源代码确又发现不能在 TC3 下运行,碰了好多此壁,才知道应该在 TC2 下运行。庆幸的是我们都从未想过放弃,最终取得了成功两周来,我第一次利用图书馆的资源来解决我所遇到的难题,第一次利用互联网来学习,这才感觉到我的知识是多么的匮乏。现在我觉得经过这次 C 语言课程实践,我培养了语言综合应用能力,养成了良好的编程风格,学会编写中小型程序,掌握了所学的程序设计思想,增加了软件设计的实践经验,增加了分析和解决工程技术问题的能力。对以后的进一步深入学习具有良好的启蒙和推动作用。另外,这次 C 语言课程实践让我知道了怎样和搭档一起合作,相互帮助,相互学习,为了共同的目标而努力,使我们小组成员之间的感情进一步加深,而且也提高了成员的独立思考和动手能力以及如何与他人配合,为了共同的目标而努力。最后,感谢在实习中一直给予我们指导的李樱老师,他对我们的程序提出了宝贵的建议。也谢谢其他小组成员对我们在程序中出现的错误予以纠正。12参考文献: 谭浩强C 语言程序设计 清华大学出版社 刘振安C 语言程序设计课程设计机械工业出版社 朱剑平工程问题 C 语言求解清华大学出版社(第三版) 任志宏C 语言经典范例讲北京希望电子出版社13

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报