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語言編程 學習心得 ↓↓↓

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/187741.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-28 06:25
下一篇 2024-11-28 06:25

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • 數據結構學生成績管理系統

    在現代教育中,學生成績的管理已經成為了一個不可或缺的部分。藉助數據結構,一個高效、可靠的學生成績管理系統可以被輕鬆實現。 一、數據結構的選擇 在構建學生成績管理系統時,選擇合適的數…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論