c語言大作業(yè)課程設(shè)計報告-學(xué)生管理系統(tǒng).doc_第1頁
c語言大作業(yè)課程設(shè)計報告-學(xué)生管理系統(tǒng).doc_第2頁
c語言大作業(yè)課程設(shè)計報告-學(xué)生管理系統(tǒng).doc_第3頁
c語言大作業(yè)課程設(shè)計報告-學(xué)生管理系統(tǒng).doc_第4頁
c語言大作業(yè)課程設(shè)計報告-學(xué)生管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

華南理工大學(xué) 電子與信息學(xué)院 羅靜慈201330252163 2014年5月31日 C語言課程設(shè)計報告設(shè)計題目:學(xué)生管理系統(tǒng)專 業(yè): 班 級: 姓 名: 學(xué) 號:提交時間: 完成方式:(單選)自我評分:(單選)獨立完成 優(yōu)秀參考他人工作的基礎(chǔ)上完成 良好在他人的幫助下完成 中等完整拷貝他人成果 及格 不及格 設(shè)計任務(wù):C語言課程設(shè)計任務(wù)書5題目:學(xué)生管理系統(tǒng)設(shè)計功能:學(xué)生管理系統(tǒng)設(shè)計,每個學(xué)生是一條記錄,包括姓名、學(xué)號、性別、出生年月、專業(yè)、年級、班級、家庭住址、宿舍號碼等。系統(tǒng)要求實現(xiàn)以下功能:1、 輸入功能:錄入學(xué)生信息(包括學(xué)生學(xué)號、姓名、性別、出生年月、專業(yè)等);2、 顯示功能:完成學(xué)生記錄的顯示;3、 查找功能:完成按學(xué)號或姓名查找學(xué)生的相關(guān)記錄,并顯示。分布實施:1、 初步完成總體設(shè)計,搭好框架,確定人機對話界面,確定函數(shù)個數(shù);2、 建立一個文件,將每位學(xué)生的信息寫入文件中(人數(shù)利用宏定義設(shè)定)并顯示與屏幕上;3、 完成上述顯示,查找(姓名、性別等),修改等功能;4、 進(jìn)一步要求,修改記錄設(shè)置密碼操作。要求:1、 用C語言實現(xiàn)程序設(shè)計;2、 利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、 系統(tǒng)各個功能模塊要求用函數(shù)的形式實現(xiàn);界面良好(良好的人機交互),程序必須加必要的注釋。課程設(shè)計實驗報告要求:1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分;2、實驗總報告:流程圖、主要源程序代碼(需打?。?、測試情況及調(diào)試中的問題與解決方案、小結(jié)等。一總體設(shè)計1.程序的總體設(shè)計本次課程設(shè)計,主要通過main函數(shù)調(diào)用welcome( ),mainmenu( )和close( )函數(shù)實現(xiàn)。在mainmenu( )函數(shù)中,又嵌套了五個函數(shù)模塊,create( )、search( )、change( )、del( )、printall( ),分別實現(xiàn)新建學(xué)生信息、查找學(xué)生信息、修改學(xué)生信息、顯示所有信息的功能。在search ( )中,又調(diào)用了search_num( )和search_name( )兩個函數(shù),分別代表用學(xué)號查找和用姓名查找兩種查找方式。另外,open( )函數(shù)用于獲得文件的頭指針,delay( )延時函數(shù)用于welcome( )中界面的動態(tài)顯示。2.數(shù)據(jù)結(jié)構(gòu)本次課程設(shè)計中用到的數(shù)據(jù)結(jié)構(gòu)類型是單鏈表,鏈表的結(jié)點儲存學(xué)生的信息,用結(jié)構(gòu)體儲存學(xué)生信息。typedef struct student/定義結(jié)構(gòu)體變量,用于儲存學(xué)生的信息char num12;/學(xué)號,最多輸入12個字符;char name10;/姓名,最多輸入10個字符(5個漢字);char sex4;/性別,最多輸入4個字符(2個漢字);char birthday12;/出生年月日,最多輸入12個字符;char grade8;/年級,最多輸入8個字符;char major20;/專業(yè),最多輸入20個字符;char tel15;/手機號碼,最多輸入15個字符;char wechat15;/微信號,最多輸入15個字符;struct student *next;/用于存放鏈表下一個結(jié)點的地址,即下一個學(xué)生信息的地址 student;/結(jié)構(gòu)體類型為student型3.函數(shù)原型聲明的說明l delay( )函數(shù)輸入?yún)?shù):unsigned int 延長的時間輸出參數(shù):無返 回 值:無功能描述:調(diào)用delay( )函數(shù)實現(xiàn)延時效果,從而實現(xiàn)字符動態(tài)顯示在界面中,或字符在界面中停留一段時間再消失。l create( )函數(shù)輸入?yún)?shù):無輸出參數(shù):無返 回 值:無功能描述:調(diào)用create( )函數(shù),能夠新建學(xué)生信息,并將新建的信息儲存到一個文件名為“學(xué)生管理系統(tǒng)信息.txt”的文本文件中。l open( )函數(shù)輸入?yún)?shù):無輸出參數(shù):student *fphead返 回 值:fphead 即返回文件的鏈頭指針功能描述:打開文件,將文件“學(xué)生管理系統(tǒng)信息.txt”里面的數(shù)據(jù)載入鏈表,并將鏈表的頭指針fphead返回l search_num( )函數(shù)輸入?yún)?shù):student *fphead 鏈頭指針輸出參數(shù):無返 回 值:無功能描述:按學(xué)號查找學(xué)生的信息并將信息打印于屏幕l search_name( )函數(shù)輸入?yún)?shù):student *fphead 鏈頭指針輸出參數(shù):無返 回 值:無功能描述:按姓名查找學(xué)生信息并將信息打印于屏幕l search( )函數(shù)輸入?yún)?shù):無輸出參數(shù):無返 回 值:無功能描述:提供學(xué)號和姓名兩種查詢方式給用戶選擇,若選擇按學(xué)號查詢,則調(diào)用search_num( )函數(shù);若選擇按姓名查詢,則調(diào)用search_name( )函數(shù)l change ( ) 函數(shù)輸入?yún)?shù):student *fphead 鏈頭指針輸出參數(shù):無返 回 值:無功能描述:輸入原來修改的密碼方可執(zhí)行此操作輸入要修改的姓名,學(xué)生信息會打印在屏幕并提供8種選擇,輸入數(shù)字可以做相應(yīng)信息的修改,并將修改的新信息替換原來的信息儲存到文本文件“學(xué)生管理系統(tǒng)信息.txt”中l(wèi) del( )函數(shù)輸入?yún)?shù):無輸出參數(shù):無返 回 值:無功能描述:輸入某個學(xué)生的名字將參數(shù)該學(xué)生的信息并顯示刪除成功l printall( )函數(shù)輸入?yún)?shù):無輸出參數(shù):無返 回 值:無功能描述:將所有學(xué)生的信息以表格的形式打印到屏幕上l welcome( )函數(shù)輸入?yún)?shù):無輸出函數(shù):無返 回 值:無功能描述:登錄界面將“welcome”以不同顏色顯示,隨后顯示開發(fā)者信息并要求輸入學(xué)號、輸入密碼以及修改密碼l close( )函數(shù)輸入?yún)?shù):無輸出參數(shù):無返 回 值:無功能描述:退出學(xué)生管理系統(tǒng)l mainmenu( )函數(shù)輸入?yún)?shù):無輸出參數(shù):無返 回 值:無功能實現(xiàn):顯示主菜單,并根據(jù)用戶的選擇調(diào)用以上不同的函數(shù)模塊以實現(xiàn)新建學(xué)生信息、查詢學(xué)生信息、修改學(xué)生信息、刪除學(xué)生信息、顯示所有信息、退出管理系統(tǒng)等不同的功能,是整個學(xué)生管理系統(tǒng) 的核心部分以下是調(diào)用到的庫函數(shù)l getch( )輸入?yún)?shù):無輸出參數(shù):char 字符類型返 回 值:char 字符類型功能描述:有鍵盤輸入一個字符l fopen( )函數(shù)輸入?yún)?shù):文件名,使用文件方式輸出參數(shù):FILE *fp 文件的地址返 回 值:FILE *fp 文件的地址功能實現(xiàn):使用文件方式為wb,則以只寫的方式打開文件,若文件不存在,則建立一個新文件;使用文件方式為ab,則以追加的方式打開文件,即向文件的末尾添加數(shù)據(jù),若文件不存在,則出錯l fwrite( )函數(shù)輸入?yún)?shù):student *p, sizeof(student),int ,FILE*fp輸出函數(shù):無返 回 值:無功能描述:向指定文件寫一個數(shù)據(jù)塊,將新建的信息寫入到指定文件中l(wèi) fclose( )函數(shù)輸入?yún)?shù):FILE *fp 文件地址輸出函數(shù):無返 回 值:無功能描述:把fp指定的文件關(guān)閉,再次調(diào)用fopen 函數(shù)之前fp不再指向該文件l feof( )函數(shù)輸入?yún)?shù):FIEL *fp 輸出參數(shù):真值0或1返 回 值:真值0或1功能描述:檢查到文件讀寫位置標(biāo)志是否移動到文件末尾,即磁盤文件是否結(jié)束l fread( )函數(shù)輸入?yún)?shù):student *p, sizeof(student),int , FILE*fp輸出參數(shù):無返 回 值:無功能描述:從指定文件中讀一個數(shù)據(jù)塊l strcmp( )函數(shù)輸入?yún)?shù):兩個字符數(shù)組輸出參數(shù):真值0或1 返 回 值:真值0或1功能描述:若兩個字符串一樣,返回真值1;若不同,返回真值0l GetStdHandle( )函數(shù)輸入?yún)?shù):STD_OUTPUT_HANDLE輸出參數(shù):HANDLE handle返 回 值:HANDLE handle功能描述:獲取控制臺句柄l SetConsoleTextAttribute( )函數(shù)輸入?yún)?shù):HANDLE handle,F(xiàn)OREGROUND_顏色輸出函數(shù):無返 回 值:無功能描述:改變字體顏色4.流程圖主流程圖 退出系統(tǒng)界面 學(xué)生管理系統(tǒng)主菜單新建信息模塊查詢信息模塊修改信息模塊刪除信息模塊顯示信息模塊退出系統(tǒng)模塊按學(xué)號查詢按姓名查詢 登錄界面二詳細(xì)設(shè)計1各個模塊的流程圖新建信息模塊開始 按輸入數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)是否繼續(xù)輸入將數(shù)據(jù)寫進(jìn)文本按任何鍵回主菜單 否 是 查詢信息模塊開始輸入要查詢的方式 讀取數(shù)據(jù)輸出“還未建立信息”文件不存在是否找到信息是否找到信息輸出數(shù)據(jù)輸出數(shù)據(jù)是是否否無此信息無此信息按任何鍵回主菜單文件存在輸入要查詢的姓名修改信息模塊是否繼續(xù)修改信息開始 讀取數(shù)據(jù)輸出“還未建立信息”輸入要修改的姓名是否找到信息否無此信息打印信息是 輸入數(shù)據(jù)將數(shù)據(jù)寫進(jìn)文本,并輸出“修改成功”按任何鍵回主菜單文件不存在 文件存在 文件存在是否刪除信息模塊開始 讀取數(shù)據(jù)文件不存在輸出“還未建立信息”文件存在輸入要刪除的姓名是否找到信息否無此信息刪除數(shù)據(jù)輸出“刪除成功”按任何鍵回主菜單 是 顯示信息模塊開始 讀取數(shù)據(jù)輸出“還未建立信息”文件存在文件不存在打印數(shù)據(jù)按任何鍵回主菜單退出系統(tǒng)模塊開始是否退出系統(tǒng)否返回主菜單延遲2秒后退出程序2.全局變量的說明本次課程設(shè)計中定義了全局變量 unsigned int Num,Code 在welcome( )函數(shù)中用到這兩個變量,在change( )函數(shù)中修改信息的時候也用到輸入密碼,因此定義了全局變量3.宏定義說明本次課程設(shè)計中用到的宏定義有#define LEN sizeof(student)/宏定義LEN為結(jié)構(gòu)體的大小以便對student類型的長度的引用三測試及調(diào)試1.主要測試方案程序運行到對應(yīng)模塊時,輸入正確與非正確的數(shù)據(jù),看看有什么效果,分析與預(yù)期效果的差異及原因,再做進(jìn)一步的修改。2.存在的問題及解決的方案問題一:如何實現(xiàn)獲得一個字符后程序就能直接運行而不用按回車。解決方案:通過查閱網(wǎng)上資料才知道getch()函數(shù)就能實現(xiàn)這個功能,但要增加conio.h這個頭文件問題二:如何建立一個新的文件保存數(shù)據(jù)解決方案:通過查閱C程序設(shè)計知道,定義FILE *fp,fp=fopen(“文件名”,”wb”)可以新建原來沒有的文件并將數(shù)據(jù)儲存到文件中。問題三:seach()函數(shù)中,原來是int a,若輸入一個非數(shù)值字符,就回進(jìn)入一個死循環(huán)。解決方案:將int a 改為char a問題四:如何將屏幕清空解決方案:上網(wǎng)查閱資料,發(fā)現(xiàn)用system(“cls”)即可,但要增加stdlib.h這個頭文件問題五:顯示的東西太多,界面長度不夠解決方案:使用system(“mode con cols= 130 lines=40”)改變界面大小,要增加windows.h頭文件問題六:如何改變字體顏色解決方案:一個是用system(“color *” )改變,這個可以同時改變字體和背景的顏色,另外一個是HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); /獲取控制臺句柄SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_GREEN); / 設(shè)置為綠3.程序運行截圖與分析l 歡迎界面,有welcome不同顏色的動態(tài)顯示。l 登錄界面,設(shè)置輸入學(xué)號密碼以及修改密碼的功能l 主菜單幾面,有六個模塊可以選擇。l 選擇模塊1,進(jìn)入以下界面l 新建學(xué)生信息的過程l 選擇N/n退出新建信息的界面回到主菜單l 選擇查詢模塊進(jìn)入以下界面,供學(xué)號還有姓名兩種查詢模式l 輸入信息與剛新建信息部匹配的情況l 查詢到的信息打印與屏幕l 選擇修改信息模塊進(jìn)入以下界面,需要輸入密碼l 對應(yīng)信息會打印于屏幕,提供八種修改的內(nèi)容l 不修改其他信息,按0,并顯示修改成功l 選擇刪除信息模塊進(jìn)入以下界面l 選擇顯示所有信息模塊,將所有信息顯示在屏幕上l 選擇退出系統(tǒng)模塊,會提示是否要退出系統(tǒng)l 退出系統(tǒng)的界面四小結(jié)本次C語言課程設(shè)計是對上學(xué)期的C程序設(shè)計和對這學(xué)期的數(shù)據(jù)結(jié)構(gòu)的綜合運用,是一次難得的實踐機會,也是一次巨大的挑戰(zhàn)。由于學(xué)到的東西在之前沒有實際操作過,所以運用起來也比較困難,因此要不斷的復(fù)習(xí)前面的知識,并通過上網(wǎng)查閱資料,來讓自己知道要怎么寫出一個完整的程序。所以也是一個溫故而知新的過程。在這次課程設(shè)計中,處理除了實現(xiàn)任務(wù)書的要求外,我還有所改進(jìn)和創(chuàng)新,比如改變字體的顏色等,運行結(jié)果與自己的預(yù)期基本相符。通過這次課程設(shè)計,讓我更加明白,學(xué)到的知識如果沒有實踐,那是永遠(yuǎn)學(xué)不會的,特別是編程這種東西,所以在今后,一定要多動手操作。另一方面,我也學(xué)會了獨立解決問題以及如何利用好百度找到自己想要的信息。最后,我要感謝高學(xué)老師,能夠完成本次課程設(shè)計,離不開您給我們鋪墊的C語言基礎(chǔ)! 附件源程序#include /本次設(shè)計所用到的頭文件#include#include /strcmp等函數(shù)#include /包含windows常用數(shù)據(jù)結(jié)構(gòu),宏和其他數(shù)據(jù)類型#include /包含控制臺的鍵盤輸入輸出操作typedef struct student/定義結(jié)構(gòu)體變量,用于儲存學(xué)生的信息char num12;/學(xué)號char name10;/姓名char sex4;/性別char birthday12;/出生年月日char grade8;/年級char major20;/專業(yè)char tel15;/手機號碼char wechat15;/微信號struct student *next;/下一個數(shù)據(jù)的地址student;/結(jié)構(gòu)體類型為student型#define LEN sizeof(student)/宏定義LEN為結(jié)構(gòu)體的大小unsigned int Num,code;/定義全局變量,以便在各個函數(shù)中引用/登錄時輸入學(xué)號,密碼void delay(unsigned int t) /定義延時函數(shù),t/ms,主要用于登陸界面信息的顯示中unsigned int i;unsigned int j;for(i=0;it;i+)for(j=0;j114100;j+);void create()/新建學(xué)生信息(get)FILE *fp;student *head;/頭結(jié)點student *p,*q;/p為新建立信息的結(jié)點head=NULL;p=q=(student *)malloc(LEN);int n=0;char a=x;system(cls);while(a!=n&a!=N)printf(nn-學(xué) 生 管 理 系 統(tǒng)-nnnn);printf(nn 是否要新建學(xué)生信息(Y/N)?:);printf(%c,a=getch();while(a!=n&a!=N&a!=y&a!=Y)printf(n輸入錯誤,請重新輸入:);printf(%c,a=getch();if(a=n|a=N)printf(n);system(pause);elsefp=fopen(學(xué)生管理系統(tǒng)信息.txt,ab);/只寫,為了輸出數(shù)據(jù),打開一個二進(jìn)制文件,若制定的文件不存在,則建立新文件printf(nnn);printf(n 請輸入學(xué)號(12位數(shù))并按回車鍵:);scanf(%s,(*p).num);printf(n 請輸入姓名(如李華)并按回車鍵:);scanf(%s,(*p).name);printf(n 請輸入性別(男或女)并按回車鍵:);scanf(%s,(*p).sex);while(strcmp(*p).sex,男)!=0&strcmp(*p).sex,女)!=0)printf(n 輸入錯誤,請重新輸入!);scanf(%s,(*p).sex);printf(n 請輸入出生年月日(如1995-02-30)并按回車鍵:);scanf(%s,(*p).birthday);printf(n 請輸入年級(如2013級)并按回車鍵:);scanf(%s,(*p).grade);printf(n 請輸入專業(yè)(如電子信息類)并按回車鍵:);scanf(%s,(*p).major);printf(n 請輸入手機號碼(并按回車鍵:);scanf(%s,(*p).tel);printf(n 請輸入微信號(如XLFD10086)并按回車鍵:);scanf(%s,(*p).wechat);printf(nnn 成功建立學(xué)生信息 +);delay(4000);fwrite(p,LEN,1,fp);/將數(shù)據(jù)寫入文件fclose(fp);n=n+1;if(n=1)head=p;else (*q).next=p;/單鏈表的鏈頭增加新結(jié)點q=p;p=(student *)malloc(LEN);/指針q指向原來指針p指向的信息,重新給指針p分配空間,以新建新的信息system(cls);(*q).next=NULL;student * open(void)/函數(shù)返回值為結(jié)構(gòu)體類型studentFILE *fp;student *p=NULL,*q=NULL,*temp=NULL,*fphead=NULL;fp=fopen(學(xué)生管理系統(tǒng)信息.txt,rb);/只讀方式打開二進(jìn)制文件fphead=(student *)malloc(LEN);/分配空間temp=q=fphead;while(!feof(fp)/如果未遇到輸入文件的結(jié)束標(biāo)志,循環(huán)讀取,載入鏈表p=(student *)malloc(LEN);temp=q;(*q).next=p;q=p;fread(p,LEN,1,fp);/從指定文件中讀入相關(guān)信息(*temp).next=NULL;fclose(fp);return(fphead);/返回鏈頭指針void search_num(student * fphead)student *p;int a=0;char searchnum13;system(cls);printf(nn-學(xué) 生 管 理 系 統(tǒng)-nnnn);printf(nn);printf( 請輸入要查找的學(xué)生學(xué)號并按回車鍵:);scanf(%s,searchnum);/輸入要查詢的學(xué)號for(p=(*fphead).next;p!=NULL;p=(*p).next)if(strcmp(*p).num,searchnum)=0)/查找到要查找的學(xué)號,打印信息printf(nnn);printf( *n);printf( | 學(xué)號 | 姓名 | 性別 | 出生日期 | 年級 | 專業(yè) | 手機號碼 | 微信號 |n); printf( *n);printf( | %-12s | %-10s | %2s | %-10s | %-6s | %-16s | %-11s | %-10s |n,(*p).num,(*p).name,(*p).sex,(*p).birthday,(*p).grade,(*p).major,(*p).tel,(*p).wechat);printf( *n);a=1;system(pause);if(!a)printf(無此學(xué)生信息!n);system(pause);void search_name(student * fphead)student *p;int a=0;char searchname10;system(cls);printf(nn-學(xué) 生 管 理 系 統(tǒng)-nnnn); printf(nn);printf( 請輸入要查找的學(xué)生姓名并按回車鍵:);scanf(%s,searchname);/輸入要查詢的姓名for(p=(*fphead).next;p!=NULL;p=(*p).next)if(strcmp(*p).name,searchname)=0)/查找到要查找的學(xué)號,打印信息printf(nn);printf( *n);printf( | 學(xué)號 | 姓名 | 性別 | 出生日期 | 年級 | 專業(yè) | 手機號碼 | 微信號 |n); printf( *n);printf( | %-12s | %-10s | %2s | %-10s | %-6s | %-16s | %-11s | %-10s |n,(*p).num,(*p).name,(*p).sex,(*p).birthday,(*p).grade,(*p).major,(*p).tel,(*p).wechat);printf( *n);a=1;system(pause);if(!a)printf(無此學(xué)生信息!n);system(pause);void search()FILE *fp;student *fphead;if(fp=fopen(學(xué)生管理系統(tǒng)信息.txt,rb)!=NULL)/只讀的形式打開二進(jìn)制文件,若制定的文件不存在,出錯system(cls);int b=1;while(b)printf(nn-學(xué) 生 管 理 系 統(tǒng)-nnnn);printf(nnn 請選擇你要查詢的方式:n(0-按學(xué)號查詢,1-按姓名查詢)+ );char a;a=getch();switch(a)case 0:/按學(xué)號查詢fphead=open();/鏈表頭指針search_num(fphead);b=0;system(cls);break;case 1:/按姓名查詢fphead=open();search_name(fphead);b=0;system(cls);break;default:printf(輸入錯誤!n);system(pause);system(cls);elseprintf( 未建立學(xué)生信息,此操作無法進(jìn)行!n);system(pause);void change(student *fphead)FILE *fp;student *p,*q;int d=0;char changename10;system(cls);printf(nn-學(xué) 生 管 理 系 統(tǒng)-nnnn);printf(nn);printf( 請輸入要修改的姓名:);scanf(%s,changename);for(p=(*fphead).next;p!=NULL;p=(*p).next)if(strcmp(*p).name,changename)=0)/先打印出原來的信息printf(nn *n);printf( | 學(xué)號 | 姓名 | 性別 | 出生日期 | 年級 | 專業(yè) | 手機號碼 | 微信號 |n); printf( *n);printf( | %-12s | %-10s | %2s | %-10s | %-6s | %-16s | %-11s | %-10s |n,(*p).num,(*p).name,(*p).sex,(*p).birthday,(*p).grade,(*p).major,(*p).tel,(*p).wechat);printf( *n);int e;int f=1;while(f)printf(nnn 【1】學(xué)號 【2】姓名 【3】性別 【4】出生日期n); printf( 【5】年級 【6】專業(yè) 【7】手機號碼【8】微信號n);printf(n 請輸入要修改的信息的序號:);scanf(%d,&e);switch(e) case 1:printf( 請輸入新的學(xué)號(12位數(shù))并按回車:);scanf(%s,(*p).num);break;case 2:printf( 請輸入新的姓名(如李華)并按回車:);scanf(%s,(*p).name);break;case 3:printf( 請輸入新的性別(男或女)并按回車:);scanf(%s,(*p).sex);while(strcmp(*p).sex,男)!=0&strcmp(*p).sex,女)!=0)printf( 輸入錯誤,請重新輸入性別:);scanf(%s,(*p).sex);break;case 4:printf( 請輸入新的出生日期(如1995-02-30)并按回車:);scanf(%s,(*p).birthday);break;case 5:printf( 請輸入新的年級(如2013級)并按回車:);scanf(%s,(*p).grade);break;case 6:printf( 請輸入新的專業(yè)(如電子信息類)并按回車:);scanf(%s,(*p).major);break;case 7:printf( 請輸入新的手機號碼(并按回車:);scanf(%s,(*p).tel);break;case 8:printf( 請輸入新的微信號(如XLFD10086)并按回車:);scanf(%s,(*p).wechat);break;printf(n 是否還要修改其他信息?【1】是【0】否);scanf(%d,&f);fp=fopen(學(xué)生管理系統(tǒng)信息.txt,wb);/只寫,為了輸出數(shù)據(jù),打開一個二進(jìn)制文件q=(*fphead).next;while(q!=NULL)fwrite(q,LEN,1,fp);if(*q).next!=NULL)q=(*q).next;elseq=NULL;fclose(fp); printf(nn 修改成功 + );system(pause);system(cls);d=1;if(d!=1)printf(n 無此學(xué)生信息!n);system(pause);void del()/刪除學(xué)生信息FILE *fp;student *fphead;if(fp=fopen(學(xué)生管理系統(tǒng)信息.txt,rb)!=NULL)fclose(fp);fphead=open();student *p,*q,*temp;char delname10;p=(student *)malloc(LEN);p=fphead;system(cls);fp=fopen(學(xué)生管理系統(tǒng)信息.txt,wb);printf(nn-學(xué) 生 管 理 系 統(tǒng)-nnnn);printf(nn);printf( 請輸入要刪除信息的學(xué)生的姓名:);scanf(%s,delname);while(strcmp(*p).name,delname)!=0&(*p).next!=NULL)q=p;p=(*p).next;if(strcmp(*p).name,delname)=0)if(p=fphead)fphead=(*p).next;else(*q).next=(*p).next;temp=(*fphead).next;while(temp!=NULL)fwrite(temp,LEN,1,fp);if(*temp).next!=NULL)temp=(*temp).

溫馨提示

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

評論

0/150

提交評論