第一篇:《制作通訊錄》說課稿
《制作通訊錄》說課稿
一、說教材分析
首先我談談我對這篇教材的分析:
本節課《制作通訊錄》是福建教育出版社四年級下冊第二課的內容,是基于第一節學習了制作簡單表格的知識上的進一步完善。本節課利用網絡環境,借助專題學習網站,創設信息化的教與學環境,利用優美、生動的畫面,豐富有趣的情境,讓學生在親身的感受中說、做、學的過程,讓學生通過問題情境的感受,學習解決問題的方法,形成一定的知識解決模型,并最終解決實際生活問題。本節課的學習既是學生鞏固舊知識,也是掌握新知識的過程。
二、說教學目標
根據以上對教材的分析,我確定了三維目標:
1.知識目標:要求學生了解通訊錄的一般格式,學會在表格中插入行; 2.能力目標:要求學生掌握通訊錄的制作方法
3.情感目標:能激發學生的學習興趣,培養學生自主探究和合作的精神
三、說教學重難點
通過對三維目標的綜合總結,我得出本節課的 重點:插入規則的二維表格,并在單元格中添加數據; 難點:如何在表格中增加一列
四、說教法學法
要達成以上三項教學目標,特別是要突破教學重難點,我在教法的選擇上以“激——導——探——放”為主要教學手段,目的是在課堂中通過創設情境激發學習興趣,借助老帥引導,師生共同探究,大膽放手讓學生在具體的實踐操作中運用。對于課堂教學中,學生學法的選擇是以“探究——合作——交流——運用”。學生通過自主探究,小組協同合作,組內交流、師生反饋評價,最后把所學的知識運用于具體的實踐操作中。
五、說教學流程
這節課為了體現學生是學習的主體,以學生的學為立足點,教師的教為輔助點,我設計了以下的教學環節:
第一個環節
(一)情境創設 引入新課
1、課伊始,課件出示一段視頻
內容為:一位同學回家準備做作業,卻忘記作業內容,天又下起大雨,他想給同學打電話詢問作業的內容
2、觀看結束后,向學生提出一個問題:這位同學要打電話,需要什么呢? 通過這個問題的提出,映出如果有通訊錄,就能給通訊錄上的同學打電話了 順勢引出這節課的內容—制作通訊錄(板書出)
(這個環節的設計意圖是通過讓學生解決日常生活中遇到的問題來激發學生的學習興趣,興趣是最好的老師,它是學生主動學習、積極思考、大膽質疑、勇于探索的強大動力,所以通過這個環節,讓學生自始至終主動參與學習,全身心地投入到學習活動中)
第二個環節
(二)小組合作 探究學習
在這個環節中有三個教學內容,第一個教學內容是 了解通訊錄的一般格式并根據格式制作一張簡單的通訊錄
1、師:同學們,你們平常都從哪些地方可以看到通訊錄呢 手機上的通訊錄,以及各種紙質通訊錄
2、課件展示一張簡單的通訊錄
設疑:同學們,這張通訊錄有哪些部分呢? 讓學生嘗試著說一說通訊錄的組成部分
在學生初步了解后,布置讓大家制作一張自己組內成員的通訊錄的任務
3、在任務中巡視指導學習較困難的小組
4、學生在初步嘗試后,指名一組完成較好的小組長,上臺操作
(這部分教學內容的設計思路:通過讓學生自己動腦思考,動手嘗試,調動學生參與教學的積極性,發揮學生自主探究的能動性,使課堂教學煥發出生機)
第二個教學內容是: 在表格中增加一列
1、給學生設疑:如何在通訊錄中增加一列QQ號
然后向學生提供一份學習幫助材料,材料中是通過“表格和邊框”工具插入一列的方法,讓學生仔細閱讀這份材料,與小組成員合作,在電腦完成增加一列,并填上QQ號碼
學習幫助材料
增加一列的方法:
1、單擊工具欄上的“表格和邊框”按鈕,會彈出一個表格和方框的工具欄。
2、將鼠標移動到要增加一列的位置,當鼠標變成一個鉛筆形狀時,按住鼠標左鍵,自上而下畫一條線,這樣就增加一列了
2、在任務中巡視指導學習較困難的小組
3、交流反饋 總結方法
學生在初步嘗試后,指名一組完成較好的小組長,上臺操作,要求邊講解邊演示,根據學生的講解,板書出: 插入一列的方法:
“表格與邊框” 工具—彈出工具欄—移動至增加列位置—按住鼠標畫線(這部分內容設計想法是:讓學生學習外在的理論知識,并通過嘗試操作轉化成內在的技能,培養學生從獲取信息到處理信息的能力。給學生提供自主學習的空間。發揮學生學習的主動性,培養學生的自主學習能力,讓學生成為學習的主人)②總結這一種插入列的方法后,讓學生嘗試“增加一列”的其他方法: 如:選中一列,單擊鼠標右鍵,在彈出的功能中選擇增加一列項
(這部分內容設計意圖:鼓勵創新,開發學生發散思維,充分開發學生個體的潛能,使學生的各種潛能得到優化和發展,從而不斷提高學生個體各種素質水平,促進學生身心全面和諧發展)
第三個教學內容是: 手動調整列寬的教學
1、設疑:
師:同學們,通訊錄我們做完了,但是是不是看上去不大整齊美觀呢? 那我們要怎么調整呢?請同學們自己去嘗試下
2、老師提醒學生注意要點,移動鼠標到邊框線時當光標變成什么形狀時才可以調整寬度,巡視指導學習較困難的小組
3、學生在初步嘗試后,老師指名一組完成較好的小組長,上臺操作,要求邊講解邊演示
第三個環節
(三)深化運用 拓展延伸
1、布置任務:制作一張好友通訊錄
2、每個學生在自己的電腦上進行練習,完成后匯報小組長,小組長負責檢查小組成員全部完成情況,對優秀作品給予獎勵
3、轉播學生的作品,指名個別同學上臺邊講解,邊操作
(這部分內容設計思路:學生通過小組的任務驅使法,讓學生能較好地完成教師預設的教學目標,又突破了教學重難點。)
4、師生共同評價
第四個環節
(四)總結:
整節課通過循序漸進的方式一步步地練習,既完成信息技術課的主要任務、目標,又實現了信息技術學科與其他學科的有機整合,不但培養了學生合作意識,而且鼓勵創新,開發了學生的發散性思維
第二篇:《制作通訊錄》說課稿
四上第9課《制作通訊錄》說課稿
王店鎮中心小學 錢嘉佳
一、教材分析
本課是四上第二單元的最后一課,是利用網絡學習的平臺的一個應用實例。通過網絡獲取信息,制作通訊錄來解決生活中的實際問題。表格是生活中一種常見的高效的信息表達方式,通過制作通訊錄,讓學生認識表格,了解表格,學會表格的制作及編輯方法,為WORD學習進一步打下基礎,也能幫助解決今后在學習生活中的一些實際問題。
二、學情分析
四年級的學生總體來說比較活潑好動,對事物的認知還比較形象,對新鮮事物興趣濃厚。通過上一單元的學習,學生已經掌握了一定的WORD操作技能,本課的表格制作是WORD中的一個新知識,學生對新知識的學習還缺乏一定的自主探究能力,對教師的依賴性較強。
三、教學目標
1、知識目標
(1)了解表格的基本構成,知道表格的作用。(2)了解利用網絡獲取信息的多樣性。(3)了解制作表格的一般過程。
2、技能目標
(1)掌握在WORD中插入表格的方法。(2)掌握表格的編輯及美化方法。
3、情感目標
(1)培養學生的信息搜集與整理的能力。(2)能利用表格制作方便我們的生活。
四、教學重難點
1、教學重點:表格的插入與編輯
2、教學難點:表格的行列增減,布局美化。
五、教法設計
1、情境導入法:通過生活中應用到通訊錄的實際例子,引入到教學內容中,更能激發學生的學習熱情,為下一步學習做好準備。
2、任務驅動法:讓學生根據不同的任務去完成不同的操作步驟,制作表格中采用:插入表格——填寫表格——修改表格——美化表格。這樣步步遞進式的任務,有助于學生對自己的學習有明確的目地,同時也能顧及到所有學生,體現分層教學。
3、自主探究法:在學習插入表格的方法以及修改表格增減行列中,讓學生對照書本以及微視頻,能有效解決操作中的一些難點問題,比教師講授效果好,另一方面,也能培養學生的自主學習能力,改變有什么問題總是依賴老師解決的現狀。
4、問題導學法:在美化表格制作環節,由于學生對自己表格的缺陷缺乏認識,通過對比標準的表格,讓學生去發現問題,通過分析,思考改進的方法,從而達到完善表格的目地。
六、課前準備
本課的學習任務,是建立在上一課制作名片的基礎上。課前要把上節課學生制作的名片,進行整理打印出來,同時還要準備一張已經制作完成的班級通訊錄,課堂導入環節需展示出來。制作好調整表格的微視頻,為學生學習提供參照。為每位學生準備一張學習卡,上面有學習任務及作品評價,待制作表格和評價環節中使用。
七、教學設計
一、情境導入
上個星期我們班上有一名同學生病了沒來上學,老師想打個電話了解一下情況?,F在老師手里有一疊班級同學名片和一張通訊錄,你會選擇哪種方法去快速找到這名同學的家里電話呢,為什么?我們想不想也來做一張通訊錄?
設計意圖:把制作通訊錄的內容,結合到生活實際的情境中,有助于激發學生的學習興趣,同時,也能讓學生了解到通訊錄所起到的作用。
二、了解信息獲取方法
你知道老師是怎么知道你們的信息的呢?(網絡學習的平臺),還有哪些方法也可以從網上收集信息。
設計意圖:由于本節課的重點是學習制作表格,所以,獲取信息的過程就不讓學生去體會了,讓學生說一說,了解一些網絡獲取信息的方法,把更多的時間放到制作表格中。
三、制作通訊錄
把收集到的信息分類整理,就能制作成一張通訊錄了。
1、認識表格(1)出示一張通訊錄,觀察通訊錄有哪些內容組成。(2)觀察表格的特點,認識表格的行、列、單元格。(3)假如你要設計一張五人的通訊錄,需要幾行幾列。
設計意圖:認識表格的特征能為下一步制作表格做好鋪墊,以圖片實例,認識表格能更加直觀形象的起到加深印象的作用。
2、制作表格
任務一:選擇幾名同學的信息,根據需要插入表格(參考書本內容,自學插入方法)
請先完成的同學上臺演示,教師總結步驟。任務二:填寫表格內容
任務三:修改表格(做完表格后,我還想再一名同學的信息,或者我發現還少了電子郵箱這項該怎么辦)
提示:打開微視頻或參考書本教你一招,完成表格的修改 任務四:美化表格
演示幾張表格制作不美觀的作品,與一張標準通訊錄對比,發現什么問題,請同學說說(表格的列寬與文字不匹配,表格內容沒有對齊等)
設計意圖:插入表格的學習,難度不大,采用任務驅動放手讓學生嘗試自學,培養學生和自主探究能力,同時,由于學生的個體差異性較大,在操作過程中沒有限定要插入的表格的行數和列數,有助于對后進生學習起到激勵作用。表格的行列增減是本課的難點,因此利用微視頻學習,能使學生的學習效率提高。通過對比表格,讓學生明確表格制作需要一定的美化,特別是列寬要與文字內容匹配。
3、展示表格
展示班級中的優秀作品,學生互評,教師評價,并且完成學生手里的自評表(從完整度,內容數量、美觀度三方面評價)
設計意圖:通過學生自評、互評、教師評價,讓學生能更好的了解表格制作的要求,也進一步培養學生的審美意識,欣賞能力。多元化的評價讓學生能全面認識作品的優點及待改進的方面。同時也能更好得激勵學生,增強學生的學習興趣
四、總結回顧,知識拓展
1、通過這節課的學習,你學會些什么? 教師總結小詩: 表格制作查方便 插入表格按步走 分清行列是關鍵 布局調整需合理 美化文字更絢麗
2、在我們的生活中,表格應用非常廣泛,如班級值日生表、列車時刻表、作息時間表等,希望同學們學以致用。
設計意圖:通過總結回顧,梳理整節課的知識要點,把習得的知識進一步內化。以小詩總結的方法,讀起來朗朗上口,也便于加強記憶。知識拓展有助于學生將書本知識與生活實際相結合,培養學以致用的情感,激發學生進一步探究學習的激情。
八、板書設計
制作通訊錄
認識表格:分清行、列、單元格
制作表格: 插入表格——填寫表格——修改表格——美化表格
第三篇:戰友通訊錄設計制作
戰友通訊錄制作
準備工作
1.2.3.4.收集戰友的照片 戰友聯系方式 戰友近況 曾經的合影
開始設計
基本的設計風格展示(這里以945diy個性印品制作的戰友通訊路為例子)
設計完成后教給專門的公司印刷制作即可,一般需要3天的時間制作
第四篇:制作通訊錄
浙江大學城市學院實驗報告
課程名稱
數據結構
實驗項目名稱
實驗三
線性表的應用---通訊錄管理系統的設計與實現
實驗成績
指導老師(簽名)
日期
一.實驗目的和要求
1、掌握線性表的順序存儲結構;
2、掌握線性表的動態分配順序存儲結構及基本操作的實現;
3、掌握線性表的鏈式存儲結構;
4、掌握單鏈表的基本操作的實現。
5、掌握線性表的應用。
二.實驗內容
1、設計并實現日常生活中通訊錄的管理系統。該系統需3位同學一組,按模塊分工協作完成,系統具體功能需求描述如下:
① 輸入數據建立通訊錄表:在系統使用前先需要創建通訊錄,可以一次輸入(或文件導入)多個成員的通訊錄信息,建立通訊錄。要求此表為順序存儲結構。② 查看所有通訊錄信息:顯示通訊錄表中所有成員的通訊錄信息。
③ 查詢通訊錄中滿足要求的信息:可以根據不同方式查詢,如按姓名查詢、按姓氏查詢、按編號查詢等。
④ 新增通訊錄信息:每次可添加一個新成員的通訊錄信息。⑤ 修改通訊錄信息:修改通訊錄中已有成員的信息。
⑥ 刪除通訊錄成員:刪除通訊錄表中已有的成員,但需要把刪除的成員信息放到另一張被刪成員表中,以便錯誤操作后允許恢復。該被刪成員表要求采用鏈式存儲。
⑦恢復被刪成員信息:一旦發現誤刪,則可以在被刪成員表中找到該成員,重新加入到通訊錄表中。
系統實現要求:
① 通訊錄表必須使用動態分配順序存儲結構,被刪成員表必須使用鏈式存儲結構。
②通訊錄信息至少包括:編號、姓名、電話
1、電話
2、郵箱、......等,其他可自行設置。
③用菜單方式選擇相應功能,且各功能的有關操作需通過調用各函數來實現,如:初始化通訊錄表用函數void InitAddressBook(SqList &TXL)、瀏覽所有通訊錄成員函數 BrowseAddressBook(SqList TSL)等等,這些操作因針對通訊錄原始表,屬于順序結構,故可將這些子函數放在頭文件test3_Seq.h中。針對被刪成員表的操作,由于是鏈式存儲結構,故針對此表的相關操作課定義在test3_link.h中。
③ 建立主函數文件test3.cpp,通過調用上述頭文件中的函數來實現該系統。④ 給出系統數據類型的定義、存儲結構定義以及各個函數之間的調用關系。⑤ 實驗內容中設置的功能要求必須實現,此外可自行增加合適的功能,可作為額外的實驗成績進行加分: 例如:
? 通訊錄和被刪成員數據可用文件保存,程序運行時可從文件讀入相應數據,程序結束時可寫入文件保存。
? 通訊錄分組,可自行考慮把通訊錄成員進行分組,如同學組、親戚組、同事組等。
2、以小組為單位認真填寫實驗報告,實驗報告必須包括各類數據類型的結構定義說明,各類數據的組織方式,系統的功能結構,各個操作的定義以及實現方法,運行結果與分析,難點如何解決,存在問題以及可改進之處等。同時,在實驗報告中需寫明小組每位同學的分工,得分(小組總分不超過12分)等。實驗報告文件取名為report3.doc。每組還必須制作一個答辯PPT,該PPT的命名為PPT_通訊錄管理系統_(各小組成員名字).PPT。
3、每位組長上傳實驗報告文件report3.doc、源程序文件test3.cpp及test3_Seq.h、test3_Link.h,以及答辯PPT壓縮打包后到BB平臺上。
難點與解決:
1.實參形參的傳遞,鏈表中指針的指向,通過看書多調試幾次就能解決
2.在程序執行switch語句時,輸入一個數后,執行后,程序直接退出。switch語句的輸入項,非法,導致的程序直接退出。解決的方法,可用while語句先限制流入switch語句的非法輸入項,從而解決輸入項非法的問題。其他輸入數字選擇時,亦可用此方法解決
問題:
1.無法在機房的電腦運行
2.每次編譯前都需將.cpp、.h、.dev以外的文件全部刪除才行,否則即使故意打錯幾行代碼也能成功編譯,刪除后編譯出現
[Warning] non-static data member initializers only available with-std=c++11 or-std=gnu++11 [enabled by default] 3.txt文件的讀取寫入,參考了網上的和上課講的,一次是進行動態內存分配的語句無法編譯,一次是找不到文件,最后決定不做這個功能了。改進
1.增加讀取保存功能,增加查詢方式如按電話查找 2.編號是根據當前長度自動編號,雖然可以直接反應記錄的數量使得編寫程序時比較方便,但也使得無法每個人對應一個編號,也使得按編號查找如同擺設
功能模塊結構圖:
函數調用結構圖:
運行結果與分析:
程序運行后得到開始菜單,結果如下圖所示
開始菜單中包括創建通訊錄、顯示所有記錄、查詢記錄、添加記錄,返回本菜單以及推出程序,人們可以輸入想要選擇的模塊進行程序的進一步運行。輸入1,創建通訊錄,結果下圖所示:
輸入2,顯示所有記錄,結果下圖所示:
輸入3,查詢記錄,結果下圖所示:
兩種查找方式;
輸入4,增添記錄,結果如下圖所示:
輸入5,修改記錄,結果如下圖所示:
兩種方式,先查找再修改
輸入6,刪除記錄,結果如下圖所示:
兩種方式,先查找再刪除 輸入7進入恢復菜單,結果如下圖所示:
選擇恢復方式
程序清單
test3.cpp #include
#define INFEASIBLE-1 #define OVERFLOW-2 struct txl { int num;//編號
char name[10];//姓名
char tel1[100];//電話1
char tel2[100];//電話2
char mail[100];//電子郵箱
char add[100];//家庭地址
};struct LNode { struct txl data;struct LNode *next;};
struct Sqlist {
int length;//當前長度
int listsize=100;//當前分配的存儲,初始為100單位:sizeof(struct txl)
struct txl *elem;//存儲空間基址
};typedef int status;#include“menu.h” #include“test3_seq.h” #include“test3_link.h” int main(){ int n,k=0,j;FILE *fp;//定義文件指針
struct Sqlist L;//定義全局變量L為結構體Sqlist
struct txl n1,*n2;struct LNode *head;//頭指針
head=(struct LNode*)malloc(sizeof(struct LNode));head->next=NULL;menu();
while(scanf(“%d”,&n),n)//限制輸入,當輸入為int型,且不為0時循環
} {
switch(n){ case 1: Create(L,fp);k=1;break;//k=1表示已創建通訊錄
case 2: if(k==1)ListTraverse(L);break;case 3: if(k==1)Search(L,n1);break;case 4: if(k==1)Insert(L);break;case 5: if(k==1)Modify(L);break;case 6: if(k==1)Delete(L,head);break;case 7: Recover(L,head);break;case 8: menu();break;
default:printf(“請輸入0-8!n”);} if(k==0&&n>=2&&n<=6)printf(“請先創建通訊錄!n請重新輸入!n”);} return 0;menu.h void menu(){
//菜單函數
printf(“n”);printf(“ttt**************************n”);printf(“ttt*
歡迎使用
*n”);printf(“ttt*
通訊錄管理系統
*n”);printf(“ttt**************************n”);printf(“n”);printf(“tt *************************************n”);printf(“tt *
1.創建通訊錄
*n”);printf(“tt *
2.顯示所有記錄
*n”);printf(“tt *
3.查詢記錄
*n”);printf(“tt *
4.添加記錄
*n”);printf(“tt *
5.修改記錄
*n”);printf(“tt *
6.刪除記錄
*n”);printf(“tt *
7.恢復記錄
*n”);printf(“tt *
8.顯示菜單
*n”);printf(“tt *
0.退出程序
*n”);printf(“tt *************************************nnn”);
} void menu_1(){
//菜單函數
printf(“n”);printf(“ttt**************************n”);printf(“ttt*
歡迎使用
*n”);printf(“ttt*
通訊錄恢復系統
*n”);printf(“ttt**************************n”);printf(“n”);printf(“tt *************************************n”);printf(“tt *
1.按編號恢復
*n”);printf(“tt *
2.按姓名恢復
*n”);printf(“tt *
0.退出恢復系統
*n”);printf(“tt *************************************nnn”);
}
test3_Seq.h int Create(struct Sqlist &L,FILE * &fp)//創建通訊錄
{ system(“cls”);//清屏
int i,n,s=0;char k;
printf(“你所想創建通訊錄個數(<=100):”);scanf(“%d”,&L.length);
L.elem=(struct txl*)malloc(L.listsize*sizeof(struct txl));//存儲分配
if(!L.elem)//分配失敗
{
exit(OVERFLOW);
}
for(i=0;i L.elem[i].num=i+1; printf(“編號為%d”,L.elem[i].num);//第i條記錄的編號為i printf(“請輸入姓名:”); scanf(“%s”,L.elem[i].name); printf(“請輸入電話1:”); scanf(“%s”,L.elem[i].tel1); printf(“請輸入電話2:”); scanf(“%s”,L.elem[i].tel2); printf(“請輸入電子郵箱:”); scanf(“%s”,L.elem[i].mail); printf(“請輸入家庭地址:”); scanf(“%s”,L.elem[i].add); } printf(“輸入 0:退出, 輸入8:返回菜單 請輸入您的選擇: ”); } int ListTraverse(struct Sqlist &L){//顯示所有信息 system(“cls”);//清屏 int i;for(i=0;i printf(“編號:%d ”,L.elem[i].num); printf(“姓名:%s ”,L.elem[i].name); printf(“電話1:%s ”,L.elem[i].tel1); printf(“電話2: %s ”,L.elem[i].tel2); printf(“電子郵箱: %s ”,L.elem[i].mail); printf(“家庭地址: %sn”,L.elem[i].add); } printf(“輸入 0:退出, 輸入8:返回菜單 請輸入您的選擇: ”);} int Search(struct Sqlist &L,struct txl &n){//查找信息 system(“cls”);//清屏 int i,n1,j=0,k=0;char name1[10];//查找的姓名 int num1;//查找的編號 printf(“輸入1按姓名查找 ”);printf(“輸入2按編號查找 ”);while(scanf(“%d”,&n1)){ if(n1==1) { printf(“請輸入您要查找的姓名:”); scanf(“%s”,name1); for(i=0;i { if(strcmp(name1,L.elem[i].name)==0)//姓名相同時 { n=L.elem[i]; printf(“編號:%d ”,L.elem[i].num); printf(“名字:%s ”,L.elem[i].name); printf(“電話1:%s ”,L.elem[i].tel1); printf(“電話2: %s ”,L.elem[i].tel2); printf(“電子郵箱: %s ”,L.elem[i].mail); printf(“家庭地址: %sn”,L.elem[i].add); k=1; break; } } if(k==0)//沒有該姓名時 { printf(“沒有這個記錄n”); } break; } if(n1==2) { printf(“請輸入你要查找的編號: ”); while(scanf(“%d”,&num1),num1){//限制輸入 break; } if(num1<1||num1>=L.length)//沒有該編號時 { printf(“沒有這個記錄n”); } for(i=0;i { if(num1==L.elem[i].num)//編號相同時 { n=L.elem[i]; printf(“編號:%d ”,L.elem[i].num); printf(“名字:%s ”,L.elem[i].name); printf(“電話1:%s ”,L.elem[i].tel1); printf(“電話2: %s ”,L.elem[i].tel2); printf(“電子郵箱: %s ”,L.elem[i].mail); printf(“家庭地址: %sn”,L.elem[i].add); break; } } break; } if(n1!=1&&n1!=2) printf(“請輸入1或2!”); } printf(“輸入 0:退出, 輸入8:返回菜單 請輸入您的選擇: ”);} int Search_1(struct Sqlist &L,struct txl &n){//被其他函數調用以查找信息 int i,n1,j=0,k=0;char name1[10];//查找的姓名 int num1;//查找的編號 printf(“輸入1按姓名查找 ”);printf(“輸入2按編號查找 ”);while(scanf(“%d”,&n1)){ if(n1==1){ printf(“請輸入您要查找的姓名:”); scanf(“%s”,name1); for(i=0;i { if(strcmp(name1,L.elem[i].name)==0)//姓名相同時 { n=L.elem[i]; printf(“編號:%d ”,L.elem[i].num); printf(“名字:%s ”,L.elem[i].name); printf(“電話1:%s ”,L.elem[i].tel1); printf(“電話2: %s ”,L.elem[i].tel2); printf(“電子郵箱: %s ”,L.elem[i].mail); printf(“家庭地址: %sn”,L.elem[i].add); k=1; break; } } if(k==0)//沒有該姓名時 { printf(“沒有這個記錄n”); } break; } if(n1==2){ printf(“請輸入你要查找的編號: ”); while(scanf(“%d”,&num1),num1){//限制輸入 break; } if(num1<1||num1>=L.length)//沒有該編號時 { printf(“沒有這個記錄n”); } for(i=0;i { if(num1==L.elem[i].num)//編號相同時 { n=L.elem[i]; printf(“編號:%d ”,L.elem[i].num); printf(“名字:%s ”,L.elem[i].name); printf(“電話1:%s ”,L.elem[i].tel1); printf(“電話2: %s ”,L.elem[i].tel2); printf(“電子郵箱: %s ”,L.elem[i].mail); printf(“家庭地址: %sn”,L.elem[i].add); break; } } break; } if(n1!=1&&n1!=2) printf(“請輸入1或2!”); } } int Insert(struct Sqlist &L){//添加信息 system(“cls”);int i;char k;struct txl *newbase;if(L.length>=L.listsize)////當前存儲空間已滿,增加分配 { newbase=(struct txl*)realloc(L.elem,(L.listsize+10)*sizeof(struct txl)); if(!newbase)//存儲分配失敗 { exit(OVERFLOW); } L.elem=newbase;} printf(“請輸入新成員的信息:”);printf(“這是第%d位”,L.length+1);//添加到最后 L.elem[L.length].num=L.length+1; printf(“請輸入姓名:”); scanf(“%s”,L.elem[L.length].name); printf(“請輸入電話1:”); scanf(“%s”,L.elem[L.length].tel1); printf(“請輸入電話2:”); scanf(“%s”,L.elem[L.length].tel2); printf(“請輸入電子郵箱:”); { scanf(“%s”,L.elem[L.length].mail); } printf(“請輸入家庭地址:”); { scanf(“%s”,L.elem[L.length].add); } L.length++;//長度增加 printf(“輸入 0:退出, 輸入8:返回菜單 請輸入您的選擇: ”); } int Modify(struct Sqlist &L){//修改信息 system(“cls”);struct txl n,gai;int k,k1;while(1<2){ Search_1(L,n);//查找記錄 printf(“是否修改此記錄:(1=Y/2=N)n”); while(scanf(“%d”,&k)){//限制輸入,當k成功賦值時循環 if(k!=1&&k!=2) printf(“請輸入1或2!”); else break; } if(k==2) { break;//輸入1修改,輸入2不修改并結束循環返回 } if(k==1) { gai.num=n.num; printf(“請修改姓名:”); scanf(“%s”,gai.name); printf(“請修改電話1:”); scanf(“%s”,gai.tel1); printf(“請修改電話2:”); scanf(“%s”,gai.tel2); printf(“請修改電子郵箱:”); scanf(“%s”,gai.mail); printf(“請修改家庭地址:”); scanf(“%s”,gai.add); L.elem[n.num-1]=gai; } printf(“是否繼續修改?(1=Y/2=N)”); while(scanf(“%d”,&k)){ if(k!=1&&k!=2) printf(“請輸入1或2!”); else break; } if(k1==1)//繼續循環 { ; } if(k1==2)//跳出循環 { break; } } } printf(“輸入 0:退出, 輸入8:返回菜單 請輸入您的選擇: ”);test3_link.h int Delete(struct Sqlist &L,struct LNode* &head)//刪除通訊錄并保存到鏈表 { system(“cls”);static int j=1;//當前編號 int i,k;struct txl n;struct LNode *p,*q; p=(struct LNode *)malloc(sizeof(struct LNode));if(!p)exit(OVERFLOW);//分配存儲 q=(struct LNode *)malloc(sizeof(struct LNode));if(!q)exit(OVERFLOW); printf(“請輸入你想刪的成員:n”); Search_1(L,n);//查找記錄 printf(“是否刪除此記錄?(1=Y/2=N)n”);//輸入1刪除,輸入2不刪除并結束循環返回 while(scanf(“%d”,&k)){ if(k!=1&&k!=2) printf(“請輸入1或2!”); else break; } if(k==1) { p->data=n;//將 Search_1函數所找到的數據賦值給p->data p->data.num=j;//為刪除的記錄編號 p->next=head->next; head->next=p; q=head->next; for(i=n.num;i { L.elem[i-1]=L.elem[i]; L.elem[i-1].num=i;//編號 } L.length--; j++; } if(k==2) { ; } printf(“輸入 0:退出, 輸入8:返回菜單 請輸入您的選擇: ”); } int Recover(struct Sqlist &L,struct LNode* &head){ system(“cls”);int n,number,k,a=0;char name1[10];struct txl n1;struct LNode* q,*p;q=(struct LNode*)malloc(sizeof(struct LNode));//存儲分配 p=(struct LNode*)malloc(sizeof(struct LNode));q=head->next;//指向第一個節點 p=head;//指向頭指針 menu_1();//顯示恢復菜單 while(scanf(“%d”,&n),n)//限制輸入,當輸入為int型,且不為0時循環 { printf(“請問要恢復哪個成員?n”); while(q!=NULL)//依次輸出所有被刪記錄 { printf(“編號:%d ”,q->data.num); printf(“名字:%s ”,q->data.name); printf(“電話1:%s ”,q->data.tel1); printf(“電話2: %s ”,q->data.tel2); printf(“電子郵箱: %s ”,q->data.mail); printf(“家庭地址: %sn”,q->data.add); q=q->next;} if(n==1){ printf(“請輸入所要恢復的編號n”);scanf(“%d”,&number);while(p!=NULL){ if(p->next->data.num==number) { L.elem[L.length]=p->next->data;//添加到末尾 L.elem[L.length].num=L.length+1;//編號 p->next=p->next->next;//將該記錄從鏈表中刪除 L.length++; printf(“恢復成功!n”); a=1;//標記有此記錄,并已恢復 break; } p=p->next;} if(a==0)printf(“沒有該編號n”); break; } if(n==2){ printf(“請輸入所要恢復的姓名n”); scanf(“%s”,name1); while(p!=NULL){ if(strcmp(p->next->data.name,name1)==0) { L.elem[L.length]=p->next->data;//添加到末尾 L.elem[L.length].num=L.length+1;//編號 p->next=p->next->next;//將該記錄從鏈表中刪除 L.length++; printf(“恢復成功!n”); a=1;//標記有此記錄,并已恢復 break; } p=p->next;} } if(a==0) printf(“沒有該姓名n”); break;} if(n!=1&&n!=2&&n!=0){ printf(“請輸入0-2!n”); } } printf(“輸入 0:退出, 輸入8:返回菜單 請輸入您的選擇: ”); 制作通訊錄 教學設計 教學目標: 1、知識目標:了解表格的基本構成和表格制作的幾種方法; 2、技能目標:掌握通過菜單方式制作基本的二維表格,培養學生的動手操作能力; 3、情感目標:通過對名片信息的分析培養學生的信息搜集和整理能力。教學重點: 1、認識表格的行、列和單元格; 2、規則的二維表格的插入; 教學難點: 表格中文本格式的設置。教學過程: 一、創設情景 師:今天上課老師想請問一下大家有沒有看到過通訊錄啊? 生:沒有(如果有就請學生介紹一下通訊錄) 師:對,通訊錄一般就是你所要聯系的人的一些通訊方式,同學們見過名片沒有,請大家分析一下,這樣一張通訊錄跟名片相比有什么好處嗎? 生:可以更方便的找到信息。 師:說得很好,因為通訊錄中使用了表格,而在我們日常生活中使用表格可以更加簡潔、清楚的表述相關內容。 師:那么今天這節課我們就通過WORD中的表格功能和上節課制作的名片為自己來制作一份小小通訊錄。(板書:制作好友通訊錄) 二、自主探究 師:老師再問一下,在日常生活中你看到過什么表格? 生:課程表、值日表、成績表…….師:那么你知道一張表格有哪些元素組成嗎?或者表格中各相關部分的名稱。 生:不知道 師:出示一張表格,并為大家介紹表格中各相關部分的名稱。 / 4 生:觀看圖片中表格組成部分。 師:同學們請想一想,既然是通訊錄,那么必須要有哪幾項內容? 生:都有姓名、地址、電話等 師:那么我們這些共同的信息應如何對應到表格中相應的單元格呢 生:回答(如果回答不出教師可以提示一下) 師:一般情況下我們把這些共同的信息都是填寫在第一行作為列標題,從第二行開始應該是具體信息,有多少共同信息就應該有幾列,而你的通訊錄中要有多少朋友就可以添加幾行(一邊講解一邊在黑板上演示) 師:現在我們已經在黑板上畫好了一張通訊錄了,我看有的同學等不及要自己動手操作了,不要急,老師已經在大家的桌面上放了一個幫助文件,里面詳細介紹了表格制作的步驟,請大家打開WORD,根據幫助文件,趕快動手做自己的通訊錄吧。 生:打開幫助文件,動手制作表格 師:巡回指導 三、充實內容 師:剛才我看到有許多同學已經根據幫助文件制作出了通訊錄所需的表格了,下面我們請一位同學上來演示一下他是怎么操作的生:上臺演示(一邊操作一邊講解) 師:這位同學做得非常棒,我們應該鼓勵一下。不過老師還要告訴你,其實制作表格的方法除了剛才那位同學使用的方法外還有另外的方法,想不想知道啊?你可以在幫助文件中去找找看,找到后也可以試一試。 生:沒完成的同學繼續完成,做好的同學試著用另外的方法建立一個表格。 師:繼續輔導學生。 師:經過檢查我發現基本上同學的通訊錄的基本框架(表格)已經搭好了,那么接下去應該干什么事呢? 生:輸入文字 師:對了,現在應該為通訊錄填充內容了。(怎么輸入文字可以看幫助文件) 師:趕快動手吧,看誰在最短的時間內做的又快又漂亮。 生:在表格中輸入文字 / 4 師:巡回指導 師:大家請停一下,剛才老師在看大家操作的同時又發現一個問題:就是大家在表格的單元格中輸入內容時,有的單元格太大,(文字較少時)而有的單元格又太?。ㄈ缭谳斎氲刂窌r),所以導致很多的同學的通訊錄看上去不太整齊,能不能想辦法呢?老師教你一招:只要你在表格中單擊鼠標右鍵-----自動調整-----調整表格,這樣單元格就能根據內容自動調整了??煸囋嚢?! 生:繼續操作 師:大家可以再停一下,老師剛才發現一個同學輸入文字的方法很快,我們來看看他是怎樣輸入的 生:演示把名片中的信息通過復制、粘貼的方法移到表格中 師:這位同學真是有辦法,說明他是一個愛動腦筋的人,大家在平常的學習中也應該學會這種方法。 生:繼續操作 四、精益求精,美化表格 師:我看有的同學的通訊錄中已經有很多朋友的名單了,但是你覺得你的通訊錄還缺少了些什么嗎? 生:名字 生:最好可以給表格添加顏色 師:同學們想得非常周到仔細,要是我們能給通訊錄添上背景那這個通訊錄就更加漂亮了(展示范例),怎么添加呢,大家到幫助文件中去尋找吧,等一下我們來比一下誰的通訊錄的最漂亮了。 生:自主嘗試表格中文本格式的設置 師:給予學生適當的提示(教師簡單演示) 五、展示作品,評價交流 師:我看很多同學都做好自己的通訊錄,而且有的同學已經等不及想把自己的作品給其它同學欣賞了,好,接下來我們來欣賞幾位同學的作品 生:欣賞同學的作品 師:你覺得這位同學的作品怎么樣 生:評價同學的作品 / 4 六、小結 師:馬上要下課了,我們再來回憶一下這節課你學會了什么 生:怎樣在WORD中插入一個表格 師:對,這節課我們通過制作小小通訊錄學會了在WORD中怎樣插入一個表格,其實在我們日常生活中除了通訊錄,還有很多表格,象我們一開始提到過的課程表等等,希望同學們回去后再去制作一張表格,比如說常用電話表,做好后你可以用電子郵件發給我。師:下課。 / 4第五篇:《制作通訊錄》參考教案1