荟聚奇文、博采众长、见贤思齐
当前位置:公文素材库 > 报告体会 > 心得体会 > C语言设计心得

C语言设计心得

网站:公文素材库 | 时间:2019-05-29 22:35:26 | 移动端:C语言设计心得

C语言设计心得

C语言设计心得

程序设计,大学之前,对我们来说,一个很陌生、很神秘的东西!以前接触电脑,觉得电脑玩游戏很好玩,可是从来没有想过,设计一个游戏是多么困难啊,当我对C语言有一定了解的时候,才开始佩服那些设计游戏的人,一个小小的C语言程序,可以让很多大一点学生痛苦难当!可是他们却可以完成一个游戏的设计,真的很不容易!

经过C语言的学习和这次实习设计程序,让我对C语言有了一个更深刻的了解和认识!

以前长辈给我们说,学习知识才是你们以后好的生活的保证,我总是不以为然,觉得没有知识,也是可以很好的生活,也就边玩边学,可是通过这次C语言的程序设计,我认识到,没有扎实的知识做基础,很难完成很多工作,想想也对啊,现在是一个科技高度发达的社会,没有科学文化知识做基础,我们如果能很好的完成一项工作呢?作为当代大学生,努力学习文化知识,才是我们现在的任务,只有让自己更有实力,以后才会对社会有贡献!

我是一个自我中心的人,从前总认为,不管什么事情,只要我一个人就可以做好,做完,可是通过这次的程序设计,让我认识到自己的不足,一个大的工程,一个人是没有办法独立完成的,虽然这个程序不是很大,但是我还是遇到了很多的困难,有很多我不会的地方,开始的时候我觉得一个人找资料也是可以解决的,可是后来才发现,那样我的效率很低,很多问题我不懂,我周围有很多人懂,只要我问一下,很快就可以解决,也让我改变了想法,应该和周围的人合作,努力的让自己更有实力,办事效率也会提高!

这次我主要设计的是一个关于学生成绩统计的程序,这个程序的特点就是简便、快捷!让你可以很快的进行添加学生成绩,一个一目了然的主菜单,让你可以看好的找到你要操作的项目!进而可以加快做事效率,添加、删除,都可以很好的做到,也可以让你查看所有的学生成绩!

这个程序唯一的缺点就是不能分科输入学生成绩,只能输入一项,也就是不能让你了解学生的各门成绩,只能了解到一个总分!是我想的太复杂了,如果修改这个缺点,可能要动很多的地方,还没有想到一个很好的办法改进这个!

扩展阅读:C语言编程课程设计心得

河南城建学院

《C语言程序设计》课程设计报告

适用专业工程管理专业课程名称C语言程序设计指导教师赵军民、魏新红、张芳芳

设计人:051409112王田

201*年6月

一、设计目的和要求

1.通过课程设计全面掌握《C语言程序设计》关键知识点,掌握C语言中数组、指针、结构体、文件等方面的基本知识。

2.通过课程设计了解并掌握C语言程序设计的方法,熟悉C程序设计的开发环境及C程序的调试过程。

3.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研有关问题,学会自己分析、解决问题的方法。

二、内容与设计思想

1、系统功能描述

(1)编译时,主菜单为如下:

0、输入记录1、显示记录2、按姓名查找3、按电话号码查找4、插入记录5、按姓名排序6、删除记录7、记录保存文件8、Quit(2)各项功能:0、输入记录:将所要记录的人的信息输入。

1、显示记录:将所输入的记录一一显示。2、按姓名查找:从所记录中输入姓名查找其信息。3、按电话号码查找:输入学生的号码查找其信息。4、插入记录:在所记录中插入需要记录的人的信息。5、按姓名排序:对已有的记录按姓名第一个字母的

ASCII码大小排列,并一一显示。

6、删除记录:从记录中删除某学生的信息。7、记录保存文件:对输入的学生的信息进行保存。8、退出程序。2、总体设计思想

运用所学知识编写一个简单的学生通讯录管理系统的程序,使它具有以下的功能:输入学生的学号,姓名,班级,电话号码,地址,显示学生记录,增加学生记录,按照学生姓名进行排序,删除学生记录,查找学生记录,保存学生记录。其主要结构用如下图示表示:

三、程序具体分析及操作时问题。

1、程序具体分析。

(1)文件名的使用:include称为文件包含命令,被包含的文件通常是由系统提供的,其扩展名为.h.stdio为standardinputoutput

的缩写,意为“标准输入输出”.代码中只要有用到printfscanf等函数,头文件就要写#include这个在代码中必不可少的,因为编写代码就是为了输出结果;用到像getch()这种键盘输入函数的话,就需要用到#include;用到系统标准输出函数的话,就用到#include;用到字符数组就要用#inciude。

(2)指针使用:如FILE*fp、定义1个文件型指针变量,指针变量名字分别叫fp,定义后fp是指向FILE类型结构体的指针。可以使他指向某个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。

指针是地址变量:它的值有两种:其一是地址,其二是内容。不同的表达方式可以取不同的值。

指针是可以运算的,它的运算法则与变量是一致的。

(3)结构体:如structLinkList定义结构体为LinkList。当结构体成员为指针的时候,每当给这个成员赋值之前必须先为这个结构体成员分配一个内存空间。

(4)字符数组的比较:如strcmp(student[i].name,name)==0,strcmp(student[i].phone,phone)==0

strcmp(student[i].phone,phone)==NULL都是用来比较输入的与原有的,当相等时即为0.

(5)实现文件的打开和输入:除有scanf和printf以外还涉及到其他的,如fp=fopen("student.bin","wb"))==NULL用fopen()函数来实

现打开文件;fwrite(&student[i],sizeof(structrecord),1,fp)!=1fwrite用于二进制的文件输入输出也用于读写记录这里的记录是指一串固定长度的字节。

(6)C语言中的一些结构。如for(j=i;j

while(a8);returna;2.操作时问题分析

编好后进行运行时,有一些遗漏问题,如大括号的使用是否对起;语句的使用是否错误;对一个变量是否定义;输出是否有遗漏;数据的使用是否符合规定,定义是否正确等。对于调试,要看程序是否运行且达到预期效果,按照思路能够正确的使用。开始时在姓名输入上出了问题,但是是小问题,修改一下便可实现姓名、学号、班级、电话号码、地址的正常输出。

四、个人任务

得到正确的程序后,并对其进行调试、测试成功后,进行分组任务,而我得到的任务如下程序及解释:

list()/*显示记录中的信息*/{

inti;/*定义整形变量i*/system("cls");/*清屏*/

if(num!=0)/*如果信息记录不为0*/{

printf("\\n\\t\\t***************以下为通讯录所有信息************");

for(i=0;i

}

printf("\\n\\t\\t************************************************");}else

printf("\\n\\t\\t通讯录中无任何纪录");printf("\\n\\t\\t按任意键返回主菜单:");getch();

return(0);/*返回0*/}

search()/*寻找信息*/{

intmark=0;inti;inta=0;

printf("\\n\\t\\t*****************按姓名查找*******************");

charname[20];/*定义名字为20个字符*/printf("\\n\\t\\t请输入姓名:");scanf("%s",name);

for(i=a;i

getch();return(0);}}}

if(mark!=0)/*{

printf("\\n\\t\\t没有相同姓名的用户纪录");printf("\\n\\t\\t按任意键返回主菜单");getch();return(0);}else{

printf("\\n\\t\\t没有相同姓名的用户纪录");printf("\\n\\t\\t按任意键返回主菜单");getch();return(0);}}

五、心得体会

这次的课程设计实验是对我们进入大学以来学习C语言结果的一次大考验。自己动手,发现问题和解决问题。并发现了许多自己的不足,平时没掌握的知识在实践中暴漏,经过不断的思考,查阅书籍和上网查资料及上机运行,解决了大部分问题,还稍微有些小问题。但是,我相信在今的学习中,一定能把它解决好。当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。

我不仅巩固《C语言程序设计》课程学习的内容,掌握设计的基本方法,强化上机动手能力,还进一步掌握以下了知识:数据类型、分支控制、循环控制、函数的定义及调用、结构体及数组、指针、文

件操作、编译预处理等;通过课程设计,掌握了程序的局部测试、调试方法,建立程序系统调试、测试的基本概念和思想,学会较大程序的系统测试和调试方法。

当我选择学生通讯录管理系统时,首先系统分析主要思路及框架,与同学讨论,联系所学知识,尽管一些文件要同组帮助找,也还有一些循环语句要具体分析,了解其运行路线,尤其是for,while,if等的使用。我知道书上和老师讲的有限,故上网搜也是一种利用资源的表现。在编程中,特别是结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开始正式的编程序了。当读懂了C语言编程的基本过程和方法。经过一波三折,终于开始正式编程。

团队精神不可少,分工合作也是必须的,身为组长就要以身作则,带领好小组,做好各项工作。在开始,对本组人员进行整理,分析其特点,再分配任务,然后进行综合应用,最后对所需资料及要编的程序进行整理得出最后程序。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,是生活也更加好。

六、源代码为:

#include"stdio.h"#include"stdlib.h"#include"string.h"#include"conio.h"#include"stdlib.h"#definenull0structrecord{

charname[20];charphone[20];charadress[40];charclassnumber[10];charnumber[30];}

student[500];structLinkList{

structrecordUS;structLinkList*next;}

a;

structLinkList*head=null;intnum=0;FILE*fp;

intmenu_select();intadduser();intlist();intsearch();intdisplay();intadd();intlistbyname();intdele();intsave();intexit();voidmain(){

system("cls");for(;;){

switch(menu_select()){

case0:adduser();break;case1:list();break;case2:search();break;case3:display();break;case4:add();break;case5:listbyname();break;case6:dele();break;case7:save();break;case8:exit(0);

}}}

menu_select(){

chars[80];inta;

printf("*_*pressanykeyentermenu!*_*\\n");getch();system("cls");

printf("\\t\\t********************MENU*********************\\n\\n");

printf("\\t\\t0.输入记录\\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\\t7.记录保存文件\\n");printf("\\t\\t8.Quit\\n");

printf("\\t\\t***********************************************\\n");do{

printf("\\nEnteryouchoice(0~8):");scanf("%s",s);a=atoi(s);}

while(a8);returna;}

adduser(){

printf("\\n\\t\\t********************************\\n");printf("\\n\\t\\t输入姓名:");

scanf("%s",&student[num].name);printf("\\n\\t\\t输入电话号码:");scanf("%s",&student[num].phone);printf("\\n\\t\\t输入地址:");

scanf("%s",&student[num].adress);printf("\\n\\t\\t输入班级:");

scanf("%s",&student[num].classnumber);printf("\\n\\t\\t输入学号:");

scanf("%s",&student[num].number);num++;

printf("\\n\\t\\t是否继续添加?(Y/N):");if(getch()=="y")adduser();return(0);}list(){inti;

system("cls");if(num!=0){

请输入用户信

printf("\\n\\t\\t***************以下为通讯录所有信息************");for(i=0;i

inta=0;

printf("\\n\\t\\t************************************");charname[20];

printf("\\n\\t\\t请输入姓名:");scanf("%s",name);for(i=a;i

}else{

printf("\\n\\t\\t按任意键返回主菜单");getch();return(0);}}}

if(mark!=0){

printf("\\n\\t\\t没有相同姓名的用户纪录");printf("\\n\\t\\t按任意键返回主菜单");getch();return(0);}else{

printf("\\n\\t\\t没有相同姓名的用户纪录");printf("\\n\\t\\t按任意键返回主菜单");getch();return(0);}}

display(){

intmark=0;inti;inta=0;

printf("\\n\\t\\t******************按电话查找******************");charphone[10];

printf("\\n\\t\\t请输入电话号码:");scanf("%s",phone);for(i=0;i

}add(){inti;

if((fp=fopen("student.bin","wb"))==NULL){

printf("\\n\\t\\t文件打开失败");}

for(i=0;i

adduser();return(0);}

fclose(fp);

printf("\\n\\t\\t通讯录文件已保存");printf("\\n\\t\\t按任意键退出程序\\n\\t\\t");exit(0);return(0);}

voiddeletebyphone(){inti,j;

intdeletemark=0;charphone[20];

printf("\\n\\t\\t请输入要删除用户电话号码:");scanf("%s",phone);if(num==0){

printf("\\n\\t\\t对不起,文件中无任何纪录");printf("\\n\\t\\t按任意键返回主菜单");getch();return;}

for(i=0;i

printf("\\n\\t\\t电话:%s",student[i].phone);printf("\\n\\t\\t地址:%s",student[i].adress);printf("\\n\\t\\t学号:%s",student[i].number);printf("\\n\\t\\t是否删除?(y/n)");if(getch()=="y"){

for(j=i;j

}

voiddeletebyname(){inta=0;intfindmark=0;intj;

intdeletemark=0;inti;

charname[20];

printf("\\n\\t\\t请输入要删除用户姓名:");scanf("%s",name);for(i=a;i

deletemark++;

printf("\\n\\t\\t删除成功");if((i+1)

{

printf("\\n\\t\\t没有该用户的纪录");printf("\\n\\t\\t是否继续删除?(y/n)");if(getch()=="y")deletebyphone();return;return;}

elseif(findmark!=0){

printf("\\n\\t\\t没有重名信息");printf("\\n\\t\\t没有该用户的纪录");printf("\\n\\t\\t是否继续删除?(y/n)");if(getch()=="y")deletebyphone();return;return;}}dele(){

charchoic;

printf("\\n\\t\\t1-按电话号码删除2-按姓名删除");printf("\\n\\t\\t请选择:");choic=getch();switch(choic){

case"1":deletebyphone();break;case"2":deletebyname();break;

}

return(0);}

listbyname(){inti,j;

structrecordtmp;for(i=1;i

intj;FILE*fp;

fp=fopen("student.txt","w");if(fp==NULL)

printf("can"topenthefile.");if(num!=0){

for(j=0;j

友情提示:本文中关于《C语言设计心得》给出的范例仅供您参考拓展思维使用,C语言设计心得:该篇文章建议您自主创作。

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


C语言设计心得》由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
链接地址:http://www.bsmz.net/gongwen/747923.html
相关文章