C语言程序设计心得体会
在设计打字游戏的过程中,通过我们小组各成员之间的相互讨论和合作,我们完成了打字练习的程序设计。在这个学期中,我们已经学习了《C 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。
C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。
在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!
一学期的学习成果,都体现在了这次打字游戏的设计过程中。这个学期,我学得不算认真,一开始做感觉力不从心,但在几个同学的帮助和努力下,我翻阅课本,询问ACM大神,绞尽脑汁的情况下做完这个程序设计,我的自信一下子提高了。尽管对于有些人这种程序会很简单,可对我这个C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!
第二章 程序设计报告
班级:12自动化2
编制人: ads
2015.4
一、 程序要求:
编写程序实现基于塞尔维斯特准则的二次型标量函数的正定性判断。
二、任务需求分析:
二次型标量函数对应的矩阵,一般为实对称矩阵,可以根据赛尔维思特准则进行判断其正定性。因此首先需要判断其对应的矩阵是否为实对称矩阵,而实对称矩阵的定义是在该矩阵中对于任意元素a[i][j]=a[j][i]总成立。其次,根据赛尔维思特准则,先算出其各主子行列式即,△1,△2,△3,.....△n。
(1)若该实对称矩阵的各主子行列式均为正△1>0,△2>0,△3>0,.....△n>;则该矩阵对应的二次标量函数为正定。
(2)若对于该实对称矩阵的任一主子行列式△i,当i为偶数时△i>0且当i为奇数时△i<0,则该矩阵对应的二次标量函数为负定。
三、程序设计流程图:
四、程序设计实现:
输入:系数矩阵的介数n、和矩阵A;
输出:判断是否为实对称矩阵的结果;若为实对称矩阵,并將输出其各主子行列式的值,以及判断其对应的二次型标量函数是否为正定的结果。
五、程序验证与测试:
1. 当输入矩阵不是是对称矩阵时
2.当输入的矩阵为实对称矩阵时:
六、程序源代码:
#include <stdio.h>
#include <stdlib.h>
#define N 10 /*定义最大为10阶行列式*/
int Fun(int m, int a[N][N] ); /*函数声明*/
int judge(int n, int a[N][N] ); //判断是否为实对称的函数
int main()
{
int n = 0, m = 0; /*初始化阶数n*/
int i = 0, j = 0;
int d,h=0,l=0;
int a[N][N] = {{0}}; /*定义行列式*/
printf("请输入矩阵介数:\n");
scanf("%d",&n); /*读入阶数*/
printf("输入矩阵的各元素为:\n");
while(1)
{
for( i = 0; i < n; i++)
{
for( j = 0; j < n; j++)
scanf("%d", &a[i][j]);
}
if (judge(n,a))
{
printf("矩阵的各主子行列式为:");
while(1)
{
for(m = 1;m <= n; m++)
{
printf("\n △%d = %d\n",m,Fun( m, a ) );
if (Fun(m,a)>0) h++;else h--;
if (m%2==0) {if(Fun(m,a)>0)l++;else l--;}
else {if(Fun(m,a)<0)l++;else l--;}
}
if (h==n)
printf("此矩阵对应的二次型标量函数为正定\n");
else if(l==n)
printf("此矩阵对应的二次型标量函数为负定\n");
else printf("此矩阵对应的二次型标量函数既不是正定也不是负定\n");
return 0;
}
}
else printf ("此矩阵不是实对称矩阵\n请重新输入:\n");
}
return 0;
}
int Fun( int m, int a[N][N] )
{
int b[N][N] = {{0}}; /*定义数组b并初始化*/
int i = 0, j = 0, sum = 0; int x = 0, c = 0, p=0;
if(m == 1)
return a[0][0];
for(i = 0;i < m; i++) {
for(c = 0;c < m-1; c++)
{
for(j = 0;j < m-1;j++)
{
if (c < i)
{
p = 0;
}
else{ p = 1; } b[c][j] = a[c+p][j+1];}
}
if(i % 2 == 0) x = 1;
else x = (-1); /*i+j为奇数,减法运算*/
sum += a[i][0] * Fun(m - 1, b ) * x; }
return sum; }
int judge(int n, int a[N][N] ) //判断是否为实对称矩阵
{
int i,j,k=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(a[i][j]==a[j][i])
k++;
else k--;
}
if(k==n*n)
{
printf("该矩阵为实对称矩阵\n");
return 1;
}
else return 0;
}
在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到…
C语言程序设计心得体会在设计打字游戏的过程中通过我们小组各成员之间的相互讨论和合作我们完成了打字练习的程序设计在这个学期中我们已经…
体会通过这次C语言的课程设计我明白了很多也知道了很多更收获了很多在课程设计的过程中出现过困难三周的课程设计已经结束了回想学习C语言…
《C语言程序设计》教学的实践与心得【摘要】在21世纪的大环境下,各种实践性学科都将面临着强大的冲击,而作为计算机软件开发等的入门语…
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过…
贾博超:课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练…
在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到…
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过…
数据结构课程设计设计题目:两个链表的交叉合并专业班级:08软件工程3班姓名:**学号:***设计时间:20XX/9/25指导教师:…
河南城建学院C语言程序设计课程设计报告适用专业工程管理专业课程名称指导教师设计人051409112王田20xx年6月一设计目的和要…
《C语言程序设计》教学的实践与心得【摘要】在21世纪的大环境下,各种实践性学科都将面临着强大的冲击,而作为计算机软件开发等的入门语…