主题:C/C++精华帖合订本(资料截止到2004年1月1日)
yaozheng
[专家分:28410] 发布于 2004-10-12 23:32:00
为了便于大家查阅以前的帖子,今后论坛会不定期的将论坛帖子以合订本的方式供大家下载阅读。
C/C++精华帖合订本(资料截止到2004年1月1日)
下载地址:[url=http://www.programfan.com/club/down/C040101.chm]http://www.programfan.com/club/down/C040101.chm[/url]
98 楼
ylg9988 [专家分:0] 发布于 2005-05-27 14:29:00
请问各位高手:如何把DOS下 TC20画出的图形输出到打印机?
我有一个程序,可以把几十个点连在一起画出一条折线,
可我不知道如何把这条折线在打印机中打印出来.
我的打印机有两个,一个是HP6L, 一个是HP1100. 都是黑白激光打印机.
/**************************************************/
/* F5 */
/**************************************************/
Draw_theard(void)
{
int gdriver=DETECT,gmode,rag,lk=10,lx=119+(20-lk)*6; /* 10 179 20 119 */
float aa,xb;
int stop_d,s_i,bk_color=1,text_color=7;
char ss[100];
float x_avg,s_sqr,s_jfg;
xb=639/pw_x[0];
time_f=0;
clear();
initgraph(&gdriver,&gmode," ");
redw:;
setbkcolor(bk_color);
setcolor(text_color);
sprintf(ss," PCLS-818L 4.2 BeiFangTongXin Antenna Test Program ");
outtextxy(25,35,ss);
sprintf(ss,"哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?);
outtextxy(10,50,ss);
sprintf(ss,"The filename is: [%s] ",File);
outtextxy(35,435,ss);
for(ii=r;ii>=0;ii-=20)
line(639*ii/r,239,639*ii/r,239+10);
i=(int)r;
for(ii=r-100;ii>=0;ii-=100)
{ line(639*ii/r,239,639*ii/r,239+20);
sprintf(ss,"%2.0f",ii/10.0);
outtextxy(639*ii/r-10,239+30,ss);
}
sprintf(ss,"%2.0f",r/10.0);
outtextxy(615,239+30,ss);
setlinestyle(1,0,1);
lk=10,lx=119+(20-lk)*6;
/* 上 */
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
/* 下 */
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
moveto(0,lx+=lk); lineto(639,lx);
moveto(639,239);
setlinestyle(0,0,1);
/* 中线 */
/*
goto_xy(5,10);printf("k=%d ",arr_max);getch();
for(s_i=2;s_i<=arr_max;s_i+=2)
{ sprintf(ss,"%d",s_i);
outtextxy(639-639/arr_max*s_i,239-70,ss);
}
*/
moveto(0,239); lineto(639,239);
for(i=0;i<DA_NUM;i++)
{
if (kbhit()!=0 && (read_char()==27)) break;
if (pw_x[i]<=10) break;
lineto(pw_x[i]*xb,239+data_1[da_fst][i]*(float)lk);
}
char_v=read_char();
if (scan_v==75) {if (bk_color<16) bk_color++; goto redw;}
if (scan_v==77) {if (bk_color>-1) bk_color--; goto redw;}
if (scan_v==72) {if (text_color<16) text_color++; goto redw;}
if (scan_v==80) {if (text_color>-1) text_color--; goto redw;}
closegraph();
textbackground(CYAN);
clrscr();
textcolor(YELLOW);
goto_xy(1,1);
cputs("PCLS-818L 4.2 北 方 通 信 集 团 数 据 采 集 系 统 ");
textcolor(BROWN);
goto_xy(2,1);
cputs("哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪腬n");
textcolor(WHITE);
goto_xy(3,22); cputs("抛 物 线 数 据 统 计 窗 口\0");
draw_border_y(5,4,21,75,0x1f);
goto_xy(7,8); printf("本项功能用于计算样本方差和样本标准差!");
in_d:
goto_xy(9,8);
printf("请输入截止点数(5<X<%d):",arr_max);
r_flag=0;
ret=read_any(ss,4,"1234567890","");
if (ret==27) goto endd;
stop_d=atoi(ss);
if(stop_d>arr_max) goto in_d;
{ goto_xy(10,8);printf("所输入的截止点数是: %-d",stop_d);
read_char();
if (stop_d==0) goto endd;
if (stop_d<=5)
{ goto_xy(10,8);printf(" ");goto in_d;}
}
x_avg=0;
for(i=1;i<stop_d;i++)
{x_avg=x_avg+data_1[da_fst][i];}
x_avg=x_avg/(float)stop_d;
goto_xy(11,8);printf("样本平均值为: %-4.3f",x_avg);
read_char();
s_sqr=0;
for(i=0;i<stop_d;i++)
s_sqr=s_sqr+data_1[da_fst][i]*data_1[da_fst][i];
s_sqr=s_sqr/(float)stop_d-x_avg*x_avg;
goto_xy(12,8);printf("样本方差为: %-4.3f",s_sqr);
if(s_sqr>0){ goto_xy(13,8);printf("样本标准差为: %-4.3f",sqrt(s_sqr));}
s_jfg=0;
for(i=1;i<stop_d;i++)
s_jfg=s_jfg+(data_1[da_fst][i]-x_avg)*(data_1[da_fst][i]-x_avg);
s_jfg=s_jfg/(float)(stop_d-2);
s_jfg=sqrt(s_jfg);
goto_xy(14,8);printf("样本均方根为: %-4.3f",s_jfg);
read_char();
endd:;
time_f=1;
drawscreen();
}