C语言程序设计.docx

上传人:b****6 文档编号:2977707 上传时间:2022-11-16 格式:DOCX 页数:26 大小:550.64KB
下载 相关 举报
C语言程序设计.docx_第1页
第1页 / 共26页
C语言程序设计.docx_第2页
第2页 / 共26页
C语言程序设计.docx_第3页
第3页 / 共26页
C语言程序设计.docx_第4页
第4页 / 共26页
C语言程序设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言程序设计.docx

《C语言程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计.docx(26页珍藏版)》请在冰豆网上搜索。

C语言程序设计.docx

C语言程序设计

C语言课程设计

一、基本要求题目3

1、题目及要求3

2、流程图3

3、源程序3

4、运行结果4

二、改错题4

1、错误程序4

2、流程图5

3、正确程序6

4、运行结果6

三、综合题目7

1、题目及要求7

2、流程图8

3、源程序14

4、运行结果33

 

一、基本要求题

1、题目及其要求

1、 编写求以下函数 p=m!

/(n!

*(m-n)!

2、流程图

3、程序代码

#include

doublefact(intn);

intmain(void)

{

intm,n;

doubleresult;

printf("Enterm:

");

printf("Entern:

");

scanf("%d%d",&m,&n);

if(m>n)

{result=fact(m)/fact(n)*fact(m-n);

printf("%f",result);}

else

printf("Noresult!

");

return0;

}

doublefact(intn)

{

inti;

doubleproduct;

product=1;

for(i=1;i<=n;i++){

product=product*i;

}

returnproduct;

}

4、运行结果

 

二、改错题

1、错误程序

#include

#include

voidfun(inta,b)

{

intt;

t=b;b=a;a=t;

}

main()

{

inta,b;

clrscr();

printf(“Entera,b:

”);

scanf(“%d%d”,&a,&b);

fun(&a,&b);

printf(“a=%db=%d\n”,a,b);

}

2、流程图

3、正确程序

#include

#include

voidfun(int*a,int*b)

{

intt;

t=*b;*b=*a;*a=t;

}

main()

{

inta,b;

clrscr();

printf("Entera,b:

");

scanf("%d%d",&a,&b);

fun(&a,&b);

printf("a=%db=%d\n",a,b);

}

4、运行结果

}

}

三、综合题

1、题目要求:

写求班级成绩管理系统的程序。

2、任务:

定义结构体数组,定义结构体成员num,name,chinese,math,English,politics,sum,来实现成员的引用。

并且通过调用函数,来实现成绩的录入,显示,保存,排序,修改与统计的功能。

主函数:

外层用do—while语句来控制进行多次操作,内层用switch—case语句进行选择。

录入函数:

用for循环分别对结构体变量一一赋值。

显示函数:

同样采用for循环将录入信息输出。

保存函数:

采用文件指针将数据保存到文件中。

排序函数:

用经典排序算法—冒泡排序法,对成员进行总分由高到底排序。

修改函数:

先进行密码验证,若正确,才能进行修改,否则推出修改界面。

进入后,用动do—while控制进行多次循环修改,修改时,用比较学号的方法,

找到该同学,对该同学的成绩进行修改。

统计函数:

分三块进行统计,分别是每门课程的最高成绩、平均成绩、超过平均成绩的人数,它们都需要通过调用函数来实现此功能。

调用函数同样用了do—while和switch—case语句来实现函数的调用。

统计每门课程的最高成绩函数:

先假设第一个是最高分,再用for循环来实现找出最高成绩,再将此同学的信息输出。

求平均成绩函数:

分别用该门课程的总分除以人数即可。

求超过平均分的人数:

用for循环进行对每个人进行控制,让他们的该门课程与平均分比较,从而得出结果。

3、流程图:

主函数:

录入函数:

设计思路:

用for循环来控制输入

显示函数:

设计思路:

用for循环来实现成绩显示

保存函数:

设计思路:

调用文件保存成绩

排序函数:

设计思路:

用冒泡排序法按成绩由高到低排序

统计函数:

设计思路:

用do--while语句和switch--case语句实现对统计方案的选择

最高成绩函数:

设计思路:

分别令第一个人的成绩为最高成绩,

再用for循环找到各门功课的最高成就

平均成绩:

设计思路:

求出总分,再求平均成绩

超过平均成绩的人数:

设计思路:

让该门课程的所有分数同average作比较,

计算超过平均分的人数。

 

4、源程序;

#include

#include

#include

#include

#defineN10

/*定义结构体数组*/

structstudent

{

intnum;

charname[15];

floatmath,chinese,English,politics,sum;

}stu[N],temp;

floatmax1,max2,max3,max4;/*定义全局变量*/

doublesum1,sum2,sum3,sum4;/*定义全局变量*/

doubleaverage1,average2,average3,average4;/*定义全局变量*/

 

/*主函数*/

intmain()

{

voidluru();/*成绩录入*/

voidxianshi();/*成绩显示*/

voidbaocun();/*成绩保存*/

voidpaixu();/*成绩排序*/

voidxiugai();/*成绩修改*/

voidtongji();/*成绩统计*/

charch;

do

{

printf("\t\t*******************************************\n");

printf("\t\t*******************************************\t\t\t\n");

 

printf("\t\t**---------------------------------------**\n");

printf("\t\t班级成绩管理系统\n");

printf("\t\t1:

成绩录入\n");

printf("\t\t2:

成绩显示\n");

printf("\t\t3:

成绩保存\n");

printf("\t\t4:

成绩排序\n");

printf("\t\t5:

成绩修改\n");

printf("\t\t6:

成绩统计\n");

printf("\t\t0:

退出系统\n");

printf("\t\t**---------------------------------------**\n");

printf("\n\t\t请选择0~6的操作:

");

ch=getchar();

switch(ch)

{

case'1':

luru();break;

case'2':

xianshi();break;

case'3':

baocun();break;

case'4':

paixu();break;

case'5':

xiugai();break;

case'6':

tongji();break;

case'0':

break;

}

}while((ch=getchar())!

='0');

getch();

return0;

}

 

/*成绩录入*/

voidluru()

{

inti;

/*录入成绩存入数组*/

for(i=0;i

{

printf("请输入学号姓名数学成绩语文成绩英语成绩政治成绩:

\n");

scanf("%d%s%f%f%f%f",&stu[i].num,stu[i].name,&stu[i].math,&stu[i].chinese,&stu[i].English,&stu[i].politics);

}

/*计算总分*/

for(i=0;i

stu[i].sum=stu[i].math+stu[i].chinese+stu[i].English+stu[i].politics;

}

 

/*成绩显示*/

voidxianshi()

{

inti;

printf("学号姓名数学成绩语文成绩英语成绩政治成绩总分\n");

for(i=0;i

printf("%d%7s%10.2f%10.2f%10.2f%10.2f%10.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].chinese,stu[i].English,stu[i].politics,stu[i].sum);

}

 

/*成绩保存*/

voidbaocun()

{

inti;

FILE*fp;/*定义文件指针*/

fp=fopen("chengji.txt","w+");

fprintf(fp,"学号姓名数学成绩语文成绩英语成绩政治成绩总分\n");

for(i=0;i

fprintf(fp,"%d%12.2s%12.2f%12.2f%12.2f%12.2f%12.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].chinese,stu[i].English,stu[i].politics,stu[i].sum);

printf("\n\n*******************恭喜您,成绩保存成功!

*******************\n\n");

}

 

/*成绩排序*/

voidpaixu()

{

/*冒泡法排序*/

inti,j;

for(j=1;j

for(i=0;i

if(stu[i].sum

{

temp=stu[i];

stu[i]=stu[i+1];

stu[i+1]=temp;

}

printf("按总分从高到低排序为:

\n");

printf("学号姓名数学成绩语文成绩英语成绩政治成绩总分\n");

for(i=0;i

printf("%d%7.2s%10.2f%10.2f%10.2f%10.2f%10.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].chinese,stu[i].English,stu[i].politics,stu[i].sum);

printf("\n");

}

 

/*成绩修改*/

voidxiugai()

{

inti,j,flag=1;

chark;

charstr[10];

intst[10];

for(j=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1