C语言程序设计课程设计论文
通过本项课程设计,培养了我们独立思考、 综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了我们同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!
在C语言课程的设计中,了解了高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。
设计过程中根据万年历特点进行编写:首先对万年历年、月、日进行编写,编写程序先定义每月的天数为28天,如月份为1、3、5、7、8、10、12就定义天数为31天反之如果月份为4、6、9、11就输出天数为30天,由上可见2月份为28天但是如果为闰年就有29天就要定义另一个函数#define Year(x) (x%4==0&&x%100!=0||x%400==0) ? 1:0当为闰年时可得1加上该程序便可得到每月的天数。
运行时对上面的程序进行了调试后运行会出现下面所示,第一行所显示的就是系统时间!满足了第一条要求“显示年、月、日”。而当改变系统时间后!再运行该程序上面的日期也随系统时间改变,所以满足第四条“当系统时间变动时,能自动跳到相应的时间。”在光标处按下“1”后回车,将会显示:以上的显示也证明了条件的第2条可以“显示星期!”在光标处按下“2”后回车,将会显示按着帮助所讲进行了运行可知:按“ Page Up ”键其下面接着会显示上一年该月的万年历,按“ Page Down ”键其下面会接着显示下一年该月的万年历;按“ ← ”键下面将会接着显示当年上一个月的万年历,按“ → ”键将会接着在下面显示去下一个月的万年历。由上所显示键入“0”后将会退去该程序。由以上运行的结果可知该C语言所设计的万年历满足设计要求!
C语言编程时我们遇到了很多问题并犯了错误,C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给我们留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对我们这些初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,我通过这次编程,也积累了一些C编程时常犯的错误:
1. 书写标识符时,忽略了大小写字母的区别。
编译程序把a和A认为是两个不同的变量名,而显示出错信息。C语言认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
2. 忽略了变量的类型,进行了不合法的运算。
%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。 3. 将字符常量与字符串常量混淆。
混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\\',而把它赋给一个字符变量是不行的。 4. 忽略了“=”与“==”的区别。
在C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b; 前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。 5. 忘记加分号。
分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2,编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。 { z=x+y; t=z/100; printf(\"%f\ }
对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。 6. 多加分号。 对于一个复合语句,如: { z=x+y; t=z/100; printf(\"%f\ };
复合语句的花括号后不应再加分号,否则将会画蛇添足。 7. 输入变量时忘记加地址运算符“&”。
int a,b;
scanf(\"%d%d\
这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。
8. 输入数据的方式与要求不符。scanf(\"%d%d\输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:
3,4 输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。
scanf(\"%d,%d\规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:3,4 此时不用逗号而用空格或其它字符是不对的。3 4 3:4 9. 输入字符的格式与要求不一致。
在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。 scanf(\"%c%c%c\如输入a b c
字符“a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。 10. 输入输出的数据类型与所用格式说明符不一致。 例如,a已定义为整型,b定义为实型 a=3;b=4.5;
printf(\"%f%d\\n\语法错 逻辑错 运行错 0.忘记定义变量: main() {x=3;y=6; printf(“%d\\n”,x+y);
11. C语言的变量一定要先定义才能使用;
12. 输入输出的数据的类型与所用格式说明符不一致 int a=3;float b=4.5;printf(“%f%d\\n”,a,b);
它们并不是按照赋值的规则进行转换(如把4.5转换为4),而是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后两个字节的数据按%d,作为整数输出)
13.未注意int型数据的数值范围 int型数据的数值范围(-32768~32768)
int num=89101; printf(“%d”,num);
会将超过低16位的数截去从而得到23563
注意:定义了long型,而在输出时仍用”%d”说明符,仍会出现以上错误 14. 输入变量时忘记使用地址符 scanf(“%d%d”,a,b);
15. 在用标识时,忘记了大写字母和小写字母的区别 { int a,b,c; a=2; b=3; C=A+B;
printf(“%d+%d=%D”,A,B,C); }
16. 引用数组元素时误用发圆括弧 { int i,a(10); for(i=0;i<10;i++) scanf(“%d”,&a(i)); }
17. 在定义数组时,将定义的”元素个数”误认为是”可使用的最大下标值 {
int a[10]={1,2,3,4,5,6,7,8,9,10}; int i;
for(i=1;i<=10;i++) printf(“%d”,a[i]); }
18. 对二维或多维数组的定义和引用的方法不对 { int a[5,4];
printf(“%d”,a[1+2,2+2]);
}编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。
目前流行的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基础于该程序所开发的各种应用程序中的日历程序。然而,这些程序都千篇
一律的局限在一个很短的时间范围内。但是,在很多情况下,特别是在众多的科学研究领域中,一个时间跨度较大的日历程序是很有参考价值的。C程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本填补了这一领域的空白,同时用铁的事实强有力的告诉世人:C程序设计语言作为计算机语言家族的新生事物,其发展前景是极为广阔的。
经过这一个学期对《C程序设计》的学习,我们学习了理论知识,了解了C语言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
在万年历的编写过程中也体会到了做事情一顶要细心、认真。更加知道了要掌握好基础知识。还有体会到了成功的感觉!在万年历的设计过程中更加体会到了团队合作的重要性,知道了只有团队合作才会更好的完成设计!也体会到以后在工作中团队合作的必要性和重要性!
本项课程设计也培养了我独立思考、 综合运用所学有关相应知识的能力,掌握了工程软件设计的基本方法,强化了上机动手编程能力,闯过理论与实践相结合的难关!
由于C语言是近年在国内外得到迅速推广应用的一种语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。通过这次的c语言程序设计更加了解了c语言的好处和其可用性!
在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!在设计过程中的一次次设计错误增加了我放弃的想法!不过经过大家的努力终于完成了课程设计!完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!也让我懂得了要想成功首先就必须有很强的自信心!
在C语言程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!为以后的工作打下良好的知识基础和技能基础!
因篇幅问题不能全部显示,请点此查看更多更全内容