C语言课程设计报告(电子版)_第1页
C语言课程设计报告(电子版)_第2页
C语言课程设计报告(电子版)_第3页
C语言课程设计报告(电子版)_第4页
C语言课程设计报告(电子版)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言课程设计报告Experiment Designing reporter课程名称 : C语言课程设计英文名称 : C Program Experiment Designing 专 业 :机械软件工程095学 号 : 姓 名 :王鹤群指导教师 : 邱占芝日 期: 2010年7月5日至2010年7月9日大连交通大学软件学院C语言课程设计报告C Program Experiment Designing 课程编号: 学时: 40学时适用专业:软件工程专业 授课单位:软件学院一、 C语言课程设计目的及要求目的:根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调

2、试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。要求:1 熟悉Turbo C 的编程环境、主要菜单功能。2 通过上机验证运算符、表达式、运算规则、函数使用。3 熟练使用C语言的典型语句编写简单程序。4 调试典型例题或习题。5 提高上机编程能力二、 实验类型设计类型三、 实验学时40学时四、 实验设备微型计算机、WINDOWS98以上版本的操作系统、Turbo C2.0 软件一套五、 C语言课程参考教材:1C语言程序设计 清华大学出版社 李瑞等主编2.谭浩强.C语言程序设计(第三版).北京:高等教育出版社,2002课程设计(报告)任务书任务及要求:

3、1. 设计(研究)内容和要求研究内容:统计候选人的票数;输入某学生的姓名、年龄和五门功课的成绩,计算平均成绩输出 ;学生成绩表;飞船绕星球飞行。任务和要求:(1)学习C语言基础知识,掌握C语言编程和程序调试的基本技能。(2)对指导教师下达的题目进行系统分析。(3)根据分析结果完成系统设计。(4)编程:在计算机上实现题目的代码实现。(5)完成对该系统的测试和调试。(6)提交课程设计报告。(7)指标:要求完成课程设计报告3千字以上(约二、三十页).完成若干综合性程序设计题目,每个综合设计题目的语句行数的和在300行语句以上.2.原始依据了解C语言的基础知识,有一定的语言编程基础,能够熟练运用C语言

4、进行程序设计。通过用C语言完成的题目,提高用C语言解决实际问题的能力。3.参考文献1 黄明等. C语言程序设计辅导教材.大连理工大学出版社,20062 李瑞等.C语言程序设计.清华大学出版社,20083 谭浩强.C语言程序设计(第二版).北京:高等教育出版社,2002 2010年6月30日目录C语言课程设计报告11 黄明等. C语言程序设计辅导教材.大连理工大学出版社,200631统计候选人的票数11.1 设计说明11.2 程序运行截图11.3 源程序代码32输入某学生的姓名、年龄和五门功课的成绩,计算平均成绩输出。42.1 设计说明42.2 程序运行截图52.3 源程序代码73学生成绩表83

5、.1 设计说明83.2 程序运行截图91.3 源程序代码104飞船绕星球飞行131.1 需求分析131.2 总体设计131.3 详细设计与实现151.4 程序运行截图171.5 参考程序191统计候选人的票数 1.1 设计说明1、person的定义struct person定义参选人。2、结构体。函数名:struct person返回值:无返回值参数:name,count,含义:定义参选人的名字和票数。处理流程:Step1:输入你要选的人的名字,进行十次。Step2:进行统计选票数。Step3:进行排序。Step4:第一名进行奖励(钻石)。3、主函数main()从键盘上输入你要选的人的名字,进

6、行十次。若是Li,屏幕上显示:1 please input your result li循环十次,假设LI的票数最多为9,则输出为:The first is:li 9奖赏为:钻石1.2 程序运行截图 图1-1 整个投票过程1.3 源程序代码#include stdio.h#include string.hvoid jiangshang();struct person char name20; int count;leader3=li,0,zhang,0,xue,0;main() int i,j,k; char select20; struct person *p,*q; p=leader; f

7、or (i=0;i10;i+) printf(%dtplease input your result:,i+1); scanf(%s,select); for (p=leader;pname,select)=0) (*p).count+; printf(the result is:n); for (p=leader;pleader1.count) q=&leader0; else q=&leader1; if(*q).countleader2.count) ; else q=&leader2; printf( nametcountn); printf(The first is:%st%10dn

8、,(*q).name,(*q).count); jiangshang(); getch();void jiangshang() int a,b,c; for(a=1;a=4;a+) for(b=1;b=4-a;b+) printf( ); for(c=1;c=2*a-1;c+) printf(*); printf(n); for(a=1;a=3;a+) for(b=1;b=a;b+) printf( ); for(c=1;c=7-2*a;c+) printf(*); printf(n); getchar() ;2输入某学生的姓名、年龄和五门功课的成绩,计算平均成绩输出。 2.1 设计说明1、s

9、tudent的定义struct student2、结构体。函数名:struct student返回值:无返回值参数:name,age,score5含义:定义学生,姓名年龄和五科成绩。处理流程:Step1:输入学生的姓名,年龄和五科成绩。Step2:进总分绩计算。Step3:进行平均成绩计算。3、主函数main()Step1:从键盘上输入输入学生的姓名,姓名年龄和五科成绩。 输入学生的姓名,姓名年龄和五科成绩。Step2:进总分绩计算。Step3:进行平均成绩计算。屏幕上显示: please input your name and age: li 12 please input your sco

10、re:89 please input your score:89 please input your score:89 please input your score:89后显示平均成绩。2.2 程序运行截图 图2-1 输入学生信息 图2-2 输入学生成绩 图2-3 输出统计后的信息 2.3 源程序代码 #include stdio.hmain() struct student char name10; int age; float score5,ave; stu; int i,sum; /*修改*/ sum=0; printf(please input your name and age:)

11、; scanf(%s%d,,&stu.age); for(i=0;i5;i+) printf(please input your score: ); scanf(%f,&stu.scorei); sum+=stu.scorei; printf(name:%sn,); printf(age:%4dn,stu.age); for(i=0;i5;i+) printf(%6.1fn,stu.scorei); stu.ave=sum/5.0 ; printf(*n); printf(* average=%6.1f *n,stu.ave); printf(*n); getc

12、h();3学生成绩表3.1 设计说明1、student的定义struct student2自定义函数:函数名:sum,sort,print,form.返回值:无返回值参数:*p,含义:定义指向结构体struct student的指针。处理流程:Step1:定义结构体中的内容即:学号,姓名,性别,四科成绩。Step2:计算每个人的总分。Step3:进行排序。Step4:列表。3、主函数main()调用自定义函数;定义结构体;画表格。3.2 程序运行截图 图3-1 输出带表格的学生成绩信息1.3 源程序代码#include stdio.hstruct student int num; char n

13、ame20; char sex; float s4; float sum;void main() void form(); void sum(struct student *,int); void sort(struct student *,int); void print(struct student *,int); struct student a5= 11,wang li,f,66.,76.,83.,61.,0., 13,wanglin,m,69.,74.,63.,91.,0., 16,liu hua,m,86.,76.,93.,91.,0., 14,zhanjun,m,66.,66.,

14、83.,61.,0., 22,xu xia,f,65.,76.,45.,45.,0.; gotoxy(3,2); printf(studenttnamettsextscore1tscore2tscore3tscore4tsumn); form(); sum(a,5); sort(a,5); print(a,5); void form() int i,j; gotoxy(1,1) ; printf(xC9); for (i=1;i72;i+) /*打横行*/ printf(xCD); gotoxy(1,2); for (j=1;j12;j+) /*打竖行*/ printf(xBA); print

15、f(n); gotoxy(1,13) ; printf(xC8); for (i=1;i72;i+) /*打横行*/ printf(xCD); gotoxy(73,1); printf(xBB); gotoxy(73,2); for (j=1;j12;j+) /*打竖行*/ printf(xBA); gotoxy(73,2+j); gotoxy(73,13) ; printf(xBC); void sum(struct student *p,int n) int i,j; float d; for(i=0;in;i+) d=0.0; for(j=0;jsj; p-sum=d; p+; void

16、 sort(struct student *p,int n) struct student t; int i,j,k;for (i=0;in-1;i+) k=i; for(j=i+1;jsumsum)k=j;if(k!=i) t=*(p+i);*(p+i)=*(p+k);*(p+k)=t; void print(struct student *p,int n) int i,j; for(i=0;inum,p-name, p-sex,p-s0,p-s1,p-s2,p-s3,p-sum); p+; getch();4飞船绕星球飞行设计宇宙飞船绕行星球,采用计算机对图形设计,进一步提升学生对C语言的

17、了解。使学生对C语言产生更浓厚的兴趣,知道C不仅用于处理数学统计计算问题同时可以惊醒简单的绘图及动画处理。了解一系列绘图函数,例如:设计线型函数,画圆、椭圆、多边形,填充颜色等。1.1 需求分析需求分析是软件开发中最重要的环节,它直接影响着项目的成功与失败。通过对用户需求进行调查分析,写出需求分析的文档。需求分析的文档可以作为项目设计的基本要求,也可以作为系统分析员进行系统分析和测试人员进行软件测试的手册。1需求概述设计一个宇宙飞船绕行星球,使之能提供以下功能:(1)开拓学生眼界(2)设计字形(3)了解C语言中的图形函数(4)了解声音函数,具有很强的吸引力(5)初始、运行与结合运行连贯2需求说

18、明(1)系统中的每个函数相对独立。(2)每个函数的函数名较为形象。(3)色彩效果较好。1.2 总体设计根据需求分析的文档可以,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案,并写出总体设计说明书,为详细设计做准备。1功能模块根据需求分析,得到系统的功能模块。如图1-1所示:申明函数 飞船绕行星球设计线型自定义函数初始特写编辑主函数激活页面结束特写画星球和飞船画星星设置声音图1-1系统模块图说明:此程序主要涉及函数调用即指针的使用以及图形函数的使用。2数据结构本系统中主要的数据结构就是:背景颜色setcolor选取,延时delay,图形大小,输入文本settextstyle、

19、输出文本outtextxy的长宽等。3程序流程系统的执行应从选择开始,根据用户的选择来进行后续的处理,直到用户选择退出系统为止。系统的流程图如图1-2所示:否否否否是开始菜单选择开始?停止?继续?停止?继续?否回车ESC回车ESC回车是是是是结束图1-2程序流程图1.3 详细设计与实现在总体设计的基础上进行详细设计和实现。1 字型结构:对初始与结束字型进行处理void chushi() int gd =VGA,gm=VGAMED,i,height,width; unsigned char *temp=Ready ! ; initgraph(&gd,&gm,BGI); settextjustif

20、y(LEFT_TEXT,TOP_TEXT); cleardevice(); for(i=1;i11;i+) delay(6000); setvisualpage(0); setactivepage(1); cleardevice(); setcolor(12); setbkcolor(BLUE); settextstyle(TRIPLEX_FONT,HORIZ_DIR,i); width=textwidth(temp); height=textheight(temp); outtextxy(639-width)/2,175-height/2,temp); delay(6000); setvis

21、ualpage(1); setactivepage(0); cleardevice(); setcolor(10); settextstyle(TRIPLEX_FONT,HORIZ_DIR,i+); width=textwidth(temp); height=textheight(temp); outtextxy(639-width)/2,175-height/2,temp); getch(); closegraph();2各个功能模块的设计与实现(1)自定义函数设计:l draw_image(int x,int y)画星球,把已画好的椭圆分割,填充颜色;l Putstar画星星设计星星的颜色

22、、大小及位置;l Fashen设置飞船绕行星星的声音;l Feichua设计飞船的形状、大小及运动状态;l Chushi设置程序开始时的背景及字体;l jieshu设置程序结束时的背景及字体;1.4 程序运行截图 图4-1 开始界面 图4-2 飞船绕星球飞行 图4-3 结束1.5 参考程序#include graphics.h#include stdlib.h#include stdio.h#includeconio.h#define N 10void draw_image(int x,int y);void Putstar(void);void fashen(int argc,char *a

23、rgv);main() void feichuan(); void chushi(); void jieshu(); chushi(); feichuan(); jieshu(); jieshu(); return;void feichuan() int graphdriver=DETECT; int graphmode ,color; void * pt_addr; int x,y,maxx,maxy,midy,midx,i; unsigned int size; registerbgifont(TRIPLEX_FONT); initgraph(&graphdriver,&graphmode

24、,BGI); maxx=getmaxx(); maxy=getmaxy(); midx=maxx/2; x=0; midy=y=maxy/2; setcolor(YELLOW); settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);/*设置垂直方向输出函数*/ settextjustify(CENTER_TEXT,CENTER_TEXT); outtextxy(midx,400,AROUND THE WORLD); outtextxy(midx,450,flying); setbkcolor(BLACK); setcolor(RED); setlinestyle(SO

25、LID_LINE,0,THICK_WIDTH); ellipse(midx,midy,130,50,160,30); setlinestyle(SOLID_LINE,0,NORM_WIDTH); draw_image(x,y); size=imagesize(x,y-N,x+(4*N),y+N); pt_addr=malloc(size); getimage(x,y-N,x+(4*N),y+N,pt_addr); Putstar(); setcolor(WHITE); setlinestyle(SOLID_LINE,0,NORM_WIDTH); rectangle(0,0,maxx,maxy)

26、; while(!kbhit() Putstar(); setcolor(RED); setlinestyle(SOLID_LINE,0,THICK_WIDTH); ellipse(midx,midy,130,50,160,30); setcolor(BLACK); ellipse(midx,midy,130,50,160,30); for(i=0;i=maxx?0:x+6; putimage(x,y-N,pt_addr,XOR_PUT); free(pt_addr); closegraph();void chushi() int gd =VGA,gm=VGAMED,i,height,widt

27、h; unsigned char *temp=Ready ! ; initgraph(&gd,&gm,BGI); settextjustify(LEFT_TEXT,TOP_TEXT); cleardevice(); for(i=1;i11;i+) delay(6000); setvisualpage(0); setactivepage(1); cleardevice(); setcolor(12); setbkcolor(BLUE); settextstyle(TRIPLEX_FONT,HORIZ_DIR,i); width=textwidth(temp); height=textheight

28、(temp); outtextxy(639-width)/2,175-height/2,temp); delay(6000); setvisualpage(1); setactivepage(0); cleardevice(); setcolor(10); settextstyle(TRIPLEX_FONT,HORIZ_DIR,i+); width=textwidth(temp); height=textheight(temp); outtextxy(639-width)/2,175-height/2,temp); getch(); closegraph();void draw_image(i

29、nt x,int y) int arw11; arw0=x+10;arw1=y-10;arw2=x+34;arw3=y-6;arw4=x+34; arw5=y+6;arw6=x+10;arw7=y+10;arw8=x+10;arw9=y-10; moveto(x+10,y-4); setcolor(14); setfillstyle(1,4); linerel(-3*10,-2*8); moveto(x+10,y); linerel(-3*10,0); setcolor(3); setfillstyle(1,LIGHTBLUE); fillpoly(4,arw); void fashen(int argc,char *argv) int i,n=0,len; len=strlen(argv1); for(i=0;ilen;i+) n=10*n+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论