C语言设计_c语言设计

2020-02-27 其他范文 下载本文

C语言设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言设计”。

福建工程学院

《c语言课程设计》课程设计报告

级:

机械1008

号:

3100111818

名:

陈永华

指导教师:

杨海燕、邝凌宏

期:

2011-1-6

C语言设计专周任务书

设计要求:

1.每人在第一部分至少要完成6道题;第二部分必须做。2.写出解题分析,解题的方法、步骤等 3.写出源程序 4.上机运行通过

5.写出心得体会(其中要包含自我评价),不少于500字 6.应提交的作品

a)设计文档打印稿:答辩时提交给老师。(文档书写格式可参看附录)

b)电子稿:包括设计文档电子文档、源程序、可执行程序以及其它执行程序所需要的文件。每个人按照自己的年级班级及座号建立一个数字的文件夹,每个人的文档及源程序存放在自己的文件夹内。

时间安排: 周二-周五

上午8点20分到12点; 下午2点到3点40分

做完了就可以开始答辩,集中答辩安排在周五的三四节和五六节课。

课程设计题目

第一部分

题目1: 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

一、步骤:

1、定义当月变量利润x,变量奖金y;

2、利润中

3、利润中10~20万元部分的奖金,按7.5%提成奖金;

4、利润中20~40万元部分的奖金,按5%提成奖金;

5、利润中40~60万元部分的奖金,按3%提成奖金;

6、利润中60~100万元部分的奖金,按1.5%提成奖金;

7、利润中>=100万元部分的奖金,按1%提成奖金。

二、源程序: #include void main(){ float x,y;printf(“nInput the profit x=”);scanf(“%f”,&x);if(x

三、运行结果:

题目2:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

一、步骤;

1. 定义一个变量i,定义两个函数j,k;

2. 令j是变量i加上100后的一个完全平方数;

3. 令k是变量i加上100后在加上168后的一个完全平方数; 4. 求出变量i。

二、源程序: #include #include void main(){ int i;double j,k;clrscr();for(i=1;i

二、运行结果:

题目5:从键盘输入一个偶数,将表示为两个素数之和。

一、步骤:

1. 输入一个整数n;

2. 如果n是奇数,则重新输入;

3. 如果n是偶数,则n将分成两个素数p和q之和。

二、源程序: #include void main(){ int n,p,q,i,signp,signq;clrscr();scanf(“%d”,&n);while(n%2!=0)

/*如果为n奇数,则重新输入*/ { printf(“n is not even.”);scanf(“%d”,&n);} p=1;do {p=p+1;q=n-p;signp=1;for(i=2;i

三、运行结果:

题目6:有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬1块砖,恰好一次全部搬完,编程求出成年男子 成年女子和儿童各有多少人。

一、步骤:

1. 定义变量成年男子x,成年女子y,儿童z;

2. 男子人数可搬x*4块砖,女子人数可搬y*3块砖,儿童人数可搬z/2块砖; 3. 男子36人,砖36块,故x+y+z=36,x*4+y*3+z/2=36;4. 求出x,y,z。

二、源程序: #include void main(){ int x,y,z;clrscr();for(x=0;x

三、运行结果:

题目8:统计文本单词的个数,输入一行句子,统计其中有多少个单词,单词之间用格分隔开

一.步骤:

1)输入一个文本单词;

2)从第一个字符开始扫描到结束;

3)当遇到空格时,则单词个数加上1,若没再遇到空格,则有效字符属于前一单词,单词个数不加1;

4)输出整句文本的单词个数。二. 源程序: #include #include void main(){ char str[128];char *p=str;int num=0,flag=0;clrscr();gets(p);while(*p!='.'&&*p!=0){ if(*p==' '||*p==',')flag=0;else if(flag==0)num++,flag=1;p++;} printf(“num=%dn”,num);} 三.运行结果:

题目9:用折半查找法,对一组有序数据进行查找。

一、步骤:

1、定义10个数据按升序存放在数组a中;

2、定义待查找数据变量x,整型变量left、mid和right分别表示查找区间起始元素、中间元素和最后一个元素的下标;

3、先设left=0,right=9,即开始在区间a[0]~a[9]内查找,则mid=(left+right)/2,比较x,a[mid]的值;

4、重复查找过程,直到没找到,或等于a[mid]为止。

二、源程序: #include void main(){int a[10]={7,9,12,18,21,25,33,39,45,60};int x,left=0,mid,right=9,flag=0;clrscr();printf(“Input a number to be searched: ”);scanf(“%d”, &x);if(x>= a[left] && x

/*若x位于查找区间则开始查找/*

while(!flag && lefta[mid])left=mid+1;else right=mid-1;} if(flag==1)printf(“%4d is found,it's at %4d.n”,x,mid);else printf(“Not exist!n”);}

三、运行结果:

第二部分

课题一

有N名学生,每名学生含有如下信息:学号、姓名、某四门课的成绩,并计算其总分,用一结构数组表示之。然后实现以下功能:(1)将这些数据存放至文件stuf.dat中;

(2)将文件中的数据读出至结构数组中,并显示之;(3)输出总分最高分和最低分的名字;

(4)输出总分在340分,单科成绩不低于80分的名单;(5)求出各科平均分数;(6)按总分排名;(7)输出补考名单。

一、步骤:、1、定义N名学生名字name,学号,成绩S及总分sum;

2、输出5名学生学号、姓名、某四门课成绩及总分;

3、将输出数据存放至文件中,并读出至结构数组stu[]中;

4、从数组中找出总分大于340.,单科成绩不低于80的名单;

5、求各科平均分,按总分排名,补考名单。

二、源程序: #include #include #define N 5 struct student {

int number;

char name[10];

int s1;

int s2;

int s3;

int s4;};void main(){

FILE *fp;

int sum,b[10],sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;

int max,min,m=0,n=0;

int i,j,k,p;

float v1,v2,v3,v4;

struct student temp,stu2[5],stu1[5]={{01,“xiaoyan”,78,87,85,93},{02,“yaochen”,86,57,94,96},{03,“xiaoxuner”,88,87,94,89},{04,“cailin”,76,48,83,91},{05,“ziyan”,65,77,86,73}};

/*输出5学生的学号,姓名,四科成绩/*

clrscr();

if((fp=fopen(“stud04.dat”,“wb”))==NULL)

{

printf(“error!n”);

exit(0);}

fwrite(stu1,sizeof(struct student),5,fp);

rewind(fp);

fread(stu2,sizeof(struct student),5,fp);

for(i=0;i

fclose(fp);

for(i=0;i

/*计算5学生成绩总分/*

{

sum=stu2[i].s1+stu2[i].s2+stu2[i].s3+stu2[i].s4;

b[i]=sum;

printf(“ sum=%dn”,b[i]);

}

max=min=b[0];

for(i=0;i

{

if(max

{max=b[i];

m=i;

}

if(min>b[i])

{

min=b[i];

n=i;

}

}

printf(“ max name=%s,min name=%sn”,stu2[m].name,stu2[n].name);

/*输出总分最高的学生名字/*

for(i=0;i

/*统计总分大于340且4科成绩都不低于80*/

{

if(b[i]>340&&stu2[i].s1>80&&stu2[i].s2>80&&stu2[i].s3>80&&stu2[i].s4)

printf(“ sum>340 student name=%5sn”,stu2[i].name);

}

for(i=0;i

{

sum1+=stu2[i].s1;sum2+=stu2[i].s2;sum3+=stu2[i].s3;sum4+=stu2[i].s4;

}

v1=1.0*sum1/5;v2=1.0*sum2/5;v3=1.0*sum3/5;v4=1.0*sum4/5;/*/*

printf(“vage1=%f,vage2=%f,vage3=%f,vage4=%fn”,v1,v2,v3,v4);

for(i=0;i

{

k=i;

for(j=i+1;j

if(b[k]

k=j;

if(k!=i)

{

p=b[i];

b[i]=b[k];

b[k]=p;

temp=stu2[i];

stu2[i]=stu2[k];

stu2[k]=temp;

} }

for(i=0;i

printf(“%4d %4s %4d %4d %4d %4d %4dn”,stu2[i].number,stu2[i].name,stu2[i].s1,stu2[i].s2,stu2[i].s3,stu2[i].s4,b[i]);

for(i=0;i

/*查找成绩不及格的学生*/

{ if(stu2[i].s1

三、运行结果:

《C语言设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C语言设计
点击下载文档
相关专题 c语言设计 设计 语言 c语言设计 设计 语言
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文