1
实验十  图形程序设计 
一、实验目的 
掌握C语言图形程序设计的基本思想、方法和技巧。结合所学知识,编写C
语言综合应用程序。 
二、实验要求 
1. 掌握文本窗口的定义、颜色的设置及屏幕的操作,窗口内文本的输入和
输出。 
2. 掌握在C程序中进行图形绘制的基本过程和方法。 
3. 能够编写C语言综合应用程序。 
4. 编写实验报告(十)。 
三、实验内容 
10-1  程序S10-1.C定义屏幕为彩色80列,打开一个绿边蓝底的窗口,通过窗
口提示从键盘上输入5个学生的英语、数学、物理、化学、计算机5科成
绩,并将输入的5个学生的成绩保存到文件S10-1.DAT文件中。阅读、分
析、并运行程序。 
                                          源程序S10-1.C                              
# include "stdio.h" 
# include "conio.h" 
void main() 
{ int i,j,s,k,n,m[5]; 
  FILE *fp; 
  textmode (C80); 
  window (18, 7, 62, 18); 
  clrscr ( ); 
  textbackground(2); 
  textcolor (14); 
  for (i=7; i<=18; i=i+1) 
     for (j=18; j<=62;j=j+1) 
        cputs ("  "); 
  window (20, 8, 60, 17) ; 
  textbackground (1); 
  textcolor (14); 
  for (i=8; j<=17; j=i+1) 
     for (j=20; j<=60; j=j+1) 
 2
       cputs ("  "); 
  if ((fp=fopen ("11-1.DAT", "w"))!=NULL) 
     { k=0; 
       for (n=0; n<5; n=n+1) 
  { clrscr ( ); 
    gotoxy (12,2); 
    printf("*****%d*****\n",n+1); 
    gotoxy (3,4); 
    cputs ("English: \n"); 
    gotoxy (30,4); 
    scanf ("%d", &m[0]); 
    gotoxy (3,5); 
    cputs ("maths: \n"); 
    gotoxy (30,5); 
    scanf ("%d", &m[1]); 
    gotoxy (3,6); 
    cputs ("physics: \n"); 
    gotoxy (30,6); 
    scanf ("%d", &m[2]); 
    gotoxy (3,7); 
    cputs ("chemistry: \n"); 
    gotoxy (30,7); 
    scanf ("%d", &m[3]); 
    gotoxy (3,8); 
    cputs ("Computer: \n"); 
    gotoxy (30,8); 
    scanf("%d", &m[4]); 
    fprintf(fp, "%d, %d, %d, %d, %d \n", m[0],m[1],m[2],m[3],m[4]); 
 } 
       fclose (fp); 
       gotoxy (3,9); 
       cputs ("File ok!"); 
       getch(); 
    } 
  else 
     gotoxy (3,9); 
} 
10-2  编写图形程序S10-2.C,画16个矩形,每个矩形用一种颜色,并把颜色号
 3
作为文字写入矩形中,运行并观察程序的效果。 
10-3   编写程序S10-3.C,画一个椭圆,用指定格式填充。 
10-4  运行程序S10-4.C,可以看到“Hello!”由小到大逐渐推向屏幕中央。读程序,
并自己编写一个有动画效果的图形程序来。 
                                          源程序S10-4.C                             
#include<graphics.h> 
#include<stdio.h> 
main() 
{  int i,t,x=300,y=50; 
int gd=DETECT,gm=0; 
initgraph(&gd,&gm,"d:\\tc"); 
setbkcolor(3); 
setcolor(4); 
printf("Input delay time(1-10)"); 
scanf("%d",&t); 
for(i=0;i<=10;i++) 
     { x=x-15; 
       y=y+15; 
       settextstyle(1,0,i); 
       cleardevice(); 
       outtextxy(x,y,"Hello!"); 
       delay(100*t); 
       } 
getch(); 
closegraph(); 
} 
*10-5  编写程序S10-5.C,模拟用户注册和登录的过程。改写S9-7.C,使其具有
较好的图形界面。 
 

