首页 > 精品范文库 > 1号文库
C语言程序设计实习报告
编辑:琴心剑胆 识别码:10-969883 1号文库 发布时间: 2024-04-21 09:44:45 来源:网络

第一篇:C语言程序设计实习报告

实习报告

目: C语言程序设计 所属系、部 : 电气工程学院 班

级: 电子商务131 姓

名:

贺道君 学

号: 20***5 指 导 教 师: 费 玲 玲

202_年6月

一、实习目的

加深理解C语言基础知识及其编程技术,了解高级程序设计语言的结构,熟练掌握程序设计方法和技巧,掌握基本的分析和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。

二、实习时间、地点

6月16日(星期一)上午:微机室5

下午:微机室5

6月17日(星期二)

3、4:微机室5

下午:微机室3

6月18日(星期三)上午:微机室5

下午:学校

6月19日(星期四)上午:微机室5

下午:微机室3

6月20日(星期五)上午:C101

下午:学校

三、实习内容

综合

四、实习总结

在学C语言的一个学期后,我们进行了C语言实训阶段,尝试自己编写一个比较复杂的程序系统。在为期一周周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,自然感触良多

刚开始接触到C的时候,我已经学过一些有关VB的内容,这个在算法和思维上稍微有点帮助。回想本学期的学习,首先,最基本的,是C的数据格式,让我们知道整数,浮点数以及字符常量在C中的运用。然后,在学会了数据转化,以及熟练的可以对各种数据处理之后,我开始进行有关数据结构,像数组,结构体等的学习,因为有的东西从现有的知识来看都是非常简单的,还没有联系到指针等等一些复杂的概念。可是,仅仅学会这些是远远不够的,C语言中,还有很多更加经典、重要、实用的知识。

说说函数。虽说很多程序语言都有函数这一内容,但我觉得C语言的函数是最有魅力的了。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,学习C语言的“高人”都说,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。比如,大家可以作一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话,30句都很难实现,可想而知函数的实用和快捷。在我们C语言实训的代码中,函数更是得到了充分的应用,可以说,实训题目的复杂代码,就是用无数个函数的调用和嵌套积累出来的。要注意的是,有的同学刚刚开始的时候,都是被一些大的程序激励的,所以当开始的时候看到繁琐的数据转化和简单的算法,都觉得很无聊,都想自己做几个自己满意的程序来看看,虽然这种想法很好,但是,我们说,没有基础,纯粹是搬照一些现成设计方法,是不足取的。要知道,程序设计讲究的是个人的思维的,假如刚开始就被一些现成的思想束缚住,以后就会觉得很无趣。

我们知道,指针其实是C语言的灵魂,许多的数据结构在我们学到这里之前都可以说是精通了。所以我们的任务就是,让数据结构在指针中运行。当然,刚刚开始接触到这些新的东西,是一件非常痛苦的事情,所以我们一定要用非常形象的思维去看待指针,不能太固化。所以,新的东西,比如结构体在指针中的表现方法,数组及多维数组在结构体中的运用,都一点一点的加了进来,同时丰满了我们对原来C的数据机构,数据表示的理解。当我们完成了这三步的学习,我们已经可以自豪的说,我们的基础都扎实了,可以进一步的学习有关算法,设计概念等等深层次的东西了。

但是,指针,结构体,这些太抽象的东西,在学习C语言的时候我们就有点“似懂非懂”,可是在眼下的C语言实训中,像这么重要的C语言知识,一定要达到能熟练掌握,实际运用的程度。在实训的大程序中,结构体在指针中的表现方法,数组及在结构体中的运用等具体的技术环节,都得到了体现,不会指针,我们的工作是没法展开的。所以,在实训期间,大家在巩固基本知识的基础上,逐块攻克实训课题,克服了困难,自信心得到了提高。

最后,谈谈我们组的程序软件。商店商品管理系统,是一个比较利于应用,解决实际问题,方便实际管理的程序。设计代码比较复杂,结构比较严谨。在程序编写的1周左右的时间里,组员们遇到了上述的困难,包括程序设计构思,甚至是指针等某些知识点的欠缺,导致的工作中出现的困难。但是,当大家一起团结协作,解决了这些困难之后,发现自己也可以编写复杂的、应用性的程序了,更发现自己对C语言这门学科的兴趣也提高了。

当然,我们编写的商店商品管理系统,还存在很多疏漏和不合理之处。比如,程序复杂冗长,如果时间充裕,我们将在不改变程序运行结果的基础上,简化程序,使每一句更加精辟,总体上更加简化。另外,在程序的外观上,我们由于时间问题,没有做更多的修饰,运行起来显得比较死板、枯燥乏味。如果增添一些色彩和其他效果,我们的程序也许会更加完美。以上就是我的C语言实训个人总结

第二篇:c语言程序设计实习报告程序

#include “stdio.h” /*定义学生结构体*/ struct Student {

char ID[20];

char Name[20];

float Mark1;/*计算机*/

float Mark2;/*英语*/

float Mark3;/*数学*/

float Zongfen;/*总分*/

float Average;};/*平均分*/ /*声明学生数组及学生数量*/ struct Student students[202_];int num=0;/*求总分*/ float Zong(struct Student stu){ return(stu.Mark1+stu.Mark2+stu.Mark3);} /*求平均值*/ float Avg(struct Student stu){return(stu.Mark1+stu.Mark2+stu.Mark3)/3;} /*通过学号返回数组下标*/ int Student_SearchByIndex(char id[]){

int i;

for(i=0;i

int i;

for(i=0;i

{if(strcmp(students[i].Name,name)==0)

{return i;}}

return-1;}

/*通过学号返回数组下标*/ int Student_SearchID(char id[]){

int i;

for(i=0;i

{if(strcmp(students[i].ID,id)==0)

{return i;}}

return-1;} /*显示单条学生记录*/ void Student_DisplaySingle(int index){printf(“%10s%10s%8s%8s%8s%8s%10sn”,“学号”,“姓名”,“计算机”,“英语”,“数学”,“总分”,“平均成绩”);printf(“------------------------------n”);printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[index].ID,students[index].Name, students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Zongfen,students[index].Average);}void Student_DisplaySingle1(int index){printf(“------------------------------n”);printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[index].ID,students[index].Name, students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Zongfen,students[index].Average);} /*插入学生信息*/ void Student_Insert(){while(1){printf(“请输入学号:”);scanf(“%s”,&students[num].ID);getchar();printf(“请输入姓名:”);scanf(“%s”,&students[num].Name);getchar();printf(“请输入计算机成绩:”);scanf(“%f”,&students[num].Mark1);getchar();printf(“请输入英语成绩:”);scanf(“%f”,&students[num].Mark2);getchar();printf(“请输入数学成绩:”);scanf(“%f”,&students[num].Mark3);getchar();

students[num].Average=Avg(students[num]);

students[num].Zongfen=Zong(students[num]);

num++;

printf(“是否继续?(y/n)”);

if(getchar()=='n'){break;} }} void exit();/*修改学生信息*/ void Student_Modify(){

float mark1,mark2,mark3;

while(1)

{

char id[20];

int index;

printf(“请输入要修改的学生的学号:”);

scanf(“%s”,&id);

getchar();

index=Student_SearchByIndex(id);

if(index==-1)

{

printf(“学生不存在!n”);

}

else

{

printf(“你要修改的学生信息为:n”);

Student_DisplaySingle(index);

printf(“--请输入新值--n”);

printf(“请输入学号:”);

scanf(“%s”,&students[index].ID);

getchar();

printf(“请输入姓名:”);

scanf(“%s”,&students[index].Name);

getchar();

printf(“请输入成绩:”);

scanf(“%f”,&students[index].Mark1);

getchar();

printf(“请输入成绩:”);

scanf(“%f”,&students[index].Mark2);

getchar();

printf(“请输入成绩:”);

scanf(“%f”,&students[index].Mark3);

getchar();

students[index].Zongfen=Zong(students[index]);

students[index].Average=Avg(students[index]);

printf(“是否继续?(y/n)”);

if(getchar()=='n')

{

break;

}

} } /*删除学生信息*/

void Student_Delete(){

int i;

while(1)

{

char id[20];

int index;

printf(“请输入要删除的学生的学号:”);

scanf(“%s”,&id);

}

getchar();

index=Student_SearchByIndex(id);

if(index==-1)

{

printf(“学生不存在!n”);

}

else

{

printf(“你要删除的学生信息为:n”);

Student_DisplaySingle(index);

printf(“是否真的要删除?(y/n)”);

if(getchar()=='y')

{

for(i=index;i

{

students[i]=students[i+1];

}

num--;

}

getchar();

}

printf(“是否继续?(y/n)”);

if(getchar()=='n')

{

break;

}

} } /*按姓名或学号查询*/ void Student_Select(){

int sel;

printf(“1--------------------按姓名查询n”);

printf(“2--------------------按学号查询n”);

scanf(“%d”,&sel);

if(sel==2){

while(1)

{

char id[20];

int index;

printf(“请输入要查询的学生的学号:”);

scanf(“%s”,&id);

getchar();

index=Student_SearchID(id);

if(index==-1)

{

printf(“学生不存在!n”);

}

else

{

printf(“你要查询的学生信息为:n”);

Student_DisplaySingle(index);

}

printf(“是否继续?(y/n)”);

if(getchar()=='n')

{

break;

}

}}else if(sel==1)

{while(1)

{

char name[20];

int index;

printf(“请输入要查询的学生的姓名:”);

scanf(“%s”,&name);

getchar();

index=Student_SearchByName(name);

if(index==-1)

{

printf(“学生不存在!n”);

}

else

{

printf(“你要查询的学生信息为:n”);

Student_DisplaySingle(index);

}

printf(“是否继续?(y/n)”);

if(getchar()=='n')

{

break;

}

}}

else printf(“信息错误!n”);} /*排序*/ void Student_SortByAverage(){

int a,sel;

printf(“1--------------------按学号排序n”);

printf(“2--------------------按姓名排序n”);

printf(“3--------------------按计算机排序n”);

printf(“4--------------------按英语排序n”);

printf(“5--------------------按数学排序n”);

printf(“6--------------------按总分排序n”);

printf(“7--------------------按平均分排序n”);

scanf(“%d”,&sel);

if(sel==1)

{int i,j;

struct Student tmp;

for(i=0;i

{

for(j=1;j

{

if(strcmp(students[j-1].ID,students[j].ID)>0)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}}

else if(sel==2)

{int i,j;

struct Student tmp;

for(i=0;i

{

for(j=1;j

{

if(strcmp(students[j-1].Name,students[j].Name)>0)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}}

else if(sel==3)

{int i,j;

struct Student tmp;

for(i=0;i

{

for(j=1;j

{

if(students[j-1].Mark1>students[j].Mark1)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}}

else if(sel==4)

{int i,j;

struct Student tmp;

for(i=0;i

{

for(j=1;j

{

if(students[j-1].Mark2>students[j].Mark2)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}}

else if(sel==5)

{int i,j;

struct Student tmp;

for(i=0;i

{

for(j=1;j

{

if(students[j-1].Mark3>students[j].Mark3)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}}

else if(sel==6)

{int i,j;

struct Student tmp;

for(i=0;i

{

for(j=1;j

{

if(students[j-1].Zongfen>students[j].Zongfen)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}}

else if(sel==7)

{int i,j;

struct Student tmp;

for(i=0;i

{

for(j=1;j

{

if(students[j-1].Average>students[j].Average)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}}

else printf(“信息错误!n”);} /*显示学生信息*/ void Student_Display(){

int i;

printf(“%10s%10s%8s%8s%8s%8s%10sn”,“学号”,“姓名”,“计算机”,“英语”,“数学”,“总分”,“平均成绩”);

printf(“------------------------------n”);

for(i=0;i

{

printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[i].ID,students[i].Name,students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Zongfen,students[i].Average);

} } /*将学生信息从文件读出*/ void IO_ReadInfo(){

FILE *fp;

int i;

if((fp=fopen(“Database.txt”,“rb”))==NULL)

{

printf(“不能打开文件!n”);

return;

}

if(fread(&num,sizeof(int),1,fp)!=1)

{

num=-1;

}

else

{

for(i=0;i

{

fread(&students[i],sizeof(struct Student),1,fp);

}

}

fclose(fp);} /*将学生信息写入文件*/ void IO_WriteInfo(){

FILE *fp;

int i;

if((fp=fopen(“Database.txt”,“wb”))==NULL)

{

printf(“不能打开文件!n”);

return;

}

if(fwrite(&num,sizeof(int),1,fp)!=1)

{

printf(“写入文件错误!n”);

}

for(i=0;i

{

if(fwrite(&students[i],sizeof(struct Student),1,fp)!=1)

{

printf(“写入文件错误!n”);

}

}

fclose(fp);} /*统计不同分数段的学生*/ void Student_TJ(){

while(1)

{

int a,sel;

float m,n;

printf(“1--------------------按计算机统计不同分数段的学生n”);

printf(“2--------------------按英语统计不同分数段的学生n”);

printf(“3--------------------按数学统计不同分数段的学生n”);

printf(“4--------------------按总分统计不同分数段的学生n”);

printf(“5--------------------按平均分统计不同分数段的学生n”);

scanf(“%d”,&sel);

printf(“输入所需查询的分数段[m,n]”);

scanf(“%f%f”,&m,&n);

printf(“%10s%10s%8s%8s%8s%8s%10sn”,“学号”,“姓名”,“计算机”,“英语”,“数学”,“总分”,“平均成绩”);

if(sel==1)

{int j;

for(j=0;j<=num;j++)

{

if(students[j].Mark1>=m&&students[j].Mark1<=n)

Student_DisplaySingle1(j);

}}

else if(sel==2)

{int j;

for(j=0;j<=num;j++)

{

if(students[j].Mark2>=m&&students[j].Mark2<=n)

Student_DisplaySingle1(j);

}}

else if(sel==3)

{int j;

for(j=0;j<=num;j++)

{

if(students[j].Mark3>=m&&students[j].Mark3<=n)

Student_DisplaySingle1(j);

}}else if(sel==4)

{int j;

for(j=0;j<=num;j++)

{

if(students[j].Zongfen>=m&&students[j].Zongfen<=n)

Student_DisplaySingle1(j);

}}else if(sel==5)

{int j;

for(j=0;j<=num;j++)

{

if(students[j].Average>=m&&students[j].Average<=n)

Student_DisplaySingle1(j);

}}

else printf(“信息错误!n”);

printf(“是否继续?(y/n)”);

a=getchar();

if(getchar()=='n'){break;} } } /*主程序*/ main(){ int choice;

IO_ReadInfo();

fflush(stdin);while(1)

{ /*主菜单*/ printf(“

~~~~~~~~~~~~~~~~~~~~~&欢迎进入学生成绩管理系统&~~~~~~~~~~~~~~~~~~~~~ n”);printf(“

*

1.输入学生记录

*n”);printf(“

*

2.添加学生记录

*n”);printf(“

*

3.修改学生记录

*n”);printf(“

*

4.删除学生记录

*n”);printf(“

*

5.按姓名或学号查询学生记录

*n”);printf(“

*

6.排序

*n”);printf(“

*

7.统计不同分数段的学生

*n”);printf(“

*

8.输出学生记录

*n”);printf(“

*

9.退出

*n”);printf(“

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ n”);printf(“

请选择(1-9):”);scanf(“%d”,&choice);getchar();switch(choice){ case 1:Student_Insert();break;case 2:Student_Insert();break;case 3:Student_Modify();break;case 4:Student_Delete();break;case 5:Student_Select();break;case 6:Student_SortByAverage();Student_Display();break;case 7:Student_TJ();break;case 8:Student_Display();break;} IO_WriteInfo();

} }

第三篇:C语言程序设计报告(精选)

C语言程序设计报告

(二)第一章:使用数组和指针统计成绩

1.设计题目:假设给定班级各科考试平均成绩的原始资料如下

数学:75 物理:80 外语:83 政治:85 体育:86 人数:30

要求统计出全班学期总平均成绩以及得分最低的科目和该科目的成绩。要求的输出结果如下:

全班各科平均成绩如下: 数学:75 物理:80 外语:83 政治:85 体育:86 人数:30 统计结果如下: 人数:30

平均成绩:81

最低分数科目的成绩:75 最低分数的科目:数学

2.设计要求

对存放原始数据的要求如下:

(1)、使用整形数组a数学、物理、外语、政治、体育、人数、平均成绩、最低科目成绩 ;

(2)、使用字符串数name存放数学、物理、外语、政治、体育、最低分数的科目

(3)、使用字符串数组MeanLow存放人数、平均成绩、最低分数科目的成绩、最低分数的科目。

实现本设计功能的方法很多,这里给出4种难易成度不同的要求,以便加深对数组和指针知识的理解。

1.使用数组实现

使用数组和指针数组实现。2..使用分配的内存实现

要求将数组a的内容存入到分配的内存中,使用指针实现对内存的存取和计算。

3.将数组内容全部存入内存

为字符分配内存,并将字符数组的内容存入所分配的内存中,使用指针来实现。

源程序:

int pingjun(int *x);int zuidi(int *x);

int kemu(int *y,int n);#include int zuidi(int *x){int t=x[0],i;for(i=0;i<5;i++){if(t>x[i])t=x[i];} return t;}

int kemu(int *y,int n){int i, t=y[0],m=0;for(i=1;i

{if(t>y[i]){t=y[i];m++;} } return m;} int pingjun(int *x){int sum=0 ,i,aver;for(i=0;i<5;i++)sum=sum+x[i];aver=sum/5;return aver;}

void main()

{int a[9]={75,80,83,85,86,30},i,x;

char *name[5]={“数学”,“物理”,“外语”,“政治”,“体育”};

char *meanlow[4]={“人数”,“平均成绩”,“最低分数科目成绩”,“最低分科目”};

printf(“原始信息如下:n”);for(i=0;i<5;i++)

printf(“%s:%dn”,name[i],a[i]);for(i=0;i<4;i++)

printf(“%s:%dn”,meanlow[i],a[i+5]);printf(“全班各科平均成绩如下:n”);for(i=0;i<5;i++)

printf(“%s:%dn”,name[i],a[i]);printf(“统计结果如下:n”);

printf(“%s:%dn”,meanlow[0],a[5]);

printf(“%s:%dn”,meanlow[1],pingjun(a));printf(“%s:%dn”,meanlow[2],zuidi(a));x=kemu(a,5);

printf(“%s:%sn”,meanlow[3],name[x]);}

第四篇:C语言程序设计上级实习报告01

2、了解C语言基本构成及结构

3、简单的C程序

二、实验环境

(调试程序所使用的软硬件环境)

清华同光台式机

Windows xp

三、实验内容、结果及分析

第一章:1.5,1.6,1.71、题目

请参照本章例题,编写一个C程序,输出以下信息:

****************

Very Good!

****************

源程序清单:(调试好的源程序代码)

1.5

# include

void _1_5main()

{

} printf(“**************************n”);printf(“very good!n”);printf(“**************************n”);getchar();

主要标识符说明:(源程序中主要标识符含义说明)

实验结果:(程序运行结果)

****************

Very Good!

****************

实验中遇到的问题及解决的方法

2、题目

源程序清单:(调试好的源程序代码)

1.6

#include

void _1_6main()

{

int a[2];

int max,i;

}

主要标识符说明:(源程序中主要标识符含义说明)

实验结果:(程序运行结果)

1,2,3实验中遇到的问题及解决的方法

输入时不能忘了”,”;注意细节

3、题目

源程序清单:(调试好的源程序代码)

void main_1_7_1()

{

}

void main_1_7_2()

{

int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is %dn”,sum);printf(“this is a program.n”);getchar();scanf(“%d,%d,%d”,&a[0],&a[1],&a[2]);max=a[0];for(i=1;i<3;i++)if(max

} void main_1_7_3()

{

}

int max(int x,int y)

{

}

主要标识符说明:(源程序中主要标识符含义说明)

实验结果:(程序运行结果)

this is a program.sum is 579

max=

3实验中遇到的问题及解决的方法

int z;if(x>y)z=x;else z=y;return(z);int max(int x,int y);int a,b,c;a=1;b=2;c=max(a,b);printf(“max=%dn”,c);getchar();

四、实验体会(心得、收获)

要掌握最基本的知识,从基本做起;熟悉基本上机环境,掌握上机运行c的方法。

第五篇:C语言图形程序设计报告

大连东软信息学院 电子工程系 202_级 本科

C语言图形程序设计报告

系所: 专业:

电子工程系 通信工程

学生姓名: 汤程皓 学生学号: *** 完成日期: 202_ 年 12 月

大连东软信息学院

Dalian Neusoft University of Information

目录

目录..............................................................................................................................................C语言图形程序设计主要内容包括图形模式的初始化、基本图形功能、图形窗口以及图形模式下的文本输出等图形函数的使用,以及按键处理和声音等。学生根据C语言图形程序设计指导书,通过编辑、编译、调试、运行示例代码,逐步掌握C语言图形应用程序中常用函数的作用与使用方法,并综合运用《C语言程序设计》课程所学知识,设计、实现具有创新功能的程序。成果物是一个综合性较好的图形应用程序和项目报告。设计要求

设计并实现一个独特的图形应用程序。要求程序功能完整;包含屏幕颜色设置、图形绘制与填充、图形窗口设置、图形模式下文本输出、按键操作等;用户界面友好;代码量500行以上。程序功能

使用if,for,switch,circle,line,arc及另外一些图形化编程函数实现一些画面效果(形状颜色变化,字体颜色大小设置等),最后使用line画线的方法画出中文“再见“二字。核心算法

大量使用for循环,switch、if判断来实现一些画面的变化;大量使用函数调用的方式来保持代码的整洁;使用delay()函数来延迟两幅画面切换的时间;大量使用图形化编程的函数和方法来实现画面效果。

注:流程图无能为力了,不会画。程序代码

#include

#include #include #include

/*模块化编程*/ /*函数调用*/ void start();void tuoyuan();void guochang();void kaitou();void huaban();void tree();void moon();void end();void zai();void jian();main(){

int gdriver;int gmode;int i;int line;clrscr();gdriver=DETECT;initgraph(&gdriver,&gmode,“C:TC20BGI”);kaitou();start();getch();

tuoyuan();delay(800);setbkcolor(15);cleardevice();

/*插入眼睛像*/ ellipse(320,240,0,360,30,17.5);setcolor(4);circle(320,240,17.5);setfillstyle(1,4);floodfill(320,240,4);/*画颜色渐变同心圆*/ for(i=0;i<=30;i++){

} delay(800);guochang();delay(1000);cleardevice();huaban();moon();tree();delay(500);cleardevice();end();

setcolor(i);circle(320,240,20+i*10);delay(80);

} setbkcolor(6);zai();delay(1000);/*开头过渡*/ void start(){

}

/*画一些形状颜色渐变椭圆*/ void tuoyuan(){

int x=360;int y=160;int driver;int mode=VGAHI;

int gd;int gm;gd=DETECT;initgraph(&gd,&gm,“C:TC20BGI”);randomize();cleardevice();setbkcolor(3);setcolor(4);settextstyle(0,0,2);outtextxy(100,160,“ tttt ARE YOU READY?!”);settextstyle(0,0,2);outtextxy(100,240,“ Input any key,let's go!”);

} int num=20;int i;int t;int b;driver=DETECT;initgraph(&driver,&mode,“C://TC20//BGI”);t=y-30;b=y-30;setbkcolor(0);

for(i=0;i

} delay(300);for(i=0;i<20;i++){

} setcolor(i+2-1);ellipse(470,240,0,360,t,b);t+=5;b-=5;setcolor(i+2-1);ellipse(200,230,0,360,t,b);t-=5;b+=5;/*画变色圆周运动*/ void guochang()

{

case 2:for(i=1;i<640;i++)

{

if(i==1){

setcolor(4);

int gdriver;int i;int b;int c;int gmode;gdriver=DETECT;initgraph(&gdriver,&gmode,“C:TC20BGI”);setbkcolor(13);for(c=1;c<9;c++){

switch(c){

case 1:for(i=1;i<640;i++)

{

}

break;if(i==1){

} else{}

setcolor(14);for(b=1;b<240;b++)line(320, 240, 1, b);

}

}

for(b=240;b<480;b++)line(320,240,1,b);

else{}

break;

case 3:for(i=1;i<640;i++)

{

}

break;

if(i<320&&i>1){

} else{}

setcolor(6);line(320,240,i,479);

case 4:for(i=1;i<640;i++)

{

}

break;

if(i<640&&i>=320){

} else{}

setcolor(5);line(320, 240, i,479);

case 5:for(i=640;i>0;i--)

{

}

break;if(i==639){

} else{}

setcolor(10);for(b=480;b>240;b--)line(320,240,639,b);

case 6:for(i=640;i>0;i--)

{

}

break;if(i==639){

} else{}

setcolor(3);for(b=240;b>0;b--)line(320, 240,639, b);

case 7:for(i=640;i>0;i--)

{

if(i<640&&i>=320){

setcolor(9);

}

}

}

line(320,240,i,1);

else{}

break;

}

} case 8:for(i=640;i>0;i--)

{

}

break;

if(i<320&&i>0){

} else{}

setcolor(12);line(320, 240, i, 1);/*开头*/ void kaitou(){

int i;int a;int b;int c;int gdriver;

int gmode;char s[30];clrscr();gdriver=DETECT;initgraph(&gdriver, &gmode, “C:TC20BGI”);setbkcolor(14);cleardevice();for(a=50;a<640;){

} b=50;setcolor(4);circle(a,b,43);setcolor(9);ellipse(a,b,0,360,43,20);ellipse(a,b,0,360,20,43);setcolor(7);ellipse(a,b,0,360,20,10);setcolor(8);circle(a,b,10);setfillstyle(1,8);floodfill(a,b,8);a=a+90;for(b=50;b<480;){ a=50;

} setcolor(4);circle(a,b,45);setcolor(9);ellipse(a,b,0,360,21,45);ellipse(a,b,0,360,45,21);setcolor(7);ellipse(a,b,0,360,22.5,12);circle(a,b,12);b=b+95;for(a=50;a<640;){

} b=430;setcolor(4);circle(a,b,43);setcolor(9);ellipse(a,b,0,360,43,20);ellipse(a,b,0,360,20,43);setcolor(7);ellipse(a,b,0,360,20,10);circle(a,b,10);a=a+90;for(b=50;b<480;){ a=590;setcolor(4);

}

} circle(a,b,45);setcolor(9);ellipse(a,b,0,360,21,45);ellipse(a,b,0,360,45,21);setcolor(7);ellipse(a,b,0,360,22.5,12);circle(a,b,12);b=b+95;setviewport(100, 100, 540, 380, 0);setfillstyle(1, 2);setcolor(14);rectangle(0, 0, 439, 279);floodfill(50, 50, 14);setcolor(12);settextstyle(4, 0, 8);outtextxy(20, 20, “TCH”);setcolor(15);settextstyle(3, 0, 5);outtextxy(120, 120, “DREAM START!”);setcolor(14);settextstyle(3, 0, 2);outtextxy(120, 200, “Please input any key!”);getch();closegraph();return 0;/*用math画颜色变化花瓣*/

void huaban(){

for(b=1;b<6;b++){

switch(b){

case 1:for(a=0.0;a<2*3.14;a+=2*3.14/720)

case 2:for(a=0.0;a<2*3.14;a+=2*3.14/720)

{

e=100*(1+sin(4*a));x1=320+e*cos(a);

float a,e;float x1,y1,x2,y2;int gdriver=DETECT,b;int gmode;initgraph(&gdriver,&gmode,“C://TC20//BGI”);cleardevice();setcolor(GREEN);setbkcolor(0);{

e=100*(1+sin(4*a));x1=320+e*cos(a);x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(10);line(x1,y1,x2,y2);}break;

x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(12);line(x1,y1,x2,y2);}break;case 3:for(a=0.0;a<2*3.14;a+=2*3.14/720)

case 4:for(a=0.0;a<2*3.14;a+=2*3.14/720)

{

e=100*(1+sin(4*a));x1=320+e*cos(a);x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(14);line(x1,y1,x2,y2);}break;{

e=100*(1+sin(4*a));x1=320+e*cos(a);x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(1);line(x1,y1,x2,y2);}break;

}

}

case 5:for(a=0.0;a<2*3.14;a+=2*3.14/720)

} {

e=100*(1+sin(4*a));x1=320+e*cos(a);x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(9);line(x1,y1,x2,y2);}break;/*画树*/ void tree(){

setcolor(2);line(83,330,55,400);

setcolor(8);line(80,400,80,440);line(80,440,75,447);line(75,447,91,447);line(91,447,86,440);line(86,440,86,400);line(86,400,80,400);setfillstyle(6,8);floodfill(83,410,8);

} line(55,400,111,400);line(111,400,83,330);setfillstyle(1,2);floodfill(60,390,2);line(83,290,55,360);line(55,360,111,360);line(111,360,83,290);setfillstyle(1,2);floodfill(80,310,2);delay(1000);/*画月亮*/ void moon(){

}

/*倒数第二结尾,过渡*/ void end(){

int gdriver;int gmode;gdriver=DETECT;

setcolor(14);circle(570,70,40);setfillstyle(1,14);floodfill(570,70,14);

} initgraph(&gdriver,&gmode,“C://TC20//BGI”);setbkcolor(3);setcolor(4);settextstyle(0,0,6);outtextxy(90,200,“ THE END!”);setusercharsize(10,1,4,1);settextstyle(3, 0, 2);outtextxy(220, 380, “Please input any key!”);getch();/*正式结尾*/ /*用横线拼出“再”*/ void zai(){

int a,b,c,d,e,f,g,h,gdriver;int gmode;gdriver=DETECT;initgraph(&gdriver,&gmode,“C://TC20//BGI”);for(a=70;a<300;){

} for(b=120;b<350;){ setcolor(14);line(90,b,105,b);

setcolor(14);line(a,55,a,70);a=a+1;

} b=b+1;for(c=90;c<280;){

} for(d=120;d<350;){

} for(e=105;e<265;){

} for(f=45;f<325;){

} for(g=70;g<=255;){ setcolor(14);

setcolor(14);line(c,120,c,135);c=c+1;setcolor(14);line(265,d,280,d);d=d+1;setcolor(14);line(e,180,e,195);e+=1;setcolor(14);line(f,240,f,255);f+=1;

}

} line(177.5,g,192.5,g);g+=1;for(h=243;h<=280;){

} jian();getch();setcolor(14);line(h,335,h,350);h+=1;/*用横线拼出“见”,并署名*/ void jian(){

int a,b,c,d,e,f,g;for(a=380;a<555;){

} for(b=55;b<250;){

}

setcolor(14);line(a,55,a,70);a+=1;setcolor(14);line(380,b,395,b);b+=1;

for(c=55;c<250;){

} for(d=220;d<=350;){

} for(e=486;e<612;){

} for(f=280;f<=350;){

} for(g=160;g<=175;){

setcolor(14);arc(g,90,-90,0,300);g+=1;

setcolor(14);line(540,c,555,c);c+=1;setcolor(14);line(486,d,501,d);d+=1;setcolor(14);line(e,335,e,350);e+=1;setcolor(14);line(597,f,612,f);f+=1;

} } settextstyle(1,0,1);outtextxy(335,420,“TCH was written in 202_-12-12 ”);5 运行结果

开头

开头过渡

一些颜色形状渐变椭圆

颜色渐变同心圆

颜色按顺序变化花瓣+树+月亮

结尾过渡

结尾 创新说明

使用for循环语句画出一些形状颜色渐变的椭圆和同心圆;在椭圆里面画圆,并填充颜色,来实现眼睛的效果;使用switch,if判断,和for循环来实现颜色如风车般变化的动画;使用switch判断,for循环和line、数学函数来实现颜色变化的花瓣图案;使用for循环,line函数,计算坐标的方式来画出中文“再见”二字;

参考文献

[1] 全球最大中文IT社区.Turbo C图形函数 [EB/OL],http://www.csdn.net,202_.3

[2] 《C语言图形程序设计指导书》

C语言程序设计实习报告
TOP