#班級信息系統(tǒng)_第1頁
#班級信息系統(tǒng)_第2頁
#班級信息系統(tǒng)_第3頁
#班級信息系統(tǒng)_第4頁
#班級信息系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河南科技學(xué)院新科學(xué)院信工系 c 程序設(shè)計報告 題目:班級檔案管理 學(xué)生姓名:盧艷雯 苗雪琴 張先敏 學(xué)號: 2018010310 2018010314 2018010321 班級:計科 111 計科 112 計科 112 指導(dǎo)老師:陳付貴 日期: 2018.5.31班級檔案管理系統(tǒng)報告書1目的全面熟悉、掌握 C 語言基本知識,掌握 C 程序設(shè)計中的順序、分 支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)、指針和文件的操作,把編程和實際結(jié) 合起來,增強對不同的問題運用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描 述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方 法,進一步提高上機動手能力,培養(yǎng)使用計算機解決實際

2、問題的能力, 規(guī)范編程思想,為以后在專業(yè)課程中應(yīng)用計算機系統(tǒng)解決計算、分析、 實驗和設(shè)計等學(xué)習(xí)環(huán)節(jié)打下較扎實的基礎(chǔ)。2課程設(shè)計任務(wù)班級檔案管理系統(tǒng): 對一個有 N 個學(xué)生的班級,通過該系統(tǒng)實現(xiàn)對 該班級學(xué)生的基本信息進行錄入、顯示、修改、刪除、保存等操作的管 理。該系統(tǒng)采用一個包含 N 個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)均包 括:學(xué)號、姓名、性別、年齡、備注。該系統(tǒng)顯示這樣的菜單: a 學(xué)生基本信息錄入b 學(xué)生基本信息顯示c 學(xué)生基本信息保存d 學(xué)生基本信息刪除e 學(xué)生基本信息修改 先輸入密碼)f 學(xué)生基本信息查詢- 1 - / 13(1按學(xué)號查詢(2按姓名查詢(3按性別查詢(4按年齡查詢G

3、退出系統(tǒng);(1執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單; (2將學(xué)生基本信息保存到文件中;(3進入系統(tǒng)之前先輸入密碼。3課程設(shè)計內(nèi)容圖 1 班4、調(diào)試分析 程序調(diào)試是指對程序的 為了便于查錯、閱讀,在學(xué)生信息的錄入學(xué)生信息的顯示Student_new(Show_one(學(xué)生信息的查詢Search(了結(jié)構(gòu)化按姓名查詢name_search(班級檔案管理系 統(tǒng) Page_title(級檔案系統(tǒng)模塊圖查錯和排錯。設(shè)計該程序的時候我采用學(xué)生信息的修改Student_deit(學(xué)生信息的刪除Student_del(按學(xué)號查詢Id_search(按年齡查詢Age_search(按性別查詢Sex_sear

4、ch(序方法編輯,添加了盡可能多的注釋,這為我后來的調(diào)試過程帶來了很 多方便。在檢查的過程中,發(fā)現(xiàn)很多都是因為在寫完一個語句時,忘了 加上分號 ;),在用到 scanf 時,忘了寫上取地址 &)符號。過分重 視分號的重要性而在 for 、if 、while 語句中畫蛇添足加分號;在使用 文件的時候忘記將文件先打開,對打開的方式與使用的情況不太注意而 造成不匹配;還有漏掉形參的定義使值不能傳遞等等。這些語法錯誤有 信息框的提示一般是能夠排除的等低級錯誤。經(jīng)過仔細檢查之后進行上機調(diào)試。進行編譯,如果在編譯和連接過 程中發(fā)現(xiàn)錯誤,屏幕上顯示了出錯信息,根據(jù)提示找到出錯的位置,加 以改正,再進行編譯如

5、此反復(fù),直到順利通過編譯和連接為止。在- 2 - / 13 本次實習(xí)過程中碰到的編譯、連接的錯誤主要有:4.1 、定義變量時變量不容易聯(lián)系起來,經(jīng)常會寫錯變量名,但是在錯誤信息的提示 下一般還是很容易找到。但是在寫各個函數(shù)時,發(fā)現(xiàn)一個變量名,只要 不是全局變量就可以無數(shù)次定義,只要分開在不同的函數(shù)中就可以了。 不過需要注意的是在定義的時候有些函數(shù)使用同樣的變量名而表示不同 的作用,因而使用要很小心,定義及定義的位置要特別留意。在編寫程 序時要靜心,才不會出現(xiàn)低級錯誤。4.2 、語法錯誤語法錯誤在通過書本參考下能夠修改,并且在上機的錯誤提示中得 到修改,但是在使用時要注意 c 語言與 c+的不同

6、,在主函數(shù)和一些定 義變量跟聲明函數(shù)時有些不同,這不是語法的錯誤,而是作為一個程序 員必須要注意到的,要體會兩種語言的區(qū)別。如:注意具體數(shù)據(jù)使用是 有一定的范圍限定。在本次調(diào)試過程中我還碰到了一些以前上機過程中從未碰到過的錯 誤,邏輯上的錯誤機器不易檢查出來,這時需要對數(shù)據(jù)結(jié)果進行分析。 這種錯誤的查找是最難的,需要編程序的人有相當(dāng)?shù)哪托暮图毿娜グ褑?題找出來。這也是本次程序編輯過程中碰到的最大的難題。因此我使用 的是一個一個函數(shù)的檢查,并通過調(diào)試修改。5程序代碼#include #include #include #include #define M 10int num=-1 。/* 全局變

7、量 */struct studen /* 學(xué)生數(shù),從 STU0 開始記錄學(xué)生信息 */long id。/* 學(xué)號 */char name20 。/*姓名 */char sex10。/* 性別 */int age。/* 年齡 */long int password。 /* 密碼 */char note80。/*備注 */- 3 - / 13STUM 。/* 函數(shù)聲明 */void page_title( 。/顯示主菜單void student_new( 。/輸入學(xué)生信息void student_del( 。/刪除學(xué)生信息void student_edit( 。/修改學(xué)生信息void search

8、( 。/查找學(xué)生信息void id_search( 。/按學(xué)號查詢void name_search(。/按姓名查找void sex_search(。/按性別查找void age_search(。/按年齡查詢void id_sort( 。/按學(xué)號排序void show(。/顯示學(xué)生記錄/void save( 。void left( 。void page_head1( 。/* 打印表頭 1*/void page_head2( 。/* 打印表頭 2*/int find(long 。/* 按學(xué)號查找學(xué)生 */void show_one(int。/* 顯示一條記錄 */void input_one(in

9、t 。/* 輸入一個新學(xué)生的信息 */void in_menu( 。/* 按任意鍵進入主菜單 */* 主函數(shù) */void main(while(1page_title(。/* 主菜單 */void page_title(char c。system(cls 。/*清屏 */printf(nn學(xué)生檔案管理系統(tǒng)- 4 - / 13printf(tttt1錄入學(xué)生信息nn 。printf(tttt2顯示學(xué)生信息nn 。printf(tttt3修改學(xué)生信息nn 。printf(tttt4刪除學(xué)生信息nn 。printf(tttt5查詢學(xué)生信息nn 。printf(tttt6保存 nn 。printf(

10、tttt0退出nn 。printf(*nprintf( 請用數(shù)字鍵 0-6選擇操作 :n 。 /*填充程序,完成主菜單顯示 */ c=getchar( 。system(cls 。switch(ccase1:student_new( 。 break 。 case2:id_sort( 。 break 。case3:student_edit( 。 break 。 case4:student_del( 。 break 。 case5:search(。 break 。/case8:save(。 break 。case0:left( 。/* 錄入學(xué)生基本信息 */ void student_new(int

11、 n 。printf( 請輸入學(xué)生的個數(shù) (1-%d,M 。scanf(%d,&n 。while(!(n0 & nprintf(n 輸入的學(xué)生人數(shù)太多,請重新輸入學(xué)生人數(shù) : 。 scanf (%d,&n 。- 5 - / 13page_head1( 。while(n- num+ 。input_one(num 。/* 刪除學(xué)生基本信息 */void student_del(long id。char c 。int n 。while(1printf( 請輸入你要刪除學(xué)生的學(xué)號 : 。 scanf(%ld,&id 。printf(n 。n=find(id 。if(n!=-1break 。elsesy

12、stem(cls 。page_head2( 。show_one(n 。printf(n 請確認刪除嗎?請輸入 Y 或者 N 。c=getch( 。if(Y=c | y=cSTUn=STUnum 。num- 。/* 按學(xué)號查找學(xué)生 */- 6 - / 13int find(long idint n 。for(n=0 。nif(STUn.id=id return n 。return -1 。/* 輸入一個新學(xué)生的信息 */void input_one(int nscanf(%ld%s%s%d%ld%s,&STUn.id,STU,STUn.sex,&STU n.age,&STUn.pas

13、sword,STUn.note 。printf(n 。/* 顯示所有記錄 */ void show(int i 。page_head2( 。for(i=0 。 ishow_one(i 。in_menu( 。/* 顯示一條記錄 */void show_one(int nif(strlen(STU=10printf(%ldtt%stt%stt,STUn.id,STU,STUn.sex 。elseprintf(%ldtt%stt%st,STUn.id,STU,STUn.sex 。- 7 - / 13printf(%3dt*tt%stn,STUn.age,STUn.

14、note 。printf(n/*退出 */void left(exit(0 。/* 修改信息 */void student_edit(long n,k=4 。long int h。while(1printf( 請輸入你要修改學(xué)生的學(xué)號 : 。 scanf(%ld,&id 。printf(n 。n=find(id 。 if(n!=-1 break 。elsesystem(cls 。printf( 請輸入學(xué)生的密碼 : 。while(k- scanf(%ld,&h 。 if(h=STUn.passwordpage_head2(。show_one(n。 printf(n 請輸入新的信息

15、 :n 。- 8 - / 13page_head1(。scanf(%ld%s%s%d%ld%s,&STUn.id,STU,STUn.sex,&STU n.age,&STUn.password 。break 。elseprintf( 密碼錯誤,請重新輸入 : 。/* 進入主菜單 */void in_menu(printf(n 請按任意鍵進入主菜單 。getch(。/* 查找學(xué)生信息 */void search(int n 。printf(nn 查詢信息 。printf(tttt1按學(xué)號查找 :1nn 。printf(tttt2按姓名查找 :2nn 。printf(tttt3按性別查找

16、 :3nn 。printf(tttt4按年齡查找 :4nn 。printf(tttt0 退出 :nn 。printf(*nprintf( 請用數(shù)字鍵 0-4 選擇操作 :n 。scanf(%d,&n 。 switch(n case 1:id_search(。 break 。 case 2:name_search(。 break 。- 9 - / 13 case 3:sex_search(。 break 。case 4:age_search(。 break 。case 0:left(。/* 按學(xué)號查詢成績 */void id_search(long n 。printf( 請輸入你要

17、查詢學(xué)生的學(xué)號 : 。scanf(%ld,&id 。printf(n 。n=find(id 。if(n!=-1page_head2( 。show_one(n。elseprintf( 不存在該學(xué)號學(xué)生信息! 。 in_menu( 。/* 按姓名查找學(xué)生信息 */void name_search(char name20 。int n 。printf( 請輸入你要查詢學(xué)生的名字 : 。scanf(%s,&name 。printf(n 。page_head2( 。for(n=0 。 nif(strcmp(name,STU=0- 10 - / 13show_one(n。 in_menu( 。

18、/* 按性別查找學(xué)生信息 */ void sex_search(char n 。printf( 請輸入你要查詢學(xué)生的性別 : 。 scanf(%s,&sex 。printf(n 。 page_head2( 。for(n=0 。n if(strcmp(sex,STUn.sex=0 show_one(n。 in_menu( 。/* 按年齡查詢成績 */ void age_search(int n 。printf( 請輸入你要查詢學(xué)生的年齡 : 。 scanf(%d,&age 。printf(n 。 page_head2( 。for(n=0 。n if(age=STUn.age show_one(n。in_menu( 。- 11 - / 13/* 按學(xué)號排序顯示 */void id_sort(int i=0 。int n 。long min=STU0.id 。for(i=1 。 iif(STUi.id min=STUi.id 。page_head2( 。for(i=0 。 in=find(min+ 。if(n!=-1i+ 。show_one(n。in_menu( 。/* 打印表頭 2*/void page_head2(printf(*nprintf( 學(xué)號tt 姓名 tt 性別 t 年齡 t 密碼 (整數(shù)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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論