C课程设计Word文件下载.docx
- 文档编号:3123165
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:20
- 大小:174.55KB
C课程设计Word文件下载.docx
《C课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《C课程设计Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
图1.2调用函数流程图
1.4源程序
#include<
stdio.h>
voidmain()
{
voidsort(int*x,intn);
intarray[10],*p=array;
printf("
输入一组整数:
\n"
);
for(;
p<
array+10;
p++)
scanf("
%d"
p);
p=array;
sort(array,10);
排序后的一组整数:
%d,"
*p);
return0;
}
voidsort(int*x,intn)
int*i,*j,temp;
for(i=x;
i<
x+n-1;
i++)
for(j=i+1;
j<
x+n;
j++)
if(*i<
*j)
temp=*i;
*i=*j;
*j=temp;
}}
1.5运行结果
2、改错题
2.1题目(源程序)
程序6:
conio.h>
;
main()
inti,j;
clrscr();
for(i=0;
10;
for(j=0;
{
if(i=j)break;
printf("
*"
}
2.2错误分析
主函数类型未定义;
Clrscr无法识别;
最后未编辑return0;
程序不完整。
2.3流程图
主函数流程图如图2.1所示。
图2.1流程图
2.4改正后
intmain()
{inti,j;
getch();
{printf("
{printf("
);
}}
2.5运行结果
3、综合题
3.1题目
3.1.1问题描述:
对一个有N个学生的班级,每个学生有M门课程。
该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。
3.1.2功能要求:
本系统采用一个结构体数组,每个数据的结构应当包括:
学号、姓名、M门课程名称。
本系统显示这样的菜单:
请选择系统功能项:
a、成绩录入
b、成绩显示
c、成绩保存
d、成绩排序
e、成绩修改(要求先输入密码)
f、成绩统计
显示每门课程成绩最高的学生的基本信息,显示每门课程的平均成绩,显示超过某门课程平均成绩的学生人数。
g、退出系统
执行一个具体的功能之后,程序将重新显示菜单,将学生成绩保存到文件中。
3.1.3算法提示:
数据结构:
结构体类型数组。
数据库结构:
下表构成该系统的基本数据库。
表3.1
姓名
学号
课程名称1
课程名称2
●●●●●●
char
Char
float
3.1.4测试数据:
学生人数N=10,课程门数M=4,课程名:
数学、语文、英语、政治。
3.1.5其它
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
3.2解题分析
通过调用menuDisplay,insert,gradeDisplay,save。
Modify。
sort。
count。
countMeauDisplay,highScore,average,highScoreCount函数分别求成绩录入,成绩显示,成绩保存,成绩排序,成绩修改,成绩统计。
其中成绩排序按照总成绩大小用冒泡法来求得排序。
其中用switch语句控制函数运行,数学,语文,英语,政治成绩分别用stu[i].grade[j]来表示。
其中冒泡法用交换元素来处理,求最高分时用选择法来处理。
在调用menuDisplay,insert,gradeDisplay,save,modify,sort,count,highScore,average,highScoreCount函数时分别用到for循环,学生个数从0到9,科目从0到3.从而完成了成绩显示,成绩保存,成绩保存,成绩修改,成绩统计的函数。
整个程序用调运函数,清晰明了,模块化。
3.3流程图
调用menuDisplay函数流程图如图3.1所示。
图3.1成绩显示函数流程图
主函数流程图如图3.2所示。
图3.2主函数流程图
调用sort函数流程图如图3.3所示。
图3.3成绩排序函数流程图
调用insert函数流程图如图3.4所示,调用average函数流程图如图3.5所示。
图3.4成绩输入函数流程图
图3.5平均成绩函数流程图
3.4源程序
stdlib.h>
string.h>
#defineM4//课程数量
#defineN10//学生人数
typedefstructgradeInfo{
charsno[20];
//学号
charsname[20];
//学生姓名
floatgrade[M];
//成绩
floatave;
//平均分
}GRADE;
GRADEstu[N-1],*p;
voidmenuDisplay();
//显示菜单
voidinsert();
//成绩录入
voidgradeDisplay();
//成绩显示
voidsort();
//成绩排序
voidaverage();
//显示每门课程的平均成绩
intnumb=0;
//已录入学生人数
floataverageGrade[M-1];
//科目平均成绩
intmain(void)
charcmd;
cmd='
\0'
\n欢迎来到班级成绩管理系统!
while(cmd!
='
e'
)
menuDisplay();
scanf("
%c"
&
cmd);
switch(cmd){
case'
a'
:
insert();
break;
b'
gradeDisplay();
c'
sort();
d'
average();
再见!
voidmenuDisplay()
请输入相应小写字母选择系统功能(a~e):
a:
成绩录入\n"
b:
成绩显示\n"
c:
成绩排序\n"
d:
求学科平均数\n"
e:
退出系统\n"
请输入:
"
voidinsert()
inti=0;
charch;
do
\t\t\t\t1.录入学生信息\n输入第%d个学生的信息\n"
i+1);
\n学号:
%s"
stu[i].sno);
fflush(stdin);
\n姓名:
stu[i].sname);
\n数学成绩:
%f"
&
stu[i].grade[0]);
\n语文成绩:
stu[i].grade[1]);
\n英语成绩:
stu[i].grade[2]);
\n政治成绩:
stu[i].grade[3]);
\n\n"
i++;
numb=i;
是否继续输入?
(Y/N)"
ch);
}while((ch!
n'
&
&
ch!
N'
)||i>
N-1);
录入完毕!
voidgradeDisplay(){
inti;
for(i=0;
i<
numb;
i++){
学号:
%s姓名:
%s\n数学:
%f语文:
%f英语:
%f政治:
%f\n"
stu[i].sno,stu[i].sname,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2],stu[i].grade[3]);
voidsort(){
GRADEtemp;
inti,j,k,m;
for(j=1;
numb;
for(k=1;
k<
=numb-j;
k++)
if(stu[j-1].ave<
stu[j].ave)
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
按平均成绩由高到低排名为:
for(m=0;
m<
m++)
%s\n"
stu[m].sno,stu[m].sname);
voidaverage(){
floatsum[M];
inti,j;
for(j=0;
j<
M;
j++){
sum[j]=0.0;
for(i=0;
sum[j]+=stu[i].grade[j];
数学平均成绩是:
%.2f\n"
sum[0]/numb);
语文平均成绩是:
sum[1]/numb);
英语平均成绩是:
sum[2]/numb);
政治平均成绩是:
sum[3]/numb);
3.5运行结果
图3.6第一次成绩录入运行结果
图3.7第二次成绩录入运行结果
图3.8成绩显示和成绩排序运行结果
图3.9求学科平均数和退出系统运行结果
4、总结
首先,C语言课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识,再次,我在课程设计中碰到了很多的问题,我通过查阅相关书籍,资料,通过自己钻研,当然,通过这次课程设计,我也发现了自身的很多不足之处。
在整整一星期的日子里,面对一件新事物,从理论到实践,可以说是苦多于甜。
这一周的课程设计,不仅使我巩固了以前所学过的知识,更使我获得了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正掌握好所学知识,才能够实现理论到使用的升华!
好的学习方法在学习中很多时候都起着至关重要的作用!
尤其是在这次课程设计过程中,深深地体会到,善于总结是学习过程中不可缺少的重要的一个环节。
每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的调试和运行状况,随时总结,找到自己的错误与不足之处,这样所编写的程序才能逐步提高。
就如生活那样,汗水预示着结果也见证着收获。
直到实际动手做,我才真正领略到“一份耕耘,一份收获。
”这一句话的真正含义。
这次的C语言设计,对我们而言,知识上的收获重要,但是在一个团队间的团结合作的幕幕更让我们记忆终生。
挫折是一份财富,经历是一份拥有。
虽然这些日子很短暂但我相信这次实际操作必会成为我人生路上的一段美好的回忆!
参考资料
[1]谭浩强.C程序设计(第四版)[M].清华大学出版社,2010年
[2]陈舜青,饶琛.C语言程序设计[M].南京大学出版社,2011年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)