1、VC课程设计彩带输出河北工业大学计算机软件技术基础(VC)课程设计报告学院 电气与自动化 班级 电气082班 姓名 张 _ 学号 _080753_ 成绩 _ _一、题目:在控制台窗口中输出彩带(21)二、设计思路:1、总体设计1 程序的功能:该程序能够在控制台窗口中根据用户的输入选择输出不同颜色条纹的彩带,包括横条、竖条、花面、乱条、左斜条、右斜条、心、作者、鸣谢等等。内容丰富,赏心悦目。2 总体结构:该程序由八个文件组成,包括 main.cpp cx.cpp cs1-2.cpp cs3-4.cpp cs5-6.cpp cs7-8.cpp cs9.cpp还有一个头文件 h.h 。其中main.
2、cpp是主要函数,主要用于和用户的交流、确定所要执行的任务等等;h.h头文件中声明了所有的子函数。并被包含在不同的cpp文件中。cx.cpp文件中包含了整个程序应用所需要的颜色修改函数以及随即颜色修改函数,是整个程序应用的函数基础。cs1-2.cpp cs3-4.cpp cs5-6.cpp cs7-8.cpp cs9.cpp文件中包含了八个应用函数,主要用于生成各种颜色图案。输入Main.cpp 应用函数2、各功能模块的设计各个应用函数均是通过函数定义与调用完成与主函数的连接,通过h.h头文件将所有的函数用用板块连接为一个整体。各种应用函数所控制的彩带的形成是通过对每个字符的前景色和后景色进行
3、修改以达到整体输出为想要的图形来实现的,可以添加time.h来实现颜色的随机输出。3、设计中的主要困难及解决方案在程序的设计中遇到了一下几个问题: 如何形成彩带。 如何使整体彩带的输出达到想要的图案。 如何是不同的源文件连接为一个整体。 形成的图案并不理想。以下是解决方案: 彩带的形成需要调用两个Windows操作系统的API函数。GetStdHandle函数用来获得当前控制台的句柄,用SetConsoleTextAttribute函数来改变选中控制台的颜色控制。这两个函数的声明存在于文件中。通过调用SetColor函数达到对颜色的修改,再通过前后背景色的输出形成彩带。 彩带的形成进而引起对图
4、案的探索,通过对每个字符的修改,可以是每个字符形成想要的颜色,进而在整体上形成一个图案。 将各个函数声明放在h.h头文件中,再将头文件添加到main.cpp函数的引用中,既可以提达到不同等级之间的函数的连接。使各个函数形成一个整体。 由于整个控制台能够显示25行80列的字符,即相当于一共有25*80的像素,所以在一些要求细节的图案上无法达到满意的效果。4、设计的程序最终应该能完成的功能:设计的程序理论上能完成一些基本彩带的形成,还能完成各种图案的形成。比如一幅房子图案,桌子等等。程序设计并编辑好后所具有的功能:能正常的输出彩带,并能输出简单图案。准备的测试数据及运行结果:测试数据:1(横条)测
5、试数据:2(竖条)测试数据:3(花面)测试数据:4(乱条)测试数据:5(左斜条)测试数据:6(右斜条)测试数据:7(心)测试数据:8(作者)测试数据:9(鸣谢)三、程序清单:本程序包含main.cpp、cx.cpp、cs1-2.cpp、cs3-4.cpp、cs5-6.cpp、cs7-8.cpp、cs9.cpp和h.h八个文件,以下是各个文件的数据清单: main.cpp文件清单:#include#include/修改色彩所需要#includeh.hvoid main() for(int i=1;i+)/无限循环,多次操作 SetColor(15,0);/修改下面显示的文字的背景色为黑色 cou
6、tendl; couts; switch(s) case 1: c1();break;/通过switch case语句实现以下几种不同选择的操作 case 2: c2();break; case 3: c3();break; case 4: c4();break; case 5: c5();break; case 6: c6();break; case 7: c7();break; case 8: c8();break; default:c9(); /应用default使得“谢谢指导”多次出现 cx.cpp文件清单:#include#include#include/修改色彩所需要void Se
7、tColor(unsigned short ForeColor=7,unsigned short BackGroundColor=0)/引进色彩修改所在的封装函数,实现对颜色的修改目的 HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,ForeColor+BackGroundColor*0x10);void q1(int n,int m)/应用函数,输出黑色色条 for(int i=n;im;i+) SetColor(15,0);/修改为黑色背景色 cout flush; void q2(int
8、n,int m)/应用函数,输出随机色条 for(int i=n;im;i+) SetColor(rand()%14+1,rand()%14+1);/随机输出色条 coutoflush; void q3(int n,int m)/应用函数,输出随机色条 for(int i=n;im;i+) SetColor(rand()%14+1,rand()%14+1);/随机输出色条 cout flush; cs1-2.cpp文件清单:#include#include#include#includeh.hvoid c1() /第一个函数,控制横条输出 coutendl; for(int i=2;i22;i
9、+) SetColor(15,rand()%14+1); /修改前、背景色,输出不同彩带 cout 我 爱 V C + + flush; coutendl; void c2() /第二个函数,控制竖条输出 coutendl; for(int j=1;j22;j+) /确定输出的行数 for(int i=1;i40;i+) /修改背景色、前景色,输出不同色带 SetColor(i,i); /修改背景色、前景色,输出不同色带 cout flush; /运用flush进行强行刷新 coutendl; cs3-4.cpp文件清单:#include#include#include#includeh.hv
10、oid c3()/第三个函数,控制花面的输出 /coutendl; for(int j=1;j12;j+) for(int i=1;i80;i+)/修改背景色、前景色,输出不同色带 SetColor(i-1,rand()%14+1);/修改背景色、前景色,输出不同色带 cout flush; coutendl; void c4()/第四个函数,控制乱条的输出 for(int i=4;i13;i+=2) SetColor(i-1,i);/修改背景色、前景色,输出不同色带 cout flushendl; cout flushendl; cout flushendl; for(int j=1;j=3
11、9;j+)/修改背景色、前景色,输出不同色带 SetColor(j-1,rand()%14+1); coutxxflush; coutendl; cs5-6.cpp文件清单:#include#include#include#includeh.hvoid c5()/第五个函数,控制左斜条的输出 coutendl; for(int i=1;i20;i+) SetColor(15,0);/修改为黑色背景颜色 cout flush; SetColor(i,i);/修改色调颜色 cout flush; coutendl; coutendl;void c6()/第六个函数,控制右斜条的输出 coutend
12、l; for(int i=2;i21;i+) SetColor(i-4,i);/修改色调颜色 coutH Hflush; SetColor(15,0); cout flush; coutendl; cs7-8.cpp文件清单:#include#include#includeh.h#include/修改色彩所需要void q1(int,int);void q2(int,int);void q3(int,int);void c7()/第七个函数,控制“心”的输出 coutendl;coutendl;coutendl;/通过对每个色条的颜色控制,得到想要的图案 srand(time(0); q1(1
13、,30);q2(30,32);q1(32,50);q2(50,52);q1(52,56);q2(56,58); coutendl; q1(1,27);q2(27,28);q1(28,34);q2(34,35);q1(35,47);q2(47,48);q1(48,54);q2(54,55);q1(55,60);q2(60,61);coutendl; q1(1,25);q2(25,26);q1(26,36);q2(36,37);q1(37,45);q2(45,46);q1(46,56);q2(56,57);q1(57,62);q2(62,63);coutendl; q1(1,23);q2(23,2
14、4);q1(24,38);q2(38,39);q1(39,43);q2(43,44);q1(44,58);q2(58,59);q1(59,63);q2(63,64);coutendl; q1(1,22);q2(22,23);q1(23,40);q2(40,41);q1(41,41);q2(41,42);q1(42,59);q2(59,60);q1(60,64);q2(64,65);coutendl; q1(1,22);q2(22,23);q1(23,59);q2(59,60);q1(60,64);q2(64,65);coutendl; q1(1,23);q2(23,24);q1(24,58);
15、q2(58,59);q1(59,64);q2(64,65);coutendl; q1(1,25);q2(25,26);q1(26,56);q2(56,57);q1(57,63);q2(63,64);coutendl; q1(1,27);q2(27,28);q1(28,54);q2(54,55);q1(54,61);q2(61,62);coutendl; q1(1,29);q2(29,30);q1(30,52);q2(52,53);q1(52,59);q2(59,60);coutendl; q1(1,31);q2(31,32);q1(32,50);q2(50,51);q1(51,57);q2(5
16、7,58);coutendl; q1(1,33);q2(33,34);q1(34,48);q2(48,49);q1(49,55);q2(55,56);coutendl; q1(1,35);q2(35,36);q1(36,46);q2(46,47);q1(47,53);q2(53,54);coutendl; q1(1,37);q2(37,38);q1(38,44);q2(44,45);q1(45,51);q2(51,52);coutendl; q1(1,39);q2(39,40);q1(40,42);q2(42,43);q1(43,45);q2(45,46);q1(46,49);q2(49,50
17、);coutendl; q1(1,40);q2(40,42);q1(42,47);q2(47,48);coutendl;coutendl;void c8()/第八个函数,控制“作者”的输出 coutendl; q1(1,30);q3(30,31);q1(31,50);q2(50,51);/通过对每个色条的颜色控制,得到想要的图案coutendl; q1(1,30);q3(30,31);q1(31,50);q2(50,51);coutendl; q1(1,10);q3(10,70);coutendl; q1(1,30);q3(30,31);q1(31,50);q3(50,51);coutendl
18、; q1(1,30);q3(30,31);q1(31,50);q3(50,51);coutendl; q1(1,30);q3(30,51);coutendl;q1(1,40);q3(40,41);coutendl; q1(1,40);q3(40,41);coutendl;q1(1,20);q3(20,61);coutendl; q1(1,20);q2(20,21);q1(21,40);q2(40,41);q1(41,60);q2(60,61);coutendl; q1(1,20);q3(20,21);q1(21,40);q3(40,41);q1(41,60);q3(60,61);coutend
19、l; q1(1,20);q3(20,21);q1(21,40);q3(40,41);q1(41,60);q3(60,61);coutendl; q1(1,20);q3(20,21);q1(21,40);q3(40,41);q1(41,60);q3(60,61); coutendl; q1(1,20);q3(20,21);q1(21,40);q2(40,41);q1(41,60);q2(60,61); coutendl; q1(1,20);q3(20,61); coutendl; q1(1,40);q3(40,41); coutendl; q1(1,40);q3(40,41); coutendl
20、; q1(1,5);q3(5,75); coutendl; q1(1,40);q3(40,41); coutendl; q1(1,40);q3(40,41); SetColor(12,0); coutendl; cout电气082班 张永革 080753;coutendl; cs9.cpp文件清单:#include#include#include#includeh.hvoid c9() for(int i=1;i=10;i+)/多次输出换行,制造空白画面 coutendl; SetColor(13,0);/修改字体颜色 cout 谢 谢 指 导; for(i=1;i=11;i+)/多次输出换行
21、,制造空白画面 coutendl; h.h文件清单:void SetColor(unsigned short ForeColor=7,unsigned short BackGroundColor=0);void c1();void c2();void c3();void c4();void c5();void c6();void c7();void c8();void c9();void q1();void q2();void q3();四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价。该程序能够正常运行,而且在画面的细节处理上争取做到最好,能过根据要求或者设定输出比较满意的彩带、图案,比较完美的完成了课程设计创新部分的要求。2、对课题提出更完善的方案可以再添加对文字大小、字形修改内容一项,使得彩带和字体通过形状、颜色结合完美的展现画面的美感。五、收获及心得体会这次课程设计让我看到了VC+的强大和自己所掌握的知识的匮乏,不过我还是学到了一些知识,在颜色修改方面、多个.cpp文件的建立与连接等等。我还是学习之中复习了以前的知识,并且有了更深的理解。报告人:张永革2009年 6 月 18 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1