C语言课程设计报告.doc_第1页
C语言课程设计报告.doc_第2页
C语言课程设计报告.doc_第3页
C语言课程设计报告.doc_第4页
C语言课程设计报告.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

目 录一课程设计的目的与要求4二方案实现与调试42.1分屏处理数据系统2.1.1 题目内容的描述 2.1.2 应用程序功能的详细说明 2.1.3 输入数据类型、格式和内容限制; 2.1.4主要模块的算法描述 2.1.5 调试过程及实验结果2.2掷骰子游戏2.2.1 题目内容的描述 2.2.2 应用程序功能的详细说明 2.2.3 输入数据类型、格式和内容限制; 2.2.4主要模块的算法描述 2.2.5 调试过程及实验结果2.3射击游戏2.3.1 题目内容的描述 2.3.2 应用程序功能的详细说明 2.3.3 输入数据类型、格式和内容限制; 2.3.4主要模块的算法描述 2.3.5 调试过程及实验结果2.4金币2.4.1 题目内容的描述 2.4.2 应用程序功能的详细说明 2.4.3 输入数据类型、格式和内容限制; 2.4.4主要模块的算法描述 2.4.5 调试过程及实验结果2.5缩印2.5.1 题目内容的描述 2.5.2 应用程序功能的详细说明 2.5.3 输入数据类型、格式和内容限制; 2.5.4主要模块的算法描述 2.5.5 调试过程及实验结果三课程设计分析与总结15四源程序清单15一. 课程设计的目的与要求一、实验目的C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了学习必须的基本知识,如概念,方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该高级语言程序设计任务书,以在实训过程中给学生提供帮助。达到如下目的:1 在课程结束之前,让学生进一步了解C程序设计语言的编程功能;2 让学生扎实掌握C程序设计语言的相关知识;3 通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。二、设计要求根据实验内容的要求自由选定题目。编写程序要求遵循如下基本要求:l 模块化程序设计l 锯齿型书写格式l 必须上机调试通过二. 方案实现与调试2.1分屏处理数据系统2.1.1 题目内容的描述 随机产生1000个数,并分屏显示(每行显示10个数字,每页显示10行),而且在每一屏的下方显示本屏中数据的最大值、最小值和平均值。提示:循环显示,在分屏点上输出press any key to continue,通过getch()函数让用户以按回车键的方式进入下一屏。2.1.2 应用程序功能的详细说明 利用随机函数产生1000个随机数,每次屏幕上显示100个随机数,分十次显示,通过按回车键的方式进入下一屏。 2.1.3 输入数据类型、格式和内容限制;输入数据类型是整型,格式是%d,每页100个数字,最大数字是100. 2.1.4主要模块的算法描述 随机函数产生100个整数并打印开 始比较得出该页最大值和最小值,并计算出平均值在下方打印出最大值,最小值和平均值循环次数10结 束是否2.1.5 调试过程及实验结果 2.2掷骰子游戏2.2.1 题目内容的描述 两人玩骰子,游戏规则如下:1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。2) 将每人每次的分值累加计分3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数为另一方的两倍。最后显示双方分数并判定优胜者。2.2.2 应用程序功能的详细说明 可以显示两人每次投掷骰子的点数,并统计每每次人累加的分数,在第五次的时候比较一次,判断是否符合获胜条件。若不符合,则继续投掷,直到结束。最后统计两人的分数并显示在屏幕上,判定优胜者.2.2.3 输入数据类型、格式和内容限制;类型是整型,格式是%d,每次随机产生的数字在16之间。 2.2.4主要模块的算法描述开 始随机产生两人掷的骰子的点数并逐次累加求和5次后若一人分数是另一人的2倍是否输出结果结 束循环10次 2.2.5 调试过程及实验结果 2.3射击游戏2.3.1 题目内容的描述在程序运行时屏幕上方第一行随机出现一个 符号,要求游戏者输入一个1-200之间的整数,当用户输入一个整数后,一个*立即从屏幕底端的该整数列向上移动,若移动到屏幕的顶端能撞上 符号,则游戏者获胜;若没有撞上,则要求再输入一个整数,共允许输入5次,如果一直没有撞上,则认为游戏者输。 提示: 1)输入 符号可以采用printf(%c,1) 2)显示*号向上移动:输出一些空行;输出*号;以循环的方式增加延时(for(i=0;i100000;i+););clrscr()清屏重新绘制*号。 2.3.2 应用程序功能的详细说明 在屏幕上随机出现出现一个笑脸,要求你输入一个数字,输完,一个子弹从输入数字对应的列位置发出,若撞上则显示你赢了,若没撞上,提示你再来一次,且你还有4次机会。5次过后,若还没撞到,则显示你输了 2.3.3 输入数据类型、格式和内容限制; 数据类型是整型,格式是%d,笑脸随机产生的位置大约在180之间。2.3.4主要模块的算法描述 开始在首行打印笑脸,在底端打印*向上移动*撞上脸结 束是循环5次否输入数字是否2.3.5调试过程及实验结果2.4金币2.4.1 题目内容的描述国王用金币奖励他忠诚的侍从。第一天侍从工作结束后,国王奖励了他一个金币;接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励了他两个金币;接着的三天侍从工作中(第四天,第五天,第六天)的每一天,国王奖励了他三个金币;接着的四天侍从工作中(第七天,第八天,第九天,第十天)的每一天,国王奖励了他四个金币。这种奖励的模式将是固定不变的,即在N天侍从工作中的每一天,国王将奖励他N个金币;接着的N+1天的侍从工作中的每一天,国王将奖励他N+1个金币。要求在给定的天数时,你的程序能够统计国王总共奖励了侍从多少金币。2.4.2 应用程序功能的详细说明 根据题目中国王的奖励规则,屏幕上会显示“请输入天数:”,只要你输入天数,程序就会计算出在这给定的天数中,国王总共奖励了侍从多少金币,并输出打印在屏幕上. 2.4.3 输入数据类型、格式和内容限制;输入天数的类型为整型 ,格式是%d2.4.4主要模块的算法描述 开 始输入天数nm等于n依次减去1,2.Nmn是否Min=nMin=m结束2.5.5调试过程及实验结果深化部分: 题目内容的描述 :职工工资管理系统设计: 功能:实现简单的职工工资信息管理,职工工资的基本信息包括编号、姓名、基本工资、奖金、工资总额等 基本要求: 1设计简单的菜单,能够进行系统功能选择。 2实现信息的录入功能。 3在已有信息的基础上添加新的记录。 4删除指定编号的记录。 5修改指定编号的记录 6实现信息的浏览功能 7按编号查询功能 8按工资总额排序功能 应用程序功能的详细说明:通过输入与各项功能相对应的按键来达到控制系统的目的,可以有简单的菜单,能够进行系统功能选择,实现信息的录入功能 ,在已有信息的基础上添加新的记录,删除指定编号,也可以实现信息的浏览功能。 输入数据类型、格式和内容限制:类型有int ,char.格式有%d,%c. 主要模块的算法描述 调试过程及实验结果: 三课程设计分析与总结 在这次课程设计中,既有基本的程序编程,也有复杂的深化题目。用到了很多基本的东西,如for语句,也有需要建立复杂的链表。不过,课程设计能培养自主编程的能力,养成程序编辑的好习惯。对我们这些接触C语言不久的学生是个很好的锻炼的机会。四. 源程序清单分屏处理数据系统:#include#include#define N 10#define MAX 99#define MIN 10main() int i,j,k,q,max,min,temp=0,aNN; randomize(); for(q=0;q10;q+) clrscr(); for(i=0;iN;i+) for(j=0;jN;j+) aij=MIN+random(MAX-MIN+1); printf(The result is:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%5d,aij); printf(n); max=a00; for(i=0;iN;i+) for(j=0;jN;j+) if(maxaij) max=aij; printf(The max number is %dn,max); min=a00; for(i=0;iN;i+) for(j=0;jaij) min=aij; printf(The min number is %dn,min); for(i=0;iN;i+) for(j=0;jN;j+) temp=temp+aij; k=temp/100; printf(The average is %dn,k); printf(press any key to continue.); getch(); temp=0; 掷骰子游戏:#include#include#define N 2#define MAX 6#define MIN 1main() int i,j,m,n,k,q,s,temp1=0,temp2=0; randomize(); clrscr(); for(s=0;s10;s+) i=MIN+random(MAX-MIN+1); j=MIN+random(MAX-MIN+1); if(i=j=6) k=8; if(i=j&i!=6&j!=6) k=7; else k=ij?i:j; temp1=temp1+k; m=MIN+random(MAX-MIN+1); n=MIN+random(MAX-MIN+1); if(m=n=6) q=8; if(m=n&m!=6&n!=6) q=7; else q=mtemp2) printf(The winer is 1); else printf(The winer is 2);射击游戏:#include#include#include#define MAX 80#define MIN 1main() int i,j,m,n,s,a=20; randomize(); i=MIN+random(MAX-MIN+1); for(s=0;s5;s+) clrscr(); a=20; for(j=0;ji;j+) printf( ); printf(%c,1); printf(nPlease input:); scanf(%d,&m); for(j=0;j20;j+) printf(n); for(j=0;jm;j+) printf( ); printf(*); for(n=1;n20;n+) clrscr(); for(j=0;ji;j+) printf( ); printf(%c,1); for(j=1;ja;j+) printf(n); for(j=0;jm;j+) printf( ); printf(*); a-; delay(100000); if(i=m) printf(you win); break; else printf(once more); getch(); getch();金币:main() int i,s,h,m=1,n=0,k,q=0; clrscr(); printf(Please input the day:); scanf(%d,&k); for(i=0;i1000;i+) k=k-m; m+; n+; if(km) break; s=k*m; /*printf(n=%d,n);*/ for(i=1;in+1;i+) q=q+i*i; h=q+s; printf(money=%d,h);缩印:#includemain() int i,j,m,n,a,b,c,d; float temp1,temp2,k; clrscr(); printf(Please input the photos size:); scanf(%d %d,&i,&j); printf(Please input the pages size:); scanf(%d %d,&m,&n); if(im&jn)|(in&jj? i:j; b=in? m:n; d=mn? m:n; temp1=(float)(c)/(float)a; temp2=(float)(d)/(float)b; k=temp1temp2? temp1:temp2; printf(%3.2f%,k*100); 深化题:#includestdio.h#includestdlib.h#includectype.h#includeprocess.h#define Null 0struct worker int num; char name7; int pay; int reward; struct worker * next; ; void print() printf(*欢迎光临职工工资管理系统设计*n); printf(*要录入职工数据请按1*n); printf(*要添加职工数据请按2*n); printf(*要删除职工数据请按3*n); printf(*要退出职工工资管理系统请按x*n); printf(*n); struct worker * init (int n) int i; struct worker * head, * p, * s; for(i=1;inum); scanf(%s,&p-name); scanf(%d,&p-pay); scanf(%d,&p-reward); head=p; else s=(struct worker * ) malloc(sizeof(struct worker); scanf(%d,&s-num); scanf(%s,&s-name); scanf(%d,&s-pay); scanf(%d,&s-reward); p-next=s; p=s; s-next=Null; return head; void insert(struct worker * head) struct worker * p,* pi; int bianhao; printf(请问要在哪个职工后面插入数据(输入编号):); scanf(%d,&bianhao); pi=(struct worker * ) malloc(sizeof(struct worker); p=head; printf(编号 姓名 基本工资 奖金n); scanf(%d,&pi-num); scanf(%s,&pi-name); scanf(%d,&pi-pay); scanf(%d,&pi-reward); if(head=Null) head=pi; pi-next=Null; else while(p-num!=bianhao)&(p-next!=Null) p=p-next; if(p-next!=Null) pi-next=p-next; p-next=pi; else p-next=pi; pi-next=Null; struct worker * delete(struct worker * head,int n) struct worker * p, * q; p=head;

温馨提示

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

最新文档

评论

0/150

提交评论