C語言課程設(shè)計(jì)報(bào)告要求與示例(數(shù)組實(shí)現(xiàn)模版)_第1頁
C語言課程設(shè)計(jì)報(bào)告要求與示例(數(shù)組實(shí)現(xiàn)模版)_第2頁
C語言課程設(shè)計(jì)報(bào)告要求與示例(數(shù)組實(shí)現(xiàn)模版)_第3頁
C語言課程設(shè)計(jì)報(bào)告要求與示例(數(shù)組實(shí)現(xiàn)模版)_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、蘇州科技學(xué)院天平學(xué)院二一一 二一二學(xué)年第二學(xué)期機(jī)電工程系課程設(shè)計(jì)報(bào)告書課程名稱: 程序設(shè)計(jì)基礎(chǔ)實(shí)踐 班 級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)教師: 二一二 年 月1.題目學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)2.功能(1)每一條記錄包括一個(gè)學(xué)生的姓名、手機(jī)。(2)輸入功能:可以一次完成無數(shù)條記錄的輸入。(3)顯示功能:完成全部學(xué)生記錄的顯示。(4)查找功能:完成按姓名查找學(xué)生記錄,并顯示查找到的學(xué)生記錄。(5)排序功能:按學(xué)生姓名進(jìn)行排序。(6)插入功能:插入一條學(xué)生記錄。(7)保存功能:將學(xué)生記錄保存在任何自定義的文件中,如保存在:D:TXJL.TXT中。(8)讀取功能:將保存在文件中的學(xué)生記錄讀取出來。(

2、9)有一個(gè)清晰美觀界面來調(diào)用各個(gè)功能3.要求(1)整個(gè)系統(tǒng)均用C語言實(shí)現(xiàn);(2)利用結(jié)構(gòu)體數(shù)組存放學(xué)生信息;(3)系統(tǒng)具有數(shù)據(jù)載入、輸入(追加)數(shù)據(jù)、插入數(shù)據(jù)、排序、刪除數(shù)據(jù)、查找,顯示數(shù)據(jù)、數(shù)據(jù)保存基本功能;(4)系統(tǒng)的各個(gè)功能模塊都用函數(shù)的形式來實(shí)現(xiàn);(5)可以將學(xué)生姓名手機(jī)信息保存在文件中。(6)可以將學(xué)生信息從文件中讀取出來。4.設(shè)計(jì)內(nèi)容整個(gè)系統(tǒng)除了主函數(shù)外,另外還有9個(gè)函數(shù),實(shí)現(xiàn)八大功能:輸入功能、顯示功能、查找功能、排序功能、插入功能、保存功能、讀取功能。各個(gè)函數(shù)的詳細(xì)設(shè)計(jì)說明分別如下:4.1主函數(shù) main() 調(diào)用菜單選擇函數(shù),顯示系統(tǒng)主界面,即“功能選擇”的界面. 利用無限次

3、循環(huán)for(;)和多分支選擇語句switch()實(shí)現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來調(diào)用相應(yīng)的函數(shù)模塊。4.2菜單選擇函數(shù) void fmenu()這是一個(gè)無參函數(shù),主要實(shí)現(xiàn)“功能選擇”的界面. 在這個(gè)界面里有顯示系統(tǒng)的九大功能,根據(jù)每個(gè)功能前面的序號(hào)進(jìn)行選擇。等執(zhí)行完每一個(gè)函數(shù)功能后,按任一鍵回到主界面!4.3追加記錄函數(shù) void zhuijia_txl(struct TXJL *p,struct TXJL *q)這是一個(gè)有參函數(shù),其作用是往結(jié)構(gòu)體數(shù)組中追加一個(gè)結(jié)構(gòu)體(學(xué)生紀(jì)錄),指針變量p指向結(jié)構(gòu)體數(shù)組的起始位置,q指向要插入的結(jié)構(gòu)體.算法:利用指針p指向數(shù)組a的首地址,然后找到最

4、后一條記錄(學(xué)生姓名為#),然后把q所指向的記錄插入,。4.4插入數(shù)據(jù)函數(shù) void insert_txl(struct TXJL *p,int index,struct TXJL *q)這是一個(gè)不返回值的有參函數(shù),有三個(gè)形參,指針p指向結(jié)構(gòu)體數(shù)組,指針q指向要插入的記錄,index為插入位置。該函數(shù)的主要功能為給結(jié)構(gòu)體數(shù)組指定定位置插入新結(jié)構(gòu)體(學(xué)生記錄)。算法:指針p指向數(shù)組首地址,找到要插入的位置p+index,然后將該位置及其后的數(shù)據(jù)全部往后移一位,最后將待插入記錄插入即可.N-S流程圖如下: 輸入要插入的學(xué)生的姓名手機(jī)號(hào)Len=數(shù)組中元素個(gè)數(shù)p1=a+len-1; p1>=p+

5、index*(p1+1)=*p1 p1-; *p1=*q4.5數(shù)據(jù)排序函數(shù) void sort_txl(struct TXJL *p)這是一個(gè)不返回值的有參函數(shù),形參p為指向“結(jié)構(gòu)體數(shù)組”的指針。該函數(shù)實(shí)現(xiàn)按學(xué)姓名學(xué)生信息進(jìn)行排序,并顯示排好的記錄。算法:再利用冒泡法對(duì)學(xué)生姓名信息進(jìn)行排序。 4.6刪除記錄函數(shù) void delete_txl(struct TXJL *p,int index)這是一個(gè)無返回值函數(shù)。形參p為指向“結(jié)構(gòu)體數(shù)組”的指針,index為欲刪除記錄的位置。該函數(shù)實(shí)現(xiàn)將結(jié)構(gòu)體數(shù)組中指定位置的記錄刪除。算法:從p指向數(shù)組的首地址,找到要?jiǎng)h除學(xué)生記錄的位置p+index,然后將

6、該項(xiàng)的后面一項(xiàng)覆蓋該項(xiàng),依次類推。直到遇到#號(hào)為止。47數(shù)據(jù)查找函數(shù) int find(struct TXJL p,char * pName)這是一個(gè)有參函數(shù),形參p為指向“結(jié)構(gòu)體數(shù)組”的指針,指針pName指向欲查找姓名。該函數(shù)的功能是在結(jié)構(gòu)體數(shù)組中查找指定姓名的記錄,找到返回該記錄所在的行號(hào),否則返回-1。算法:利用指針在數(shù)組中逐個(gè)查找,若找到與要查數(shù)據(jù)具有相同name的數(shù)據(jù)則返回其行號(hào),若找遍所有記錄仍沒有欲查找記錄則返回-1。4.8顯示數(shù)據(jù)函數(shù) void print_txl(struct TXJL p)這是無返回值函數(shù)。形參p指向結(jié)構(gòu)體數(shù)組。該函數(shù)的功能是遍歷數(shù)組,輸出數(shù)組中所有記錄(

7、學(xué)生信息)的值。4.9數(shù)據(jù)保存函數(shù)void write_txl(struct TXJL p,char * pFileName)這是一個(gè)不返回值的有參函數(shù),形參為p為指向“結(jié)構(gòu)體數(shù)組”的指針,指針pFileName指向保存文件的文件名。該函數(shù)的功能是將結(jié)構(gòu)體數(shù)組的內(nèi)容(學(xué)生信息)保存到指定的磁盤文件中。算法:以寫方式打開指定文件,然后將學(xué)生信息存入指定文件中,最后關(guān)閉文件。N-S流程圖如下:寫方式打開要保存記錄的文件D:TXJL.TXT文件不能打開否是記錄條數(shù)寫入文件 fprintf(f,"%dn",k);輸出一個(gè)出錯(cuò)信p->name不是#息,并返回主菜單 fprint

8、f(f,"%s",p->name); fprintf(f,"%sdn",p->telphone);fclose(fp); (關(guān)閉文件)5.調(diào)試分析(1)由于第一個(gè)程序?qū)?shù)據(jù)以寫的方式存入文件中,格式已定,導(dǎo)致第二個(gè)程序在讀的時(shí)候與第一個(gè)程序?qū)懭胛募械母袷讲环霈F(xiàn)亂碼。(2)調(diào)用函數(shù)的時(shí)候常常函數(shù)名搞錯(cuò),導(dǎo)致無法調(diào)用,浪費(fèi)了很多時(shí)間。(3)當(dāng)輸入完學(xué)生信息時(shí),最后沒有輸入#,導(dǎo)致無法跳出輸入界面。(4)在輸入函數(shù)中設(shè)了一個(gè)無限循環(huán),可以輸入無數(shù)個(gè)學(xué)生的成績信息,當(dāng)姓名為#的時(shí)候則停止輸入。(5)輸入太多個(gè)學(xué)生的信息時(shí),屏幕顯示不能控制為一頁

9、一頁顯示,所以為了方便起見,不要輸入太多記錄,十七左右為最佳。(6)在輸入選項(xiàng)時(shí)不能輸入字母,否則會(huì)死循環(huán),建議不要亂輸字母。6.總結(jié)經(jīng)過幾天的C語言課程設(shè)計(jì),感覺自己收獲不少!首先是:這次實(shí)踐用的最多的是函數(shù),函數(shù)很重要也很方便,經(jīng)過這次實(shí)踐要掌握了不少函數(shù)方面的知識(shí),還有指針也用的很多,但有的比較難不易懂,所以在這方面我很了很多的時(shí)間看課本和參考課外書,使C語言的知識(shí)強(qiáng)化了不少。其次,在做課程設(shè)計(jì)的過程中,發(fā)現(xiàn)了平時(shí)很多沒有注意到的問題,例如:返回值函數(shù)和不返回值函數(shù)兩者在主函數(shù)中的調(diào)用是不同的更重要的是,這次課程設(shè)計(jì)雖然花了我不少時(shí)間,但正是這些時(shí)間,讓我見識(shí)到了C語言的重要性。這個(gè)學(xué)生成績管理系統(tǒng)都是在自己知識(shí)范圍內(nèi)完成的,所以界面清

溫馨提示

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

評(píng)論

0/150

提交評(píng)論