c語言學(xué)生證管理系統(tǒng)設(shè)計_第1頁
c語言學(xué)生證管理系統(tǒng)設(shè)計_第2頁
c語言學(xué)生證管理系統(tǒng)設(shè)計_第3頁
c語言學(xué)生證管理系統(tǒng)設(shè)計_第4頁
c語言學(xué)生證管理系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、hubei university of automotive technologyc語言程序設(shè)計報告學(xué) 院: 電氣與信息工程學(xué)院 專 業(yè): 電子信息產(chǎn)業(yè)題 目: 學(xué) 生 證 管 理 系 統(tǒng) 班 號: t-132316 姓 名: 樊帥昌 學(xué) 號: 20130231611 指導(dǎo)教師: 吳年志 2014年7月2日目錄c語言程序設(shè)計報告1一.課程設(shè)計目的3二設(shè)計要求3三具體模塊分析51頭文件及定義結(jié)構(gòu)體5頭文件:5結(jié)構(gòu)體:52主函數(shù)63分塊設(shè)計6首頁面6系統(tǒng)菜單6用戶選擇7添加模塊8查詢模塊12修改模塊15刪除模塊19四.測試分析21五.課程設(shè)計總結(jié)26六.程序源代碼27一. 課程設(shè)計目的1鞏固和加深

2、學(xué)生對c語言程序設(shè)計課程基本知識的理解和掌握。2掌握c語言編程和程序調(diào)試的基本技能。3掌握書寫程序設(shè)計說明文檔的能力。4提高學(xué)生分析問題和解決問題的能力,培養(yǎng)嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)和良好的程序設(shè)計習(xí)慣,為后續(xù)課程的學(xué)習(xí)打下良好的基礎(chǔ)。二設(shè)計要求題目:學(xué)生證管理程序題目描述:請設(shè)計一個學(xué)生證管理的程序,以方便輔導(dǎo)員對學(xué)生證的管理,該程序應(yīng)該具有以下功能:(1)能從鍵盤輸入某位學(xué)生的學(xué)生證信息(學(xué)生證應(yīng)該包含的信息可以參考自己的學(xué)生證)。(2)給定學(xué)號,顯示該學(xué)生的學(xué)生證信息。(3)給定班號,顯示該班所有學(xué)生的學(xué)生證信息。(4)給定學(xué)號,修改該學(xué)生的學(xué)生證信息。(5)給定學(xué)號,刪除該學(xué)生的學(xué)生證信息。題目

3、要求:(1)按照分析、設(shè)計、編碼、調(diào)試、測試的軟件過程完成這個應(yīng)用程序。(2)學(xué)生證應(yīng)該包含的信息參考自己的學(xué)生證。(3)為各項操作功能設(shè)計一個菜單,應(yīng)用程序運行后,先顯示這個菜單,然后用戶通過菜單項選擇希望進(jìn)行的操作項目。輸入要求: (1)應(yīng)用程序運行后在屏幕上顯示一個菜單。用戶可以根據(jù)需求,選定相應(yīng)的操作項目。進(jìn)入每個操作后,根據(jù)應(yīng)用程序的提示信息,從鍵盤輸入相應(yīng)的信息。程序根據(jù)用戶輸入的信息完成相應(yīng)的處理,實現(xiàn)要求的功能。 (2)能對輸入的數(shù)據(jù)進(jìn)行簡單的校驗,例如,學(xué)生的入學(xué)時間必須是一個合法的日期格式,學(xué)號是唯一的(一個學(xué)號對應(yīng)一條學(xué)生證信息)。輸出要求: (1)應(yīng)用程序運行后,要在屏

4、幕上顯示一個菜單。 (2)要求用戶輸入數(shù)據(jù)時,給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式以及結(jié)束方式等。(3)在程序完成處理后,要清楚地給出程序的處理結(jié)果。例如,在給定學(xué)號刪除學(xué)生證信息時,如果該學(xué)生不存在,要提示沒能刪除,如果刪除成功要提示刪除成功。實現(xiàn)要求: (1)在程序中使用鏈表存儲學(xué)生證信息。 (2)采用模塊化程序設(shè)計的方法,將程序中的各項功能用函數(shù)實現(xiàn)。提示: (1)使用結(jié)構(gòu)體表示學(xué)生證信息,一個結(jié)點保存一條學(xué)生證信息。 擴展功能: (1)學(xué)生證信息從文件讀入。 (2)將學(xué)生證信息保存到文件中。(一)基本要求1掌握c 語言程序設(shè)計的方法,熟悉使用vc6.0作為開發(fā)軟件開發(fā)c語

5、言程序及c 程序的調(diào)試過程。2熟悉c 語言中的數(shù)據(jù)類型,數(shù)據(jù)結(jié)構(gòu)、語句結(jié)構(gòu)、運算方法、函數(shù),鞏固和加深對理論課中知識的理解,提高基本編程能力。3綜合編程題,每組完成一個課題(一組不能超過2人),每組成員必須明確各自的任務(wù)。4要求利用結(jié)構(gòu)化程序設(shè)計方法以及c的編程思想來完成題目問題描述中所要求的設(shè)計任務(wù),功能模塊化,設(shè)計內(nèi)容符合題目要求;5概要設(shè)計模塊劃分合理,清晰,系統(tǒng)結(jié)構(gòu)圖符合功能操作要求;6詳細(xì)設(shè)計,主要功能模塊有較完善的程序流程圖,每個主要功能模塊有較完善的入口、功能、出口等的清晰的描述,說明符合結(jié)構(gòu)化程序設(shè)計要求;7每個模塊的程序代碼,具有較好的可讀性和可靠性;程序書寫風(fēng)格:鋸齒型書寫

6、格式,并有詳盡的注釋。8用戶界面要求盡可能友好,提示信息充分、完整;對輸入內(nèi)容有較完善的判誤處理并方便操作;9程序必須上機調(diào)試通過,不應(yīng)出現(xiàn)語法型、功能型錯誤,并獲得滿意的結(jié)果;10所設(shè)計的程序,必須在提交驗收前,通過測試用例做必要的功能測試,盡可能避免原則性錯誤的出現(xiàn)。(二)設(shè)計步驟在進(jìn)行綜合編程時需要遵循以下的步驟:1問題分析、確定解決方案框架,充分地分析和理解問題本身,弄清要求做什么。在確定解決方案框架過程中,仔細(xì)考慮如何使用數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)有哪些?程序結(jié)構(gòu)清晰、合理、簡單和易于調(diào)試,并確定每個模塊的簡單功能,以及模塊之間的調(diào)用關(guān)系。2詳細(xì)設(shè)計和編碼:確定程序的主要流程,在此基礎(chǔ)上進(jìn)行代碼

7、設(shè)計,每個功能模塊程序一般不超過60行,否則要進(jìn)一步劃分。3上機前編寫程序與檢查。4上機調(diào)試程序。5每個功能在輸入值集范圍內(nèi),確定好幾組測試用例數(shù)據(jù),通過盡可能詳盡的測試用例,找出程序中存在的或有可能出現(xiàn)的功能錯誤。(三)綜合報告要求課程設(shè)計報告要求內(nèi)容:1系統(tǒng)設(shè)計分析預(yù)覽:(1)系統(tǒng)功能模塊劃分:根據(jù)需求分析,可以把這個系統(tǒng)的設(shè)計分為學(xué)生信息預(yù)覽、管理系統(tǒng)、添加、從文件讀入、查詢、修改、刪除、退出系統(tǒng)七大模塊,其中查詢模塊可以分為兩個子模塊,系統(tǒng)功能模塊圖如下所示:學(xué)生信息預(yù)覽學(xué)生證管理系統(tǒng)退出刪除修改查詢讀入添加按照班級查詢按照學(xué)號查詢?nèi)唧w模塊分析1頭文件及定義結(jié)構(gòu)體頭文件:#inclu

8、de /輸入輸出函數(shù) #include /常用函數(shù)庫#include /字符串函數(shù)#define n 1000 結(jié)構(gòu)體:struct studentchar name10; /姓名,只能輸入5個漢字char sex2; /性別,只能輸入1個漢字int age; /年齡char department48; /所在院系char banji30; /班級char sno20; /學(xué)號stuinfon; /結(jié)構(gòu)體數(shù)組,用作讀取和存放臨時數(shù)據(jù)2主函數(shù)main()preprintmenu(); /首頁面printmenu(); /系統(tǒng)菜單selmenu(); /選擇菜單3分塊設(shè)計首頁面void prepr

9、intmenu() /首頁面 system(cls); printf( c語言課程設(shè)計 n);printf(n);printf( 課設(shè)題目: 學(xué)生證管理程序n); printf( 學(xué)生班級: t1323-16班n);printf( 學(xué)生姓名: 樊帥昌n); printf( 學(xué)生聯(lián)系方式: 電話); printf( 學(xué)生聯(lián)系方式: qq:2026555785n);printf( 完成日期: 2014年7月1日); printf(n請按enter進(jìn)入系統(tǒng)!n); getchar(); system(cls); /清屏函數(shù)設(shè)計目的:首頁面顯示學(xué)生設(shè)計的題目及學(xué)生的相關(guān)信息,

10、用于教師知道學(xué)生應(yīng)該完成題目,教師了解后,提示按enter鍵進(jìn)入系統(tǒng)。系統(tǒng)菜單void printmenu() /使用菜單 system(cls);printf(*歡迎使用學(xué)生證管理系統(tǒng)*n);printf(n);printf( 1. 添加學(xué)生的學(xué)生證信息n );printf( 2. 從文件讀入學(xué)生的學(xué)生證信息n);printf( 3. 查詢學(xué)生的學(xué)生證信息n);printf( 4. 給定學(xué)號修改該學(xué)生的學(xué)生證信息n);printf( 5. 給定學(xué)號刪除該學(xué)生的學(xué)生證信息n);printf( 0. 退出系統(tǒng)n); printf(n);printf(*n);printf( 請根據(jù)需要選擇菜單選項

11、(0-5)n);用戶選擇void selmenu() /選擇菜單 int sel;char ch;while(1)printf(請輸入菜單選項: );scanf(%d,&sel);if(sel6) /對選擇菜單進(jìn)行判斷printf(選擇錯誤,請重新選擇!n);continue;switch(sel)case 1: inputinfo();break; /添加模塊case 2: showinfo();break; /從文件讀入模塊case 3: quiry();break; /查詢模塊case 4: searchreplace();break; /修改模塊case 5: searchdelate

12、();break; /刪除模塊case 0: exit(0);if(sel=0) break; 添加模塊首先要判斷文件stuinfo.txt是否存在,如果存在就以讀寫(r+)的方式打開,如果不存在,就以寫(w)的方式創(chuàng)建文件stuinfo.txt。輸入格式要求:性別為男或女,學(xué)號為11位且不能重復(fù),年齡在0-100之間,班級號為6位,程序提供了完善的驗證機制,輸入錯誤時將提示重新輸入直到正確為止。此外,如果以讀寫的方式打開,還要判斷記錄數(shù)numn是否成立,因為結(jié)構(gòu)體數(shù)組的大小為n,當(dāng)num=n時,表示已滿,不能再存儲數(shù)據(jù),需要修改n的值。該模塊具體流程如左圖:代碼:void inputinfo

13、() /輸入學(xué)生信息 int num; int i; int age; char sno20; /臨時變量,用于驗證輸入的學(xué)號是否滿足條件 char sex20; /臨時變量,用于驗證輸入的性別是否滿足條件 char banji20; /臨時變量,用于驗證輸入的班級是否滿足條件 int right; file *fp; if(fp=fopen(stuinfo.txt,r+)=null) /以讀寫方式打開 if(fp=fopen(stuinfo.txt,w)=null) /文件不存在則創(chuàng)建文件 printf(n文件不存在且創(chuàng)建失敗,返回!n); printmenu(); printf(n請按照提

14、示輸入學(xué)生信息:nn); printf(姓名:); scanf(%s,&stui); do printf(n性別(男或女):); scanf(%s,sex); if(strcmp(sex,男)!=0)&(strcmp(sex,女)!=0) printf(輸入錯誤,請輸入男或女!n); /判斷性別輸入合法性right=1;getchar(); else right=0; while(right=1); strcpy(stuinfo0.sex,sex); do printf(n學(xué)號(11位):); scanf(%s,sno); if(strlen(sno)!=11) /判斷學(xué)號輸

15、入合法性 printf(輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!n);right=1;getchar(); else right=0; while(right=1); strcpy(stuinfo0.sno,sno); do printf(n年齡:); scanf(%d,&age); if(age25) printf(年齡應(yīng)在15-25之間,請重新輸入年齡!n);right=1;getchar(); else right=0; while(right=1); stuinfo0.age=age; do printf(n班號(7位):); scanf(%s,banji); if(strlen(banji)

16、!=7) printf(輸入錯誤,班號長度應(yīng)為7位數(shù)!n);right=1;getchar(); else right=0; while(right=1); strcpy(stuinfo0.banji,banji); printf(n所在院系名:); scanf(%s,&stuinfo0.department); fprintf(fp,n%st%st%st%dt%st%s,stui,stuinfo0.sex,stuinfo0.sno,stuinfo0.age,stuinfo0.banji,stuinfo0.department); fclose(fp); printf(n保存

17、成功!n); /將輸入信息保存至文件 printf(n請按enter鍵返回主菜單!n); getchar(); getchar(); printmenu(); /返回菜單 for(i=0;!feof(fp);i+) fscanf(fp,%s%s%s%d%s%s,&stui,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.banji,&stuinfoi.department); /以讀寫方式輸入 num=i; /記錄數(shù) if(num=n) printf(n保存記錄數(shù)超出結(jié)構(gòu)體數(shù)組數(shù)的大小,請先修改n的值n); printm

18、enu();注:判斷記錄數(shù)numn是否成立,因為結(jié)構(gòu)體數(shù)組的大小為n,當(dāng)num=n時,表示已滿,不能再存儲數(shù)據(jù),需要修改n的值。 printf(n請按照提示輸入學(xué)生信息:nn); printf(姓名:); scanf(%s,&stui); do printf(n性別(男或女):); scanf(%s,sex); if(strcmp(sex,男)!=0)&(strcmp(sex,女)!=0) printf(輸入錯誤,請輸入男或女!n);right=1;getchar(); else right=0; while(right=1); strcpy(stuinfonum.sex

19、,sex); do printf(n學(xué)號(11位):); scanf(%s,sno); if(strlen(sno)!=11) printf(輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!n);right=1;getchar(); else right=0; for(i=0;inum;i+) if(strcmp(sno,stuinfoi.sno)=0) printf(該學(xué)號已經(jīng)存在,請重新輸入!n); right=1; getchar(); while(right=1); strcpy(stuinfonum.sno,sno); do printf(n年齡:); scanf(%d,&age); if(age2

20、5) printf(年齡應(yīng)在15-25之間,請重新輸入年齡!n);right=1;getchar(); else right=0; while(right=1); stuinfonum.age=age; do printf(n班號(7位):); scanf(%s,banji); if(strlen(banji)!=7) printf(輸入錯誤,班號長度應(yīng)為7位數(shù)!n);right=1;getchar(); else right=0; while(right=1); strcpy(stuinfonum.banji,banji); printf(n所在院系名:); scanf(%s,&stuinf

21、onum.department); fprintf(fp,n%st%st%st%dt%st%s,stui,stuinfonum.sex,stuinfonum.sno,stuinfonum.age,stuinfonum.banji,stuinfonum.department); fclose(fp); printf(n保存成功!n); /對文件進(jìn)行保存 printf(n請按enter鍵返回主菜單!n); getchar(); getchar(); printmenu();查詢模塊分為按照學(xué)號查詢和按照班級查詢兩部分,可以通過菜單形式顯示。1查詢菜單void quiry()

22、/查詢 int chose; int right; do system(cls); printf(nt1-按學(xué)號查詢t2-某班學(xué)生信息t3-返回n); printf(n請輸入數(shù)字選擇:); scanf(%d,&chose); if(chose3) right=1; getchar(); else right=0;while(right=1);switch(chose) case 1:searchshowinfo();break;case 2:searchshowallinfo();break;case 3:printmenu(); 2按照學(xué)號查詢輸入學(xué)號,并對學(xué)號進(jìn)行查找,查找后顯示出來。流程

23、圖:該部分代碼:void searchshowinfo()int found=-1;int num,i;char no20;file *fp; if(fp=fopen(stuinfo.txt,r)=null) printf(文件打不開!n); printmenu(); for(i=0;!feof(fp);i+) /讀取文件 fscanf(fp,%s%s%s%d%s%s,&stui,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.banji,&stuinfoi.department); num=i; fclose(fp);

24、 printf(n請輸入學(xué)生學(xué)號:); scanf(%s,no); for(i=0;inum;i+) if(strcmp(no,stuinfoi.sno)=0) 將輸入學(xué)號與已存學(xué)號進(jìn)行對比,查找出該學(xué)生 found=i; printf(n該學(xué)生的信息為:nn); printf(姓名 性別 學(xué)號 年齡 班號 所在院系名n); printf(%st%st%st%dt%stt%sn,stui,stuinfofound.sex,stuinfofound.sno,stuinfofound.age,stuinfofound.banji,stuinfofound.departme

25、nt); if(found0) printf(n沒有找到該學(xué)號的記錄!n); printf(n請按enter鍵返回主菜單!n); getchar(); getchar(); quiry(); /調(diào)用該層菜單3按照班號查詢將輸入的班號與已存的班號進(jìn)行對比,并將該班所有學(xué)生的學(xué)生證信息輸出流程圖如右:該部分代碼:void searchshowallinfo() int found= -1; int num; int i; char clano20; file*fp; if(fp=fopen(stuinfo.txt,r)=null) printf(文件打不開!n); printmenu(); for

26、(i=0;!feof(fp);i+) /讀取文件 fscanf(fp,%s%s%s%d%s%s,&stui,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.banji,&stuinfoi.department); num=i; fclose(fp); printf(n請輸入班號:); scanf(%s,clano); for(i=0;inum;i+) if(strcmp(clano,stuinfoi.banji)=0) /查找該班級 found=i; printf(n該班級的學(xué)生信息為:nn); printf(姓名 性別

27、 學(xué)號 年齡 班號 所在院系名n); printf(%st%st%st%dt%st%sn,stui,stuinfofound.sex,stuinfofound.sno,stuinfofound.age,stuinfofound.banji,stuinfofound.department); if(found0) /沒有查找到該班級 printf(n沒有找到該班號的記錄!n); printf(n請按enter鍵返回上級菜單!n); getchar(); getchar(); quiry();修改模塊先判斷文件stuinfo.txt以讀(r)的方式能否打開,不能就返回,可

28、以就讀入記錄;然后輸入學(xué)號查找記錄,沒找到就返回,找到就按照提示修改該記錄,與輸入模塊一樣,輸入的格式要求:性別為男或女,學(xué)號為11位且不能與除當(dāng)前修改的記錄的學(xué)號外的記錄的學(xué)號重復(fù),年齡在15到25之間,班級號為7位,程序提供了完善的驗證機制,輸入錯誤時將提示重新輸入直到正確為止。輸入完成后,再以寫(w)的方式創(chuàng)建文件,不能創(chuàng)建就返回,可以就將結(jié)構(gòu)體數(shù)組中的所有記錄保存到文件中,這與添加稍有差別,最后返回主菜單。流程圖如下代碼部分:void searchreplace() /修改 int num; int i; int right; int age; char sex20; /臨時變量,用于

29、驗證輸入的性別是否滿足條件 char banji20; /臨時變量,用于驗證輸入的班級是否滿足條件 char sno20; /臨時變量,用于驗證輸入的學(xué)號是否滿足條件 char department30; /臨時變量,用于驗證輸入的院系是否滿足條件 int found=-1; char stuno20; file*fpr,*fpw; if(fpr=fopen(stuinfo.txt,r)=null) printf(文件打不開!n); printmenu(); for(i=0;!feof(fpr);i+) /讀取文件 fscanf(fpr,%s%s%s%d%s%s,&stui,

30、&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.banji,&stuinfoi.department); num=i; fclose(fpr); printf(n請輸入學(xué)號選擇要修改的學(xué)生證:n); scanf(%s,stuno); for(i=0;inum;i+) if(strcmp(stuno,stuinfoi.sno)=0) found=i; printf(n你要修改的學(xué)生信息為:nn); printf(姓名 性別 學(xué)號 年齡 班號 所在院系名n); printf(%st%st%st%dt%st%sn,stui,s

31、tuinfoi.sex,stuinfoi.sno,stuinfoi.age,stuinfoi.banji,stuinfoi.department); printf(n請按照提示輸入學(xué)生的新信息:n); printf(姓名:); scanf(%s,&stui); do printf(n性別(男或女):); scanf(%s,sex); if(strcmp(sex,男)!=0)&(strcmp(sex,女)!=0) printf(輸入錯誤,請輸入男或女!n);right=1;getchar(); else right=0; while(right=1); strcpy(s

32、tuinfofound.sex,sex); do printf(n學(xué)號(11位):); scanf(%s,sno); if(strlen(sno)!=11) printf(輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!n);right=1;getchar(); else right=0; for(i=0;inum;i+) if(i!=found)&(strcmp(sno,stuinfoi.sno)=0) /學(xué)號查重 printf(該學(xué)號已經(jīng)存在,請重新輸入!n); right=1; getchar(); while(right=1); strcpy(stuinfofound.sno,sno); do pri

33、ntf(n年齡:); scanf(%d,&age); if(age25) printf(年齡應(yīng)在15-25之間,請重新輸入年齡!n);right=1;getchar(); else right=0; while(right=1); stuinfofound.age=age; do printf(n班號(7位):); scanf(%s,banji); if(strlen(banji)!=7) printf(輸入錯誤,班號長度應(yīng)為7位數(shù)!n);right=1;getchar(); else right=0; while(right=1); strcpy(stuinfofound.banji,ban

34、ji); printf(n所在院系名:); scanf(%s,&stuinfofound.department); if(fpw=fopen(stuinfo.txt,w)=null) printf(文件打不開,保存失敗!n); printmenu(); for(i=0;inum;i+) /保存文件 fprintf(fpw,n%st%st%st%dt%st%s,stui,stuinfoi.sex,stuinfoi.sno,stuinfoi.age,stuinfoi.banji,stuinfoi.department); fclose(fpw); printf(n修改成功!n);

35、 printf(n請按enter鍵返回主菜單!n); getchar(); getchar(); printmenu(); if(found0) /查找不到 printf(n沒有找到該學(xué)號的記錄:n); printf(n請按enter鍵返回主菜單!n); getchar(); getchar(); printmenu(); 刪除模塊給定學(xué)號,先查找并顯示出來,然后將這個學(xué)號對應(yīng)的學(xué)生信息刪除。代碼:void searchdelate() /刪除 int num; int i; int found=-1; char stuno20; file*fpr,*fpw; if(fpr=fopen(stu

36、info.txt,r)=null) printf(文件打不開!n); printmenu(); for(i=0;!feof(fpr);i+) /讀取文件 fscanf(fpr,%s%s%s%d%s%s,&stui,&stuinfoi.sex,&stuinfoi.sno,&stuinfoi.age,&stuinfoi.banji,&stuinfoi.department); num=i; fclose(fpr); printf(n請輸入學(xué)號選擇你要刪除的學(xué)生證信息:n); scanf(%s,stuno); for(i=0;inum;i+) if(strcmp(stuno,stu

37、infoi.sno)=0) found=i; printf(n你刪除的學(xué)生信息為:nn); printf(姓名 性別 學(xué)號 年齡 班號 所在院系n); printf(%st%st%st%dt%st%sn,stui,stuinfofound.sex,stuinfofound.sno,stuinfofound.age,stuinfofound.banji,stuinfofound.department); if(foundnum-1) for(found;foundnum-1;found+) /刪除該學(xué)生的信息 strcpy(stui,stuin

38、fofound+1.name); strcpy(stuinfofound.sex,stuinfofound+1.sex); strcpy(stuinfofound.sno,stuinfofound+1.sno); stuinfofound.age=stuinfofound+1.age; strcpy(stuinfofound.banji,stuinfofound+1.banji); strcpy(stuinfofound.department,stuinfofound+1.department); if(fpw=fopen(stuinfo.txt,w)=null) printf(文件打不開!n

39、); printmenu(); for(i=0;inum-1;i+) /保存文件 fprintf(fpw,n%st%st%st%dt%st%s,stui,stuinfoi.sex,stuinfoi.sno,stuinfoi.age,stuinfoi.banji,stuinfoi.department); fclose(fpw); printf(n刪除成功!n); /提示刪除成功 printf(n請按enter鍵返回主菜單!n); getchar(); getchar(); printmenu(); if(found0) printf(n沒有找到該學(xué)號的記錄:n); print

40、f(n請按enter鍵返回主菜單!n); getchar(); getchar(); printmenu(); 四.測試分析主要內(nèi)容:測試用例數(shù)據(jù),測試結(jié)果,實際運行結(jié)果截圖,測試中出現(xiàn)的問題、原因與分析。測試:第一部分:首頁面第二部分:系統(tǒng)菜單:第三部分:添加模塊選擇1,按照提示輸入相應(yīng)信息:測試中遇到的問題:第一次時提示后沒有注意學(xué)號,姓名,性別等方面輸入的合法性,后來注意到在源代碼中修改,其次,再輸入時學(xué)號的重復(fù)問題也有一點麻煩,在經(jīng)過和同學(xué)討論后解決了。第四部分:從文件中讀入選擇2,如圖:測試中遇到的問題:首先,在窗口中顯示的信息排列混亂,所以又不斷的調(diào)試,原因是n%st%st%st%dt%st%s中對輸出的細(xì)節(jié)沒注意到。第五部分:查詢模塊:按照學(xué)號查詢:按照班號查詢:遇到問題:在代碼中對查詢的方法使用不熟練,曾用過鏈表方法,但是失敗,后來又改用數(shù)組方法,多次修改后終于成功。原因:對c語言中的鏈表指針使用不熟練,理解掌握程度不夠,有待提高。第六部分:修改模塊:如圖:修改后:第七部分:刪除模塊:如圖:修改后的結(jié)果:已經(jīng)把樊帥的信息刪除。遇到的問題:在代碼中不知道怎么編寫代碼才能把指定學(xué)生的信息刪除掉,在上網(wǎng)查找相關(guān)資料,并在課本中查詢有關(guān)數(shù)組的相關(guān)知識,最后實現(xiàn)了

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論