您的位置:

c语言学生信息管理系统心得体会,基于c语言的学生信息管理系统毕业设计

本文目录一览:

学生信息管理系统C语言编程

#includestdio.h /*I/O函数*/

#includestdlib.h /*其它说明*/

#includestring.h /*字符串函数*/

#define BUFLEN 100 /* 缓冲区最大字符数 */

#define LEN 15 /* 学号和姓名最大字符数,实际请更改 */

#define N 100 /* 最大学生人数,实际请更改*/

struct record /*结构体*/

{

char code[LEN+1]; /* 学号 */

char name[LEN+1]; /* 姓名 */

int age; /* 年龄 */

char sex[3]; /* 性别 */

char time[LEN+1]; /* 出生年月 */

char add[30]; /* 家庭地址 */

char tel[LEN+1]; /* 电话号码 */

char mail[30]; /* 电子邮件地址 */

}stu[N];

int k=1,n,m; /* 定义全局变量 */

void readfile();/* 函数声明 */

void seek();

void modify();

void insert();

void del();

void display();

void save();

void menu();

int main()

{

while(k)

menu();

system("pause");

return 0;

}

void help()

{

printf("\n0.欢迎使用系统帮助!\n");

printf("\n1.进入系统后,先刷新学生信息,再查询;\n");

printf("\n2.按照菜单提示键入数字代号;\n");

printf("\n3.增加学生信息后,切记保存按7;\n");

printf("\n4.谢谢您的使用!\n");

}

void readfile()/* 建立信息 */

{

char *p="student.txt";

FILE *fp;

int i=0;

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

{

printf("Open file %s error! Strike any key to exit!",p);

system("pause");

exit(0);

}

while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)

{

i++;

i=i;

}

fclose(fp);

n=i;

printf("录入完毕!\n");

}

void seek() /*查找*/

{

int i,item,flag;

char s1[21]; /* 以姓名和学号最长长度+1为准 */

printf("------------------\n");

printf("-----1.按学号查询-----\n");

printf("-----2.按姓名查询-----\n");

printf("-----3.退出本菜单-----\n");

printf("------------------\n");

while(1)

{

printf("请选择子菜单编号:");

scanf("%d",item);

flag=0;

switch(item)

{

case 1:

printf("请输入要查询的学生的学号:\n");

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[i].code,s1)==0)

{

flag=1;

printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mail\n");

printf("--------------------------------------------------------------------\n");

printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

if(flag==0)

printf("该学号不存在!\n"); break;

case 2:

printf("请输入要查询的学生的姓名:\n");

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[i].name,s1)==0)

{

flag=1;

printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mail\n");

printf("--------------------------------------------------------------------\n");

printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

if(flag==0)

printf("该姓名不存在!\n"); break;

case 3:return;

default:printf("请在1-3之间选择\n");

}

}

}

void modify() /*修改信息*/

{

int i,item,num;

char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和学号最长长度+1为准 */

printf("请输入要要修改的学生的学号:\n");

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[i].code,s1)==0) /*比较字符串是否相等*/

num=i;

printf("------------------\n");

printf("1.修改姓名\n");

printf("2.修改年龄\n");

printf("3.修改性别\n");

printf("4.修改出生年月\n");

printf("5.修改地址\n");

printf("6.修改电话号码\n");

printf("7.修改E-mail地址\n");

printf("8.退出本菜单\n");

printf("------------------\n");

while(1)

{

printf("请选择子菜单编号:");

scanf("%d",item);

switch(item)

{

case 1:

printf("请输入新的姓名:\n");

scanf("%s",s2);

strcpy(stu[num].name,s2); break;

case 2:

printf("请输入新的年龄:\n");

scanf("%d",stu[num].age);break;

case 3:

printf("请输入新的性别:\n");

scanf("%s",sex1);

strcpy(stu[num].sex,sex1); break;

case 4:

printf("请输入新的出生年月:\n");

scanf("%s",s2);

strcpy(stu[num].time,s2); break;

case 5:

printf("请输入新的地址:\n");

scanf("%s",s2);

strcpy(stu[num].add,s2); break;

case 6:

printf("请输入新的电话号码:\n");

scanf("%s",s2);

strcpy(stu[num].tel,s2); break;

case 7:

printf("请输入新的E-mail地址:\n");

scanf("%s",s2);

strcpy(stu[num].mail,s2); break;

case 8:return;

default:printf("请在1-8之间选择\n");

}

}

}

void sort()/*按学号排序*/

{

int i,j,*p,*q,s;

char temp[10];

for(i=0;in-1;i++)

{

for(j=n-1;ji;j--)

if(strcmp(stu[j-1].code,stu[j].code)0)

{

strcpy(temp,stu[j-1].code);

strcpy(stu[j-1].code,stu[j].code);

strcpy(stu[j].code,temp);

strcpy(temp,stu[j-1].name);

strcpy(stu[j-1].name,stu[j].name);

strcpy(stu[j].name,temp);

strcpy(temp,stu[j-1].sex);

strcpy(stu[j-1].sex,stu[j].sex);

strcpy(stu[j].sex,temp);

strcpy(temp,stu[j-1].time);

strcpy(stu[j-1].time,stu[j].time);

strcpy(stu[j].time,temp);

strcpy(temp,stu[j-1].add);

strcpy(stu[j-1].add,stu[j].add);

strcpy(stu[j].add,temp);

strcpy(temp,stu[j-1].tel);

strcpy(stu[j-1].tel,stu[j].tel);

strcpy(stu[j].tel,temp);

strcpy(temp,stu[j-1].mail);

strcpy(stu[j-1].mail,stu[j].mail);

strcpy(stu[j].mail,temp);

p=stu[j-1].age;

q=stu[j].age;

s=*q;

*q=*p;

*p=s;

}

}

}

void insert() /*插入函数*/

{

int i=n,j,flag;

printf("请输入待增加的学生数:\n");

scanf("%d",m);

do

{

flag=1;

while(flag)

{

flag=0;

printf("请输入第 %d 个学生的学号:\n",i+1);

scanf("%s",stu[i].code);

for(j=0;ji;j++)

if(strcmp(stu[i].code,stu[j].code)==0)

{

printf("已有该学号,请检查后重新录入!\n");

flag=1;

break; /*如有重复立即退出该层循环,提高判断速度*/

}

}

printf("请输入第 %d 个学生的姓名:\n",i+1);

scanf("%s",stu[i].name);

printf("请输入第 %d 个学生的年龄:\n",i+1);

scanf("%d",stu[i].age);

printf("请输入第 %d 个学生的性别:\n",i+1);

scanf("%s",stu[i].sex);

printf("请输入第 %d 个学生的出生年月:(格式:年.月)\n",i+1);

scanf("%s",stu[i].time);

printf("请输入第 %d 个学生的地址:\n",i+1);

scanf("%s",stu[i].add);

printf("请输入第 %d 个学生的电话:\n",i+1);

scanf("%s",stu[i].tel);

printf("请输入第 %d 个学生的E-mail:\n",i+1);

scanf("%s",stu[i].mail);

if(flag==0)

{

i=i;

i++;

}

}

while(in+m);

n+=m;

printf("录入完毕!\n\n");

sort();

}

void del()

{

int i,j,flag=0;

char s1[LEN+1];

printf("请输入要删除学生的学号:\n");

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[i].code,s1)==0)

{

flag=1;

for(j=i;jn-1;j++)

stu[j]=stu[j+1];

}

if(flag==0)

printf("该学号不存在!\n");

if(flag==1)

{

printf("删除成功,显示结果请选择菜单6\n");

n--;

}

}

void display()

{

int i;

printf("所有学生的信息为:\n");

printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mail\n");

printf("--------------------------------------------------------------------\n");

for(i=0;in;i++)

{

printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

}

void save()

{

int i;

FILE *fp;

fp=fopen("student.txt","w"); /*写入*/

for(i=0;in;i++)

{

fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

fclose(fp);

}

void menu()/* 界面 */

{

int num;

printf("*********************系统功能菜单************************ \n");

printf("友情提醒:查询前请先刷新系统! \n");

printf(" ---------------------- ---------------------- \n");

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

printf(" * 0.系统帮助及说明 * * 1.刷新学生信息 * \n");

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

printf(" * 2.查询学生信息 * * 3.修改学生信息 * \n");

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

printf(" * 4.增加学生信息 * * 5.按学号删除信息 * \n");

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

printf(" * 6.显示当前信息 * * 7.保存当前学生信息* \n");

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

printf(" * 8.退出系统 * \n");

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

printf(" ---------------------- ---------------------- \n");

printf("请选择菜单编号:");

scanf("%d",num);

switch(num)

{

case 0:help();break;

case 1:readfile();break;

case 2:seek();break;

case 3:modify();break;

case 4:insert();break;

case 5:del();break;

case 6:display();break;

case 7:save();break;

case 8:k=0;break;

default:printf("请在0-8之间选择\n");

}

数据结构课程设计--学生成绩管理系统C语言

一、需求分析

1. 系统菜单的主要功能

(1)输入若干条记录

(2)查找并修改记录

(3)查找并删除记录

(4)成绩排序

(5)查找并显示一条记录

(6)将数据载入内存中

(7)将所有数据写入文件中

(0)退出程序

2. 功能分析

功能1为输入一条记录到结构体中去。

功能2、3和5算法相似,都是先查找成绩,2、3在此基础上再对查找出的信息进行操作。因为学生姓名定义成了字符数组的形式,因此在运用选择法进行排序的时候,要用到strcmp,strcpy等函数

功能4为成绩排序,可按学生学号排序或某单科成绩或总分排序,并输出相关的学生信息等。

功能6和7是对文件的操作,提前准备好数据。

二、总体设计

“学生成绩管理系统”包括:成绩录入、修改、删除、成绩统计和信息保存、载入这几个模块。

1、 主函数 main()

利用无限次循环while(1)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

2、 菜单选择函数showmenu ();

这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的各项功能选单,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!3、 输入记录函数addstudent (stu *s) 这是一个带参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入。

算法:利用函数参数s,并将s-next设为NULL。每输入一个数据就声明一个新节点p,把p-next设为NULL,并且链接到之前列表的尾端。4、 显示记录函数showstudent (stu *s) 这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。 算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。5、 查找记录函数findstudent (stu *s) 这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。 算法:采用线性查找法往下一个节点查找。输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p-name,s) p != NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点。6、 删除记录函数delstudent (stu *s) 这是一个有参函数,形参为“链表头的指针”,先输入要删除的学生记录的学号,找到后显示该学生信息,等确认后便可按“Y”进行删除。 算法:从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个学号。如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止。7、保存数据到文件函数savestudent (stu *s) 这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件。8、从文件读数据函数loadstudent (stu *s) 这是一个不返回值的有参函数,形参为“链表头的指针”,根据输入的文件地址进行读取。

三、程序流程图

1)成绩统计:

2)信息录入:

3)信息修改:

4)信息删除:

4)信息查询:

4)信息保存:5)主函数:

四、程序调试及体会

1)程序演示:

2)程序调试:

(1)刚开始没有那个初始化函数,程序运行后,没有输入任何数据就试得去执行显示功能,结果显示的是一些乱码!加入初始化函数后,这种现象也随之消失。

(2)刚开始执行输入函数,按学号顺序输入十个学生的成绩,输完后执行显示功能,学生成绩记录是按学号的反顺序显示的,试着在其中增加一些语句,希望能把学号按正常顺序显示,但暂时没有成功,所以在输入成绩时只能按学号反顺序输入,最后就按学号正常顺序输出了。

(3)刚开始时,先把成绩按平均分排序,再插入一个学生的成绩,执行显示功能,虽然插入的学生的成绩能正常插入,但该学生的名次为0。后来,在插入成绩之后,调用排序函数,把所有成绩重新排序一次。

(4)在输入函数中设了一个无限循环,可以输入无数个学生的成绩信息,当学号为0的时候则停止输入。

(5)输入太多个学生的成绩时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳。

(6)在没有输入任何信息的情况下,去执行排序功能,最后显示有一个记录,学号、姓名为空白,成绩都为0,名次为1。

(7)在输入选项时不能输入字母,否则会死循环,建议不要乱输字母。

3)心得体会:

经过一个星期的课程设计,感觉自己收获不少!

首先是:链表是数据结构的基本体现,所以这个课程设计里面主要都是用链表,而已要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间看课本和参考课外书,使C语言的知识强化了不少。

其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回值函数和不返回值函数两者在主函数中的调用是不同的…………

更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到了要学好C语言,数据的处理是相当重要的。这个学生成绩管理系统都是在自己知识范围内完成的,所以界面清晰简单,可能不是很好看,但绝对实用!

从这里我也得到一个体会,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程序或者软件。

相信这次的课程设计为我以后继续从事计算机工作打了一个小小的开头。

参考书目;

[1]谭浩强. C程序设计(第三版) . 北京:清华大学出版社, 2006

[2]谭浩强. C程序设计上机指导(第三版) . 北京:清华大学出版社, 2005

[3]严蔚敏、吴伟民. 数据结构(C语言版) . 北京:清华大学出版社, 2006

计算机科学与技术系课程设计评分表

C语言心得体会

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在梁强老师的辛勤指导下,终于游逆而解。同时,在梁强老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

c语言程序设计心得

C语言程序设计课程是高等院校计算机专业基础课程之一,其教学效果直接影响学生在计算机方面的应用。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。那么要如何写关于c语言程序设计心得呢?本文是c语言程序设计的心得,仅供参考。

c语言程序设计心得一

在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。

虽然在上个学期中,我们已经学习了《C 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。

C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。

这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。

在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析 方法 进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!

在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考。

当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。

三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。

c语言程序设计心得二

通过本次教师发展在线的C语程培训中,我受益匪浅,几位教授的精彩演讲,让我找到了自己的不足和日后教学中的改革方向和内容。同时,也让我感觉到了,有今天各位教授的良好教学效果,这其中包含了他们的艰辛、背后的大量付出和无私奉献。

我是一直从事C类语言的教学工作,对C语言的教学已有5年教龄,在这几年的教学过程中,我们也一直在寻找好的 教学方法 和新的教学理念。通过本次学习,我 总结 要教好《C语言程序设计》这门课,最基本要把握好以下几个方面:

(一)要重视实践环节,上机调试成绩非常重要。

学习一门语言,就是要按照它的语法来编程。要编程,当然就要上机操作来验证你程序的正确性。所以上机非常重要,通过执行你所写的程序,完成你所写程序的目标,最终达到你的目的。而且通过执行程序,你会发现程序中的错误,从而使你了解你所学知识中的不足,同时,要学会根据编译时提示的错误来改正程序中发生的错误,以便下次不会再犯同样的错误。

(二)基本语法学习虽然枯草乏味,但是它相当于高楼大厦的一砖一瓦,一定要下硬功夫让学生掌握熟练。

C语言的语法部分。这部分内容是学好C语言的基础,只有学好了这些语法,才会写程序,看程序。所以对一个初学者来说,这部分内容是非常重要的,所以要扎实地熟悉每一个语法,并能根据这些语法来编程。

(三)学习要抓住重点,难点部分要多讲、多学、多练。

通过这次学习使得我对C语言的重点,难点,以及易出错的地方把握的更精准了。当然,这只是针对我个人而言。在C语言学习过程,重点就是数组,指针,以及结构体了。难点也是它们了,不过数组和结构体还是挺简单,所以在此主要就指针方面谈谈自己的看法。

下面谈谈通过这次学习,结合我们学校的教学情况,打算对该课程的教学进行如下几个方面的改革:

(一)理论教学内容的组织

C语言的重点知识包括:结构化程序设计方法、流程图的组织、三种程序设计结构、三种基本数据类型和三种自定义数据类型;难点包括:结构程序设计方法、算法的分析、流程图的组织与设计、函数、指针等。

根据知识内容和每年的新学时安排,我们将理论教学内容分为授课内容和自学内容两 大模块。

(1)授课内容

C语言的授课内容分为两阶段:①基础准备阶段 这部分内容确保学生“实用、够用”,主要包括三种基本数据类型(只要求掌握常用的int,float,char);三种常用运算符及其表达式(赋值、算术、逻辑(包括关系));三种程序设计结构(顺序、选择、循环)。②实训项目驱动阶段 这部分内容主要是“实训实战”,主要包括数组、函数、指针和结构体。通过第一阶段的学习,学生已经具备了一些程序设计的基础知识,在这一阶段将通过一个实训项目的完成来熟悉主要内容,同时巩固第一阶段的成果。

(2)自学内容

课本中的内容上课没重点介绍或者说就是没提到的,划为自学内容。但这些内容,我们并不是在课堂要求学生回去自学:要求过高,规矩过多,这样效果不佳。而是让学生在实验中发现问题后,带着问题去学习,去找答案。

例:整型 我们只介绍int基本类型,当学生想计算n!时,学生测试5!=120时,他可能会去测试20!、50!,这时,存放阶乘的变量Factorial再定义为int,结果就是0了,这时问题就来了,他就会去寻找正确的处理方法(long int)。

(二)实验教学的安排与设计

教学改革方案确定后,我们对本课程实验教学上从多方面进行了教学更新。我们考虑到学生处于了解计算机语言及编程的初级阶段,有许多最基础的内容有待掌握,所以本课程的实验教学不太适合完全以项目开发的形式进行,注重的是加强模块化实训。

(1)上好第一节实验课

我们常说“上好第一节课”,那么第一节实验节的重要性也不言而喻。这节课对培养学生的学习兴趣、增强学生的学习信心、锻炼学生的自主学习等多方面影响很大。

第一次实验项目是mdash;熟悉Turbo C的运行环境,主要是掌握一些在TC中的一些键盘操作方式。一般是教师给学生提供程序代码(三个),但我们在学生不知情的情况下,给学生两个有语法错误的和一个正确的程序。这样,当学生运行正确的程序时,知道计算机可以帮我们处理问题,原来程序就是这样写的;当学生运行错误的程序,首先他会诧异(老师给的程序原来是错的),于是要求他们自己修改,尤其是有时一个致命错误导致的10多个errors,被学生修改后,没有了errors或所剩无几,这时学生表现的很兴奋、很有成就感,从而加强了本课程的学习兴趣和信心。

(2)分两阶段进行

实验内容与理论教学内容相互应,在基础准备阶段,这方面教学方法上主要是加强操练。通过各种大小程序、多重训练和一个问题的多种解法来加强语法知识点的掌握和训练,开阔学生编程的思路,掌握编程基础。同时,在这过程中我们严格把关,让学生课后认真准备,每次进实验室时,应有写好的完整代码,上机调试,发现问题同时解决问题,要求认真完成实验内容,并在课后书写实验 报告 。鼓励学生多写程序,要加强实践环节,首先要从量上有个划分。在实训项目驱动阶段。本阶段实训项目的设计非常重要,原则是既要使学生有切入点能够动手又要使各章的内容之间有联系点。

(三)案例教学法

C语言的教学,教师一般受传统应试 教育 的影响,狠抓理论考试,忽略了程序设计能力的培养,把授课重点放在程序设计语言的基本语法的讲授和掌握上,所选的编程实例大多用于语法规则的验证和说明,仅从程序设计语言的使用这个单一的角度进行教学,而使得大多数学生在学完本课程后,“吃不透、用不活”,表现为学生在程序调试时,对程序中出现的逻辑错误经常不知所措,在开发较大的应用程序时,不知道如何入手。

采用案例教学法,以程序设计为主线,以编程应用为驱动,通过案例和问题引出教材内容,重点讲解程序设计的思想和方法,穿插讲解相关的语言知识。使教学效果既有深度又有广度,学生实际动手能力大为增强。

以上是我个人结合我院C语言程序设计的教学情况,自己总结了几点看法和一些改革 措施 ,拿出来和大家一起分享,请大家多提宝贵意见。通过这次学习,我将会灵活运用几位教授的教学 经验 ,根据我院的教学对象,调整一些上课方法和措施,望能更好的提高教学质量。

c语言程序设计心得三

通过此次C语言程序设计实践,本人实在是获益不浅!C语言是上个学期开的课程,所以这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手!结果,第一次的上机,我傻坐着不知道该做什么,后来就写了几个预处理命令。回去以后,我想,这样不行,这样下去还得了!我就重新复习了一遍我们上个学期学习的内容,发觉自已有许多都遗忘了!特别是有文件的操作,几乎是一遍空白!温习过后,开始做题!

一开始做题,也是有点模糊,在指导老师的指导下,我们慢慢的进入状态,我们做的是一个通讯录,内容包括很多。运用的函数也是非常的复杂,我们一组有七个人,我分工合作,首先我一起完成了结构题,然后我们一人各负责一个函数程序的设计,经过几星期的努力,我们完成了大半个程序,但是总是有很多错误出现,有好多是些小问题,这都是我们粗心大意造成的,所以设计程序一定要仔细,不容一点的马虎。当然也有大问题,关于文件的操作,是我们最大的问题,不过,我们做好后,经过老师的讲解和改错,我们也懂得设计和运用了。同时,也让我知道了,合作的力量,如果是孤军奋战的话,我也不能在规定时间内完成,当然,也多亏老师的指导。

这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验!

↓↓↓点击下一页还有更多精彩的C语言编程 学习心得 ↓↓↓

c语言学生信息管理系统心得体会,基于c语言的学生信息管理系统

2022-12-01
学生信息管理系统c语言摘要,c语言中学生信息管理系统

2022-11-26
c语言课设学生成绩信息管理系统,学生成绩管理系统 c语言

2023-01-07
学生信息管理系统c语言关键技术,c语言的学生信息管理系统

2022-11-23
c语言校友管理系统,用c语言写学生信息管理系统

2023-01-06
c语言学生管理系统,c语言学生管理系统流程图

2022-12-02
c语言信息系统,c语言程序管理系统

2022-11-27
学生身份管理系统c语言,学生管理系统设计c语言

2022-11-26
包含c语言实训学生管理系统心得的词条

2023-01-06
c语言学生管理系统for结构,c语言写学生管理系统

2023-01-06
学生信息管理系统C语言代码详解

2023-05-21
学生社团管理系统php源码,php学生个人信息系统源码

2022-11-24
c语言做的学生成绩管理系统,c语言程序学生成绩管理系统

2022-11-29
c语言图书管理系统心得体会,c语言图书管理系统设计

2023-01-06
c语言学生管理系统的删除模块,C语言编写学生管理系统

2022-11-30
职工工资管理系统php,职工工资管理系统c语言

2022-11-29
c语言学生成绩管理系统,c语言学生成绩管理系统课程设计

2023-01-07
学生档案管理系统c语言代码,学生档案管理系统c语言代码查询

2023-01-04
关于人事管理系统c语言代码的信息

2023-01-04
关于c语言课程设计安全事故管理系统的信息

2022-11-30