《C++教学资料》李拯宇 在控制台窗口中输出彩带.doc

《C++教学资料》李拯宇 在控制台窗口中输出彩带.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北工业大学计算机软件技术基础(VC)课程设计报告 学院 班级 姓名 __ 学号 ____ 成绩 __ ____ 一、题目: 在控制台窗口输出彩带(21) 二、设计思路 1、总体设计 1)设计一个能够在控制台窗口中输出彩带的程序,实现的功能包括:根据用户的输入选择来输出两种横向和竖向两种彩带形式,利用C++语言编程,在Visual C++环境下调试完成。 2)利用主函数对被调函数进行调用,从而完成实现输出彩带的要求。SetColor函数:两个Windows操作系统的API函数。GetStdHandle函数用来获得当前控制台的句柄,用SetConsoleTextAttribute函数来改变选中控制台的颜色控制。这两个函数的声明存在于windows.h文件中。可以将这两个调用封装到SetColor函数中。sp_color函数:控制输出一条水平的彩带。sz_color函数:控制输出一条竖直的彩带。 2、各功能模块的设计:说明各功能模块的实现方法 3、设计中的主要困难及解决方案 在这部分论述设计中遇到的主要困难及解决方案。 1)困难1 对于控制台的概念的不了解。根据任务书的指出:控制台(Console)是一个基于字符界面的交互平台。Windows 2000里面自带的控制台同样也是一个基于字符界面的交互平台。 2)困难2 对于各种语句的循环,嵌套使用以及各种数据的处理也是一个摆在面前的一个问题。 首先输出彩带的过程是个循环过程,当用户的输入满足循环的退出条件时结束程序的运行(在示例程序中,循环的退出条件是用户输入了0和1之外的数值)。 在用户输入了相应的选择后,在屏幕上输出彩带。 4、你所设计的程序最终完成的功能: 1)首先提示用户选择彩带的类型(横向、竖向或退出),然后根据用户的输入,输出相应的彩带。然后再次要求用户选择彩带类型或退出程序。 2)控制台中输出彩带的程序:根据用户的输入选择来输出两种横向和竖向两种彩带形式果: 设计一个能够在控制台窗口中输出彩带的程序,要求实现的功能包括:根据用户的输入选择来输出两种横向和竖向两种彩带形式。 水平彩带 竖直彩带 三、程序清单 #include iostream.h #include windows.h void SetColor(unsigned short ,unsigned short ); void sp_color(); void sz_color(); //对被调函数的声明 void main() { int a=1,b; for(;a!=0;) { SetColor(15,0); cout请选择要输入的彩带类型:(0:水平彩带,1:垂直彩带,其他:退出); cinb; if(b==0) sp_color(); else if(b==1) sz_color(); else a=0; } } //主函数 void SetColor(unsigned short ForeColor=7,unsigned short BackGroundColor=0) { HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,ForeColor+BackGroundColor*0x10); } //将GetStdHandle函数SetConsoleTextAttribute函数调用封装到SetColor函数中 void sp_color() { int i,j; for(i=0;i25;i++) { SetColor(15,i); for(j=0;j39;j++) cout flush; coutendl; } } //水平彩带的输出 void sz_color() { int i,j,k=0; for(i=0;i25;i++) { for(j=0;j38;j++) { if(k16) { SetColor(15,k); cout flush; } else { k=0; SetColor(15,k); cout flush; } k++; } k=0; coutendl; } } //竖直彩带的输出 四、对该设计题目有何更完善的方案 1

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档