版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機C語言課程設計學生通信錄管理系統(tǒng)實驗報告計算機C語言課程設計學生通信錄管理系統(tǒng)實驗報告/計算機C語言課程設計學生通信錄管理系統(tǒng)實驗報告***大學*****學院綜合設計報告設計名稱:程序設計綜合設計設計題目:學生通訊錄管理系統(tǒng)的設計學生學號:******專業(yè)班級:****學生姓名:*****學生成績:指導教師(職稱):*****課題工作時間:11年12月26日至12年1月6日說明:1、報告中的第一、二、三項由指導教師在綜合設計開始前填寫并發(fā)給每個學生;四、五兩項(中英文摘要)由學生在完成綜合設計后填寫。2、學生成績由指導教師根據(jù)學生的設計情況給出各項分值及總評成績。3、指導教師評語一欄由指導教師就學生在整個設計期間的平時表現(xiàn)、設計完成情況、報告的質量及答辯情況,給出客觀、全面的評價。4、所有學生必須參加綜合設計的答辯環(huán)節(jié),凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應由2人及以上教師組成。5、報告正文字數(shù)一般應不少于5000字,也可由指導教師根據(jù)本門綜合設計的情況另行規(guī)定。6、平時表現(xiàn)成績低于6分的學生,其綜合設計成績按不及格處理。7、此表格式為武漢工程大學計算機科學與工程學院提供的基本格式(適用于學院各類綜合設計),各教研室可根據(jù)本門綜合設計的特點及內容做適當?shù)恼{整,并上報學院批準。成績評定表學生姓名:***學號:***班級:***類別合計分值各項分值評分標準實際得分合計得分備注平時表現(xiàn)1010按時參加綜合設計,無曠課、遲到、早退、違反實驗室紀律等情況。完成情況3020按設計任務書的要求完成了全部任務,能完整演示其設計內容,符合要求。10能對其設計內容進行詳細、完整的介紹,并能就指導教師提出的問題進行正確的回答。報告質量3510報告文字通順,內容翔實,論述充分、完整,立論正確,結構嚴謹合理;報告字數(shù)符合相關要求,工整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設計方案合理、可行,論證嚴謹,邏輯性強,具有說服力。5符號統(tǒng)一;圖表完備、符合規(guī)范要求。5能對整個設計過程進行全面的總結,得出有價值的結論或結果。5參考文獻數(shù)量在3篇以上,格式符合要求,在正文中正確引用。答辯情況2510在規(guī)定時間內能就所設計的內容進行闡述,言簡意明,重點突出,論點正確,條理清晰。15在規(guī)定時間內能準確、完整、流利地回答教師所提出的問題??傇u成績:分補充說明:指導教師:***(簽字)日期:2012年1月6日答辯記錄表學生姓名:***學號:*****班級:****答辯地點:***答辯內容記錄:答辯成績合計分值各項分值評分標準實際得分合計得分備注2510在規(guī)定時間內能就所設計的內容進行闡述,言簡意明,重點突出,論點正確,條理清晰。15在規(guī)定時間內能準確、完整、流利地回答教師所提出的問題。答辯小組成員(簽字):2012年1月6日指導教師評語指導教師:(簽字)日期:2012年1月6日一、綜合設計目的、條件、任務和內容要求:《程序設計基礎》在計算機科學中是一門重要的基礎課程,也是培養(yǎng)學生編程能力的入門性課程。通過介紹C語言及其編程技術,使學生了解高級程序設計語言的結構,掌握基本的程序設計過程和技巧,掌握基本的分析問題和利用計算機求解問題的能力,具備初步的高級語言程序設計能力?!冻绦蛟O計綜合設計》是計算機科學與技術專業(yè)學生的一門實踐課程,是學習完程序設計課程后的課程設計。本課程的目的是運用所學到的有關知識與技能,結合實踐教學環(huán)節(jié),進行工程技術人員所需的基本程序設計訓練,為學生進一步學習有關專業(yè)課程和日后從事程序設計工作打下基礎?!秾W生通訊錄管理系統(tǒng)》是設計一個實用的小型通訊錄程序。每個記錄(好友信息)包括姓名、電話號碼、號碼、電子郵箱、住址等信息。為各項操作功能設計一個菜單,應用程序運行后,先顯示這個菜單,用戶通過菜單選項選擇希望進行的操作項目。程序的功能包括:1、插入好友的信息
2、顯示好友的信息
3、給定姓名,查找相關的信息
4、給定姓名,修改相關的信息
5、給定姓名,刪除好友的信息
6、按照姓名排序。
輸入要求:應用程序運行后,在屏幕上顯示一個菜單,用戶可以根據(jù)要求選擇相應的操作項目,進入每個操作后,根據(jù)應用程序的提示信息,從鍵盤輸入相應的信息;輸出要求:要求用戶輸出數(shù)據(jù)時,要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內容、格式及結束方式等。指導教師簽字:2012年12月20日二、進度安排:第18周(12.26-12.27):學生熟悉課題的任務和要求,查閱相關文獻和資料,并做好編碼準備第18周(12.28-12.31):程序編碼、調試第19周(1.4-1.5):程序編碼、調試和測試,書寫報告第19周(1.6):答辯、檢查、驗收、提交設計報告三、應收集資料及主要參考文獻:應收集的資料:面向對象程序設計思想和方法語言參考手冊主要參考文獻:[1]姬濤等.計算機程序設計基礎(上冊)教程.第一版.北京.中國傳媒大學出版社,2010.p109~323.[2]張俊等面向對象程序設計.第一版,北京.中國鐵道出版社,2008.p323~366四、綜合設計(課程設計)摘要(中文):本著為了提高學生對已學習過的程序設計的鞏固,學校特意為學生安排這次課程設計。課程設計的課題是讓學生自主設計一個學生通信錄管理系統(tǒng)。整個程序設計主要通過c語言來實現(xiàn)。本課程的目的是運用所學到的有關知識與技能,結合實踐教學環(huán)節(jié),進行工程技術人員所需的基本程序設計訓練,為學生進一步學習有關專業(yè)課程和日后從事程序設計工作打下基礎。《學生通訊錄管理系統(tǒng)》是設計一個實用的小型通訊錄程序。每個記錄(好友信息)包括姓名、電話號碼、號碼、電子郵箱、住址等信息。為各項操作功能設計一個菜單,應用程序運行后,先顯示這個菜單,用戶通過菜單選項選擇希望進行的操作項目。程序的功能包括:輸入、查找、插入、排序、刪除、顯示好友的信息等,、可以把輸入的信息保存到系統(tǒng)文件當中,也可以在程序運行的時候從系統(tǒng)文件讀取之前保存的學生信息,再通過程序完成相應的操作,實現(xiàn)通信錄管理智能快捷化。從設計這個程序的大體思路上來說,首先本程序運行時會有有一個提示,對本程序做一個簡介,然后,用戶通過提示可以進入一個設計好的主菜單。主菜單上面有10個選項可供用戶選擇,用戶通過自己將要進行的操作選擇對應的選項,然后程序執(zhí)行相應操作。整個程序在用戶使用時都會有選項可供用戶選擇,用戶只需通過程序的提示,便可以一步一步完成操作,不管你是普通的用戶還是程序設計人員,你都可以方便快捷的通過本程序完成對學生通信錄的管理,給每一個用戶一個非常不錯的體驗。關鍵字:c語言;通信錄管理;主菜單;快捷。五、綜合設計(課程設計)(英文):,,.'a.c.,,,."a.(),,,,.a,,,.:,,,,,,,,,,.I,aa,,a.10,,.,,,,,a.:C;"""";.目錄摘要…………………………...第一章課題背景(或2.1……………………..………….…x2.2……………………..………….…x2.3……………………..………….…x第三章 詳細設計…………..………………..x3.1……………………..………….…x3.1……………………..………….…x第四章 設計結果及分析…………………..………………..x4.1…………….………………..….…x緒論、概述)……………………..11.1…………………...11.2……………………..……………x第二章 設計簡介及設計方案論述………..x4.2….…………………..………….…x4.3…….………………..………….…x總結…….……………………..………….…x致謝…….……………………..………….…x參考文獻…….………………..………………..………….…x附錄主要程序代碼………...………………..………….…x摘要本著為了提高學生對已學習過的程序設計的鞏固,學校特意為學生安排這次課程設計。課程設計的課題是讓學生自主設計一個學生通信錄管理系統(tǒng)。整個程序設計主要通過c語言來實現(xiàn)。本課程的目的是運用所學到的有關知識與技能,結合實踐教學環(huán)節(jié),進行工程技術人員所需的基本程序設計訓練,為學生進一步學習有關專業(yè)課程和日后從事程序設計工作打下基礎?!秾W生通訊錄管理系統(tǒng)》是設計一個實用的小型通訊錄程序。每個記錄(好友信息)包括姓名、電話號碼、號碼、電子郵箱、住址等信息。為各項操作功能設計一個菜單,應用程序運行后,先顯示這個菜單,用戶通過菜單選項選擇希望進行的操作項目。程序的功能包括:輸入、查找、插入、排序、刪除、顯示好友的信息等,、可以把輸入的信息保存到系統(tǒng)文件當中,也可以在程序運行的時候從系統(tǒng)文件讀取之前保存的學生信息,再通過程序完成相應的操作,實現(xiàn)通信錄管理智能快捷化。整個程序在用戶使用時都會有選項可供用戶選擇,用戶只需通過程序的提示,便可以一步一步完成操作,不管你是普通的用戶還是程序設計人員,你都可以方便快捷的通過本程序完成對學生通信錄的管理,給每一個用戶一個非常不錯的體驗。關鍵字:c語言;通信錄管理;主菜單;快捷。,,.'a.c.,,,."a.(),,,,.a,,,.:,,,,,,,,,,.,,,,,a.:C;"""";.第一章課題背景(或緒論、概述)1.1研究背景 當下計算機技術高速發(fā)展,信息處理自動化和智能化已經(jīng)深入人心。而在計算機還未普及之前,通訊管理都是由聯(lián)系人采用名片筆錄手工記錄的方式來操作的,現(xiàn)在一般的通訊錄管理都是采用計算機作為工具通訊錄管理程序來幫助人們進行更有效的通訊錄信息管理。本通訊錄信息管理系統(tǒng)用計算機管理電子通訊錄的一種計算機應用技術的創(chuàng)新,程序運用C語言對學生通訊實現(xiàn)輸入、顯示、插入、刪除、修改、查找、保存等功能。使用戶能快速方便的更新通訊錄,查找聯(lián)系人信息。通過本課程設計,學生可以從運用C語言及其編程技術,使了解高級程序設計語言的結構,掌握基本的程序設計過程和技巧,掌握基本的分析問題和利用計算機求解問題的能力,具備初步的高級語言程序設計能力1.3研究的意義為保存好友信息,通信錄已成為每一個人必不可少的東西。本程序正好可以完成用戶對通信錄的錄入,查找,修改,排序,保存等各項功能,讓用戶高速快捷的管理自己的通信錄。1.4完成的功能用戶輸入學生信息列表所有學生信息通過學生姓名將學生信息排序插入好友信息通過學生姓名完成對該學生信息的查找、刪除、修改可以將學生信息保存記錄成文檔程序可以從文檔讀取學生信息第二章設計簡介及設計方案論述2.1程序主要流程圖執(zhí)行完后返回到主菜單(沒有選退出)執(zhí)行對應操作執(zhí)行完后返回到主菜單(沒有選退出)執(zhí)行對應操作用戶選擇其中一項載入信息顯示好友信息排序查找修改刪除插入保存信息退出輸入信息主菜單2.2主要設計思路 用戶進入系統(tǒng)后會通過提示進入主菜單欄,對應有10個選項,用戶輸入自己要執(zhí)行的編號后,程序內部就會調用相應的函數(shù),實現(xiàn)相應功能。 首先,設計好一個主菜單以及各種功能函數(shù),那么主函數(shù)就很簡單了,用一個無限循環(huán)語句加一個選擇語句,語句后面有10個相應的功能函數(shù)與菜單里的編號一一對應。當用戶輸入不同的數(shù)值,語句將會調用對應的功能函數(shù),來執(zhí)行操作。執(zhí)行完之后,又會進入主菜單,讓用戶選擇下一步將要執(zhí)行什么選項,直到用戶選擇退出。同時為了簡潔屏幕,讓用戶方便查閱,程序會有這個設計:每次輸入主菜單對應的選項,系統(tǒng)會對當前屏幕進行清屏;每次回主菜單,系統(tǒng)也會對當前屏幕進行清屏。所以在后面的每一個函數(shù)的第一個語句就是清屏,即把主菜單去掉,顯得更簡潔;每次執(zhí)行完一個功能后會循環(huán)到函數(shù),函數(shù)的第一個語句也是清屏。這樣保證了查閱的美觀。 主函數(shù)截圖第三章詳細設計3.1所有定義的函數(shù)和主函數(shù)()*顯示菜單*/(t[])*輸入記錄,形參為結構體數(shù)組,函數(shù)值返回類型為整型表示記錄長度*/(t[]n);/*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/(t[]n);/*記錄保存為文件*/(t[])*讀入函數(shù),參數(shù)為結構體數(shù)組*/(t[]n)*將文件保存到指定位置*/(t[])*從指定位置讀入函數(shù),參數(shù)為結構體數(shù)組*/(t[]n)*菜單中的保存函數(shù)*/(t[])*菜單中的載入函數(shù)*/(t[]n);/*按姓名查找記錄*/()*顯示指定的一條記錄*/(t[]n)*插入函數(shù),參數(shù)為結構體數(shù)組和記錄數(shù)*/(**y)*結構體的復制函數(shù)*/(t[]n);/*刪除函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)*/(t[]n)*排序函數(shù),參數(shù)為結構體數(shù)組和記錄數(shù)*/(t[]n)*根據(jù)姓名修改相關信息*/(){ ("學生通信錄管理系統(tǒng)\n"); ("本程序是可以幫你管理學生通訊錄,包括學生的姓名、電話號碼、號碼、電子郵箱、住址等信息,它將會給你帶來方便、高效的體驗!\n\n"); a[M];/*定義結構體數(shù)組*/ ;/*保存記錄長度*/ (;;)/*無限循環(huán)*/ { ("按任意鍵進入主菜單。"); (); ();/*顯示菜單*/ 100;/*初始化*/ ()*清空輸入緩沖區(qū)*/ (""); (i>=0<=11) { (i) { 1(a);/*輸入記錄*/ 2(a)*載入學生信息表*/ 3();/*顯示全部記錄*/ 4();/*查找記錄*/ 5();/*修改學生信息*/ 6();;/*插入記錄*/ 7();/*排序*/ 8();/*刪除記錄*/ 9();/*保存文件*/ 0(0);/*退出*/ } } { ("不要亂按!!!\n"); } }}3.2功能函數(shù)(1).菜單函數(shù)(){ ("")清屏 ("\n******************菜單*********************\n\n"); a[50]="1.輸入好友信息"; b[50]="2.載入好友信息"; c[50]="3.顯示所有好友列表"; d[50]="4.按學生姓名查找好友信息"; e[50]="5.按好友姓名修改好友信息"; f[50]="6.按學生姓名刪除好友信息"; g[50]="7.按學生姓名將好友信息排序"; h[50]="8.插入新的好友信息"; i[50]="9.保存好友信息為文檔"; j[50]="0.退出"; ("\3535s\n\n\3535s\n\n\3535s\n\n\3535s\n\n\3535s\n\n"); ("****************************************\n"); ("請選擇你要執(zhí)行的操作對應的序號:\n");}當調用菜單函數(shù)的時候,顯示屏上顯示菜單選擇語句可供用戶選擇的操作序號,然后就會調用到對應的函數(shù),來完成相應功能。(2)輸入函數(shù)(t[]){ ("")清屏 ; ("\n請輸入學生人數(shù):\n");/*提示信息*/ ("");/*輸入記錄數(shù)*/ ("請依次輸入每位學生的如下信息:\n");/*提示輸入記錄*/ ("姓名 電話號碼 號 電子郵箱 住址\n"); ("\n"); (0<) { (""[i][i][i][i][i]);/*輸入記錄*/ ("\n"); } ("你已成功輸入所有學生信息!\n");/*提示輸入記錄*/ n;/*返回記錄條數(shù)*/}定義學生信息為結構體數(shù)組,根據(jù)學生人數(shù),通過循環(huán),依次錄入學生的信息(3)列表函數(shù)(t[]n){ ("")清屏 i; ("\n\n*******************************************\n"); ("姓名 電話號碼 號 電子郵箱 住址\n"); (0<) { ("\n"); ("1015122515s\n"[i][i][i][i][i]); } ((1)%100)/*判斷輸出是否達到10條記錄*/ { ("按任意鍵繼續(xù)...\n");/*提示信息*/ ();/*壓任意鍵繼續(xù)*/ } ("***********************************************\n");}要列表所有學生信息的時候首先顯示一列標題,然后按照這樣的格式對應輸出所有學生的信息,方便用戶查閱.此函數(shù)中同樣用到了循環(huán),(4)保存函數(shù)(t[]n){ i; *;/*指向文件的指針*/ ((("","")))/*打開文件,并判斷打開是否正常*/ { ("打開文件失敗。\n")*沒打開*/ (1);/*退出*/ } ("\n正在保存文件...\n");/*輸出提示信息*/ (,"");/*將記錄數(shù)寫入文件*/ (,"\r\n");/*將換行符號寫入文件*/ (0<) { (,"1015122515s\n"[i][i][i][i][i])*格式寫入記錄*/ (,"\r\n");/*將換行符號寫入文件*/ } ()*關閉文件*/ ("***************保存成功!**************\n");/*顯示保存成功*/}為了不讓程序關閉時丟失剛剛輸入的所有好友信息,我們通常需要保存輸入的學生信息,這個函數(shù)恰好可以實現(xiàn)把好友信息保存成文檔,方便以后查看和操作.本函數(shù)是一種默認保存方式,即調用時將學生信息保存成文檔,存在這個程序的工程所在的目錄里面,方便信息不丟失,以后對學生信息進行操作也很方便.(5)載入函數(shù)(t[]){ ; *;/*指向文件的指針*/ ((("","")))/*打開文件*/ { ("文件打開失敗\n");/*不能打開*/ (1);/*退出*/ } (,"");/*讀入記錄數(shù)*/ (0<) (,"%1015122515s"[i][i][i][i][i]);/*按格式讀入記錄*/ ();/*關閉文件*/ ("你已經(jīng)成功從文件中讀取數(shù)據(jù)!!!\n");/*顯示讀取成功*/ n;/*返回記錄數(shù)*/}當用戶不是第一次在用這個程序的時候,可能會需要查看調用以前自己輸入的好友信息,所以,這個函數(shù)實現(xiàn)了從文檔中讀取學生的信息.(6)將文件保存到指定位置函數(shù)(t[]n){ *; i; ("請輸入你要保持位置的指定路徑和文件名:(例如:d:\\我的文檔\\學生通訊錄\\通訊錄)"); a[30]; (""); (((a,""))) { ("操作失敗!"); (1); } ("\n正在保存文件...\n");/*輸出提示信息*/ (,"");/*將記錄數(shù)寫入文件*/ (,"\r\n");/*將換行符號寫入文件*/ (0<) { (,"1015122515s\n"[i][i][i][i][i])*格式寫入記錄*/ (,"\r\n");/*將換行符號寫入文件*/ } ()*關閉文件*/ ("***************保存成功!**************\n");/*顯示保存成功*/}這個函數(shù)類似于上面的保存函數(shù),但是它可以將文檔自己命名并且保存到用戶指定的路徑,更方便用戶對通信錄的管理.(7)從指定位置讀入函數(shù)(t[]){ ; *;/*指向文件的指針*/ ("請輸入你要讀取文件的指定路徑和文件名:(例如:d:\\我的文檔\\學生通訊錄\\通訊錄)"); a[30]; (""); (((a,""))) { ("操作失敗!"); (1); } (,"");/*讀入記錄數(shù)*/ (0<) (,"%1015122515s"[i][i][i][i][i]);/*按格式讀入記錄*/ ();/*關閉文件*/ ("你已經(jīng)成功從該文件中讀取數(shù)據(jù)!!!\n");/*顯示讀取成功*/ n;/*返回記錄數(shù)*/}用戶可以再指定位置載入學生信息(8)菜單中的保存函數(shù),集成了上面兩個保存函數(shù)(t[]n){ ("")清屏 0; ("請按你將要進行的操作選擇序號:\n\n\t1.將文件保存到本工程\t\t2.將文件保存到指定路徑\n"); (""); (i) { 1(t,n); 2(t,n); ("你的輸入有誤!\n"); }}(9)菜單中的載入函數(shù),集成上面兩個載入函數(shù)(t[]){ ("")清屏 0; ("請按你將要進行的操作選擇序號:\n\n\t1.從本工程載入文檔\t\t2.從指定路徑載入文檔\n"); (""); (i) { 1(t); 2(t); ("你的輸入有誤!\n"); } ;}(10)按姓名查找記錄函數(shù)(t[]n){ ("")清屏 s[20];/*保存待查找姓名字符串*/ i;/*保存查找到結點的序號*/ ("請輸入你要查找的姓名:\n"); ("");/*輸入待查找姓名*/ (0<) { (([i])0) { ("你查詢的學生的信息如下:\n"); (t[i]);/*找到,調用顯示函數(shù)顯示記錄*/ ; } } () ("沒有你要找的學生。\n");}運用函數(shù),比較輸入的字符串和所有學生的姓名,當找到了輸入的學生的時候,就輸出學生的信息,否則i經(jīng)過循環(huán)就會和n相等,屏幕就會輸出沒有找到的提示。(11)顯示指定的一條記錄函數(shù)(t){ ("\n\n*******************************************************\n"); ("姓名 電話號碼 號 電子郵箱 住址\n"); ("\n"); ("1015122515s\n"); ("********************************************************\n");}此函數(shù)可以根據(jù)學生的序號來顯示學生信息,方便其他的函數(shù)調用/(12)插入記錄函數(shù)(t[]n)/*插入函數(shù),參數(shù)為結構體數(shù)組和記錄數(shù)*/{ ("")清屏 ;/*新插入記錄信息*/ ; s[20];/*確定插入在哪個記錄之前*/ ("請輸入要插入的學生的信息:\n"); ("****************************************************\n"); ("姓名 電話號碼 號 電子郵箱 住址\n"); ("\n"); ("");/*輸入記錄*/ ("\n"); ("你要插入哪個學生之前就輸入該學生的姓名:\n"); ("");/*輸入插入位置的姓名*/ (0<) { (([i])0) { (>)/*從最后一個結點開始向后移動一條*/ ([j][1]);/*調用結構體復制函數(shù)*/ ([i]);/*將新插入記錄拷貝到第i個位置*/ ("插入成功!\n"); /*;/*記錄數(shù)加1*/ ; } } () ("請正確輸入你要插入位置之前的學生的姓名。\n"); 1;}還是用函數(shù),這個里面定義了一個變量,把輸入的學生信息賦值到里面,然后插入,先找到要插入學生的序號,然后從第n個開始,依次把這個學生里面的信息賦值到后面一個學生的信息里面,總人數(shù)1。(13)結構體的復制函數(shù)(**y){ ((*x),(*y)); ((*x),(*y)); ((*x),(*y)); ((*x),(*y)); ((*x),(*y));}這個函數(shù)對結構體之間進行復制,在插入,更改學生信息函數(shù)中會有調用(14)刪除函數(shù)(t[]n){ ("")清屏 s[20];/*要刪除記錄的姓名*/ 0; ; ("請輸入要刪除的學生的姓名:\n");/*提示信息*/ ("")*輸入姓名*/ (0<) { (([i])0) { ("你確定要刪除一下學生信息?(確認請按1,否則請按2)\n"); (t[i]);/*找到,調用顯示函數(shù)顯示記錄*/ (""); (1) { (<)/*刪除該記錄,實際后續(xù)記錄前移*/ { ([j][1]);/*將后一條記錄拷貝到前一條*/ } ("刪除的信息成功。\n"); ;/*記錄數(shù)減1*/ } { ("你已取消刪除操作。\n"); } ; } } () ("沒有找到你要刪除的學生。\n"); n;}用戶輸入好友信息,信息被賦值到s[20]中,通過函數(shù)找到要刪除的學生,然后顯示這個學生的信息,讓用戶確認是否刪除,以免誤刪信息。(15)按照姓名排序函數(shù)(t[]n){ ("")清屏 ; ; (0<1) { (1<) (((t[i][j]))>0) { ([j]); ([j][i]); ([i]); } } ("按照姓名排序成功!\n");}(16)根據(jù)姓名修改相關信息(t[]n){ ("")清屏 i; s[20];/*要修改的學生的姓名*/ ("請輸入你要修改信息的學生的姓名:\n"); ("");/*輸入修改信息的學生的姓名*/ (0<) { (([i])0) { ("該學生以前的信息如下:\n"); (t[i]); ("請按以下順序輸入該學生的新信息:\n");/*提示輸入記錄*/ ("姓名電話號碼號電子郵箱 住址\n"); ("\n"); (""[i][i][i][i][i]);/*輸入記錄*/ ("\n"); ("修改成功!\n"); ; } } () ("沒有找到你要修改的學生,修改失敗!\n");}第四章設計結果及分析3.1調試過程提示用戶本程序可以完成的功能,然后按任意鍵,可以進入下面的主菜單:我們選擇1,然后按照提示輸入4個好友的信息如下:即完成信息的輸入。然后回主菜單。選擇3,看一下所有學生信息列表情況如下:再進主菜單,選擇4,輸入“白鵬”,查找他的信息:查找正常。進主菜單,選擇5,把程家山的信息更改:顯示修改成功,進主菜單,選擇列表所有好友信息,可以看到:顯示修改成功。再進主菜單,選擇6,刪除王劍橋的信息,先選擇2取消刪除:顯示列表還是有四個人得信息。再來一次,然后選擇1確認刪除:再回主菜單,顯示所有好友列表,會得到這樣的結果,說明已經(jīng)刪除成功:到主菜單中選擇8插入好友信息,然后按如下輸入,然后插入到白鵬的前面:再顯示所有好友信息如下:插入成功!會主菜單,選擇7,將所有好友排序,提示成功:再顯示所有好友信息列表會得到:說明已經(jīng)將學生信息按照姓名排好序了。最后退出之前,將輸入的信息保存成文檔(進主菜單選9):先選擇1,保存到工程,提示成功,然后選擇0退出程序。再執(zhí)行此程序,進主菜單選擇2,載入文檔;選擇1,提示成功:進主菜單列表所有好友信息,顯示如下:正常顯示。進主菜單,選擇9,保存信息為文檔,這次我們選擇2,輸入路徑d:\\通信錄打開我的電腦D盤,文件夾,看到通訊錄文件通訊錄文件內容如下:然后退出程序,再進程序,選擇2載入信息,這次我們選擇從d:\\通信錄載入再顯示好友信息:顯示正常。至此,程序的所有功能都正常實現(xiàn)了!3.2調試中出現(xiàn)的一些問題和解決方案(1)當沒有清屏函數(shù)時,每次都會看到屏幕滿滿的,閱讀起來很不方便,如下:解決的方案就是在函數(shù)和每個后面的函數(shù)里的第一個語句加入("");清屏函數(shù),這樣每次選擇操作后就會把菜單清除掉,而每次執(zhí)行完一個操作后進入主菜單時又會把之前的操作所剩下的無關信息刪除,使屏幕很簡潔。(2)("");語句當輸入的不是整型數(shù)據(jù),比如說是字母,當?shù)诙窝h(huán)到這個語句是,由于i中的數(shù)據(jù)是一個隨機值,沒有被初始化,所以會被跳過,使主菜單陷入死循環(huán)解決方案,在每次輸入i值之前給i一個初始值,然后清空緩沖區(qū),在運行到("");語句時就不會被跳過,從而當輸入的不是數(shù)字時不會陷入無限循環(huán)(3)結構體復制函數(shù)當這樣定義時就不能完成復制:(b){ ; ; ; ; ;}因為調用函數(shù)時,只把實參的值賦值給形參,而實參里面的數(shù)值沒有改變。所以要用到指針,定義如下:(**y){ ((*x),(*y)); ((*x),(*y)); ((*x),(*y)); ((*x),(*y)); ((*x),(*y));}總結 通過兩周的課程設計,使我對上學期學習的C語言有了更深的了解,也能更熟練的掌握對C語言的運用。以前對C語言的學習大多是基于書本上的,做的實驗相對較少,不能很熟練的在計算機中去操作和調試,以致當書寫程序時時常會遇到很多錯誤,不能完成整個程序的正確設計。剛剛開始的時候,感覺很迷茫,這么大一個課題不知從何做起,但是后來,通過課題的設計要求,畫出了程序主要的流程圖,這樣整個程序的設計思路也就清晰了,然后寫出了要定義的功能函數(shù),并設計了一個主函數(shù)。隨后的工作就是一個一個地完成功能函數(shù)的定義。做完這個課題后,知道了要設計一個程序,首先要清楚要完成什么樣的功能,然后根據(jù)設計的要求去依次書寫函數(shù),并且在主函數(shù)里面能夠很適當?shù)恼{用這些功能函數(shù),使得用戶完成各項功能。在程序調試的時候,不是把所有的函數(shù)都寫好然后一起調試,而是寫完一個或幾個函數(shù)調試一下,這樣就不會一下出現(xiàn)很多很多錯誤以至于不知從何該起。課程設計中也會遇到一些小細節(jié)問題,比如說清屏、用戶輸入有誤時陷入死循環(huán)等,通過查閱相關資料知道了問題的解決問題方案,也了解到了書本上以外的更多知識,了解了更多C語言的庫函數(shù)。同時,也讓我了解到程序設計中不僅要考慮到用戶輸入正確時會如何執(zhí)行下一步,而且要考慮在用戶輸入有誤時不至于讓程序出現(xiàn)錯誤,而是提示用戶輸入的信息不對。又如,當刪除一個學生的信息時,要輸出他要刪除的學生的信息,會出現(xiàn)警告,提示用戶確認是否刪除,來確保不會誤刪。兩周的上機實驗讓我了解到C語言實踐的重要性,實驗讓我了解C語言的更多庫函數(shù)和一些典型錯誤,也加深了對C語言的認識,為以后的程序語言的學習打下好的基礎。致謝 感謝鄒君老師對我在調試程序中的指導,感謝張軍同學的熱情幫助,感謝百度知道熱心網(wǎng)友。附錄主要程序代碼:/*************學生通訊錄管理系統(tǒng)程序**************//************作者:王志超。日期:2011.12.31*******//******頭文件()***********/<>/*函數(shù)*/""/*標準庫函數(shù)*/<>/*控制臺輸入輸出函數(shù)*/""/*字符串函數(shù)*/""/*字符操作函數(shù)*/M50/*定義常數(shù)表示記錄數(shù)*//*定義數(shù)據(jù)結構*/{[20];/*姓名*/[15];/*電話*/[15]*號*/[30]*電子郵件*/[30];/*地址*/};/*所有定義的函數(shù)*/()*顯示菜單*/(t[])*輸入記錄,形參為結構體數(shù)組,函數(shù)值返回類型為整型表示記錄長度*/(t[]n);/*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/(t[]n);/*記錄保存為文件*/(t[])*讀入函數(shù),參數(shù)為結構體數(shù)組*/(t[]n)*將文件保存到指定位置*/(t[])*從指定位置讀入函數(shù),參數(shù)為結構體數(shù)組*/(t[]n)*菜單中的保存函數(shù)*/(t[])*菜單中的載入函數(shù)*/(t[]n);/*按姓名查找記錄*/()*顯示指定的一條記錄*/(t[]n)*插入函數(shù),參數(shù)為結構體數(shù)組和記錄數(shù)*/(**y)*結構體的復制函數(shù)*/(t[]n);/*刪除函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)*/(t[]n)*排序函數(shù),參數(shù)為結構體數(shù)組和記錄數(shù)*/(t[]n)*根據(jù)姓名修改相關信息*/(){ ("學生通信錄管理系統(tǒng)\n"); ("本程序是可以幫你管理學生通訊錄,包括學生的姓名、電話號碼、號碼、電子郵箱、住址等信息,它將會給你帶來方便、高效的體驗!\n\n"); a[M];/*定義結構體數(shù)組*/ ;/*保存記錄長度*/ (;;)/*無限循環(huán)*/ { ("按任意鍵進入主菜單。"); (); ();/*顯示菜單*/ 100;/*初始化*/ ()*清空輸入緩沖區(qū)*/ (""); (i>=0<=11) { (i) { 1(a);/*輸入記錄*/ 2(a)*載入學生信息表*/ 3();/*顯示全部記錄*/ 4();/*查找記錄*/ 5();/*修改學生信息*/ 6();;/*插入記錄*/ 7();/*排序*/ 8();/*刪除記錄*/ 9();/*保存文件*/ 0(0);/*退出*/ } } { ("不要亂按!!!\n"); } }}(){ ("")清屏 ("\n**************************************菜單**************************************\n\n"); a[50]="1.輸入好友信息"; b[50]="2.載入好友信息"; c[50]="3.顯示所有好友列表"; d[50]="4.按學生姓名查找好友信息"; e[50]="5.按好友姓名修改好友信息"; f[50]="6.按學生姓名刪除好友信息"; g[50]="7.按學生姓名將好友信息排序"; h[50]="8.插入新的好友信息"; i[50]="9.保存好友信息為文檔"; j[50]="0.退出"; ("\3535s\n\n\3535s\n\n\3535s\n\n\3535s\n\n\3535s\n\n"); ("********************************************************************************\n"); ("請選擇你要執(zhí)行的操作對應的序號:\n");}/*輸入函數(shù)*/(t[]){ ("")清屏 ; ("\n請輸入學生人數(shù):\n");/*提示信息*/ ("");/*輸入記錄數(shù)*/ ("請依次輸入每位學生的如下信息:\n");/*提示輸入記錄*/ ("姓名 電話號碼 號 電子郵箱 住址\n"); ("\n"); (0<) { (""[i][i][i][i][i]);/*輸入記錄*/ ("\n"); } ("你已成功輸入所有學生信息!\n");/*提示輸入記錄*/ n;/*返回記錄條數(shù)*/}/*列表函數(shù)*/(t[]n){ ("")清屏 i; ("\n\n**********************************************************************\n"); ("姓名 電話號碼 號 電子郵箱 住址\n"); (0<) { ("\n"); ("1015122515s\n"[i][i][i][i][i]); } ((1)%100)/*判斷輸出是否達到10條記錄*/ { ("按任意鍵繼續(xù)...\n");/*提示信息*/ ();/*壓任意鍵繼續(xù)*/ } ("***************************************************************************\n");}/*保存函數(shù),參數(shù)為結構體數(shù)組和記錄數(shù)*/(t[]n){ i; *;/*指向文件的指針*/ ((("","")))/*打開文件,并判斷打開是否正常*/ { ("打開文件失敗。\n")*沒打開*/ (1);/*退出*/ } ("\n正在保存文件...\n");/*輸出提示信息*/ (,"");/*將記錄數(shù)寫入文件*/ (,"\r\n");/*將換行符號寫入文件*/ (0<) { (,"1015122515s\n"[i][i][i][i][i])*格式寫入記錄*/ (,"\r\n");/*將換行符號寫入文件*/ } ()*關閉文件*/ ("***************保存成功!**************\n");/*顯示保存成功*/}(t[]){ ; *;/*指向文件的指針*/ ((("","")))/*打開文件*/ { ("文件打開失敗\n");/*不能打開*/ (1);/*退出*/ } (,"");/*讀入記錄數(shù)*/ (0<) (,"%1015122515s"[i][i][i][i][i]);/*按格式讀入記錄*/ ();/*關閉文件*/ ("你已經(jīng)成功從文件中讀取數(shù)據(jù)!!!\n");/*顯示讀取成功*/ n;/*返回記錄數(shù)*/}/*將文件保存到指定位置*/(t[]n){ *; i; ("請輸入你要保持位置的指定路徑和文件名:(例如:d:\\我的文檔\\學生通訊錄\\通訊錄)"); a[30]; (""); (((a,""))) { ("操作失敗!"); (1); } ("\n正在保存文件...\n");/*輸出提示信息*/ (,"");/*將記錄數(shù)寫入文件*/ (,"\r\n");/*將換行符號寫入文件*/ (0<) { (,"1015122515s\n"[i][i][i][i][i])*格式寫入記錄*/ (,"\r\n");/*將換行符號寫入文件*/ } ()*關閉文件*/ ("***************保存成功!**************\n");/*顯示保存成功*/}/*從指定位置讀入函數(shù),參數(shù)為結構體數(shù)組*/(t[]){ ; *;/*指向文件的指針*/ ("請輸入你要讀取文件的指定路徑和文件名:(例如:d:\\我的文檔\\學生通訊錄\\通訊錄)"); a[30]; (""); (((a,""))) { ("操作失敗!"); (1); } (,"");/*讀入記錄數(shù)*/ (0<) (,"%1015122515s"[i][i][i][i][i]);/*按格式讀入記錄*/ ();/*關閉文件*/ ("你已經(jīng)成功從該文件中讀取數(shù)據(jù)!!!\n");/*顯示讀取成功*/ n;/*返回記錄數(shù)*/}(t[]n){ ("")清屏 0; ("請按你將要進行的操作選擇序號:\n\n\t1.將文件保存到本工程\t\t2.將文件保存到指定路徑\n"); (""); (i) { 1(t,n); 2(t,n); ("你的輸入有誤!\n"); }}(t[]){ ("")清屏 0; ("請按你將要進行的操作選擇序號:\n\n\t1.從本工程載入文檔\t\t2.從指定路徑載入文檔\n"); (""); (i) { 1(t); 2(t); ("你的輸入有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年綜合測試(決策能力)考題及答案
- 2025年中職模具設計與制造(模具制造)試題及答案
- 2025-2026年高一地理(海洋地理)下學期期末檢測卷
- 2025年大學大四(國際貿(mào)易)跨國公司管理試題及答案
- 2025年中職社會工作(社區(qū)服務實務)試題及答案
- 2026年珠寶首飾設計與工藝(珠寶設計)考題及答案
- 大學(測繪工程)地形測量實操2026年綜合測試題及答案
- 2026年職業(yè)病防治(職業(yè)健康)考題及答案
- 2025年大學大二(應用物理學)電磁學綜合測試試題及答案
- 2025年高職食品加工工藝(食品保鮮技術)試題及答案
- 2025年CCAA統(tǒng)考《認證基礎》考試題庫及答案
- 燃氣施工安全培訓計劃
- 雨課堂學堂在線學堂云《創(chuàng)業(yè):道與術》單元測試考核答案
- 流行性感冒的健康宣教
- 不銹鋼鑄件的行業(yè)深度研究報告
- 2025年學法考試廣東考場(二)試題及答案
- 抖音公會簽約合同
- 2025年隧道建設行業(yè)分析報告及未來發(fā)展趨勢預測
- 井下支柱工安全操作規(guī)程
- 加油站設備基礎知識培訓課件
- 數(shù)控銑工內部技能考核試卷及答案
評論
0/150
提交評論