計(jì)算機(jī)C語言課程設(shè)計(jì)學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)報告_第1頁
計(jì)算機(jī)C語言課程設(shè)計(jì)學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)報告_第2頁
計(jì)算機(jī)C語言課程設(shè)計(jì)學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)報告_第3頁
計(jì)算機(jī)C語言課程設(shè)計(jì)學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)報告_第4頁
計(jì)算機(jī)C語言課程設(shè)計(jì)學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計(jì)算機(jī)C語言課程設(shè)計(jì)學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)報告計(jì)算機(jī)C語言課程設(shè)計(jì)學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)報告/計(jì)算機(jī)C語言課程設(shè)計(jì)學(xué)生通信錄管理系統(tǒng)實(shí)驗(yàn)報告***大學(xué)*****學(xué)院綜合設(shè)計(jì)報告設(shè)計(jì)名稱:程序設(shè)計(jì)綜合設(shè)計(jì)設(shè)計(jì)題目:學(xué)生通訊錄管理系統(tǒng)的設(shè)計(jì)學(xué)生學(xué)號:******專業(yè)班級:****學(xué)生姓名:*****學(xué)生成績:指導(dǎo)教師(職稱):*****課題工作時間:11年12月26日至12年1月6日說明:1、報告中的第一、二、三項(xiàng)由指導(dǎo)教師在綜合設(shè)計(jì)開始前填寫并發(fā)給每個學(xué)生;四、五兩項(xiàng)(中英文摘要)由學(xué)生在完成綜合設(shè)計(jì)后填寫。2、學(xué)生成績由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計(jì)情況給出各項(xiàng)分值及總評成績。3、指導(dǎo)教師評語一欄由指導(dǎo)教師就學(xué)生在整個設(shè)計(jì)期間的平時表現(xiàn)、設(shè)計(jì)完成情況、報告的質(zhì)量及答辯情況,給出客觀、全面的評價。4、所有學(xué)生必須參加綜合設(shè)計(jì)的答辯環(huán)節(jié),凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應(yīng)由2人及以上教師組成。5、報告正文字?jǐn)?shù)一般應(yīng)不少于5000字,也可由指導(dǎo)教師根據(jù)本門綜合設(shè)計(jì)的情況另行規(guī)定。6、平時表現(xiàn)成績低于6分的學(xué)生,其綜合設(shè)計(jì)成績按不及格處理。7、此表格式為武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院提供的基本格式(適用于學(xué)院各類綜合設(shè)計(jì)),各教研室可根據(jù)本門綜合設(shè)計(jì)的特點(diǎn)及內(nèi)容做適當(dāng)?shù)恼{(diào)整,并上報學(xué)院批準(zhǔn)。成績評定表學(xué)生姓名:***學(xué)號:***班級:***類別合計(jì)分值各項(xiàng)分值評分標(biāo)準(zhǔn)實(shí)際得分合計(jì)得分備注平時表現(xiàn)1010按時參加綜合設(shè)計(jì),無曠課、遲到、早退、違反實(shí)驗(yàn)室紀(jì)律等情況。完成情況3020按設(shè)計(jì)任務(wù)書的要求完成了全部任務(wù),能完整演示其設(shè)計(jì)內(nèi)容,符合要求。10能對其設(shè)計(jì)內(nèi)容進(jìn)行詳細(xì)、完整的介紹,并能就指導(dǎo)教師提出的問題進(jìn)行正確的回答。報告質(zhì)量3510報告文字通順,內(nèi)容翔實(shí),論述充分、完整,立論正確,結(jié)構(gòu)嚴(yán)謹(jǐn)合理;報告字?jǐn)?shù)符合相關(guān)要求,工整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設(shè)計(jì)方案合理、可行,論證嚴(yán)謹(jǐn),邏輯性強(qiáng),具有說服力。5符號統(tǒng)一;圖表完備、符合規(guī)范要求。5能對整個設(shè)計(jì)過程進(jìn)行全面的總結(jié),得出有價值的結(jié)論或結(jié)果。5參考文獻(xiàn)數(shù)量在3篇以上,格式符合要求,在正文中正確引用。答辯情況2510在規(guī)定時間內(nèi)能就所設(shè)計(jì)的內(nèi)容進(jìn)行闡述,言簡意明,重點(diǎn)突出,論點(diǎn)正確,條理清晰。15在規(guī)定時間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題。總評成績:分補(bǔ)充說明:指導(dǎo)教師:***(簽字)日期:2012年1月6日答辯記錄表學(xué)生姓名:***學(xué)號:*****班級:****答辯地點(diǎn):***答辯內(nèi)容記錄:答辯成績合計(jì)分值各項(xiàng)分值評分標(biāo)準(zhǔn)實(shí)際得分合計(jì)得分備注2510在規(guī)定時間內(nèi)能就所設(shè)計(jì)的內(nèi)容進(jìn)行闡述,言簡意明,重點(diǎn)突出,論點(diǎn)正確,條理清晰。15在規(guī)定時間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題。答辯小組成員(簽字):2012年1月6日指導(dǎo)教師評語指導(dǎo)教師:(簽字)日期:2012年1月6日一、綜合設(shè)計(jì)目的、條件、任務(wù)和內(nèi)容要求:《程序設(shè)計(jì)基礎(chǔ)》在計(jì)算機(jī)科學(xué)中是一門重要的基礎(chǔ)課程,也是培養(yǎng)學(xué)生編程能力的入門性課程。通過介紹C語言及其編程技術(shù),使學(xué)生了解高級程序設(shè)計(jì)語言的結(jié)構(gòu),掌握基本的程序設(shè)計(jì)過程和技巧,掌握基本的分析問題和利用計(jì)算機(jī)求解問題的能力,具備初步的高級語言程序設(shè)計(jì)能力?!冻绦蛟O(shè)計(jì)綜合設(shè)計(jì)》是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的一門實(shí)踐課程,是學(xué)習(xí)完程序設(shè)計(jì)課程后的課程設(shè)計(jì)。本課程的目的是運(yùn)用所學(xué)到的有關(guān)知識與技能,結(jié)合實(shí)踐教學(xué)環(huán)節(jié),進(jìn)行工程技術(shù)人員所需的基本程序設(shè)計(jì)訓(xùn)練,為學(xué)生進(jìn)一步學(xué)習(xí)有關(guān)專業(yè)課程和日后從事程序設(shè)計(jì)工作打下基礎(chǔ)?!秾W(xué)生通訊錄管理系統(tǒng)》是設(shè)計(jì)一個實(shí)用的小型通訊錄程序。每個記錄(好友信息)包括姓名、電話號碼、號碼、電子郵箱、住址等信息。為各項(xiàng)操作功能設(shè)計(jì)一個菜單,應(yīng)用程序運(yùn)行后,先顯示這個菜單,用戶通過菜單選項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。程序的功能包括:1、插入好友的信息

2、顯示好友的信息

3、給定姓名,查找相關(guān)的信息

4、給定姓名,修改相關(guān)的信息

5、給定姓名,刪除好友的信息

6、按照姓名排序。

輸入要求:應(yīng)用程序運(yùn)行后,在屏幕上顯示一個菜單,用戶可以根據(jù)要求選擇相應(yīng)的操作項(xiàng)目,進(jìn)入每個操作后,根據(jù)應(yīng)用程序的提示信息,從鍵盤輸入相應(yīng)的信息;輸出要求:要求用戶輸出數(shù)據(jù)時,要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。指導(dǎo)教師簽字:2012年12月20日二、進(jìn)度安排:第18周(12.26-12.27):學(xué)生熟悉課題的任務(wù)和要求,查閱相關(guān)文獻(xiàn)和資料,并做好編碼準(zhǔn)備第18周(12.28-12.31):程序編碼、調(diào)試第19周(1.4-1.5):程序編碼、調(diào)試和測試,書寫報告第19周(1.6):答辯、檢查、驗(yàn)收、提交設(shè)計(jì)報告三、應(yīng)收集資料及主要參考文獻(xiàn):應(yīng)收集的資料:面向?qū)ο蟪绦蛟O(shè)計(jì)思想和方法語言參考手冊主要參考文獻(xiàn):[1]姬濤等.計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(上冊)教程.第一版.北京.中國傳媒大學(xué)出版社,2010.p109~323.[2]張俊等面向?qū)ο蟪绦蛟O(shè)計(jì).第一版,北京.中國鐵道出版社,2008.p323~366四、綜合設(shè)計(jì)(課程設(shè)計(jì))摘要(中文):本著為了提高學(xué)生對已學(xué)習(xí)過的程序設(shè)計(jì)的鞏固,學(xué)校特意為學(xué)生安排這次課程設(shè)計(jì)。課程設(shè)計(jì)的課題是讓學(xué)生自主設(shè)計(jì)一個學(xué)生通信錄管理系統(tǒng)。整個程序設(shè)計(jì)主要通過c語言來實(shí)現(xiàn)。本課程的目的是運(yùn)用所學(xué)到的有關(guān)知識與技能,結(jié)合實(shí)踐教學(xué)環(huán)節(jié),進(jìn)行工程技術(shù)人員所需的基本程序設(shè)計(jì)訓(xùn)練,為學(xué)生進(jìn)一步學(xué)習(xí)有關(guān)專業(yè)課程和日后從事程序設(shè)計(jì)工作打下基礎(chǔ)?!秾W(xué)生通訊錄管理系統(tǒng)》是設(shè)計(jì)一個實(shí)用的小型通訊錄程序。每個記錄(好友信息)包括姓名、電話號碼、號碼、電子郵箱、住址等信息。為各項(xiàng)操作功能設(shè)計(jì)一個菜單,應(yīng)用程序運(yùn)行后,先顯示這個菜單,用戶通過菜單選項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。程序的功能包括:輸入、查找、插入、排序、刪除、顯示好友的信息等,、可以把輸入的信息保存到系統(tǒng)文件當(dāng)中,也可以在程序運(yùn)行的時候從系統(tǒng)文件讀取之前保存的學(xué)生信息,再通過程序完成相應(yīng)的操作,實(shí)現(xiàn)通信錄管理智能快捷化。從設(shè)計(jì)這個程序的大體思路上來說,首先本程序運(yùn)行時會有有一個提示,對本程序做一個簡介,然后,用戶通過提示可以進(jìn)入一個設(shè)計(jì)好的主菜單。主菜單上面有10個選項(xiàng)可供用戶選擇,用戶通過自己將要進(jìn)行的操作選擇對應(yīng)的選項(xiàng),然后程序執(zhí)行相應(yīng)操作。整個程序在用戶使用時都會有選項(xiàng)可供用戶選擇,用戶只需通過程序的提示,便可以一步一步完成操作,不管你是普通的用戶還是程序設(shè)計(jì)人員,你都可以方便快捷的通過本程序完成對學(xué)生通信錄的管理,給每一個用戶一個非常不錯的體驗(yàn)。關(guān)鍵字:c語言;通信錄管理;主菜單;快捷。五、綜合設(shè)計(jì)(課程設(shè)計(jì))(英文):,,.'a.c.,,,."a.(),,,,.a,,,.:,,,,,,,,,,.I,aa,,a.10,,.,,,,,a.:C;"""";.目錄摘要…………………………...第一章課題背景(或2.1……………………..………….…x2.2……………………..………….…x2.3……………………..………….…x第三章 詳細(xì)設(shè)計(jì)…………..………………..x3.1……………………..………….…x3.1……………………..………….…x第四章 設(shè)計(jì)結(jié)果及分析…………………..………………..x4.1…………….………………..….…x緒論、概述)……………………..11.1…………………...11.2……………………..……………x第二章 設(shè)計(jì)簡介及設(shè)計(jì)方案論述………..x4.2….…………………..………….…x4.3…….………………..………….…x總結(jié)…….……………………..………….…x致謝…….……………………..………….…x參考文獻(xiàn)…….………………..………………..………….…x附錄主要程序代碼………...………………..………….…x摘要本著為了提高學(xué)生對已學(xué)習(xí)過的程序設(shè)計(jì)的鞏固,學(xué)校特意為學(xué)生安排這次課程設(shè)計(jì)。課程設(shè)計(jì)的課題是讓學(xué)生自主設(shè)計(jì)一個學(xué)生通信錄管理系統(tǒng)。整個程序設(shè)計(jì)主要通過c語言來實(shí)現(xiàn)。本課程的目的是運(yùn)用所學(xué)到的有關(guān)知識與技能,結(jié)合實(shí)踐教學(xué)環(huán)節(jié),進(jìn)行工程技術(shù)人員所需的基本程序設(shè)計(jì)訓(xùn)練,為學(xué)生進(jìn)一步學(xué)習(xí)有關(guān)專業(yè)課程和日后從事程序設(shè)計(jì)工作打下基礎(chǔ)?!秾W(xué)生通訊錄管理系統(tǒng)》是設(shè)計(jì)一個實(shí)用的小型通訊錄程序。每個記錄(好友信息)包括姓名、電話號碼、號碼、電子郵箱、住址等信息。為各項(xiàng)操作功能設(shè)計(jì)一個菜單,應(yīng)用程序運(yùn)行后,先顯示這個菜單,用戶通過菜單選項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。程序的功能包括:輸入、查找、插入、排序、刪除、顯示好友的信息等,、可以把輸入的信息保存到系統(tǒng)文件當(dāng)中,也可以在程序運(yùn)行的時候從系統(tǒng)文件讀取之前保存的學(xué)生信息,再通過程序完成相應(yīng)的操作,實(shí)現(xiàn)通信錄管理智能快捷化。整個程序在用戶使用時都會有選項(xiàng)可供用戶選擇,用戶只需通過程序的提示,便可以一步一步完成操作,不管你是普通的用戶還是程序設(shè)計(jì)人員,你都可以方便快捷的通過本程序完成對學(xué)生通信錄的管理,給每一個用戶一個非常不錯的體驗(yàn)。關(guān)鍵字:c語言;通信錄管理;主菜單;快捷。,,.'a.c.,,,."a.(),,,,.a,,,.:,,,,,,,,,,.,,,,,a.:C;"""";.第一章課題背景(或緒論、概述)1.1研究背景 當(dāng)下計(jì)算機(jī)技術(shù)高速發(fā)展,信息處理自動化和智能化已經(jīng)深入人心。而在計(jì)算機(jī)還未普及之前,通訊管理都是由聯(lián)系人采用名片筆錄手工記錄的方式來操作的,現(xiàn)在一般的通訊錄管理都是采用計(jì)算機(jī)作為工具通訊錄管理程序來幫助人們進(jìn)行更有效的通訊錄信息管理。本通訊錄信息管理系統(tǒng)用計(jì)算機(jī)管理電子通訊錄的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,程序運(yùn)用C語言對學(xué)生通訊實(shí)現(xiàn)輸入、顯示、插入、刪除、修改、查找、保存等功能。使用戶能快速方便的更新通訊錄,查找聯(lián)系人信息。通過本課程設(shè)計(jì),學(xué)生可以從運(yùn)用C語言及其編程技術(shù),使了解高級程序設(shè)計(jì)語言的結(jié)構(gòu),掌握基本的程序設(shè)計(jì)過程和技巧,掌握基本的分析問題和利用計(jì)算機(jī)求解問題的能力,具備初步的高級語言程序設(shè)計(jì)能力1.3研究的意義為保存好友信息,通信錄已成為每一個人必不可少的東西。本程序正好可以完成用戶對通信錄的錄入,查找,修改,排序,保存等各項(xiàng)功能,讓用戶高速快捷的管理自己的通信錄。1.4完成的功能用戶輸入學(xué)生信息列表所有學(xué)生信息通過學(xué)生姓名將學(xué)生信息排序插入好友信息通過學(xué)生姓名完成對該學(xué)生信息的查找、刪除、修改可以將學(xué)生信息保存記錄成文檔程序可以從文檔讀取學(xué)生信息第二章設(shè)計(jì)簡介及設(shè)計(jì)方案論述2.1程序主要流程圖執(zhí)行完后返回到主菜單(沒有選退出)執(zhí)行對應(yīng)操作執(zhí)行完后返回到主菜單(沒有選退出)執(zhí)行對應(yīng)操作用戶選擇其中一項(xiàng)載入信息顯示好友信息排序查找修改刪除插入保存信息退出輸入信息主菜單2.2主要設(shè)計(jì)思路 用戶進(jìn)入系統(tǒng)后會通過提示進(jìn)入主菜單欄,對應(yīng)有10個選項(xiàng),用戶輸入自己要執(zhí)行的編號后,程序內(nèi)部就會調(diào)用相應(yīng)的函數(shù),實(shí)現(xiàn)相應(yīng)功能。 首先,設(shè)計(jì)好一個主菜單以及各種功能函數(shù),那么主函數(shù)就很簡單了,用一個無限循環(huán)語句加一個選擇語句,語句后面有10個相應(yīng)的功能函數(shù)與菜單里的編號一一對應(yīng)。當(dāng)用戶輸入不同的數(shù)值,語句將會調(diào)用對應(yīng)的功能函數(shù),來執(zhí)行操作。執(zhí)行完之后,又會進(jìn)入主菜單,讓用戶選擇下一步將要執(zhí)行什么選項(xiàng),直到用戶選擇退出。同時為了簡潔屏幕,讓用戶方便查閱,程序會有這個設(shè)計(jì):每次輸入主菜單對應(yīng)的選項(xiàng),系統(tǒng)會對當(dāng)前屏幕進(jìn)行清屏;每次回主菜單,系統(tǒng)也會對當(dāng)前屏幕進(jìn)行清屏。所以在后面的每一個函數(shù)的第一個語句就是清屏,即把主菜單去掉,顯得更簡潔;每次執(zhí)行完一個功能后會循環(huán)到函數(shù),函數(shù)的第一個語句也是清屏。這樣保證了查閱的美觀。 主函數(shù)截圖第三章詳細(xì)設(shè)計(jì)3.1所有定義的函數(shù)和主函數(shù)()*顯示菜單*/(t[])*輸入記錄,形參為結(jié)構(gòu)體數(shù)組,函數(shù)值返回類型為整型表示記錄長度*/(t[]n);/*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/(t[]n);/*記錄保存為文件*/(t[])*讀入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組*/(t[]n)*將文件保存到指定位置*/(t[])*從指定位置讀入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組*/(t[]n)*菜單中的保存函數(shù)*/(t[])*菜單中的載入函數(shù)*/(t[]n);/*按姓名查找記錄*/()*顯示指定的一條記錄*/(t[]n)*插入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/(**y)*結(jié)構(gòu)體的復(fù)制函數(shù)*/(t[]n);/*刪除函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)*/(t[]n)*排序函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/(t[]n)*根據(jù)姓名修改相關(guān)信息*/(){ ("學(xué)生通信錄管理系統(tǒng)\n"); ("本程序是可以幫你管理學(xué)生通訊錄,包括學(xué)生的姓名、電話號碼、號碼、電子郵箱、住址等信息,它將會給你帶來方便、高效的體驗(yàn)!\n\n"); a[M];/*定義結(jié)構(gòu)體數(shù)組*/ ;/*保存記錄長度*/ (;;)/*無限循環(huán)*/ { ("按任意鍵進(jìn)入主菜單。"); (); ();/*顯示菜單*/ 100;/*初始化*/ ()*清空輸入緩沖區(qū)*/ (""); (i>=0<=11) { (i) { 1(a);/*輸入記錄*/ 2(a)*載入學(xué)生信息表*/ 3();/*顯示全部記錄*/ 4();/*查找記錄*/ 5();/*修改學(xué)生信息*/ 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.按學(xué)生姓名查找好友信息"; e[50]="5.按好友姓名修改好友信息"; f[50]="6.按學(xué)生姓名刪除好友信息"; g[50]="7.按學(xué)生姓名將好友信息排序"; 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í)行的操作對應(yīng)的序號:\n");}當(dāng)調(diào)用菜單函數(shù)的時候,顯示屏上顯示菜單選擇語句可供用戶選擇的操作序號,然后就會調(diào)用到對應(yīng)的函數(shù),來完成相應(yīng)功能。(2)輸入函數(shù)(t[]){ ("")清屏 ; ("\n請輸入學(xué)生人數(shù):\n");/*提示信息*/ ("");/*輸入記錄數(shù)*/ ("請依次輸入每位學(xué)生的如下信息:\n");/*提示輸入記錄*/ ("姓名 電話號碼 號 電子郵箱 住址\n"); ("\n"); (0<) { (""[i][i][i][i][i]);/*輸入記錄*/ ("\n"); } ("你已成功輸入所有學(xué)生信息!\n");/*提示輸入記錄*/ n;/*返回記錄條數(shù)*/}定義學(xué)生信息為結(jié)構(gòu)體數(shù)組,根據(jù)學(xué)生人數(shù),通過循環(huán),依次錄入學(xué)生的信息(3)列表函數(shù)(t[]n){ ("")清屏 i; ("\n\n*******************************************\n"); ("姓名 電話號碼 號 電子郵箱 住址\n"); (0<) { ("\n"); ("1015122515s\n"[i][i][i][i][i]); } ((1)%100)/*判斷輸出是否達(dá)到10條記錄*/ { ("按任意鍵繼續(xù)...\n");/*提示信息*/ ();/*壓任意鍵繼續(xù)*/ } ("***********************************************\n");}要列表所有學(xué)生信息的時候首先顯示一列標(biāo)題,然后按照這樣的格式對應(yīng)輸出所有學(xué)生的信息,方便用戶查閱.此函數(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");/*將換行符號寫入文件*/ } ()*關(guān)閉文件*/ ("***************保存成功!**************\n");/*顯示保存成功*/}為了不讓程序關(guān)閉時丟失剛剛輸入的所有好友信息,我們通常需要保存輸入的學(xué)生信息,這個函數(shù)恰好可以實(shí)現(xiàn)把好友信息保存成文檔,方便以后查看和操作.本函數(shù)是一種默認(rèn)保存方式,即調(diào)用時將學(xué)生信息保存成文檔,存在這個程序的工程所在的目錄里面,方便信息不丟失,以后對學(xué)生信息進(jìn)行操作也很方便.(5)載入函數(shù)(t[]){ ; *;/*指向文件的指針*/ ((("","")))/*打開文件*/ { ("文件打開失敗\n");/*不能打開*/ (1);/*退出*/ } (,"");/*讀入記錄數(shù)*/ (0<) (,"%1015122515s"[i][i][i][i][i]);/*按格式讀入記錄*/ ();/*關(guān)閉文件*/ ("你已經(jīng)成功從文件中讀取數(shù)據(jù)!!!\n");/*顯示讀取成功*/ n;/*返回記錄數(shù)*/}當(dāng)用戶不是第一次在用這個程序的時候,可能會需要查看調(diào)用以前自己輸入的好友信息,所以,這個函數(shù)實(shí)現(xiàn)了從文檔中讀取學(xué)生的信息.(6)將文件保存到指定位置函數(shù)(t[]n){ *; i; ("請輸入你要保持位置的指定路徑和文件名:(例如:d:\\我的文檔\\學(xué)生通訊錄\\通訊錄)"); a[30]; (""); (((a,""))) { ("操作失敗!"); (1); } ("\n正在保存文件...\n");/*輸出提示信息*/ (,"");/*將記錄數(shù)寫入文件*/ (,"\r\n");/*將換行符號寫入文件*/ (0<) { (,"1015122515s\n"[i][i][i][i][i])*格式寫入記錄*/ (,"\r\n");/*將換行符號寫入文件*/ } ()*關(guān)閉文件*/ ("***************保存成功!**************\n");/*顯示保存成功*/}這個函數(shù)類似于上面的保存函數(shù),但是它可以將文檔自己命名并且保存到用戶指定的路徑,更方便用戶對通信錄的管理.(7)從指定位置讀入函數(shù)(t[]){ ; *;/*指向文件的指針*/ ("請輸入你要讀取文件的指定路徑和文件名:(例如:d:\\我的文檔\\學(xué)生通訊錄\\通訊錄)"); a[30]; (""); (((a,""))) { ("操作失敗!"); (1); } (,"");/*讀入記錄數(shù)*/ (0<) (,"%1015122515s"[i][i][i][i][i]);/*按格式讀入記錄*/ ();/*關(guān)閉文件*/ ("你已經(jīng)成功從該文件中讀取數(shù)據(jù)!!!\n");/*顯示讀取成功*/ n;/*返回記錄數(shù)*/}用戶可以再指定位置載入學(xué)生信息(8)菜單中的保存函數(shù),集成了上面兩個保存函數(shù)(t[]n){ ("")清屏 0; ("請按你將要進(jìn)行的操作選擇序號:\n\n\t1.將文件保存到本工程\t\t2.將文件保存到指定路徑\n"); (""); (i) { 1(t,n); 2(t,n); ("你的輸入有誤!\n"); }}(9)菜單中的載入函數(shù),集成上面兩個載入函數(shù)(t[]){ ("")清屏 0; ("請按你將要進(jìn)行的操作選擇序號:\n\n\t1.從本工程載入文檔\t\t2.從指定路徑載入文檔\n"); (""); (i) { 1(t); 2(t); ("你的輸入有誤!\n"); } ;}(10)按姓名查找記錄函數(shù)(t[]n){ ("")清屏 s[20];/*保存待查找姓名字符串*/ i;/*保存查找到結(jié)點(diǎn)的序號*/ ("請輸入你要查找的姓名:\n"); ("");/*輸入待查找姓名*/ (0<) { (([i])0) { ("你查詢的學(xué)生的信息如下:\n"); (t[i]);/*找到,調(diào)用顯示函數(shù)顯示記錄*/ ; } } () ("沒有你要找的學(xué)生。\n");}運(yùn)用函數(shù),比較輸入的字符串和所有學(xué)生的姓名,當(dāng)找到了輸入的學(xué)生的時候,就輸出學(xué)生的信息,否則i經(jīng)過循環(huán)就會和n相等,屏幕就會輸出沒有找到的提示。(11)顯示指定的一條記錄函數(shù)(t){ ("\n\n*******************************************************\n"); ("姓名 電話號碼 號 電子郵箱 住址\n"); ("\n"); ("1015122515s\n"); ("********************************************************\n");}此函數(shù)可以根據(jù)學(xué)生的序號來顯示學(xué)生信息,方便其他的函數(shù)調(diào)用/(12)插入記錄函數(shù)(t[]n)/*插入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/{ ("")清屏 ;/*新插入記錄信息*/ ; s[20];/*確定插入在哪個記錄之前*/ ("請輸入要插入的學(xué)生的信息:\n"); ("****************************************************\n"); ("姓名 電話號碼 號 電子郵箱 住址\n"); ("\n"); ("");/*輸入記錄*/ ("\n"); ("你要插入哪個學(xué)生之前就輸入該學(xué)生的姓名:\n"); ("");/*輸入插入位置的姓名*/ (0<) { (([i])0) { (>)/*從最后一個結(jié)點(diǎn)開始向后移動一條*/ ([j][1]);/*調(diào)用結(jié)構(gòu)體復(fù)制函數(shù)*/ ([i]);/*將新插入記錄拷貝到第i個位置*/ ("插入成功!\n"); /*;/*記錄數(shù)加1*/ ; } } () ("請正確輸入你要插入位置之前的學(xué)生的姓名。\n"); 1;}還是用函數(shù),這個里面定義了一個變量,把輸入的學(xué)生信息賦值到里面,然后插入,先找到要插入學(xué)生的序號,然后從第n個開始,依次把這個學(xué)生里面的信息賦值到后面一個學(xué)生的信息里面,總?cè)藬?shù)1。(13)結(jié)構(gòu)體的復(fù)制函數(shù)(**y){ ((*x),(*y)); ((*x),(*y)); ((*x),(*y)); ((*x),(*y)); ((*x),(*y));}這個函數(shù)對結(jié)構(gòu)體之間進(jìn)行復(fù)制,在插入,更改學(xué)生信息函數(shù)中會有調(diào)用(14)刪除函數(shù)(t[]n){ ("")清屏 s[20];/*要刪除記錄的姓名*/ 0; ; ("請輸入要刪除的學(xué)生的姓名:\n");/*提示信息*/ ("")*輸入姓名*/ (0<) { (([i])0) { ("你確定要刪除一下學(xué)生信息?(確認(rèn)請按1,否則請按2)\n"); (t[i]);/*找到,調(diào)用顯示函數(shù)顯示記錄*/ (""); (1) { (<)/*刪除該記錄,實(shí)際后續(xù)記錄前移*/ { ([j][1]);/*將后一條記錄拷貝到前一條*/ } ("刪除的信息成功。\n"); ;/*記錄數(shù)減1*/ } { ("你已取消刪除操作。\n"); } ; } } () ("沒有找到你要刪除的學(xué)生。\n"); n;}用戶輸入好友信息,信息被賦值到s[20]中,通過函數(shù)找到要刪除的學(xué)生,然后顯示這個學(xué)生的信息,讓用戶確認(rèn)是否刪除,以免誤刪信息。(15)按照姓名排序函數(shù)(t[]n){ ("")清屏 ; ; (0<1) { (1<) (((t[i][j]))>0) { ([j]); ([j][i]); ([i]); } } ("按照姓名排序成功!\n");}(16)根據(jù)姓名修改相關(guān)信息(t[]n){ ("")清屏 i; s[20];/*要修改的學(xué)生的姓名*/ ("請輸入你要修改信息的學(xué)生的姓名:\n"); ("");/*輸入修改信息的學(xué)生的姓名*/ (0<) { (([i])0) { ("該學(xué)生以前的信息如下:\n"); (t[i]); ("請按以下順序輸入該學(xué)生的新信息:\n");/*提示輸入記錄*/ ("姓名電話號碼號電子郵箱 住址\n"); ("\n"); (""[i][i][i][i][i]);/*輸入記錄*/ ("\n"); ("修改成功!\n"); ; } } () ("沒有找到你要修改的學(xué)生,修改失敗!\n");}第四章設(shè)計(jì)結(jié)果及分析3.1調(diào)試過程提示用戶本程序可以完成的功能,然后按任意鍵,可以進(jìn)入下面的主菜單:我們選擇1,然后按照提示輸入4個好友的信息如下:即完成信息的輸入。然后回主菜單。選擇3,看一下所有學(xué)生信息列表情況如下:再進(jìn)主菜單,選擇4,輸入“白鵬”,查找他的信息:查找正常。進(jìn)主菜單,選擇5,把程家山的信息更改:顯示修改成功,進(jìn)主菜單,選擇列表所有好友信息,可以看到:顯示修改成功。再進(jìn)主菜單,選擇6,刪除王劍橋的信息,先選擇2取消刪除:顯示列表還是有四個人得信息。再來一次,然后選擇1確認(rèn)刪除:再回主菜單,顯示所有好友列表,會得到這樣的結(jié)果,說明已經(jīng)刪除成功:到主菜單中選擇8插入好友信息,然后按如下輸入,然后插入到白鵬的前面:再顯示所有好友信息如下:插入成功!會主菜單,選擇7,將所有好友排序,提示成功:再顯示所有好友信息列表會得到:說明已經(jīng)將學(xué)生信息按照姓名排好序了。最后退出之前,將輸入的信息保存成文檔(進(jìn)主菜單選9):先選擇1,保存到工程,提示成功,然后選擇0退出程序。再執(zhí)行此程序,進(jìn)主菜單選擇2,載入文檔;選擇1,提示成功:進(jìn)主菜單列表所有好友信息,顯示如下:正常顯示。進(jìn)主菜單,選擇9,保存信息為文檔,這次我們選擇2,輸入路徑d:\\通信錄打開我的電腦D盤,文件夾,看到通訊錄文件通訊錄文件內(nèi)容如下:然后退出程序,再進(jìn)程序,選擇2載入信息,這次我們選擇從d:\\通信錄載入再顯示好友信息:顯示正常。至此,程序的所有功能都正常實(shí)現(xiàn)了!3.2調(diào)試中出現(xiàn)的一些問題和解決方案(1)當(dāng)沒有清屏函數(shù)時,每次都會看到屏幕滿滿的,閱讀起來很不方便,如下:解決的方案就是在函數(shù)和每個后面的函數(shù)里的第一個語句加入("");清屏函數(shù),這樣每次選擇操作后就會把菜單清除掉,而每次執(zhí)行完一個操作后進(jìn)入主菜單時又會把之前的操作所剩下的無關(guān)信息刪除,使屏幕很簡潔。(2)("");語句當(dāng)輸入的不是整型數(shù)據(jù),比如說是字母,當(dāng)?shù)诙窝h(huán)到這個語句是,由于i中的數(shù)據(jù)是一個隨機(jī)值,沒有被初始化,所以會被跳過,使主菜單陷入死循環(huán)解決方案,在每次輸入i值之前給i一個初始值,然后清空緩沖區(qū),在運(yùn)行到("");語句時就不會被跳過,從而當(dāng)輸入的不是數(shù)字時不會陷入無限循環(huán)(3)結(jié)構(gòu)體復(fù)制函數(shù)當(dāng)這樣定義時就不能完成復(fù)制:(b){ ; ; ; ; ;}因?yàn)檎{(diào)用函數(shù)時,只把實(shí)參的值賦值給形參,而實(shí)參里面的數(shù)值沒有改變。所以要用到指針,定義如下:(**y){ ((*x),(*y)); ((*x),(*y)); ((*x),(*y)); ((*x),(*y)); ((*x),(*y));}總結(jié) 通過兩周的課程設(shè)計(jì),使我對上學(xué)期學(xué)習(xí)的C語言有了更深的了解,也能更熟練的掌握對C語言的運(yùn)用。以前對C語言的學(xué)習(xí)大多是基于書本上的,做的實(shí)驗(yàn)相對較少,不能很熟練的在計(jì)算機(jī)中去操作和調(diào)試,以致當(dāng)書寫程序時時常會遇到很多錯誤,不能完成整個程序的正確設(shè)計(jì)。剛剛開始的時候,感覺很迷茫,這么大一個課題不知從何做起,但是后來,通過課題的設(shè)計(jì)要求,畫出了程序主要的流程圖,這樣整個程序的設(shè)計(jì)思路也就清晰了,然后寫出了要定義的功能函數(shù),并設(shè)計(jì)了一個主函數(shù)。隨后的工作就是一個一個地完成功能函數(shù)的定義。做完這個課題后,知道了要設(shè)計(jì)一個程序,首先要清楚要完成什么樣的功能,然后根據(jù)設(shè)計(jì)的要求去依次書寫函數(shù),并且在主函數(shù)里面能夠很適當(dāng)?shù)恼{(diào)用這些功能函數(shù),使得用戶完成各項(xiàng)功能。在程序調(diào)試的時候,不是把所有的函數(shù)都寫好然后一起調(diào)試,而是寫完一個或幾個函數(shù)調(diào)試一下,這樣就不會一下出現(xiàn)很多很多錯誤以至于不知從何該起。課程設(shè)計(jì)中也會遇到一些小細(xì)節(jié)問題,比如說清屏、用戶輸入有誤時陷入死循環(huán)等,通過查閱相關(guān)資料知道了問題的解決問題方案,也了解到了書本上以外的更多知識,了解了更多C語言的庫函數(shù)。同時,也讓我了解到程序設(shè)計(jì)中不僅要考慮到用戶輸入正確時會如何執(zhí)行下一步,而且要考慮在用戶輸入有誤時不至于讓程序出現(xiàn)錯誤,而是提示用戶輸入的信息不對。又如,當(dāng)刪除一個學(xué)生的信息時,要輸出他要刪除的學(xué)生的信息,會出現(xiàn)警告,提示用戶確認(rèn)是否刪除,來確保不會誤刪。兩周的上機(jī)實(shí)驗(yàn)讓我了解到C語言實(shí)踐的重要性,實(shí)驗(yàn)讓我了解C語言的更多庫函數(shù)和一些典型錯誤,也加深了對C語言的認(rèn)識,為以后的程序語言的學(xué)習(xí)打下好的基礎(chǔ)。致謝 感謝鄒君老師對我在調(diào)試程序中的指導(dǎo),感謝張軍同學(xué)的熱情幫助,感謝百度知道熱心網(wǎng)友。附錄主要程序代碼:/*************學(xué)生通訊錄管理系統(tǒng)程序**************//************作者:王志超。日期:2011.12.31*******//******頭文件()***********/<>/*函數(shù)*/""/*標(biāo)準(zhǔn)庫函數(shù)*/<>/*控制臺輸入輸出函數(shù)*/""/*字符串函數(shù)*/""/*字符操作函數(shù)*/M50/*定義常數(shù)表示記錄數(shù)*//*定義數(shù)據(jù)結(jié)構(gòu)*/{[20];/*姓名*/[15];/*電話*/[15]*號*/[30]*電子郵件*/[30];/*地址*/};/*所有定義的函數(shù)*/()*顯示菜單*/(t[])*輸入記錄,形參為結(jié)構(gòu)體數(shù)組,函數(shù)值返回類型為整型表示記錄長度*/(t[]n);/*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/(t[]n);/*記錄保存為文件*/(t[])*讀入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組*/(t[]n)*將文件保存到指定位置*/(t[])*從指定位置讀入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組*/(t[]n)*菜單中的保存函數(shù)*/(t[])*菜單中的載入函數(shù)*/(t[]n);/*按姓名查找記錄*/()*顯示指定的一條記錄*/(t[]n)*插入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/(**y)*結(jié)構(gòu)體的復(fù)制函數(shù)*/(t[]n);/*刪除函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)*/(t[]n)*排序函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/(t[]n)*根據(jù)姓名修改相關(guān)信息*/(){ ("學(xué)生通信錄管理系統(tǒng)\n"); ("本程序是可以幫你管理學(xué)生通訊錄,包括學(xué)生的姓名、電話號碼、號碼、電子郵箱、住址等信息,它將會給你帶來方便、高效的體驗(yàn)!\n\n"); a[M];/*定義結(jié)構(gòu)體數(shù)組*/ ;/*保存記錄長度*/ (;;)/*無限循環(huán)*/ { ("按任意鍵進(jìn)入主菜單。"); (); ();/*顯示菜單*/ 100;/*初始化*/ ()*清空輸入緩沖區(qū)*/ (""); (i>=0<=11) { (i) { 1(a);/*輸入記錄*/ 2(a)*載入學(xué)生信息表*/ 3();/*顯示全部記錄*/ 4();/*查找記錄*/ 5();/*修改學(xué)生信息*/ 6();;/*插入記錄*/ 7();/*排序*/ 8();/*刪除記錄*/ 9();/*保存文件*/ 0(0);/*退出*/ } } { ("不要亂按!!!\n"); } }}(){ ("")清屏 ("\n**************************************菜單**************************************\n\n"); a[50]="1.輸入好友信息"; b[50]="2.載入好友信息"; c[50]="3.顯示所有好友列表"; d[50]="4.按學(xué)生姓名查找好友信息"; e[50]="5.按好友姓名修改好友信息"; f[50]="6.按學(xué)生姓名刪除好友信息"; g[50]="7.按學(xué)生姓名將好友信息排序"; 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í)行的操作對應(yīng)的序號:\n");}/*輸入函數(shù)*/(t[]){ ("")清屏 ; ("\n請輸入學(xué)生人數(shù):\n");/*提示信息*/ ("");/*輸入記錄數(shù)*/ ("請依次輸入每位學(xué)生的如下信息:\n");/*提示輸入記錄*/ ("姓名 電話號碼 號 電子郵箱 住址\n"); ("\n"); (0<) { (""[i][i][i][i][i]);/*輸入記錄*/ ("\n"); } ("你已成功輸入所有學(xué)生信息!\n");/*提示輸入記錄*/ n;/*返回記錄條數(shù)*/}/*列表函數(shù)*/(t[]n){ ("")清屏 i; ("\n\n**********************************************************************\n"); ("姓名 電話號碼 號 電子郵箱 住址\n"); (0<) { ("\n"); ("1015122515s\n"[i][i][i][i][i]); } ((1)%100)/*判斷輸出是否達(dá)到10條記錄*/ { ("按任意鍵繼續(xù)...\n");/*提示信息*/ ();/*壓任意鍵繼續(xù)*/ } ("***************************************************************************\n");}/*保存函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組和記錄數(shù)*/(t[]n){ i; *;/*指向文件的指針*/ ((("","")))/*打開文件,并判斷打開是否正常*/ { ("打開文件失敗。\n")*沒打開*/ (1);/*退出*/ } ("\n正在保存文件...\n");/*輸出提示信息*/ (,"");/*將記錄數(shù)寫入文件*/ (,"\r\n");/*將換行符號寫入文件*/ (0<) { (,"1015122515s\n"[i][i][i][i][i])*格式寫入記錄*/ (,"\r\n");/*將換行符號寫入文件*/ } ()*關(guān)閉文件*/ ("***************保存成功!**************\n");/*顯示保存成功*/}(t[]){ ; *;/*指向文件的指針*/ ((("","")))/*打開文件*/ { ("文件打開失敗\n");/*不能打開*/ (1);/*退出*/ } (,"");/*讀入記錄數(shù)*/ (0<) (,"%1015122515s"[i][i][i][i][i]);/*按格式讀入記錄*/ ();/*關(guān)閉文件*/ ("你已經(jīng)成功從文件中讀取數(shù)據(jù)!!!\n");/*顯示讀取成功*/ n;/*返回記錄數(shù)*/}/*將文件保存到指定位置*/(t[]n){ *; i; ("請輸入你要保持位置的指定路徑和文件名:(例如:d:\\我的文檔\\學(xué)生通訊錄\\通訊錄)"); a[30]; (""); (((a,""))) { ("操作失敗!"); (1); } ("\n正在保存文件...\n");/*輸出提示信息*/ (,"");/*將記錄數(shù)寫入文件*/ (,"\r\n");/*將換行符號寫入文件*/ (0<) { (,"1015122515s\n"[i][i][i][i][i])*格式寫入記錄*/ (,"\r\n");/*將換行符號寫入文件*/ } ()*關(guān)閉文件*/ ("***************保存成功!**************\n");/*顯示保存成功*/}/*從指定位置讀入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組*/(t[]){ ; *;/*指向文件的指針*/ ("請輸入你要讀取文件的指定路徑和文件名:(例如:d:\\我的文檔\\學(xué)生通訊錄\\通訊錄)"); a[30]; (""); (((a,""))) { ("操作失敗!"); (1); } (,"");/*讀入記錄數(shù)*/ (0<) (,"%1015122515s"[i][i][i][i][i]);/*按格式讀入記錄*/ ();/*關(guān)閉文件*/ ("你已經(jīng)成功從該文件中讀取數(shù)據(jù)!!!\n");/*顯示讀取成功*/ n;/*返回記錄數(shù)*/}(t[]n){ ("")清屏 0; ("請按你將要進(jìn)行的操作選擇序號:\n\n\t1.將文件保存到本工程\t\t2.將文件保存到指定路徑\n"); (""); (i) { 1(t,n); 2(t,n); ("你的輸入有誤!\n"); }}(t[]){ ("")清屏 0; ("請按你將要進(jìn)行的操作選擇序號:\n\n\t1.從本工程載入文檔\t\t2.從指定路徑載入文檔\n"); (""); (i) { 1(t); 2(t); ("你的輸入有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論