




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、西安郵電大學c語言課程設計報告題 目: 學生宿舍管理系統(tǒng)院系名稱: 計算機學院 專業(yè)名稱: 軟件工程 班 級: 1205班 學生姓名: 邵歡學號(8位): 04123157指導教師: 王小銀一. 設計目的1. 掌握結(jié)構(gòu)體的定義和使用。2理解鏈表工作原理,熟悉基本操作。3熟悉c語言中文件操作。4掌握文件的定義方法及文件指針的概念,掌握文件打開、關(guān)閉、讀、寫文件基本操作函數(shù)。5掌握c語言數(shù)據(jù)類型,如何定義一個整型、字符型和實型的變量,以及它們賦值的方法。6.握函數(shù)的調(diào)用及嵌套,順序結(jié)構(gòu)、選擇分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)及其嵌套的應用、結(jié)構(gòu)體、指針以及綜合應用,會使用文件的一些函數(shù)。7.會獨自分析問題解決問題
2、,提高解決問題的能力。8提高分析問題和解決問題的能力,提高程序設計水平二. 設計內(nèi)容1運用結(jié)構(gòu)體及鏈表等編輯一個簡單的學生宿舍基本信息管理系統(tǒng),使之能夠完成學生基本信息的輸入、保存、讀取、查找、插入、刪除、修改、排序、統(tǒng)計、輸出、退出。2利用密碼對系統(tǒng)信息進行管理。2執(zhí)行編譯操作,并根據(jù)提示調(diào)試此程序,排除所有的錯誤和警告,直到編譯成功為止。3執(zhí)行運行操作,逐一對每個模塊進行調(diào)試,直到全部程序運行成功為止。4接受老師的檢查并回答老師所提出的問題,知道令老師點頭為止。5根據(jù)自己的源程序及運行情況截取相應的圖片,完成實驗報告。三概要設計1 功能模塊圖 學生宿舍信息管理系統(tǒng)輸入信息模塊保存信息模塊讀
3、取信息模塊查找信息模塊插入信息模塊修改信息模塊信息排序模塊統(tǒng)計信息模塊輸出信息模塊刪除信息模塊主函數(shù)退出2 各個模塊詳細的功能描述。登陸界面:需將在文件中設置好的密碼與輸入的密碼進行比較,正確即可進入主界面,可選擇要輸入的信息,否則退出1 輸入模塊struct node *creat_inf()進入輸入信息模塊,用do-while循環(huán)對學生信息進行輸入。2 保存信息模塊void save_inf(struct node *head)對信息進行保存,保存到文件中。3 讀取信息模塊struct node *read_inf()從指定文件中讀取出保存的信息。4 查找信息模塊struct node *
4、 find(struct node *p)在已保存的信息中按學號查找對應學號。5 插入信息模塊int insert (struct node *p0),將想要插入的信息添加到已有信息中,并保存。6 刪除信息模塊int del(struct node *head),按學號找出要刪除的學生信息,找到刪除。7 修改信息模塊void modify(struct node *p),按學好著出要修改的學生信息,在輸入要修改的內(nèi)容,并保存。8 信息排序模塊struct node* sort(struct node* head)按宿舍號對學生信息進行排序。9 統(tǒng)計信息模塊int statis(struct n
5、ode *head),將保存的學生信息進行統(tǒng)計,并輸出。10輸出信息模塊,void print(struct node *p)將之前做過修改、排序、插入的所有信息輸出。11退出。四詳細設計1功能函數(shù)的調(diào)用關(guān)系圖輸入choiceswitch(choice)choice=1choice=2choice=3choice=4choice=0添加公寓學生信息結(jié)束開始choice=5choice=6choice=7choice=8choice=9choice=保存公寓學生信息讀取公寓學生信息查找公寓學生信息插入公寓學生信息刪除公寓學生信息修改公寓學生信息排序公寓學生信息統(tǒng)計公寓學生信息輸出公寓學生信息退出
6、出2各功能函數(shù)的數(shù)據(jù)流程圖1密碼登陸界面。進入選擇界面開始輸入密碼sec與文件中對比結(jié)束否 是輸入信息.開始輸入第i+1個學生信息是輸入姓名輸入學號輸入年齡輸入公寓輸入宿舍號i+否輸入性別輸入樓層輸入choice(yn)2.輸入信息模塊:對學生公寓學生信息進行輸入結(jié)束choice=y? =y?返回i的值進入下一模塊塊2查找信息開始num= =0 ?是輸出查詢信息結(jié)束是否p-next!=nulll nunullp=p-next;信息錯誤沒找到!否否p-num=num開始3插入模塊lp0-next!=null& p0-next-numnum) 是p0-next!=null& p0-next-num
7、=p-num結(jié)束 是否否輸入要添加的信息p0=p0-next;p-next=p0-next;p0-next=p;添加失敗!否4.刪除模塊開始num= =0?刪除失?。≥斎胍獎h除學生學號p!=null是否p=null?否是p-num=num結(jié)束是否刪除查找要刪除的學號p0-next=p-next;p0=p;p=p-next;輸出刪除后學生信息5.修改模塊開始num= =0?該數(shù)據(jù)不存在輸入修改項目的內(nèi)容輸出修改后的信息結(jié)束是否輸入要修改學生的學號查找此學生并輸出其信息6.排序模塊開始: temp;是p1-next!=null?否temp=32767;否p1-roomroom;p3=p1p3=p1
8、;p1=del(head,p3-room);p2-next=p3;p2=p3;p2-next=null結(jié)束7.統(tǒng)計模塊開始p=head-next;p!=null;p=p-next結(jié)束輸出信息總?cè)藬?shù)sum= =0?是否p-num0sum+是否8.輸出模塊開始清屏否輸出宿舍學生信息結(jié)束是p-next=0?3重點設計及編碼程序的主要設計在各個模塊的功能方面,其中密碼部分及主界面各模塊的調(diào)用是比較著重設計的環(huán)節(jié)printf(nnnnnttt 歡迎登陸學生宿舍信息管理系統(tǒng)n);printf(nnnntttt請輸入密碼:);for(i=0;inum,p-name,p-sex,p-age,p-addr,p-
9、room); else printf(未找到該學生!n); getchar();printf(請按任意鍵返回主菜單。);getchar();break; case 7:/從指定的磁盤文件中讀取信息并存入單鏈表中 head=read_inf();print(head);printf(請按任意鍵返回主菜單。);getchar();break;case 8:/打印head=read_inf();print(head);printf(請按任意鍵返回主菜單。);getchar();break;case 9: /統(tǒng)計printf(已存%d個學生信息!n,statis(head);getchar();pri
10、ntf(請按任意鍵返回主菜單。);getchar();break;case 10:sort(head);save_inf(head); getchar();printf(請按任意鍵返回主菜單。);getchar(); break;default: printf(nnnnnnnntttt 感謝您的使用。);printf(nnnttt 確定退出?(y/n):);/fflush(stdin);getchar();ch=getchar(); printf(nntt); if(ch=y|ch=y) exit(0); break; /system(pause); while(1); /end do els
11、e printf(nnnnnttt 對不起,您的密碼輸入有誤!nn); printf(nntttt 請按任意鍵退出。); getchar(); 四測試數(shù)據(jù)及運行結(jié)果1正常測試數(shù)據(jù)和運行結(jié)果要求提供3組正常測試數(shù)據(jù)和運行結(jié)果將學號為3的學生宿舍號修改為135刪除學號為2的學生查找學號為1的學生信息按年齡大小排序(從大到小)人數(shù)統(tǒng)計從指定文件中讀取數(shù)據(jù)2異常測試數(shù)據(jù)及運行結(jié)果要求提供2組異常測試數(shù)據(jù)和運行結(jié)果刪除學號為2的學生信息六調(diào)試情況,設計技巧及體會1用switch()語句時發(fā)現(xiàn)當用整型作為判斷依據(jù)時,用戶如果輸入的為字符就會出現(xiàn)卡屏的現(xiàn)象,而用字符型時有可能出現(xiàn)死循環(huán)。2語法錯誤容易發(fā)現(xiàn),
12、邏輯錯誤不易發(fā)現(xiàn)而且比較隱蔽,而且很難修改。3程序設計應分模塊設計,在編寫過程中不要一大塊的區(qū)編譯,當你完成整個程序的一小部分時,就進行編譯查錯,程序首先要保證沒有語法錯誤,這樣以便以后調(diào)試,函數(shù)名及變量名盡量要做到見名知意,方便自己調(diào)試,也方便他人閱讀。4對于程序中的注釋是我們一直不夠重視的,很多人編程時不寫注釋,或者注釋很少,這樣也不利于自己修改程序,更不利于他人閱讀程序。1改進方案利用switch-case.制作主界面,供選擇,利用兩個鏈表來實現(xiàn)對信息的排序,使得在編寫過程中的難度降低,再利用do-while循環(huán),使得程序的可讀性也變好。2體會在設計過程中的體會: 在開始的設計中我確實感到自己知識運用十分不靈活,有些概念理解不到位,有些子函數(shù)不會編,只是照著課本套,我也感覺到把這門課學好是十分有用的,還有這門課的邏輯思維是非常嚴密的,學好它能夠很好的訓練人的邏輯思維的。c語言軟件設計既然作為一門利用c語言理論課程的另一門學科必定有它的重要性,c程序設計需要我們總結(jié)理論課所學知識,并熟練應用。它是學生的一種強化訓練和智力的開發(fā)。我想其目的并不是要求我們能編寫出高水平的程序,而是要求我們能獨立進行實踐,完成自己的工作,并培養(yǎng)我
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年南安市公辦學校專項招聘編制內(nèi)教師真題
- 金華市衛(wèi)生健康委員會所屬金華市中醫(yī)醫(yī)院招聘筆試真題2024
- 新能源汽車技術(shù)標準化的必要性探討試題及答案
- 2024年滄州市三支一扶考試真題
- 2024年聊城市茌平區(qū)星野乾呈資產(chǎn)運營有限公司招聘真題
- 2025年輕小型起重設備項目建議書
- 教師教育教學反思與經(jīng)驗總結(jié)的試題
- 幼兒園數(shù)字與計算的應用題目及答案
- 家具行業(yè)設計的市場需求變化試題及答案
- 粵語挑戰(zhàn)考試題及答案
- 軍工科研招投標行為規(guī)范須知
- 幼兒園食堂主要負責人食品安全崗位職責
- 《散貨船結(jié)構(gòu)簡介》課件
- 高壓設施維修合同范例
- AI新時代算力需求高增長-算力網(wǎng)絡建設有望奔向太空
- 2024屆考研199管理類綜合能力真題及解析完整版
- 腸梗阻合并糖尿病護理查房
- DB32T-無錫水蜜桃標準
- 古詩詞誦讀《登岳陽樓》公開課一等獎創(chuàng)新教學設計統(tǒng)編版高中語文必修下冊
- 2024版工廠并購協(xié)議書范本
- 中職班主任培訓講座
評論
0/150
提交評論