VC课程设计彩带输出.docx
《VC课程设计彩带输出.docx》由会员分享,可在线阅读,更多相关《VC课程设计彩带输出.docx(18页珍藏版)》请在冰豆网上搜索。
![VC课程设计彩带输出.docx](https://file1.bdocx.com/fileroot1/2023-2/22/cdb32ca3-5fa9-4add-8a37-3c2a66cea737/cdb32ca3-5fa9-4add-8a37-3c2a66cea7371.gif)
VC课程设计彩带输出
河北工业大学计算机软件技术基础(VC)课程设计报告
学院电气与自动化班级电气082班姓名张
__学号_080753___成绩______
一、题目:
在控制台窗口中输出彩带(21)
二、设计思路:
1、总体设计
1程序的功能:
该程序能够在控制台窗口中根据用户的输入选择输出不同颜色条纹的彩带,包括横条、竖条、花面、乱条、左斜条、右斜条、心、作者、鸣谢等等。
内容丰富,赏心悦目。
2总体结构:
该程序由八个文件组成,包括main.cppcx.cppcs1-2.cppcs3-4.cppcs5-6.cppcs7-8.cppcs9.cpp还有一个头文件h.h。
其中main.cpp是主要函数,主要用于和用户的交流、确定所要执行的任务等等;h.h头文件中声明了所有的子函数。
并被包含在不同的cpp文件中。
cx.cpp文件中包含了整个程序应用所需要的颜色修改函数以及随即颜色修改函数,是整个程序应用的函数基础。
cs1-2.cppcs3-4.cppcs5-6.cppcs7-8.cppcs9.cpp文件中包含了八个应用函数,主要用于生成各种颜色图案。
输入
Main.cpp应用函数
2、各功能模块的设计
各个应用函数均是通过函数定义与调用完成与主函数的连接,通过h.h头文件将所有的函数用用板块连接为一个整体。
各种应用函数所控制的彩带的形成是通过对每个字符的前景色和后景色进行修改以达到整体输出为想要的图形来实现的,可以添加time.h来实现颜色的随机输出。
3、设计中的主要困难及解决方案
①在程序的设计中遇到了一下几个问题:
●如何形成彩带。
●如何使整体彩带的输出达到想要的图案。
●如何是不同的源文件连接为一个整体。
●形成的图案并不理想。
②以下是解决方案:
●彩带的形成需要调用两个Windows操作系统的API函数。
GetStdHandle函数用来获得当前控制台的句柄,用SetConsoleTextAttribute函数来改变选中控制台的颜色控制。
这两个函数的声明存在于文件中。
通过调用SetColor函数达到对颜色的修改,再通过前后背景色的输出形成彩带。
●彩带的形成进而引起对图案的探索,通过对每个字符的修改,可以是每个字符形成想要的颜色,进而在整体上形成一个图案。
●将各个函数声明放在h.h头文件中,再将头文件添加到main.cpp函数的引用中,既可以提达到不同等级之间的函数的连接。
使各个函数形成一个整体。
●由于整个控制台能够显示25行80列的字符,即相当于一共有25*80的像素,所以在一些要求细节的图案上无法达到满意的效果。
4、设计的程序最终应该能完成的功能:
设计的程序理论上能完成一些基本彩带的形成,还能完成各种图案的形成。
比如一幅房子图案,桌子等等。
①程序设计并编辑好后所具有的功能:
能正常的输出彩带,并能输出简单图案。
②准备的测试数据及运行结果:
测试数据:
1(横条)
测试数据:
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//修改色彩所需要
#include"h.h"
voidmain()
{
for(inti=1;;i++)//无限循环,多次操作
{
SetColor(15,0);//修改下面显示的文字的背景色为黑色
cout<cout<<"请输入你想要的彩带类型(1横条2竖条3花面4乱条5左斜条6右斜条7心8作者9鸣谢):
";//操作提示
ints;
cin>>s;
switch(s)
{
case1:
c1();break;//通过switchcase语句实现以下几种不同选择的操作
case2:
c2();break;
case3:
c3();break;
case4:
c4();break;
case5:
c5();break;
case6:
c6();break;
case7:
c7();break;
case8:
c8();break;
default:
c9();//应用default使得“谢谢指导”多次出现
}
}
}
●cx.cpp文件清单:
#include
#include
#include//修改色彩所需要
voidSetColor(unsignedshortForeColor=7,unsignedshortBackGroundColor=0)//引进色彩修改所在的封装函数,实现对颜色的修改目的
{
HANDLEhCon=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,ForeColor+BackGroundColor*0x10);
}
voidq1(intn,intm)//应用函数,输出黑色色条
{
for(inti=n;i{
SetColor(15,0);//修改为黑色背景色
cout<<""<}
}
voidq2(intn,intm)//应用函数,输出随机色条
{
for(inti=n;i{
SetColor(rand()%14+1,rand()%14+1);//随机输出色条
cout<<"o"<}
}
voidq3(intn,intm)//应用函数,输出随机色条
{
for(inti=n;i{
SetColor(rand()%14+1,rand()%14+1);//随机输出色条
cout<<""<}
}
●cs1-2.cpp文件清单:
#include
#include
#include
#include"h.h"
voidc1()//第一个函数,控制横条输出
{
cout<for(inti=2;i<22;i++)
{
SetColor(15,rand()%14+1);//修改前、背景色,输出不同彩带
cout<<"我爱VC++"<cout<}
}
voidc2()//第二个函数,控制竖条输出
{
cout<for(intj=1;j<22;j++)//确定输出的行数
{
for(inti=1;i<40;i++)//修改背景色、前景色,输出不同色带
{
SetColor(i,i);//修改背景色、前景色,输出不同色带
cout<<""<}
cout<}
}
●cs3-4.cpp文件清单:
#include
#include
#include
#include"h.h"
voidc3()//第三个函数,控制花面的输出
{
//cout<for(intj=1;j<12;j++)
{
for(inti=1;i<80;i++)//修改背景色、前景色,输出不同色带
{
SetColor(i-1,rand()%14+1);//修改背景色、前景色,输出不同色带
cout<<""<}
cout<}
}
voidc4()//第四个函数,控制乱条的输出
{
for(inti=4;i<13;i+=2)
{
SetColor(i-1,i);//修改背景色、前景色,输出不同色带
cout<<""<cout<<""<cout<<""<for(intj=1;j<=39;j++)//修改背景色、前景色,输出不同色带
{
SetColor(j-1,rand()%14+1);
cout<<"xx"<}
cout<}
}
●cs5-6.cpp文件清单:
#include
#include
#include
#include"h.h"
voidc5()//第五个函数,控制左斜条的输出
{
cout<for(inti=1;i<20;i++)
{
SetColor(15,0);//修改为黑色背景颜色
cout<<""<SetColor(i,i);//修改色调颜色
cout<<""<}
cout<}
voidc6()//第六个函数,控制右斜条的输出
{
cout<for(inti=2;i<21;i++)
{
SetColor(i-4,i);//修改色调颜色
cout<<"HH"<SetColor(15,0);
cout<<""<}
cout<}
●cs7-8.cpp文件清单:
#include
#include
#include"h.h"
#include//修改色彩所需要
voidq1(int,int);
voidq2(int,int);
voidq3(int,int);
voidc7()//第七个函数,控制“心”的输出
{
cout<srand(time(0));
q1(1,30);q2(30,32);q1(32,50);q2(50,52);q1(52,56);q2(56,58);cout<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);cout<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);cout<q1(1,23);q2(23,24);q1(24,38);q2(38,39);q1(39,43);q2(43,44);q1(44,58);q2(58,59);q1(59,63);q2(63,64);cout<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);cout<q1(1,22);q2(22,23);q1(23,59);q2(59,60);q1(60,64);q2(64,65);cout<q1(1,23);q2(23,24);q1(24,58);q2(58,59);q1(59,64);q2(64,65);cout<q1(1,25);q2(25,26);q1(26,56);q2(56,57);q1(57,63);q2(63,64);cout<q1(1,27);q2(27,28);q1(28,54);q2(54,55);q1(54,61);q2(61,62);cout<q1(1,29);q2(29,30);q1(30,52);q2(52,53);q1(52,59);q2(59,60);cout<q1(1,31);q2(31,32);q1(32,50);q2(50,51);q1(51,57);q2(57,58);cout<q1(1,33);q2(33,34);q1(34,48);q2(48,49);q1(49,55);q2(55,56);cout<q1(1,35);q2(35,36);q1(36,46);q2(46,47);q1(47,53);q2(53,54);cout<q1(1,37);q2(37,38);q1(38,44);q2(44,45);q1(45,51);q2(51,52);cout<q1(1,39);q2(39,40);q1(40,42);q2(42,43);q1(43,45);q2(45,46);
q1(46,49);q2(49,50);cout<q1(1,40);q2(40,42);q1(42,47);q2(47,48);cout<}
voidc8()//第八个函数,控制“作者”的输出
{
cout<q1(1,30);q3(30,31);q1(31,50);q2(50,51);//通过对每个色条的颜色控制,得到想要的图案cout<q1(1,10);q3(10,70);cout<q1(1,30);q3(30,31);q1(31,50);q3(50,51);cout<q1(1,30);q3(30,31);q1(31,50);q3(50,51);cout<q1(1,30);q3(30,51);cout<q1(1,40);q3(40,41);cout<q1(1,20);q2(20,21);q1(21,40);q2(40,41);q1(41,60);q2(60,61);cout<q1(1,20);q3(20,21);q1(21,40);q3(40,41);q1(41,60);q3(60,61);cout<q1(1,20);q3(20,21);q1(21,40);q3(40,41);q1(41,60);q3(60,61);cout<q1(1,20);q3(20,21);q1(21,40);q3(40,41);q1(41,60);q3(60,61);cout<q1(1,20);q3(20,21);q1(21,40);q2(40,41);q1(41,60);q2(60,61);cout<q1(1,20);q3(20,61);cout<q1(1,40);q3(40,41);cout<q1(1,40);q3(40,41);cout<q1(1,5);q3(5,75);cout<q1(1,40);q3(40,41);cout<q1(1,40);q3(40,41);
SetColor(12,0);
cout<cout<<"电气082班张永革080753";cout<}
●cs9.cpp文件清单:
#include
#include
#include
#include"h.h"
voidc9()
{
for(inti=1;i<=10;i++)//多次输出换行,制造空白画面
cout<SetColor(13,0);//修改字体颜色
cout<<"谢谢指导";
for(i=1;i<=11;i++)//多次输出换行,制造空白画面
cout<}
●h.h文件清单:
voidSetColor(unsignedshortForeColor=7,unsignedshortBackGroundColor=0);
voidc1();voidc2();voidc3();voidc4();voidc5();voidc6();voidc7();
voidc8();voidc9();voidq1();voidq2();voidq3();
四、对该设计题目有何更完善的方案
1、对自己完成程序进行自我评价。
该程序能够正常运行,而且在画面的细节处理上争取做到最好,能过根据要求或者设定输出比较满意的彩带、图案,比较完美的完成了课程设计创新部分的要求。
2、对课题提出更完善的方案
可以再添加对文字大小、字形修改内容一项,使得彩带和字体通过形状、颜色结合完美的展现画面的美感。
五、收获及心得体会
这次课程设计让我看到了VC++的强大和自己所掌握的知识的匮乏,不过我还是学到了一些知识,在颜色修改方面、多个.cpp文件的建立与连接等等。
我还是学习之中复习了以前的知识,并且有了更深的理解。
报告人:
张永革
2009年6月18日