C程序设计报告Word格式文档下载.docx
- 文档编号:17012868
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:15
- 大小:184.69KB
C程序设计报告Word格式文档下载.docx
《C程序设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C程序设计报告Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
五.各功能模块编写内容详细情况及调试10
1.数据类型定义`10
2.函数结构和功能实现11
3.软件调试问题分析及解决方法11
六.心得体会及建议13
七.参考文献14
学生成绩统计C程序设计报告
一:
设计要求
(1).要求利用C语言面向过程的编程思想来完成系统的设计,收集资料,分
课题,分解问题,形成中体编程思路;
(2).深入分析各个小问题,列出大纲,编写各部分程序模块,突出C语言的函数特征,以多个函数实现每一个子功能;
画出功能模块图;
(3).具有清晰的程序流程图和数据结构的详细定义;
对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;
(4).熟练掌握C语言对文件的各种操作。
上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;
(5).完成课程设计报告,并进行答辩。
二.设计的作用、目的
C语言是一种易学易懂的通用程序设计语言,由于它具有功能性
运用简洁,灵活兼有高级语言与低级语言的优点,以及“目标程序效率高”可移植性和能在各种系统上普遍实现等特点使它成为当今世界上的主流程序设计语言之一,同时被选作目前全世界广泛应用,同时也是大学生必修的科目。
作为当代的大学生要很好的利用它,学好一门设计语言,实现学以至用。
(1)通过课程设计全面掌握《C语言程序设计》关键知识点,掌握C语言中
组、指针、结构体、各种函数等方面的基本知识。
(2)通过课程设计了解并掌握C语言程序设计的方法,熟悉C程序设计的开发环境及C程序的调试过程。
(3)培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研有关问题,学会自己分析、解决问题的方法。
(4)通过自己动手,培养、提高对编程的兴趣,为将来从事相关工作打好基础。
三.课题分析
1、题目
有6个学生,每人考4门课,要求
1)找出成绩最高的学生号和课程号
2)找出有不及格课程的学生号及其各门课的全部成绩
3)求全部学生全部课程的总平均分数
2、编写一个《学生成绩统计》的C程序,包括以下功能:
1)输入功能:
学生基本信息及成绩所选科目成绩的录入;
2)处理功能a)对学生各科成绩进行分析(即求单科平均成绩);
b)对所开课程的成绩分析(求其平均成绩,最高分和最低分);
c)对学生考试成绩进行分析(学生不及格科目,及最高分等)
3、设计思路分析
1).分析程序的功能要求,划分程序功能模块。
2).画出系统流程图。
3).代码的编写。
定义数据结构和各个功能子函数。
4).程序的功能调试。
5).完成系统总结报告以及使用说明书
四.设计的具体实现
1、流程图
(1)主流程图
(2)单个板块设计思路
以找出有不及格课程的学生号及其各门课的全部成绩板块为例:
输入学生成绩
forfori=0to5
forj=0to3
score[i][j]
T
<
60
F
得到相应的i及score[i][j]
输出score[i][j]
注:
其他功能的流程图可参照例流程图绘制。
2、代码及说明
#include<
stdio.h>
#include<
string.h>
main()
{
inti=0,j=0,m=0,n=0,maxi=0,maxj=0,max=0;
/*初始化行列*/
intkexuhao[4];
/*四门课程*/
floatkeavr[4];
floatreavr[6];
floato=0;
structstu/*定义结构体*/
{
intnum;
intles[4];
}stu[6];
clrscr();
printf("
Pleaseinputthelessonnumber.\n"
);
for(;
i<
4;
i++)/*输出课程号*/
scanf("
%d"
&
kexuhao[i]);
/*输入课程号*/
}
Pleaseinputtheinformationofstudents.\n"
/*输出学生信息*/
for(i=0;
6;
i++)/*开始循环*/
stu[i].num);
for(j=0;
j<
j++)
{
scanf("
stu[i].les[j]);
/*按顺序输入成绩*/
}
Theinformationis:
\n"
/*输出所有学生信息*/
Num.kecfenkecfenkecfenkecfen\n"
for(i=0;
i++)
printf("
No.%d|%d|%d|%d|%d|%d|%d|%d|%d|\n"
stu[i].num,kexuhao[0],stu[i].les[0],kexuhao[1],stu[i].les[1],kexuhao[2],stu[i].les[2],kexuhao[3],stu[i].les[3]);
\nXianshibujigetongxue:
if(stu[i].les[j]<
60)/*不及格条件*/
{
printf("
/*打印不及格学号各科分数*/
break;
}
m=0;
m+=stu[i].les[j];
reavr[i]=(float)m/4;
/*求各人成绩平均分*/
for(j=0;
n=0;
n+=stu[i].les[j];
keavr[j]=(float)n/6;
/*求各科成绩平均分*/
o+=stu[i].les[j];
o=o/24;
/*求总平均分*/
\nGekechengjizuigaofenwei:
/*输出成绩最高分*/
if(max<
stu[i].les[j])/*冒泡求最大值*/
{
max=stu[i].les[j];
maxi=i;
maxj=j;
}
xueshenghao:
%dkexuhao:
%dchengji:
%d\n"
stu[maxi].num,kexuhao[maxj],max);
\nGerenpingjunfenwei:
/*输出各人成绩平均分*/
No.%daverage:
%.2f|"
stu[i].num,reavr[i]);
if((i+1)%3==0)
printf("
\nGekechengpingjunfenwei:
kexuhao:
%daverage:
kexuhao[j],keavr[j]);
if((j+1)%2==0)
\nZongpingjunfen:
%.2f\n"
o);
/*输出总平均分*/
getch();
}
3、结果及说明
成绩输入:
(依次输入课程号及学生号和学生成绩,输入一下按一下回车)
Pleaseinputthelessonnumber:
1
2
3
4
Pleaseinputtheinformationofstudents:
72
85
69
89
63
56
77
92
76
65
80
83
67
5
90
84
95
6
60
75
结果输出:
Num.kecfenkecfenkecfenkecfen
No.1|1|72|2|85|3|69|4|89|
No.2|1|63|2|56|3|77|4|85|
No.3|1|92|2|76|3|65|4|80|
No.4|1|83|2|72|3|67|4|69|
No.5|1|90|2|84|3|76|4|95|
No.6|1|60|2|56|3|75|4|83|
Xianshibujigetongxue:
Gekechengjizuigaofenwei:
Xueshenghao:
5kexuhao:
4chengji:
Gerenpingjunfenwei:
No.1average:
78.75|No.2average:
70.25|No.3average:
78.25|
No.4average:
72.75|No.5average:
86.25|No.6average:
68.50|
Gekechengpingjunfenwei:
Kexuhao:
1average:
76.67|Kexuhao:
2average:
71.50|
3average:
71.50|Kexuhao:
4average:
83.50|
Zongpingjunfen:
75.79
4、输入及结果截图
五、各功能模块编写内容详细情况及调试:
1、数据类型定义
在定义数据类型时,由于学生成绩统计需要不同的数据类型来反应所统计的学生号、课程号、最高分、平均分,则学生号、课程号和分数需用int型数据,而平均分用float型数据。
如:
structstu/*定义结构体*/
-------------------定义int型学生号
-------------------定义int型课程号
floatkeavr[4];
-------------------------定义float型各科平均分
floatreavr[6];
-------------------------定义float型个人平均分
floato=0;
--------------------------定义float型总分
说明:
在定义结构体类型和变量时,可采用先定义结构体类型再定义结构提变量,也可同时定义结构体类型和变量,还可以直接定义结构提变量。
上例中的定义方式为同时定义结构体的类型和变量。
结构体定义的格式如下:
struct[结构体名]
类型标识符成员名;
};
2、函数结构和功能实现
A.主函数“main()”
B.输入函数“scanf()”
C.输出函数“printf()”
D.for循环结构——对使用者输入内容与内部资料内容进行核对
E.if条件结构——配合for循环核对内容符合条件与否选择对应的操作
3、软件调试问题分析及解决方法
A、TC的调试和运行:
TC程序在运行前首先要设置其路径,这样才能调用库函数,一般TC默认
的路径为C:
\TC,但如果用户拷贝的TC没有装载在C盘下,则TC将无法寻找到路径,必须重新调试其路径。
调试方法如下(以装载在C盘为例):
打开TC编辑页面,找到Options选项,将Directories中的所有C:
\更改为G:
\,然后点Saveoptions.修改后TC就可以的调用库函数文件了
B、将已改好的程序复制到TurboC时,由于软件的内容过多会出现右移,以致大部分的内容无法复制到TurboC的界面上,最后导致软件无法运行。
解决方法:
在改程序时应该把格式设置好,注意左对齐,同时一行的语句尽量的短,最好是一个语句占一行。
C、在将程序输入到TC中,对源程序进行编译、运行,发现程序存在的多处错误,如下图所示:
可以按照程序运行的错误提示对原程序进行修改,要注意细节问题,比如语句后面少了分号,以及初始化的时候没有赋值等等一些细小的错误会使程序出现很多错误
比如,在定义结构体的时候,少了一个分号,致使出现了很多错误,经过仔细检查,终于发现了错误并加以改正。
在调试过程中有时也会遇到不懂的问题,我去图书馆或上网查阅一些资料或者是向老师请教也解决了对源程序一一修改直到运行成功。
六、心得体会及建议
经过短短一星期的计算机软件技术实习,我对计算机编程培养了浓厚的兴趣,以前总认为C语言很枯燥,但当我看到了用C语言做出的《学生成绩管理系统》、《黑白棋游戏系统》、《图书馆管理系统》后,我才真正感受到了C程序设计的灵活和神奇。
仅仅大小不到3M的一个TC环境居然能通过源程序的运行作出那么多的以前觉得很神秘的软件程序。
让我真正学到了计算机的有用和学习编程的必要性。
在做这次课程设计的时候,遇到这样那样的麻烦,因此,我也得到了许多宝贵的经验:
1)在设计程序之前,务必要对你所设计的题目和内容有一个系统的了解,知道所设计的题目和内容包含那些资源。
2)设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件流程图,因而,要先把设计原理与思路搞清楚,再把流程图画出来,这样设计起来就简单多了。
3)在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路,发现错误也是取得成绩的一种。
4)要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。
5)在设计程序过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
七、参考文献
1)谭浩强《C程序设计》(第三版)
2)谭浩强《C程序设计解题与上机指导》
3)《全国计算机等级考试二级教程—公共基础知识》,高等教育出版社,2004年版。
4)张继温、谭浩强、唐永炎编,《C语言程序设计教程》,高等教育出版社,1998年9月。
5)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 报告