版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
學(xué)生成績管理系統(tǒng)說明:該課程設(shè)計包含兩個部分,一個為純dos系統(tǒng)下的控制臺程序,用C++編寫;另一個為有界面的MFC項目。目錄純dos系統(tǒng)下的控制臺程序設(shè)計要求3設(shè)計分析3調(diào)試說明4源代碼8實驗總結(jié)21有界面的MFC項目1、設(shè)計內(nèi)容222、設(shè)計說明223、設(shè)計步驟224、運行演示275、實驗總結(jié)29純dos系統(tǒng)下的控制臺程序設(shè)計要求現(xiàn)有學(xué)生成績信息,內(nèi)容如下:
姓名
學(xué)號
語文
數(shù)學(xué)
英語
張明明
01
67
78
82
李成友
02
78
91
88
張輝燦
03
68
82
56
王露
04
56
45
77
陳東明
05
67
38
47請用C/C++編寫一系統(tǒng),實現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個方面:
功能要求:
(1)
信息維護:
要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實現(xiàn)學(xué)生信息數(shù)據(jù)的維護。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息
(2)
信息查詢:
要求:查詢時可實現(xiàn)按姓名查詢、按學(xué)號查詢
(3)
成績統(tǒng)計:
要求:A輸入任意的一個課程名(如數(shù)學(xué))和一個分數(shù)段(如60--70),統(tǒng)計出在此分數(shù)段的學(xué)生情況。
(4)
排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)其它要求:
(1)只能使用C/C++語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀
(2)至少采用文本菜單界面(如果能采用圖形菜單界面更好)
(3)學(xué)生可自動增加新功能模塊(視情況可另外加分)
(4)寫出課程設(shè)計報告,具體要求見相關(guān)說明文檔
設(shè)計分析(1)需求分析:該程序要能實現(xiàn)對學(xué)生成績信息的增加、刪除、修改,實現(xiàn)對學(xué)生按姓名查詢,按學(xué)號查詢顯示,對任意一個課程名和分數(shù)段的學(xué)生人數(shù)進行輸出并統(tǒng)計人數(shù),最好還要根據(jù)用戶的需求對學(xué)生成績排序。(2)系統(tǒng)性能要求:
系統(tǒng)安全、可靠;
功能齊全;
c.操作方便、界面友好;
d.易于維護和擴充。系統(tǒng)功能模塊:學(xué)生成績管理系統(tǒng)包括:增加、刪除、修改、顯示、信息查詢、成績統(tǒng)計、排序幾個部分構(gòu)成。學(xué)生成績管理系統(tǒng)(4)模塊框架圖
學(xué)生成績管理系統(tǒng)排序成績統(tǒng)計信息查詢顯示修改刪除增加排序成績統(tǒng)計信息查詢顯示修改刪除增加輸入課程名和升降序排序輸入課程名和分數(shù)段統(tǒng)計按姓名查詢按學(xué)號查詢輸入課程名和升降序排序輸入課程名和分數(shù)段統(tǒng)計按姓名查詢按學(xué)號查詢調(diào)試說明運行程序后,現(xiàn)出來一個簡潔的主界面。若沒有學(xué)生信息,顯示“這是一個新系統(tǒng),無學(xué)生信息,請先輸入?!比粢汛嬖趯W(xué)生信息,顯示“讀取學(xué)生信息成功!”一秒鐘后,自動切入主菜單界面。首先選擇1,增加學(xué)生信息。錄入學(xué)生信息后選擇4,顯示學(xué)生信息。選擇2,刪除學(xué)生信息,輸入要刪除的學(xué)生姓名,這里我輸入的是王露,顯示剩下幾位同學(xué)的信息。選擇3,修改學(xué)生信息,輸入要修改的學(xué)生姓名,然后輸入新的學(xué)生信息,這里我修改的是張明明,顯示修改后的學(xué)生信息。將張明明和王露的信息重新輸入。輸入5,信息查詢,出來選擇界面,“1、按學(xué)生姓名查找”、“2、按學(xué)生學(xué)號查找”,輸入1,運行結(jié)果如下:輸入2,運行結(jié)果如下:輸入6,排序,顯示選擇界面,用戶可根據(jù)需求選擇科目和升降序,這里我是按語文成績降序排序。輸入7,成績統(tǒng)計,用戶自行輸入要統(tǒng)計的科目和分數(shù)段進行統(tǒng)計。這里我統(tǒng)計的是英語成績在60—90的學(xué)生。源程序代碼#include<iostream>#include<fstream>#include<iomanip>#include<stdlib.h>#include<Windows.h>#include<conio.h>usingnamespacestd;#defineHEADER1"學(xué)生成績\n"#defineHEADER2"|姓名|學(xué)號|數(shù)學(xué)|語文|英語|總分|\n"#defineHEADER3"|||||||\n"classStudent//定義學(xué)生類{public: charname[20]; charid[20]; intmath; intchinese; intenglish; intsum; Student*next; voidinput(); voidReadFile(istream&in); voidshow();};voidStudent::input()//輸入學(xué)生信息函數(shù){ cout<<"\n\t\t請輸入:"<<endl<<endl; cout<<"\t\t姓名:"; cin>>name; cout<<"\t\t學(xué)號:"; cin>>id; cout<<"\t\t數(shù)學(xué)成績:"; cin>>math; cout<<"\t\t語文成績:"; cin>>chinese; cout<<"\t\t英語成績:"; cin>>english; sum=math+chinese+english;}voidStudent::ReadFile(istream&in)//讀取文件{ in>>name>>id>>math>>chinese>>english>>sum;}voidStudent::show()//輸出學(xué)生信息{ cout<<"|"<<setw(8)<<name<<"|"<<setw(6)<<id<<"|"<<setw(6)<<math<<"|"<<setw(6)<<chinese<<"|"<<setw(6)<<english<<"|"<<setw(7)<<sum<<"|"<<endl; cout<<"|||||||\n";}classStudentMassage//定義學(xué)生信息類,包含各項處理功能{public: StudentMassage(); ~StudentMassage(); voidShowMenu(); voidDisplay(); voidAddItem(); voidFind(); voidsave(); voidModifyItem(); voidRemoveItem(); voidSwap(Student*p1,Student*p2); voidSort(); intListCount(); intCount();private: Student*Head,*End; ifstreamin; ofstreamout; Student*FindItem(char*name); Student*FindId(char*id);};Student*StudentMassage::FindItem(char*name){ Student*p; for(p=Head;p->next!=End;p=p->next) if(!strcmp(p->next->name,name)) returnp; returnNULL;}Student*StudentMassage::FindId(char*id){ Student*p; for(p=Head;p->next!=End;p=p->next) if(!strcmp(p->next->id,id)) returnp; returnNULL;}StudentMassage::StudentMassage()//構(gòu)造函數(shù){ Head=newStudent; Head->next=newStudent; End=Head->next; in.open("sort.txt"); if(!in) cout<<"\n\t\t這是一個新系統(tǒng),無學(xué)生信息,請先輸入。"<<endl; else { while(!in.eof()) { End->ReadFile(in); if(End->name[0]=='\0') break; End->next=newStudent; End=End->next; } in.close(); cout<<"\n\t\t讀取學(xué)生信息成功!"<<endl; }}StudentMassage::~StudentMassage()//析構(gòu)函數(shù){ Student*temp; save(); for(temp;Head->next!=End;) { temp=Head->next; Head->next=Head->next->next; deletetemp; } deleteHead,End;}voidStudentMassage::ShowMenu()//顯示菜單{ cout<<"\n\n\t\t\t\t主菜單"<<endl<<endl<<endl; cout<<"\t\t****************************************"<<endl<<endl; cout<<"\t\t1、增加學(xué)生信息2、刪除學(xué)生信息"<<endl<<endl; cout<<"\t\t3、修改學(xué)生信息4、顯示學(xué)生信息"<<endl<<endl; cout<<"\t\t5、信息查詢6、排序"<<endl<<endl; cout<<"\t\t7、成績統(tǒng)計0、安全退出"<<endl<<endl; cout<<"\t\t****************************************"<<endl<<endl<<endl; cout<<"\t\t請選擇:";}voidStudentMassage::Display()//顯示學(xué)生信息{ Student*p; cout<<endl<<HEADER1<<HEADER2<<HEADER3; for(p=Head->next;p!=End;p=p->next) p->show(); cout<<"\n\n輸入任意字符,繼續(xù)"; getch();}voidStudentMassage::AddItem()//添加學(xué)生信息{ End->input(); End->next=newStudent; End=End->next; cout<<"\n\t\t添加成功!"<<endl; cout<<"\n輸入任意字符,繼續(xù)"; getch();}voidStudentMassage::Find()//查找函數(shù){ charname[20],id[20]; intx; Student*p=NULL; cout<<"\n\t\t****************************************\n"; cout<<"\t\t\t1、按學(xué)生姓名查找"<<endl; cout<<"\t\t\t2、按學(xué)生學(xué)號查找"; cout<<"\n\t\t****************************************\n\n\t\t請選擇:"; cin>>x; switch(x) { case1://按姓名查找 { cout<<"\n\t\t請輸入要查找的學(xué)生的姓名:"; cin>>name; if(p=FindItem(name)) { cout<<endl<<HEADER1<<HEADER2<<HEADER3; p->next->show(); cout<<"\n請輸入任意字符,繼續(xù)"; getch(); } else { cout<<"\t\t沒有找到該姓名的學(xué)生!"<<endl<<endl; cout<<"請輸入任意字符,繼續(xù)"; getch(); } }break; case2://按學(xué)號查找 { cout<<"\n\t\t請輸入要查找的學(xué)生的學(xué)號:"; cin>>id; if(p=FindId(id)) { cout<<endl<<HEADER1<<HEADER2<<HEADER3; p->next->show(); cout<<"\n請輸入任意字符,繼續(xù)"; getch(); } else { cout<<"\n\t\t沒有找到該學(xué)號的學(xué)生!"<<endl<<endl; cout<<"請輸入任意字符,繼續(xù)"; getch(); } }break; }}voidStudentMassage::ModifyItem()//修改學(xué)生信息{ charname[20]; Student*p=NULL; cout<<"\n\t\t請輸入要修改的學(xué)生的姓名:"; cin>>name; if(p=FindItem(name)) { cout<<"\n\t\t已找到該學(xué)生,請輸入新的信息!"<<endl; p->next->input(); cout<<"\n\t\t修改成功!"<<endl; Display(); } else { cout<<"\n\t\t沒有找到!"<<endl; cout<<"\n輸入任意字符!繼續(xù)"; getch(); }}voidStudentMassage::RemoveItem()//刪除學(xué)生信息{ charname[20]; Student*p=NULL,*temp=NULL; cout<<"\n\t\t請輸入要刪除的學(xué)生的姓名:"; cin>>name; if(p=FindItem(name)) { temp=p->next; p->next=p->next->next; deletetemp; cout<<"\n\t\t刪除成功!"<<endl; Display(); } else { cout<<"\t\t沒有找到!"<<endl; cout<<"輸入任意字符!繼續(xù)"; getch(); }}intStudentMassage::ListCount()//返回記錄的學(xué)生總數(shù){ Student*p; intn=0; if(!Head) return0; for(p=Head->next;p!=End;p=p->next) n++; returnn;}intStudentMassage::Count()//成績統(tǒng)計{ Student*p; intx,m,n,count=0; if(!Head) { cout<<"\n\t\t沒有資料可以統(tǒng)計!"<<endl; return0; } cout<<"\n\t\t****************************************\n"; cout<<"\t\t\t1、統(tǒng)計數(shù)學(xué)成績"<<endl; cout<<"\t\t\t2、統(tǒng)計語文成績"<<endl; cout<<"\t\t\t3、統(tǒng)計英語成績"; cout<<"\n\t\t****************************************\n"<<endl; cout<<"\t\t請選擇:"; cin>>x; switch(x) { case1: { cout<<"\n\t\t請輸入分數(shù)段的起始分數(shù)和終止分數(shù):"; cin>>m; cin>>n; for(p=Head;p!=End;p=p->next) if(p->math>=m&&p->math<=n) { count++; if(count==1) cout<<endl<<HEADER1<<HEADER2<<HEADER3; p->show(); } cout<<"\n\t\t數(shù)學(xué)成績在"<<m<<"--"<<n<<"的學(xué)生共有"<<count<<"人!\n"<<endl; cout<<"輸入任意字符,繼續(xù)"; getch(); };break; case2: { cout<<"\n\t\t請輸入分數(shù)段的起始分數(shù)和終止分數(shù):"; cin>>m; cin>>n; for(p=Head;p!=End;p=p->next) if(p->chinese>=m&&p->chinese<=n) { count++; if(count==1) cout<<endl<<HEADER1<<HEADER2<<HEADER3; p->show(); } cout<<"\n\t\t語文成績在"<<m<<"--"<<n<<"的學(xué)生共有"<<count<<"人!\n"<<endl; cout<<"輸入任意字符,繼續(xù)"; getch(); };break; case3: { cout<<"\n\t\t請輸入分數(shù)段的起始分數(shù)和終止分數(shù):"; cin>>m; cin>>n; for(p=Head;p!=End;p=p->next) if(p->english>=m&&p->english<=n) { count++; if(count==1) cout<<endl<<HEADER1<<HEADER2<<HEADER3; p->show(); } cout<<"\n\t\t英語成績在"<<m<<"--"<<n<<"的學(xué)生共有"<<count<<"人!\n"<<endl; cout<<"輸入任意字符,繼續(xù)"; getch(); };break; }}voidStudentMassage::Swap(Student*p1,Student*p2)//交p1,p2學(xué)生信息{ Student*temp=newStudent; strcpy(temp->name,p1->name); strcpy(temp->id,p1->id); temp->math=p1->math; temp->chinese=p1->chinese; temp->english=p1->english; temp->sum=p1->sum; strcpy(p1->name,p2->name); strcpy(p1->id,p2->id); p1->math=p2->math; p1->chinese=p2->chinese; p1->english=p2->english; p1->sum=p2->sum; strcpy(p2->name,temp->name); strcpy(p2->id,temp->id); p2->math=temp->math; p2->chinese=temp->chinese; p2->english=temp->english; p2->sum=temp->sum;}voidStudentMassage::Sort()//排序{ Student*p=NULL,*p1=NULL,*k=NULL; intn=StudentMassage::ListCount(),x,y; if(n<2) { cout<<"數(shù)據(jù)較少,無法排序!"<<endl; return; } cout<<"\n\t\t**************************************\n"; cout<<"\t\t\t1、按數(shù)學(xué)成績排序"<<endl; cout<<"\t\t\t2、按語文成績排序"<<endl; cout<<"\t\t\t3、按英語成績排序"<<endl; cout<<"\t\t\t4、按總分排序"; cout<<"\n\t\t**************************************\n\n\t請選擇:"; cin>>x; switch(x) { case1: { cout<<"\n\t\t**************************************\n"; cout<<"\t\t\t1、按降序排序\n\t\t\t2、按升序排序"; cout<<"\n\t\t**************************************\n\n\t請選擇:"; cin>>y; if(y==1) { for(p=Head->next;p!=End;p=p->next) for(k=p->next;k!=End;k=k->next) { if(p->math<k->math) StudentMassage::Swap(p,k); } cout<<"\n\t\t排序完成!"<<endl; StudentMassage::Display(); getch(); } else { for(p=Head->next;p!=End;p=p->next) for(k=p->next;k!=End;k=k->next) { if(p->math>k->math) StudentMassage::Swap(p,k); } cout<<"\n\t\t排序完成!"<<endl; StudentMassage::Display(); getch(); } };break; case2: { cout<<"\n\t\t**************************************\n"; cout<<"\t\t\t1、按降序排序\n\t\t\t2、按升序排序"; cout<<"\n\t\t**************************************\n\n\t請選擇:"; cin>>y; if(y==1) { for(p=Head->next;p!=End;p=p->next) for(k=p->next;k!=End;k=k->next) { if(p->chinese<k->chinese) StudentMassage::Swap(p,k); } cout<<"\n\t\t排序完成!"<<endl; StudentMassage::Display(); getch(); } else { for(p=Head->next;p!=End;p=p->next) for(k=p->next;k!=End;k=k->next) { if(p->chinese>k->chinese) StudentMassage::Swap(p,k); } cout<<"\n\t\t排序完成!"<<endl; StudentMassage::Display(); getch(); } };break; case3: { cout<<"\n\t\t**************************************\n"; cout<<"\t\t\t1、按降序排序\n\t\t\t2、按升序排序"; cout<<"\n\t\t**************************************\n\n\t請選擇:"; cin>>y; if(y==1) { for(p=Head->next;p!=End;p=p->next) for(k=p->next;k!=End;k=k->next) { if(p->english<k->english) StudentMassage::Swap(p,k); } cout<<"\n\t\t排序完成!"<<endl; StudentMassage::Display(); getch(); } else { for(p=Head->next;p!=End;p=p->next) for(k=p->next;k!=End;k=k->next) { if(p->english>k->english) StudentMassage::Swap(p,k); } cout<<"\n\t\t排序完成!"<<endl; StudentMassage::Display(); getch(); } };break; case4: { cout<<"\n\t\t**************************************\n"; cout<<"\t\t\t1、按降序排序\n\t\t\t2、按升序排序"; cout<<"\n\t\t**************************************\n\n\t請選擇:"; cin>>y; if(y==1) { for(p=Head->next;p!=End;p=p->next) for(k=p->next;k!=End;k=k->next) { if(p->sum<k->sum) StudentMassage::Swap(p,k); } cout<<"\n\t\t排序完成!"<<endl; StudentMassage::Display(); getch(); } else { for(p=Head->next;p!=End;p=p->next) for(k=p->next;k!=End;k=k->next) { if(p->sum>k->sum) StudentMassage::Swap(p,k); } cout<<"\n\t\t排序完成!"<<endl; StudentMassage::Display(); getch(); } };break; }}voidStudentMassage::save()//存入文件{ out.open("sort.txt"); for(Student*p=Head->next;p!=End;p=p->next) out<<p->name<<"\t"<<p->id<<"\t"<<p->math<<"\t"<<p->chinese<<"\t"<<p->english<<"\t"<<p->sum<<'\n'; out.close();}voidmain(){ intx; boolquit=false; cout<<"\n\n\n\n\n\n\n\n"; cout<<"\t\t********************************************"<<endl; cout<<"\t\t歡迎使用學(xué)生成績管理系統(tǒng)!"<<endl; cout<<"\t\t********************************************"<<endl; StudentMassageGrade; Sleep(1000); while(!quit) { system("cls"); Grade.ShowMenu(); cin>>x; switch(x) { case0:quit=true;break; case1:Grade.AddItem();break; case2:Grade.RemoveItem();break; case3:Grade.ModifyItem();break; case4:Grade.Display();break; case5:Grade.Find();break; case6:Grade.Sort();break; case7:Grade.Count();break; } }}實驗總結(jié)通過編寫這個純dos系統(tǒng)下的控制臺程序,加深了我對如何用C++編寫一個簡單的應(yīng)用程序的理解。首先要對程序的設(shè)計要求有一個比較明確的認識,然后系統(tǒng)分析與系統(tǒng)設(shè)計,最后是代碼設(shè)計與調(diào)試。程序?qū)崿F(xiàn)上,設(shè)計了簡單的菜單界面,將各個功能集中出來按照程序編寫原則,便于查詢。
有界面的MFC項目設(shè)計內(nèi)容以學(xué)生成績管理系統(tǒng)為例,通過對簡單應(yīng)用軟件系統(tǒng)的設(shè)計,編制、調(diào)試,實現(xiàn)簡單的增加、刪除、排序等運算,以學(xué)習(xí)應(yīng)用MFC庫類編寫對話框的原理,加深對C++類的學(xué)習(xí)及應(yīng)用。
設(shè)計說明(1)包含的功能有:查看、增加、刪除、排序、篩選等功能。
(2)通過access創(chuàng)建數(shù)據(jù)庫并通過OD方式訪問數(shù)據(jù)庫。
(3)編輯界面上的不同按鈕,創(chuàng)建消息映射,以完成相關(guān)的各種操作。3、設(shè)計步驟(1)創(chuàng)建數(shù)據(jù)庫:
打開access,并創(chuàng)建一個新表“學(xué)生成績管理表”,輸入相關(guān)內(nèi)容,選擇類型,完成后保存。(2)添加ODBC數(shù)據(jù)源打開“ODBC數(shù)據(jù)源管理器”
添加繼續(xù)(3)在MFC中創(chuàng)建相關(guān)按鍵并設(shè)置好屬性及ID為每個編輯框控件綁定數(shù)據(jù)源字段:選定一個編輯框控件,右鍵
|
建立類向?qū)?/p>
|
成員變量標(biāo)簽
|class
name列表下選CmySet(數(shù)據(jù)庫的結(jié)果集)。
先將Member中不好記的值通過“Delete
Variable”刪除,再“Add
Vairiables”添加,改為自己好記的的名字。將編輯框(在CmyView視圖類中)與上述變量綁定:Add
Variable…現(xiàn)在為功能鍵的實現(xiàn)進行操作
增加新的對話框(窗體)及創(chuàng)建類成員在查詢或過濾記錄時,需要一個對話框,用于添加信息,增加對話框的方法:
VC主菜單,“插入”|“資源”|“對話框(Dialog)類型”|
放一個“分組框控件”|
在分組框內(nèi)按圖設(shè)置編輯框和按鈕:建立類向?qū)?,分配好成員變量并綁定好為其中的“確定”按鈕添加代碼:voidCDlgADD::OnOK(){ //TODO:Addextravalidationhere UpdateData(); if(m_id==0||m_name==""||m_chinese==0||m_math==0||m_english==0||m_sum==0) { MessageBox("請完整輸入數(shù)據(jù)"); return; } CDialog::OnOK();}同理,添加查詢條件的對話框:建立類向?qū)砑庸δ苕I的代碼:
雙擊向?qū)е械摹癐DD_MY_FORM”,雙擊主界面的“增加記錄”按鈕voidCMyView::OnButton1Add(){ //TODO:Addyourcontrolno
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加盟烘焙店運營管理制度
- 房地產(chǎn)項目運營管理制度
- 大師工作室運營管理制度
- 餐廳運營物料管理制度
- 3s管理制度運營制度
- 大東鞋店運營部制度
- 供水運營工作管理制度
- 電子商務(wù)運營規(guī)章制度
- 德佑運營管理制度
- 萬科運營計劃管理制度
- 血液透析PDCA課件
- 電池回收廠房建設(shè)方案(3篇)
- 保函管理辦法公司
- 幼兒游戲評價的可視化研究
- 果樹賠賞協(xié)議書
- 基底節(jié)出血的護理查房
- 2025年廣東省中考物理試題卷(含答案)
- 金華東陽市國有企業(yè)招聘A類工作人員筆試真題2024
- 2025年6月29日貴州省政府辦公廳遴選筆試真題及答案解析
- 2025年湖南省中考數(shù)學(xué)真題試卷及答案解析
- DB32/T 3518-2019西蘭花速凍技術(shù)規(guī)程
評論
0/150
提交評論