C语言程序设计.docx
- 文档编号:2977707
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:26
- 大小:550.64KB
C语言程序设计.docx
《C语言程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计.docx(26页珍藏版)》请在冰豆网上搜索。
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=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)