




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言程序設(shè)計課程設(shè)計報告一宿舍管理系統(tǒng)IMB standardization office IMB 5AB-IMBK 08- IMB 2C西安郵電學(xué)院C語言課程設(shè)計報告題目:宿舍管理系統(tǒng)院系名稱:計算機學(xué)院專業(yè)名稱:網(wǎng)絡(luò)工程班級:1004 學(xué)生姓名:李斯良學(xué)號(8 位):04102189 (17)指導(dǎo)教師:劉霞林設(shè)計起止時間:2011年6月13日2011年6月22日一、課程設(shè)計目的1 .通過本次課程設(shè)計,強化上級動手能力,在理論和實踐的基礎(chǔ)上進一步鞏固C 語言程序設(shè)計課程的學(xué)習(xí)內(nèi)容,掌握工程軟件設(shè)計的基本方法。2 .熟悉C語言的基本內(nèi)容從而掌握C語言的基本知識以及了解C程序的基本編寫及 運行
2、;3 .了解程序的分模塊編寫并對程序的每個模塊進行詳細的設(shè)計并且能理解一般C語 言編寫的程序。4.1. 悉C程序設(shè)計的開發(fā)環(huán)境及C程序的調(diào)試過程。二、課程設(shè)計內(nèi)容用所學(xué)過的C語言知識(文件,結(jié)構(gòu)體,函數(shù),數(shù)組等)編寫一個學(xué)身份學(xué)籍管 理系統(tǒng)。使其有以下功能。1 .通過鍵盤輸入某些學(xué)生的學(xué)生學(xué)籍管理信息。(包含學(xué)生學(xué)號、姓名、性 別、年齡、出生年月、住址、班級、專業(yè)、院系等信息)。2 .輸入給定學(xué)號,顯示出某位學(xué)生的學(xué)生學(xué)籍管理信息。3 .顯示出全部學(xué)生的學(xué)生學(xué)籍管理信息。4 .可將某學(xué)生信息添加到文件內(nèi)。5 .給定某位學(xué)生的學(xué)號,修改該學(xué)生信息。6 .給定某位學(xué)生的學(xué)號,刪除該學(xué)生信息。7 .
3、給定某個班級號,統(tǒng)計該班級的總?cè)藬?shù)。8 .按照學(xué)生的學(xué)號升序?qū)W(xué)生信息進行排序。9 .用文件的方式將錄入的數(shù)據(jù)進行存儲,并從其中讀取數(shù)據(jù)。三、概要設(shè)計1 .功能模塊圖:2 .各模塊詳細的功能描述:A.輸入模塊:調(diào)用input。函數(shù)將學(xué)生宿舍信息依次輸入到結(jié)構(gòu)體數(shù)組中,結(jié)束后將保 存在制定文件中,在其他模塊的函數(shù)中可以隨時進行調(diào)用,結(jié)束后可以將修改后的 學(xué)生宿舍信息再一次保存。B.添加模塊:如果要添加新入住學(xué)生信息可以調(diào)用append函數(shù)將新生信息插入到原 有信息的末尾,在保存到文件中。C.修改模塊:修改可以通過輸入要修改的學(xué)生的學(xué)號,對學(xué)生的個人信息利用switch 選擇要修改的內(nèi)容.修改完畢
4、后,保存到所設(shè)定的文件中去。D.刪除模塊:刪除可以通過輸入要刪除的學(xué)生學(xué)號,對學(xué)生的所有個人信息進行刪除. 刪除完畢之后保存到文件中去。E.查詢模塊:選擇輸入要查詢學(xué)生的學(xué)號,并將查詢的信息顯示在屏幕上。F.統(tǒng)計模塊:輸入要統(tǒng)計人數(shù)的班級號,然后輸出此班的總?cè)藬?shù)。G.排序模塊:按學(xué)生學(xué)號用冒泡法升序排出學(xué)生的信息。H.打印模塊:輸出當(dāng)前文件中所有的學(xué)生住宿信息。四、詳細設(shè)計:L流程圖:添加學(xué)生信息修改某學(xué)生信息2.重點設(shè)計:intread_rile(STUDENTSstudents)FILE*fp ;inti=O;if(fp=fopen(,t,tlrt,l)=NULL)prhitf(in*庫存
5、文件不存在|請創(chuàng)建”)/創(chuàng)建文件*/returnO;亞11加(63(1(&討11加11抬1用20口!11。5),1*)=1)/*成功創(chuàng)建*/I+;)fclose(fp);return!;voidsave_file(STUDENTSstudents 口,intsum)/* 保存信息*/FILE*fp;inti;if(fp=fopen(tt,t/twbtt)=NULL)pHntf(“讀文件錯誤!n”);return;(五.測試數(shù)據(jù)及運行結(jié)果:三組正常數(shù)據(jù):2.異常測試數(shù)據(jù)及運行結(jié)果:1.2.六、調(diào)試情況,設(shè)計技巧及體會:1 .設(shè)計過程中的體會:在剛開始還沒有大體思路,覺得設(shè)計不簡單。但當(dāng)總體構(gòu)思
6、完成后,對各個功能的實現(xiàn)可以用小程序即模塊形式進行實現(xiàn),比如輸入數(shù)據(jù),輸出數(shù) 據(jù),修改數(shù)據(jù),刪除數(shù)據(jù)等.在一個個小程序中調(diào)試,最后各個模塊的功能完成比較好 后,在將所有的模塊都放進main。主函數(shù)中進行調(diào)試,這樣可以避免由整體構(gòu)思調(diào)試引 起的調(diào)試障礙.但還是沒有得到完美的效果,有的模塊還是有問題。而且程序上看沒 什么問題?。坷蠋熞矌土瞬簧俚拿Π?。在此寫過老師的幫助。2 .在調(diào)試過程中,F(xiàn)5,F1O,F11,有了更深的認(rèn)識,并且可以更靈活的運用。在編寫程序的過程中,有些邏輯不是很清楚,但大部分程序模塊還是寫出來了。那些不清楚的就是文件方面的知識,以后要好好研究下文件了??傮w來說,這次課程設(shè)計對C
7、語言方面的知識又重新復(fù)習(xí)了一遍,感覺還行。3 .還有就是原先有想過用密碼,構(gòu)思是想實現(xiàn)一個帳號密碼配對使用的方法,但是由 于文件的使用不熟練,最后還是以失敗告終。同時程序只能在當(dāng)前登錄過程中輸入進入系統(tǒng),有較大的局限性。七、參考文獻C語言程序設(shè)計譚浩強清華大學(xué)出版社1999年12月 C語言程序設(shè)計(第二版)王曙燕/主編八.附錄:3.完全代碼:/include” /include”#include”7* 頭文件*/#defineMAX100 typedefstruct intyear; intmonth; intday;DATE;typedefstructintnum;/* 學(xué)號求/charna
8、me20 ;/*姓名*um);if(studentsi. num=0)break;printfCn 學(xué)生姓名scanf(/s,studentsi. name);printfCn 學(xué)生性別:);scanf (,z%szz, students i. sex);printf(z,n 學(xué)生年齡:);scanf(/d”, ftstudentsi. age);printfCAn學(xué)生出生年月日”scanfftstudents i. , ftstudents i.,&studentsi.;printf (n 學(xué)生宿舍:“);scanf (z,%szz, students i. sushe);printf fn
9、 學(xué)生班級:);scanf (,z%szz, students i. classes);scanf (z,%sz/, students i. zhuanye);printf(“n 學(xué)生床號:);scanf(/s,studentsi. chuanghao);i+;while(it);save_file(students, t) ;/*保存輸入的學(xué)生信息*/printf Cn%d個學(xué)生信息輸入完畢! n, t);getchO ;returnt;/*返回輸入學(xué)生的個數(shù)值*/)/*輸出模塊*/voidoutput(STUDENTSstudents, intsum)(inti;system(zzclsz
10、,);printf Cnumnamesexageyear-month-daysusheclasseszhuanyechuanghaoXn);printf CXn);for (i=0;i+)/*輸出學(xué)生的信息*/printf (z/%5d%5s%5s%5d%5d%5d%5d%5s%5s%5s%5snzz,studentsi. num, studentsi. name, studentsi. sex, studentsi. age, stu dents i., studentsi. ,studentsi. ,studentsi. sushe,studentsi. classes, students
11、i. zhuanye, studentsi. chuanghao); printf Cn);getchO ;save_f ile(students,sum);)/*添加信息模塊*/intappend(STUDENTSstudents, intsum) (inti=sum, flag=0; /*從已經(jīng)輸入的學(xué)生尾部添加*/charchoice ;sum=read_f ile(students);system(cls);printf Cnn添加學(xué)生信息n);doif (iMAX)/*已經(jīng)輸入的學(xué)生個數(shù)和要添加的學(xué)生個數(shù)之和要小于定義的學(xué)生個數(shù)最大值*/(printf(n新學(xué)生學(xué)號:);scanf(
12、d”, &studentsi. num);printfCn 學(xué)生姓名:”);scanf (,%s, students i. name);printf (n學(xué)生性別:);/*輸入添加學(xué)生的基本信息*/scanf(s,studentsi. sex);printf (z,n 學(xué)生年齡:);scanf(d”, &studentsi. age);printf Cn學(xué)生出生年月日:);scanf(d%d%d”, &studentsi., &studentsi. , &studentsi.;printf (n學(xué)生宿舍號:);scanf (,%s, students i. sushe);printf fn 學(xué)
13、生班級:);scanf(s,studentsi. classes);printf (Xn 學(xué)生專業(yè):);scanf(s,studentsi. zhuanye);printf Cn 床號:);scanf (,%s,, students i. chuanghao);i+;)printf (n繼續(xù)添加嗎(Y/N);choice=getch();if (choice二=Y choice二二y)flag=l;printf(z,n繼續(xù)! n);/*是否要繼續(xù)添加*/)elseflag=O;while(flagl);printf(n按任意鍵返回主菜單! );getch();save_file(student
14、s, i) ;/*保存添加的學(xué)生信息到原文件*/returni ;/*返回文件中學(xué)生個數(shù)值*/*修改信息模塊*/voidmodify(STUDENTSstudents, intsum) um=modify_num)printf Cn 學(xué)生信息n);printf (,/numnamesexageyear-month-dayaddresssushezhuanyechuanghaon/); printf(n);printf (,%5d%5s%5s%5d%5d%5d%5d%5s%5s%5s%5sn, students i. num, students i. n ame, studentsi. sex,
15、 studentsi. age, studentsi., studentsi. , studentsi. ,studentsi. sushe, studentsi. classes, studentsi. zhuanye, studentsi. chu anghao);printf (n要修改哪一項n);printf Cnl.學(xué)生學(xué)號n);printf (“n2.學(xué)生姓名n);printf (n3.學(xué)生性別n);printf Cn4.學(xué)生年齡n);printf (n5.學(xué)生出生年月曰n);printf (n6.學(xué)生宿舍號、n);printf (W.學(xué)生班級n); printf (n8.學(xué)生專業(yè)
16、n);printf(/zn9.學(xué)生床號n);printf(n請選擇(l-9):”);scanf (飛d, ftchoice);switch(choice) (easel :printf (n輸入修改后的學(xué)號:”);scanf(/d,ftstudentsi. num);break;case2 :printf (n輸入修改后的姓名:”);scanf(/s,studentsi. name);break;case3 :printf (n輸入修改后的性別:);scanf (s,studentsi. sex) ;break;/*選擇要修改學(xué)生的項目*/case4 :printf (z,n輸入修改后的年齡:
17、“);scanf(/d,ftstudentsi. age);break;case5 printf (n輸入修改后的出生年月:“);scanfftstudents i. , ftstudents i.,&studentsi. ;break;case6 printf (,zn輸入修改后的宿舍號:);scanf (z,%sz/, studentsi. sushe) ;break;case? :printf (n輸入修改后的班級:”);scanf(/s,studentsi. classes);break;case8 :printf (n輸入修改后的專業(yè):”);scanf (z,%szz, studen
18、tsi. zhuanye) ;break;case9 :printf (n輸入修改后的床號:”);scanf (,z%szz, studentsi. chuanghao) ;break;printf Cn學(xué)生信息表n);printf (/znumnamesexageyear-month-daysusheclasseszhuanyechuanghaonz,); printf(n);printf (/z%5d%5s%5s%5d%5d%5d%5d%5s%5s%5s%5sn/z,studentsi. num, studentsi. name, studentsi. sex, studentsi. ag
19、e, stu dents i.,studentsi. , studentsi.,studentsi.sushe, studentsi. classes, studentsi. zhuanye, studentsi. chuanghao);break;/*輸出修改后的學(xué)生信息*/if (i-sum)printf (n該學(xué)生不存在!”);getchO ; )printf Cnn繼續(xù)修改嗎(Y/N);choice=getch();if (choice=,Y choice-J y)flag=l;printf (n 繼續(xù)! n);/*是否要繼續(xù)修改*/elseflag=O;while(flag-1);p
20、rintf (n按任意鍵返回主菜單! );getchO ;save_file(students, sum) ;/*保存修改后的信息*/*刪除信息模塊*/intdel(STUDENTSstudents, intsum) (inti, del_num;printf (請輸入要刪除的學(xué)生學(xué)號);scanf (%d, &del_num) ;/*輸入要刪除的學(xué)生學(xué)號*/for(i=0;isum;i+)if (del_num-students i. num)for(;isum-l;i+)studentsi. num=studentsi+1. num;printf (刪除成功);getchO ;save_f
21、ile(students, sum-1) ;/*保存刪除后的學(xué)生信息到原文件*/return(sum-1);)/*查詢信息模塊*/voidinquire(STUDENTSstudents, intsum) FILE*fp;inti,choice, flag, inquire_num;sum=read_file(students) ;/*讀文件*/printf (z,%dnz/, sum);dosystemCzclsz,);printf (z,n輸入要查詢的學(xué)生學(xué)號:);scanf (%d, &inquire_num) ;/*輸入要查詢的學(xué)生學(xué)號*/for(i=0;isum;i+)if(stud
22、entsi. num=inquire_num)printf (n此學(xué)生信息為:n);printf Cnumnamesexageyear-month-daysusheclasseszhuanyechuanghaoXn);printf(飛5d/5s%5s%5d%d/d/d%5s%5s%5s%5sn”,studentsi. num, studentsi. name, studentsi. sex, studentsi. age, stu dents i., studentsi. ,studentsi. ,studentsi. sushe,studentsi. classes, studentsi.
23、zhuanye, studentsi. chuanghao);break; /*輸出要查詢的學(xué)生信息*/if(i=sum)printf Cn無此學(xué)生信息n);getchO ;)printf Cnn是否繼續(xù)(Y/);choice=getch();if (choice二二Ychoice二二y)flag=l;printf(z,n繼續(xù)! n);/*是否要繼續(xù)*/ elseflag=O;while(flag-1);printf(n按任意鍵返回主菜單! );getchO ;/*統(tǒng)計信息模塊*/voidcount(STUDENTSstudents, intsum)(inti,count=0;chars10;
24、printf (請輸入要統(tǒng)計的班級的學(xué)生的班級號! );scanf (%s, s) ;/*按輸入的班級號統(tǒng)計此班的總學(xué)生人數(shù)*/for(i=0;isum;i+)if(strcmp(s, studentsi. classes)=0) count+;printf C%s 班的總?cè)藬?shù)為%d 人“,s, count);getchO ;save_file(students, sum);/*排行信息模塊*/voidsort(STUDENTSstudents, intsum)(inti, j, t;system(zzclsz/);printf Cn學(xué)生信息排行n);printf(z,n 按學(xué)號排行n);fo
25、r(i=0;isum-l; i+)/*按學(xué)號用冒泡法升序排列學(xué)生信息*/for(j=i+l;jstudentsj. num) t=studentsi. num;studentsi. num=studentsj. num;studentsj. num=t;printf(,znz,);printf (/znumnamesexageyear-month-daysusheclasseszhuanyechuanghaonz/);for(i=0;isum;i+)printf (z,%5d%5s%5s%5d%d%d%d%5s%5s%5s%5sn/z,studentsi. num, studentsi. na
26、me, studentsi. sex, studentsi. age, stu dentsi. , studentsi. , studentsi. , studentsi. sushe,studentsi. classes, studentsi. zhuanye, studentsi. chuanghao) ;/*輸出排序后的學(xué)生信息*/getchO ;save_file(students, sum) ;/*保存排序后的學(xué)生信息到文件中*/)voidmima ()(charmima;chara9;inti;printf ( 請輸入密碼:);for(i=0;i8;i+)(mima=getch();printf (*);ai=mima;a8=0;printf Cn);(sy
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度互聯(lián)網(wǎng)數(shù)據(jù)中心委托經(jīng)營管理協(xié)議
- 二零二五年度醫(yī)院員工招聘與管理服務(wù)合同
- 二零二五年度人工智能聯(lián)營投資合同模板
- 二零二五年度果園承包與農(nóng)業(yè)金融服務(wù)合作協(xié)議
- 2025年度沿街房屋租賃合同(含房屋維護及保養(yǎng)責(zé)任)
- 二零二五年度金融行業(yè)競業(yè)禁止協(xié)議補償金計算細則
- 二零二五年度精裝修房屋租賃協(xié)議書
- 二零二五年度主合同與從合同在新能源汽車產(chǎn)業(yè)鏈中的協(xié)同發(fā)展及風(fēng)險共擔(dān)協(xié)議
- 二零二五年度文化產(chǎn)業(yè)股權(quán)投資合同協(xié)議
- 2025年度苗木種植與生態(tài)農(nóng)業(yè)開發(fā)協(xié)議
- 產(chǎn)品品質(zhì)檢驗流程標(biāo)準(zhǔn)規(guī)范模板()
- DB12-595-2015醫(yī)院安全防范系統(tǒng)技術(shù)規(guī)范
- 五年級下冊英語課件-Unit 2 My favourite season B Let's learn 人教PEP版(共15張PPT)
- GB∕T 7260.40-2020 不間斷電源系統(tǒng) UPS 第4部分:環(huán)境 要求及報告
- 高邊坡施工危險源辨識及分析
- 水廠項目基于BIM技術(shù)全生命周期解決方案-城市智慧水務(wù)講座課件
- 幼兒園繪本:《閃閃的紅星》 紅色故事
- 三年級學(xué)而思奧數(shù)講義.doc
- 劉姥姥進大觀園課本劇劇本3篇
- 產(chǎn)品承認(rèn)書客(精)
- 投標(biāo)人基本情況一覽表格
評論
0/150
提交評論