版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1引言現(xiàn)今大學(xué)對(duì)學(xué)生成績(jī)管理以及學(xué)生水平評(píng)定過(guò)程中,不僅依靠學(xué)生分?jǐn)?shù),而且把各個(gè)科目的掌握情況通過(guò)學(xué)分來(lái)反映,眾所周知,大學(xué)人數(shù)眾多, 單靠人工在紙質(zhì)介質(zhì)上記錄,既浪費(fèi)資源又不方便管理,并且錯(cuò)誤率高,學(xué)分管理系統(tǒng)就是基于現(xiàn)今大學(xué)在學(xué)生成績(jī)管理過(guò)程中采用學(xué)分制,應(yīng)運(yùn)而生的計(jì)算機(jī)數(shù)據(jù)管理系統(tǒng),對(duì)在校生進(jìn)行學(xué)分?jǐn)?shù)據(jù)錄入、修改、刪除、查找、排序以及對(duì)學(xué)分得分的初步統(tǒng)計(jì),并存儲(chǔ)學(xué)生學(xué)分?jǐn)?shù)據(jù)的計(jì)算機(jī)數(shù)據(jù)管理系統(tǒng)。利用學(xué)分管理系統(tǒng)可以有效的幫助管理者,來(lái)管理學(xué)生學(xué)分?jǐn)?shù)據(jù),并能夠了解各個(gè)班級(jí)學(xué)生學(xué)分完成情況,從而節(jié)約了管理過(guò)程中的人力物力,并且存貯方便、準(zhǔn)確。學(xué)生學(xué)分管理系統(tǒng)是運(yùn)行于計(jì)算機(jī)系統(tǒng)下的應(yīng)用軟件,主
2、要用于對(duì)學(xué)生的學(xué)號(hào)、姓名以及各項(xiàng)學(xué)科學(xué)分進(jìn)行錄入、刪除、修改、查詢、排序、統(tǒng)計(jì)、存盤(pán)等操作,為學(xué)校的教師和學(xué)生提供了一個(gè)對(duì)學(xué)生學(xué)分進(jìn)行管理和查看的平臺(tái),給用戶提供了一個(gè)簡(jiǎn)單友好的用戶接口,主要任務(wù)如下:1.1查看所有學(xué)生信息根據(jù)菜單提示,選擇該功能,能夠逐條顯示全部學(xué)生學(xué)分記錄1.2輸入學(xué)生記錄用戶根據(jù)菜單提示選擇輸入學(xué)生記錄選項(xiàng),進(jìn)行有關(guān)學(xué)生的學(xué)號(hào)、姓名、班級(jí)、基礎(chǔ)課學(xué)分、專業(yè)課學(xué)分、選修課學(xué)分、人文類課學(xué)分以及實(shí)驗(yàn)課學(xué)分的錄入??梢淮涡暂斎攵鄺l學(xué)生的學(xué)分信息記錄。1.3刪除學(xué)生記錄根據(jù)提示,用戶輸入要進(jìn)行刪除學(xué)生的學(xué)號(hào),如果在不存在該學(xué)號(hào),則顯示沒(méi)有找到該學(xué)生;如果在文件中有該學(xué)號(hào)的信息存
3、在,則將該學(xué)號(hào)所對(duì)應(yīng)的姓名、學(xué)號(hào)、班級(jí)、各科學(xué)分等在對(duì)應(yīng)文件中加以刪除。1.4修改學(xué)生記錄根據(jù)提示,用戶輸入要進(jìn)行修改學(xué)分記錄的學(xué)生的學(xué)號(hào),如果在文件中不存在該學(xué)號(hào),則顯示沒(méi)有找到該學(xué)生;如果在文件中有該學(xué)生的信息存在,則將提示用戶選擇要修改的某課程,當(dāng)用戶選擇某課程的代碼后,則將顯示你所要修改的課程。然后提示用戶選擇是否繼續(xù)進(jìn)行修改操作。1.5查詢學(xué)生信息查詢學(xué)生信息,分為根據(jù)學(xué)號(hào)查詢和根據(jù)班級(jí)查詢兩個(gè)具體需求,菜單選項(xiàng)分別提示用戶輸入要查詢學(xué)生信息的學(xué)號(hào)或班級(jí),如果在磁盤(pán)文件中有對(duì)應(yīng)的輸入信息,則提示用戶已找到,并逐項(xiàng)列出對(duì)應(yīng)查找到的學(xué)生學(xué)分狀況。1.6根據(jù)學(xué)號(hào)排序?qū)W生記錄該項(xiàng)功能根據(jù)學(xué)生
4、的學(xué)號(hào)項(xiàng)進(jìn)行排序,以便用戶對(duì)學(xué)生學(xué)分狀況有較為直觀方便的了解,并能夠讓學(xué)號(hào)有規(guī)律排列的學(xué)生項(xiàng),在顯示時(shí)集中出現(xiàn),讓瀏覽者更加清楚明白。1.7統(tǒng)計(jì)學(xué)生學(xué)分完成情況該項(xiàng)是統(tǒng)計(jì)各班學(xué)生的學(xué)分完成情況,可以很方便了解該班學(xué)生的學(xué)習(xí)水平。2總體設(shè)計(jì)進(jìn)行總體設(shè)計(jì),以比較抽象的方式概括的確定系統(tǒng)如何完成預(yù)定的任務(wù),進(jìn)而確定組成系統(tǒng)的每個(gè)子程序的結(jié)構(gòu),從而將一個(gè)大的程序按功能分割成一些模塊,是每個(gè)模塊具有功能單一、結(jié)構(gòu)清晰、接口簡(jiǎn)單易于理解的小程序,并且確定各個(gè)函數(shù)之間的調(diào)用關(guān)系。本系統(tǒng)主要應(yīng)用結(jié)構(gòu)化的設(shè)計(jì)思想,實(shí)現(xiàn)學(xué)生學(xué)分的輸入、刪除、修改、查詢以及瀏覽等管理功能,各主要模塊的數(shù)據(jù)均存儲(chǔ)在文件中,因此包含對(duì)
5、文件的讀、寫(xiě)等基本操作。在軟件開(kāi)發(fā)過(guò)程中應(yīng)用了高級(jí)語(yǔ)言程序設(shè)計(jì)中的基本控制結(jié)構(gòu),如選擇、循環(huán)、順序等結(jié)構(gòu)。系統(tǒng)的設(shè)計(jì)方法是結(jié)構(gòu)化設(shè)計(jì)方法,采用C語(yǔ)言進(jìn)行開(kāi)發(fā)。系統(tǒng)功能結(jié)構(gòu)圖,如圖1所示。退出系統(tǒng)查看所有學(xué)生信息輸入學(xué)生記錄刪除學(xué)生記錄修改學(xué)生記錄根據(jù)學(xué)號(hào)查詢學(xué)生記錄根據(jù)班級(jí)查詢學(xué)生記錄根據(jù)學(xué)號(hào)排序?qū)W生記錄統(tǒng)計(jì)學(xué)生學(xué)分完成情況學(xué)分管理程序圖1 系統(tǒng)結(jié)構(gòu)圖3詳細(xì)設(shè)計(jì)本系統(tǒng)采用主函數(shù)調(diào)用子函數(shù)的設(shè)計(jì)方法,先整體在逐步細(xì)化的過(guò)程,具體方法如下:在主函數(shù)前,進(jìn)行子函數(shù)聲明,如下:void menu();/菜單函數(shù)void to_menu();/返回菜單函數(shù)void view_data();/查看所有學(xué)生
6、信息void save_data();/保存數(shù)據(jù)void add_data();/輸入學(xué)生數(shù)據(jù)void read_data();/讀取數(shù)據(jù)void delete_data();/刪除數(shù)據(jù)void edit_data();/修改數(shù)據(jù)void query_data_no();/查找(按學(xué)號(hào))void query_data_clas();/查找(按班級(jí))void sort_data_no();/排序(學(xué)號(hào))void tongji();/統(tǒng)計(jì)某班學(xué)生學(xué)分完成情況3.1主函數(shù)設(shè)計(jì)編寫(xiě)主函數(shù),主函數(shù)運(yùn)行時(shí),先調(diào)用void read_data()函數(shù),將數(shù)據(jù)從文件讀取到結(jié)構(gòu)體數(shù)組中,再調(diào)用菜單函數(shù)void
7、menu(),顯示菜單選擇項(xiàng),設(shè)計(jì)一個(gè)while循環(huán),讓函數(shù)進(jìn)入循環(huán),設(shè)計(jì)switch函數(shù),對(duì)菜單各項(xiàng)功能進(jìn)行選擇,使各項(xiàng)功能能夠運(yùn)行,最后退出循環(huán),調(diào)用to_menu()函數(shù),返回主菜單。main() int fun; read_data(); menu(); while(1) printf(請(qǐng)輸入功能號(hào)0-8:,&fun); scanf(%d,&fun); switch(fun) case 0: break; / 退出 case 1: view_data();break; / 查看所有學(xué)生信息 case 2: add_data(); break; / 輸入學(xué)生記錄 case 3: dele
8、te_data();break; / 刪除學(xué)生記錄 case 4:edit_data();break; / 修改學(xué)生記錄 case 5: query_data_no();break; / 查詢(學(xué)號(hào)) case 6:query_data_clas();break; / 查詢(班級(jí)) case 7:sort_data_no(); break; / 排序(學(xué)號(hào)) case 8:tongji();break; /統(tǒng)計(jì)某班學(xué)生學(xué)分完成情況 default:printf(輸入錯(cuò)誤!);break; if(fun=0) break; to_menu(); 3.2子函數(shù)設(shè)計(jì)3.2.1菜單函數(shù)設(shè)計(jì)菜單函數(shù)首先
9、運(yùn)行庫(kù)函數(shù)system(cls)進(jìn)行清屏,然后運(yùn)行各個(gè)printf語(yǔ)句,顯示主菜單,如圖2所示。圖2 系統(tǒng)主菜單 3.2.2返回主菜單函數(shù)設(shè)計(jì)設(shè)計(jì)字符c1,c2,用c1來(lái)接受第一次輸入的回車(chē),然后再次輸入回車(chē)時(shí),調(diào)用函數(shù)menu(),返回主菜單,來(lái)實(shí)現(xiàn)各次操作完成后返回主菜單的任務(wù)。3.2.3查看所有學(xué)生信息函數(shù)設(shè)計(jì)設(shè)計(jì)for循環(huán),定義i=0,學(xué)生總數(shù)為dd.count,利用for循環(huán),可以顯示所有學(xué)生已經(jīng)記錄的信息。如圖3所示:圖3 查看所有學(xué)生信息3.2.4數(shù)據(jù)從結(jié)構(gòu)體數(shù)組保存到文件的函數(shù)設(shè)計(jì)創(chuàng)建文件data.txt,利用for循環(huán),把數(shù)據(jù)逐個(gè)寫(xiě)入文件。3.2.5輸入學(xué)生記錄函數(shù)設(shè)計(jì)根據(jù)p
10、rintf語(yǔ)句提示,逐個(gè)輸入學(xué)號(hào)、姓名、班級(jí),調(diào)用庫(kù)函數(shù)strcpy(),把各個(gè)輸入項(xiàng),拷貝到數(shù)組中,再對(duì)各項(xiàng)分?jǐn)?shù)進(jìn)行賦值,如果大于最大值,則顯示最大值,設(shè)計(jì)成循環(huán)模式,末尾提示是否繼續(xù)添加數(shù)據(jù),利用break終止循環(huán),最后存盤(pán),退出程序,顯示主菜單。輸入學(xué)號(hào)為106的學(xué)生信息后如圖4所示。圖4 輸入學(xué)生信息3.2.6刪除學(xué)生記錄函數(shù)設(shè)計(jì)設(shè)計(jì)for循環(huán)以及庫(kù)函數(shù)strcmp(),把輸入的學(xué)號(hào),跟已有的學(xué)號(hào)進(jìn)行對(duì)比,如果沒(méi)有相同的學(xué)號(hào),則提示沒(méi)有找到該學(xué)生,如果找到相同的學(xué)號(hào),則把該學(xué)號(hào)以后的數(shù)據(jù)向前移動(dòng)一位,再把學(xué)生總數(shù)減一,實(shí)現(xiàn)刪除學(xué)生。刪除過(guò)程如下圖5和圖6所示。圖5 輸入要?jiǎng)h除的學(xué)生圖6
11、 刪除后顯示3.2.7修改學(xué)生記錄函數(shù)設(shè)計(jì)根據(jù)printf語(yǔ)句提示,輸入要修改的學(xué)生的學(xué)號(hào),設(shè)計(jì)for循環(huán)和庫(kù)函數(shù)strcmp,對(duì)輸入學(xué)號(hào)進(jìn)行查找,如果沒(méi)有查找到,顯示沒(méi)有找到該學(xué)生,如果能夠查找到給學(xué)生,則進(jìn)一步提示輸入學(xué)生的姓名、班級(jí),然后選擇要修改的學(xué)生記錄項(xiàng),最后提示,是否繼續(xù)錄入,退出后可返回主菜單。修改過(guò)程如下圖7和圖8所示。圖7 編輯學(xué)生信息窗口圖8 修改學(xué)生信息完成3.2.8查詢學(xué)生記錄函數(shù)設(shè)計(jì)查詢學(xué)生記錄分為,根據(jù)學(xué)生學(xué)號(hào)查詢和根據(jù)班級(jí)查詢?cè)摪嗨袑W(xué)生的成績(jī),設(shè)計(jì)for循環(huán)和調(diào)用ctrcmp()函數(shù),把要查詢的結(jié)果進(jìn)行顯示,如果沒(méi)有找到與輸入匹配的字符,則顯示沒(méi)有找到該班級(jí)或
12、沒(méi)有找到該學(xué)生。查詢顯示如下圖,根據(jù)學(xué)號(hào)查詢?nèi)鐖D9所示,根據(jù)班級(jí)查詢?nèi)鐖D10所示。圖9 根據(jù)學(xué)號(hào)查詢學(xué)生信息圖10 根據(jù)班級(jí)查詢學(xué)生信息3.2.9排序函數(shù)設(shè)計(jì)設(shè)計(jì)while循環(huán),用for循環(huán)和庫(kù)函數(shù)strcmp將學(xué)號(hào)依次比較,然后用冒泡排序法將學(xué)號(hào)數(shù)據(jù)由小到大排列,并且各數(shù)據(jù)交換,完成排序。排序結(jié)果如下圖11所示。圖11 根據(jù)學(xué)號(hào)排序結(jié)果3.2.10統(tǒng)計(jì)函數(shù)設(shè)計(jì)輸入要統(tǒng)計(jì)的班級(jí)號(hào),調(diào)用strcmp函數(shù),查找相同班級(jí)號(hào)的學(xué)生數(shù)據(jù),再設(shè)計(jì)for循環(huán)并調(diào)用strcmp函數(shù),把差找出的學(xué)生數(shù)據(jù),與要求完成的學(xué)分標(biāo)準(zhǔn)進(jìn)行對(duì)比,統(tǒng)計(jì)出符合要求和不符合要求的學(xué)生個(gè)數(shù),最后顯示。統(tǒng)計(jì)結(jié)果如下圖12所示。圖12
13、 根據(jù)班級(jí)統(tǒng)計(jì)結(jié)果4總結(jié)本系統(tǒng)可以完成學(xué)生學(xué)分的錄入、查詢、修改、刪除、排序以及班級(jí)總體水平的統(tǒng)計(jì)功能,但是對(duì)于系統(tǒng)的訪問(wèn)權(quán)限設(shè)置,訪問(wèn)途徑(網(wǎng)絡(luò)訪問(wèn)還是單機(jī)使用)等功能,還沒(méi)有提出解決的方案,在這些問(wèn)題上還有待于對(duì)系統(tǒng)的進(jìn)一步開(kāi)發(fā)完善。學(xué)分管理系統(tǒng)是介于學(xué)生管理者和學(xué)生之間的一個(gè)數(shù)據(jù)庫(kù)平臺(tái),他讓數(shù)據(jù)管理者可以方便的錄入修改學(xué)生成績(jī),在管理過(guò)程中可以節(jié)省時(shí)間,增加工作效率,假如學(xué)生可以通過(guò)網(wǎng)絡(luò)來(lái)進(jìn)行查詢,就可以避免學(xué)分改動(dòng)而引發(fā)的矛盾,同時(shí)也可以給學(xué)生帶來(lái)方便,因此在訪問(wèn)途徑上可以設(shè)置為單機(jī)服務(wù)器管理,網(wǎng)絡(luò)訪問(wèn)的數(shù)據(jù)庫(kù)模式,來(lái)為學(xué)生和學(xué)校之間提供一個(gè)信息查詢的平臺(tái)。本系統(tǒng)的開(kāi)發(fā)過(guò)程,主要利用了
14、for循環(huán)、switch循環(huán)、庫(kù)函數(shù)strcmp與strcpy等,在排序函數(shù)設(shè)計(jì)時(shí),略顯繁瑣,有待于使用者在使用時(shí),提出寶貴的意見(jiàn)和建議。通過(guò)對(duì)本程序的開(kāi)發(fā),讓我了解到一個(gè)完整系統(tǒng)的開(kāi)發(fā)過(guò)程,將一個(gè)大的工程問(wèn)題可以細(xì)化到各個(gè)模塊,讓每個(gè)模塊可以獨(dú)立去完成各自的功能,最后用函數(shù)之間的調(diào)用來(lái)解決程序開(kāi)發(fā)的全部問(wèn)題,讓我在以后開(kāi)發(fā)程序的道路上更加擁有信心。參考文獻(xiàn)1 趙啟蘭庫(kù)存管理M北京:高等教育出版社,20052 譚浩強(qiáng),張基溫C語(yǔ)言程序設(shè)計(jì)教程(第3版)M北京:高等教育出版社,20063 黃明、梁旭、萬(wàn)洪莉C語(yǔ)言課程設(shè)計(jì)M北京:電子工業(yè)出版社,20064 郭寧,鄭小玲管理信息系統(tǒng)M北京:人民郵電
15、出版社,20065 趙池龍,楊林,陳偉實(shí)用軟件工程M北京:電子工業(yè)出版社,2006附 錄#include #include #include #include #define MAX 60struct student char no10; / 學(xué)號(hào) char name50; / 姓名 char clas5; / 班級(jí) int score5; / 學(xué)分;struct data int count; / 當(dāng)前學(xué)生數(shù)組中學(xué)生的個(gè)數(shù) struct student stuMAX; / 學(xué)生數(shù)組 dd;/子函數(shù)聲明void menu();/菜單函數(shù)void to_menu();/返回菜單函數(shù)void vi
16、ew_data();/查看所有學(xué)生信息void save_data();/保存數(shù)據(jù)void add_data();/輸入學(xué)生數(shù)據(jù)void read_data();/讀取數(shù)據(jù)void delete_data();/刪除數(shù)據(jù)void edit_data();/修改數(shù)據(jù)void query_data_no();/查找(按學(xué)號(hào))void query_data_clas();/查找(按班級(jí))void sort_data_no();/排序(學(xué)號(hào))void tongji();/統(tǒng)計(jì)某班學(xué)生學(xué)分完成情況/ 主函數(shù)main() int fun; read_data(); menu(); while(1) pri
17、ntf(請(qǐng)輸入功能號(hào)0-8:,&fun); scanf(%d,&fun); switch(fun) case 0: break; / 退出 case 1: view_data();break; / 查看所有學(xué)生信息 case 2: add_data(); break; / 輸入學(xué)生記錄 case 3: delete_data();break; / 刪除學(xué)生記錄 case 4:edit_data();break; / 修改學(xué)生記錄 case 5: query_data_no();break; / 查詢(學(xué)號(hào)) case 6:query_data_clas();break; / 查詢(班級(jí)) ca
18、se 7:sort_data_no(); break; / 排序(學(xué)號(hào)) case 8:tongji();break; /統(tǒng)計(jì)某班學(xué)生學(xué)分完成情況 default:printf(輸入錯(cuò)誤!);break; if(fun=0) break; to_menu(); void menu()/*顯示主菜單*/ system(cls);/清屏 printf(n); printf(ttn); printf(tt n); printf(tt 學(xué)分管理系統(tǒng) n); printf(tt n); printf(tt 0 退出 1 查看所有學(xué)生信息 n); printf(tt n); printf(tt 2 輸入學(xué)
19、生記錄 3 刪除學(xué)生記錄 n); printf(tt n); printf(tt 4 修改學(xué)生記錄 5 查詢(學(xué)號(hào)) n); printf(tt n); printf(tt 6 查詢(班級(jí)) 7 排序(學(xué)號(hào)) n); printf(tt n); printf(tt 8統(tǒng)計(jì)某班學(xué)生學(xué)分完成情況 n); printf(tt n); printf(ttnn);void to_menu()/ 等待用戶按回車(chē)后回到主菜單 char c1,c2; printf(nnn按回車(chē)鍵返回主菜單.); scanf(%c%c,&c1,&c2);/第一個(gè)字符吸收上次的確認(rèn)回車(chē)鍵 menu();void view_dat
20、a()/ 查看所有學(xué)生信息 int i; printf(學(xué)號(hào)t姓名t 班級(jí)t 基礎(chǔ)課t 專業(yè)課 選修課 人文類課 實(shí)驗(yàn)課n); printf(n-n); for(i=0;idd.count;i+) printf(%st %st %st %dt %dt %dt %dt %dn,dd.stui.no,,dd.stui.clas,dd.stui.score0,dd.stui.score1,dd.stui.score2,dd.stui.score3,dd.stui.score4);void save_data()/ 將數(shù)據(jù)從結(jié)構(gòu)體數(shù)組保存到文件中 FILE *fp;/文件指針
21、int i,k; k=dd.count; fp=fopen(dada.txt,w);/文件存儲(chǔ)位置:當(dāng)前文件夾 fwrite(&k,sizeof(int),1,fp); for(i=0;i50) dd.stuk.score0=50; else dd.stuk.score0=a; printf(n請(qǐng)輸入專業(yè)課學(xué)分(0-50):); scanf(%d,&a); if(a50) dd.stuk.score1=50; else dd.stuk.score1=a; printf(n請(qǐng)輸入選修課學(xué)分(0-24):); scanf(%d,&a); if(a24) dd.stuk.score2=24; els
22、e dd.stuk.score2=a; printf(n請(qǐng)輸入人文課學(xué)分(0-8):); scanf(%d,&a); if(a8) dd.stuk.score3=8; else dd.stuk.score3=a; printf(n請(qǐng)輸入實(shí)驗(yàn)課學(xué)分(0-20):); scanf(%d,&a); if(a20) dd.stuk.score4=20; else dd.stuk.score4=a; dd.count+; printf(nn繼續(xù)添加學(xué)生信息1-yes 0-no:); scanf(%d,&b); if(b=0) break; save_data();void read_data()/ 將數(shù)
23、據(jù)從文件讀到結(jié)構(gòu)體數(shù)組中 FILE *fp; int i,k; struct student st; k=0; if(access(dada.txt,0)=-1) / 如果文件不存在 fp=fopen(dada.txt,w); fwrite(&k,sizeof(int),1,fp); fclose(fp); fp=fopen(dada.txt,r); fread(&k,sizeof(int),1,fp); dd.count=k; for(i=0;ik;i+) fread(&st,sizeof(struct student),1,fp); strcpy(dd.stui.no,st.no); st
24、rcpy(,); strcpy(dd.stui.clas,st.clas); dd.stui.score4=st.score4; dd.stui.score3=st.score3; dd.stui.score2=st.score2; dd.stui.score1=st.score1; dd.stui.score0=st.score0; fclose(fp);void delete_data()/ 刪除學(xué)生記錄 int i,k,j; char no10; printf(n請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):); scanf(%s,no); k=-1; for(i=0;i
25、dd.count;i+) if(strcmp(dd.stui.no,no)=0) k=i; break; if(k=-1) printf(nn沒(méi)有找到該學(xué)生(學(xué)號(hào)-%s)!,no); else for(j=k;jdd.count-1;j+)dd.stuj=dd.stuj+1; save_data(); printf(nn刪除學(xué)生(學(xué)號(hào)-%s)記錄成功!,no);dd.count-; void edit_data()/ 修改學(xué)生記錄 struct student st; int i,k,a,b,select; char no10; printf(n請(qǐng)輸入要編輯學(xué)生的學(xué)號(hào):); scanf(%s,
26、no); k=-1; for(i=0;i50) dd.stuk.score0=50; else dd.stuk.score0=a;break; case 2:printf(n請(qǐng)輸入專業(yè)課學(xué)分(0-50):); scanf(%d,&a); if(a50) dd.stuk.score1=50; else dd.stuk.score1=a;break; case 3:printf(n請(qǐng)輸入選修課學(xué)分(0-24):); scanf(%d,&a); if(a24) dd.stuk.score2=24; else dd.stuk.score2=a;break; case 4:printf(n請(qǐng)輸入人文課學(xué)
27、分(0-8):); scanf(%d,&a); if(a8) dd.stuk.score3=8; else dd.stuk.score3=a;break; case 5:printf(n請(qǐng)輸入實(shí)驗(yàn)課學(xué)分(0-20):); scanf(%d,&a); if(a20) dd.stuk.score4=20; else dd.stuk.score4=a;break; printf(nn繼續(xù)修改學(xué)生信息1-yes 0-no:); scanf(%d,&b); if(b=1) edit_data(); else save_data(); printf(nn編輯學(xué)生記錄(學(xué)號(hào)-%s)成功!,no); void
28、 query_data_no()/ 查詢(學(xué)號(hào)) int i,k; char no10; printf(n請(qǐng)輸入要查詢學(xué)生的學(xué)號(hào):); scanf(%s,no); k=-1; for(i=0;idd.count;i+) if(strcmp(dd.stui.no,no)=0) if(k=-1) printf(nn學(xué)號(hào)t姓名t班級(jí)t基礎(chǔ)課t專業(yè)課t選修課t人文類課t實(shí)驗(yàn)課); printf(n-n); k=i; printf(%st%st%st%dt%dt%dt%dt%dn,dd.stui.no,,dd.stui.clas,dd.stui.score0,dd.stui.sc
29、ore1,dd.stui.score2,dd.stui.score3,dd.stui.score4); if(k=-1) printf(nn沒(méi)有找到該學(xué)生(學(xué)號(hào)-%s)!,no); void query_data_clas()/ 查詢(班級(jí)) int i,k; char clas10; printf(n請(qǐng)輸入要查詢學(xué)生的班級(jí):); scanf(%s,clas); k=-1; for(i=0;i0) for(i=0;i0)/最大的放末尾 strcpy(tmp.no,dd.stui.no); strcpy(,);strcpy(tmp.clas,dd.stui
30、.clas); tmp.score4=dd.stui.score4;tmp.score3=dd.stui.score3;tmp.score2=dd.stui.score2;tmp.score1=dd.stui.score1;tmp.score0=dd.stui.score0; strcpy(dd.stui.no,dd.stui+1.no); strcpy(,dd.stui+1.name); strcpy(dd.stui.clas,dd.stui+1.clas); dd.stui.score4=dd.stui+1.score4;dd.stui.score3=dd.stui
31、+1.score3;dd.stui.score2=dd.stui+1.score2;dd.stui.score1=dd.stui+1.score1;dd.stui.score0=dd.stui+1.score0; strcpy(dd.stui+1.no,tmp.no); strcpy(dd.stui+1.name,); strcpy(dd.stui+1.clas,tmp.clas); dd.stui+1.score4=tmp.score4;dd.stui+1.score3=tmp.score3;dd.stui+1.score2=tmp.score2;dd.stui+1.scor
32、e1=tmp.score1;dd.stui+1.score0=tmp.score0; k-; save_data(); printf(nn排序成功!); void tongji() /*統(tǒng)計(jì)某班學(xué)生學(xué)分完成情況*/ char clas5; int i,j=0,k=0; printf(n請(qǐng)輸入要統(tǒng)計(jì)的班級(jí):); scanf(%s,clas); for(i=0;idd.count;i+) if(strcmp(clas,dd.stui.clas)=0) j+; for(i=0;i=50 &dd.stui.score1=50&dd.stui.score2=24& dd.stui.score3=8&dd.stui.score4=20) k+; printf(n %s 班中有 %d 個(gè)學(xué)生完成學(xué)分!n有 %d 個(gè)學(xué)生未完成!,clas,k,j-k); scanf(%*c); /*用于吸收上面所按下的字符*/ printf(nn
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度養(yǎng)老產(chǎn)業(yè)PPP項(xiàng)目合同風(fēng)險(xiǎn)分析與風(fēng)險(xiǎn)防范3篇
- 二零二五年度丙方維護(hù)服務(wù)合同2篇
- 2024年中國(guó)火車(chē)組合床市場(chǎng)調(diào)查研究報(bào)告
- 很有工作述職報(bào)告范本
- 2024年中國(guó)演示直尺市場(chǎng)調(diào)查研究報(bào)告
- 2024年模擬操作器項(xiàng)目可行性研究報(bào)告
- 2024年中國(guó)景泰藍(lán)鋼筆市場(chǎng)調(diào)查研究報(bào)告
- 電商經(jīng)理周工作總結(jié)
- 2024年收音機(jī)電筒項(xiàng)目可行性研究報(bào)告
- 2024年搓泥刀盤(pán)項(xiàng)目可行性研究報(bào)告
- 心衰患者的容量管理中國(guó)專家共識(shí)-共識(shí)解讀
- 山東省濟(jì)南市2023-2024學(xué)年高一上學(xué)期1月期末考試數(shù)學(xué)試題(解析版)
- 文字學(xué)概要完整版本
- 手術(shù)室搶救工作制度
- ce自我聲明模板
- 鋼閘門(mén)監(jiān)理評(píng)估報(bào)告
- 高檔養(yǎng)老社區(qū)項(xiàng)目計(jì)劃書(shū)
- 蛇年銷(xiāo)售年會(huì)發(fā)言稿范文
- 國(guó)管局住房制度改革相關(guān)政策解答
- 無(wú)縫鋼管服務(wù)方案
- 排澇泵站養(yǎng)護(hù)方案范本
評(píng)論
0/150
提交評(píng)論