版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、/需求分析:寫一個(gè)較為嚴(yán)謹(jǐn)?shù)膶W(xué)生選課系統(tǒng),實(shí)現(xiàn)學(xué)生可以選擇多門選課課程, 并將有效選課結(jié)果保存到數(shù)據(jù)庫。 學(xué)生需要登錄后,才能選課。讓學(xué)生可以在選 課系統(tǒng)通過多種方式查詢到要選的課程信息。/選課規(guī)如此:1每個(gè)學(xué)生可以選多門課程,屢次選課的總學(xué)分不能超過6學(xué)分;2、不能重復(fù)選擇一門課程;3、每一門課程的選課人數(shù)都有數(shù)量限制,當(dāng)某 門課程的選課名額滿時(shí),如此應(yīng)另選課程。 4、憑用戶名和密碼登錄,通過提交 某一課程號來選課/總體設(shè)計(jì)方案:建立三個(gè)類:登錄類register ,選課類studentChooseCourse, 數(shù)據(jù)庫工具類JDBCUtil ; 一個(gè)SQL腳本文件用于生成數(shù)據(jù)庫表結(jié)構(gòu)和初始
2、記錄, 以搭建數(shù)據(jù)庫環(huán)境。登錄類register類,負(fù)責(zé)對用戶的身份進(jìn)展驗(yàn)證;工具類JDBCUtil用于實(shí)現(xiàn)連 接,你可調(diào)用JDBCUtil的getConnection()方法等到。選課類studentChooseCourse用于,實(shí)現(xiàn)選課功能。其中包括幾個(gè)主要方法:1、actionPeformed(ActionEvent) 用于監(jiān)聽用戶“查詢"和“提交"操作, 并 負(fù)責(zé)調(diào)用各種方法對其進(jìn)展處理2、createSearchCourse()用于產(chǎn)生圖形用戶界面3、processBeforemit()用于對用戶的“提交"查找進(jìn)展驗(yàn)證,剔除無效的用戶 操作4、trymi
3、t()負(fù)責(zé)對有效的“提交"操作,進(jìn)一步處理,并將有效的操作結(jié)果時(shí) 時(shí)保存到數(shù)據(jù)庫,并更新數(shù)據(jù)庫原有信息/本程序用到的知識點(diǎn):數(shù)據(jù)庫連接 JDBC SQL建表、插入輸入、動(dòng)態(tài)查詢;圖 形用戶界面的產(chǎn)生以與處理查詢結(jié)果集并較好顯示;程序設(shè)計(jì)根底知識。/代碼如下:import java.awt.GridLayout;import java.awt.eve nt.Acti on Eve nt;import java.awt.eve nt.Actio nListe ner;import java.sql.*;import javax.swi ng.*;import javax.sw in g.
4、table.DefaultTableModel;import school.schoolPicture .J dbcUtil; public class Stude ntChooseCourse exte nds JFrame impleme ntsActi on Liste ner JTextField jtfSearch = new JTextField(11);String columnNames = new String " 課程 ID"," 課程名","學(xué)時(shí)","學(xué) 分","學(xué)期",&
5、quot;性質(zhì)"DefaultTableModel dtmSearch = new DefaultTableModel(colum nN ames, 27);JTable jtSearch = new JTable(dtmSearch);JScrollPa ne jspSearch = new JScrollPa ne(jtSearch);oBox jcbSearch = new oBox();JTextField jtfSelectedCourse = new JTextField(10);Connection con = n ull;PreparedStateme nt ps =
6、 nu II;ResultSet rs = null;private static Stri ng usrName;private static String passwrd;/在構(gòu)造方法中添加兩個(gè)參數(shù)。以便在"提交"時(shí),將學(xué)生的身份連同所選的課程, 一同記錄在學(xué)生選課表中。public Stude ntChooseCourse(Stri ng usrName, String passwrd) createSearchCourse();this.usrName = usrName;this.passwrd = passwrd;public Stri ng getUsrNam
7、e() return usrName;public void setUsrName(Stri ng usrName) this.usrName = usrName;public String getPasswrd() return passwrd;public void setPasswrd(Stri ng passwrd) this.passwrd = passwrd;/根據(jù)用戶的時(shí)間,做出相應(yīng)的反映public void actio nPeformed(Actio nEve nt e) Stri ng str = e.getActi onman d();/清空結(jié)果顯示區(qū)中的內(nèi)容,如果有的話
8、。if ("查詢".trim().equals(str) int k = 1;while (k < 10) for (int i = 1; i < 7; i+) jtSearch.setValueAt(null, k - 1, i - 1);k+;/調(diào)用下面的這個(gè)方法,在數(shù)據(jù)庫中進(jìn)展查找,并將結(jié)果顯示在表格中。searchAvailableCourse(); else if (" 提交".equals(str) processBeforemit()對用戶選課操作進(jìn)展有效性檢驗(yàn);/剔除無效操作:如輸入無效的課程號,或已經(jīng)選擇了某一課程,已經(jīng)選滿
9、的6學(xué)分等各種情況boolea n effect=processBeforemit();/如果課程存在,且該學(xué)生具有選擇該課程的資格,即effect為true,進(jìn)入正式提交程序(trymit()if(effect=true)trymit();/對用戶選課操作進(jìn)展有效性檢驗(yàn);public boolea n processBeforemit()/清空原結(jié)果顯示區(qū)中的內(nèi)容,如果有的話。int k = 1;while (k < 10) for (int i = 1; i < 7; i+) jtSearch.setValueAt(null, k - 1, i - 1);k+;/取得用戶輸入的
10、課程號Stri ng userl nput = jtfSelectedCourse.getText().toStri ng().trim().toLowerCase();/無效操作1:在數(shù)據(jù)庫中的coursexx表中查詢該課程號。如果不存在該課程, 給出提示。Stri ng sql = "select o from coursexx where o=?"boolea n flagCourseExist = false;try ps = con .prepareStateme nt(sql);ps.setStri ng(1, userl nput);rs = ps.execu
11、teQuery(); flagCourseExist = rs. next(); catch (Excepti on eC) eC.pri ntStackTrace();if (flagCourseExist) JOptionPane.showMessageDialog(null,"該課程不存在,請重新輸入");return false;/判斷該學(xué)生選修課已選課程的總學(xué)分是否小于6;/無效操作2:如果已有選課記錄,并且總學(xué)分大于6學(xué)分,該學(xué)生不能在選了PreparedStateme nt ps = nu II;sql = "select sum(grade)&qu
12、ot;+ "from (select x.s name , x.o,k.grade grade "+ "from coursexx k join choicesxx x "+ "on k.o=x.o and x.s name二?)result"Stri ng grade =n ull;try ps = con .prepareStateme nt(sql);ps.setStri ng(1, usrName);rs = ps.executeQuery();while (rs. next() grade = rs.getStri ng(1
13、);if(grade=二nu ll)grade二"0" catch (Excepti on rrr) rrr.pri ntStackTrace();System.out.pri ntl n(" 總學(xué)分:"+ grade);if (In teger.parse In t(grade) > 6) JOptio nPan e.showMessageDialog( null,"你已經(jīng)選滿 6 學(xué)分,系統(tǒng)將退出");this.setVisible(false);return false;/無效操作3:課程該學(xué)生已經(jīng)選擇了某課程,如此不能再
14、選該課程了。sql = "select * from choicesxx where sn ame=? and o=?"boolea n flag = false;try ps = con .prepareStateme nt(sql);ps.setStri ng(1, this.getUsrName();ps.setStri ng(2, userl nput);rs = ps.executeQuery();flag = rs.n ext(); catch (Excepti on eaa) eaa.pri ntStackTrace();if (flag) JOptionPa
15、ne.showMessageDialog(null,"你已經(jīng)選擇了該課程。請另選課程"); return false;/如果以上無效操作都不存在,如此返回true,意為這是一個(gè)準(zhǔn)有效操作return true;/對有效的提交操作的進(jìn)展處理public void trymit() / userInput為用戶輸入的課程ID.Stri ng userI nput = jtfSelectedCourse.getText().toStri ng().trim().toLowerCase();/ if course still available(cou nt<MAX_STUD
16、ENT),save result./ else if course n ot available,show Message to stude nt.PreparedStateme nt ps;String sql = "select (Max-selectedCo unt) as Rema in edCo unt "+ "from Coursexx where o=?"try ps = con .prepareStateme nt(sql);/取得學(xué)生ID或名字,將課程ID存入學(xué)生選課表choicesxxps.setStri ng(1, userI np
17、ut);rs = ps.executeQuery();ResultSetMetaData meta = rs.getMetaData();int cols = meta.getColu mnCoun t();int Rema in edCo unt = -1;while (rs. next() Rema in edCo unt = rs.getI nt(1);System.out.pri ntl n("Remai nedCo un t:" + Remai nedCo un t);/如果該課程還有選擇的名額,提示單項(xiàng)選課操作成功。if (RemainedCount >
18、0) / save stude ntld and courseId to stude nt-course table./ this.getUsrName();userl nputsql = "in sert into choicesxx values(?,?)"ps = con .prepareStateme nt(sql);ps.setStri ng(1, this.getUsrName();ps.setStri ng(2, userI nput);ps.executeUpdate();JOptio nPan e.showMessageDialog( null,"
19、;選課成功:"+ this.getUsrName()+ " 選了 " + userInput + "." + "" + "還有"+ RemainedCount+ "人可以選該課程。");/更新課程中已選該課程的人數(shù):即將可選該課程的人數(shù)減去1個(gè)人。sql = "update CourseXX set selectedCou nt=selectedCou nt+1 where o=?"ps = con .prepareStateme nt(sql);ps.setStr
20、i ng(1, userI nput);ps.executeUpdate();con. mit();/如果該課程已經(jīng)沒有選擇名額,提示重新選課 catch (Excepti on es) es.pri ntStackTrace();try con .rollback。; catch (Excepti on ey) ey.pri ntStackTrace();/對用戶查詢課程信息,進(jìn)展處理,并顯示查詢結(jié)果public void searchAvailableCourse() /讓程序自動(dòng)選擇連接的是 Oracle或SqlServer.if (JDBCUtil.getConnection() !=
21、 null) System.out.pri ntln(JDBCUtil.getCo nn ectio n();con = JDBCUtil.getCo nn ectio n(); else con = JdbcUtil.getC onn ecti on();/userI nput取得用戶輸入的信息,selectedItem取得用戶選擇的查詢方式Stri ng userI nput = jtfSearch.getText().toStri ng().trim().toLowerCase();Stri ng selectedItem = jcbSearch.getSelectedltem().to
22、Stri ng().trim();System.out.pri ntln ("User search:" + userI nput);System.out.pri ntl n("selectedltem:" + selectedItem);Stri ng sql = nu II;/按用戶查詢方式,如按課程名,課程ID或?qū)W時(shí)的查詢進(jìn)展處理;并在表格中 實(shí)現(xiàn)結(jié)果try if (" 課程名".equals(selectedItem) sql = "select o,ame,hour,grade,term,isNeed from C
23、ourseXXwhere ame = ?" ps = con .prepareStateme nt(sql);ps.setStri ng(1, userI nput); else if (" 課程 ID".equals(selectedltem) sql = "select o,ame,hour,grade,term,isNeed from CourseXX where o = ?" ps = con .prepareStateme nt(sql);ps.setStri ng(1, userI nput); else if (" 學(xué)時(shí)
24、".equals(selectedItem) sql = "select o,ame,hour,grade,term,isNeed ps = con .prepareStateme nt(sql);ps.setInt(1, Integer.parseInt(userInput); else if (" 學(xué)分".equals(selectedItem) sql = "select o,ame,hour,grade,term,isNeed ps = con .prepareStateme nt(sql);ps.setInt(1, Integer.p
25、arseInt(userInput); else if (" 學(xué)期".equals(selectedItem) sql = "select o,ame,hour,grade,term,isNeed ps = con .prepareStateme nt(sql);ps.setStri ng(1, userI nput);System.out.pri ntln( sql);rs = ps.executeQuery();con. mit();ResultSetMetaData meta = rs.getMetaData(); int cols = meta.getCo
26、lu mnCoun t();Stri ng result = n ull;int k = 1;boolea n flag = false;/將查詢結(jié)果以表格的形式顯示出來from CourseXXwhere hour = ?"from CourseXXwhere grade = ?"from CourseXXwhere term = ?"while (rs. next() for (i nt i = 1; i <= cols; i+) result = rs.getStri ng(i); System.out.pri ntln( result); jtSea
27、rch.setValueAt(result, k - 1, i - 1);k+;flag = true;/如果查詢結(jié)果集為空,提示用戶沒有該課程if (flag = false) JOptio nPan e.showMessageDialog( null," return;該課程不存在,請重新輸入"); catch (Excepti on ex) ex.pri ntStackTrace(); try con .rollback。; catch (Excepti on er) er.pri ntStackTrace();/產(chǎn)生圖形用戶界面,以便用戶操作public void
28、createSearchCourse() this.setLayout( new GridLayout(3, 1);JPa nel jp1 = new JPa nel();jp1.setLayout( new GridLayout(4, 1);JPa nel jp2 = new JPa nel();JPa nel jp3 = new JPa nel();JPanel jp10 = new JPanel();JPanel jp11 = new JPanel();JPanel jp12 = new JPanel();JPanel jp13 = new JPanel();JLabel jlSearc
29、h = new JLabel("學(xué)生選課系統(tǒng) ”); jp11.add(jlSearch);jcbSearch.addltem(new String("課程名"); jcbSearch.addltem(new String("課程 ID"); jcbSearch.addltem(new String("學(xué)時(shí)"); jcbSearch.addltem(new String("學(xué)分"); jcbSearch.addltem(new String("學(xué)期"); jp12.add(jtfSea
30、rch);jp12.add(jcbSearch);utton OK = new utton(” 查詢");OK.addActi on Liste ner(this); OK.setSize(90, 20);jp13.add(OK);jp1.add(jp10);jp1.add(jp11);jp1.add(jp12);jp1.add(jp13);jp2.add(jspSearch);JLabel jlSelectedCourse = new JLabel('請輸入課程 ID:"); utton SelectedCourse = new utton("提交&qu
31、ot;);SelectedCourse.addAct ion Liste ner(this); jp3.add(jlSelectedCourse);jp3.add(jtfSelectedCourse);jp3.add(SelectedCourse);this.add(jp1);this.add(jp2);this.add(jp3);this.setVisible(true);this.setSize(485, 600);/當(dāng)某學(xué)生有效登錄后,啟動(dòng)程序?qū)W(xué)生的登錄信息也傳過來,以便保存選課操作時(shí)使用public static void main( Stri ng args) /Stri ng u
32、srName = "xulia ng"/Stri ng passwrd = "123"new Stude ntChooseCourse(usrName, passwrd);/-以下為搭建學(xué)生選課系統(tǒng)的SQLW本文件。只需運(yùn)行一次,就可有完整的 數(shù)據(jù)庫表結(jié)構(gòu)和初始記錄。/該腳本針對SQLserver ; Oracle的SQL腳本類似,只需將將數(shù)據(jù)類型如varchar 改為 varchar2,int改為 number等-table1: registerXU 登錄表drop table registerXu;create table registerXu (i
33、d varchar(20),userName varchar(20),passWord varchar(20),ide ntify varchar(20);in sert into registerXu values('s001','xulia ng','123','學(xué)生');in sert into registerXu values('s002','xulia ng2','1234','學(xué)生');in sert into registerXu values(
34、9;j001','jack','12345','學(xué)生');in sert into registerXu values('001','user','user','學(xué)生');in sert into registerXu values('z001','zlm','corejava','教師');-Stri ng sql = "select * from registerXu " -+ "
35、;where userName=? and passWord=? and ide ntify=?"-table 2:Coursexx 課程表drop table Coursexx;create table Coursexx(o varchar(20) primary key,ame varchar(20),hour Int, grade In t,term varchar(20),isNeed varchar(20), selectedCo unt In t ,MaxIn t);insert into Coursexxvalues('c001','CoreJa
36、va',50,5,'201007','NoNecessary',0,50);insert into Coursexxvalues('c002','XML',20,2,'201008','NoNecessary',0,40);insert into Coursexxvalues('c003','HIBERNATE',20,4,'201008','NoNecessary',0,30);insert into Coursexxvalu
37、es('c004','SQL',20,4,'201006','NoNecessary',0,5);insert into Coursexxvalues('c005','JDBC',20,2,'201008','NoNecessary',0,3);insert into Coursexx values('c006','AJAX',20,2,'201010','NoNecessaiy',0,1);insert
38、 into Coursexxvalues('c007','JSP',100,8,'201009','NoNecessary',0,1-sql = "select o,ame,hour,grade,term,isNeed from CourseXXwhere ame= ?"-table 3:學(xué)生表-drop table stude ntxx;create table studentxx(sidvarchar(20),sname varchar(20) primary key,sexvarchar(20),birt
39、hday varchar(20),className varchar(20), image varchar(20);insert into stude ntxxvalues('s001','xulia ng','male','19901124','sd1003','good');insert into stude ntxxvalues('s002','xulia ng2','male','19851124','sd0910
40、9;,'good');insert into stude ntxxvalues('j001','jack','male','19881124','sd1003','good');insert into stude ntxxvalues('001','user','male','19901124','sd1005','good');insert into stude ntxxvalues(&
41、#39;s003','sisi','female','19880124','sd1007','good');insert into stude ntxxvalues('as003','crystal','female','19880124','asd1007','good');-table 4:choices學(xué)生選課表drop table choicesxx;create table choicesxx(sn a
42、me varchar(20) refere nces stude ntxx(s name),o varchar(20) refere nces coursexx(o);-判斷某一個(gè)學(xué)生已經(jīng)選的課程的總學(xué)分是否小于6分/ 用戶登錄類/用途:驗(yàn)證用戶是否具有登錄系統(tǒng)的資格 package school;import javax.swi ng.*;import school.schoolPicture.JdbcUtil;import java.sql.*;import java.awt.*;import java.awt.eve nt.*;public class Register impleme
43、nts Action Liste ner JFrame jf = new JFrame(”學(xué)生成績管理與選課系統(tǒng)");JTextField jtfUserName = new JTextField(10);JPasswordField jpfPassWord = new JPasswordField(10);oBox ide ntify = new oBox();/con structorpublic Register() CreateRegisterGUI();/ deal with user action, when user check:"登錄","
44、;取消"or "注冊"public void actio nPerformed(Actio nEve nt e) Stri ng str = e.getActi onman d();if (str.equalsIg no reCase(”登錄")/當(dāng)用戶點(diǎn)擊登錄時(shí),調(diào)用以下方法去數(shù)據(jù)庫做匹配processLogi n(); else if (str.equalsIg noreCase(”取消")jtfUserName.setText("");jpfPassWord.setText(""); else if
45、 (str.equalsIg noreCase(”注冊")new CreateLogi n();/當(dāng)用戶點(diǎn)擊登錄時(shí),調(diào)用以下方法去數(shù)據(jù)庫做匹配public void processLogi n() / create conn ecti on to the database.Connection con = n ull;/ Co nn ection con = JDBCUtil.getCo nn ectio n();/讓程序自動(dòng)連接相應(yīng)的數(shù)據(jù)庫,以防止連接數(shù)據(jù)庫時(shí)頻繁改動(dòng)連接程序if (JdbcUtil.class = null) /連接達(dá)內(nèi)Oracle數(shù)據(jù)庫con = JdbcUti
46、l.getC onn ecti on(); else /連接本地SQLSERVER據(jù)庫con = JDBCUtil.getCo nn ectio n();/ write sql sentenceStri ng usrName = jtfUserName.getText().trim();String passwrd = new String(jpfPassWord.getPassword().trim();Stri ng ide nt = ide ntify.getSelectedltem().toStri ng().trim();Stri ng sql = "select * fr
47、om registerXu "+ "where userName=? and passWord=? and ide ntify=?"System.out.pri ntl n(usrName + ":" + passwrd + ":" + ide nt);/ create object of PreparedStateme nttry PreparedStateme nt ps = con .prepareStateme nt(sql);/ Prepare parameter for the sqlps.setStri ng(
48、1, usrName);ps.setStri ng(2, passwrd);ps.setStri ng(3, ide nt);/ send parameter to piler to pile.ResultSet rs = ps.executeQuery();Strin gBuffer sb = new Strin gBuffer("");ResultSetMetaData meta = rs.getMetaData();int cols = meta.getColu mnCoun t();/you can use ano ther simple way to check
49、whether the people has records in database:/define a boolean flag=false, if has record change it/to true;otherwise, if flag=flase,showMessage("l nput ERROR")while (rs. next() for (i nt i = 1; i < cols; i+) sb.appe nd(meta.getColu mn Name(i);sb.appe nd(rs.getStri ng(i);if (sb.le ngth() &
50、lt; 1) JOptionPane.showMessageDialog(null,"用戶名或密碼錯(cuò)誤"); else if (sb.le ngth() >= 1) if (ide nt.equals("stude nt") /if he or she is a stude nt, and usrName-passwrd alright, the n go to學(xué)生選課系統(tǒng)new StudentChooseCourse(usrName, passwrd);jf.setVisible(false);/ new Stude ntE ntered();
51、else if (ide nt.equals("teacher") / new TeacherE ntered(usrName,passwrd);new TeacherE ntered();jf.setVisible(false); else if (ide nt.equals("adm in") / go to admi ni strator pages. catch (Excepti on er) er.pri ntStackTrace();/產(chǎn)生圖形用戶界面public void CreateRegisterGUI() jf.setLayout (
52、new GridLayout(5, 1);JPa nel jp1 = new JPan el();JLabel jl1 = new JLabel("學(xué)生成績管理系統(tǒng)");jp1.add(jl1);jf.add(jp1);JPa nel jp2 = new JPan el();JLabel jl2 = new JLabel(" 用戶名:");jp2.add(jl2);jp2.add(jtfUserName);jf.add(jp2);JPa nel jp3 = new JPan el();/ JPasswordField jpfPassWord = new JPasswordField(10); JLabel passWord = new JLabel(" 密 碼:");jp3.add(passWord);jp3.add(jpfPassWord);jf.add(jp3);JPa nel jp4 = new JPa nel();JLabel jl4 = new JLabel(&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024車輛運(yùn)輸合同標(biāo)準(zhǔn)范本
- 2024退學(xué)協(xié)議書:針對研究生院學(xué)員退學(xué)及科研經(jīng)費(fèi)退還合同3篇
- 2024牛棚養(yǎng)殖場市場拓展與銷售渠道建設(shè)承包合同范本3篇
- 2024版智慧城市建設(shè)項(xiàng)目合作合同
- 2024年公務(wù)員考試五華縣《行政職業(yè)能力測驗(yàn)》預(yù)測試題含解析
- 2025年度出租車充電樁建設(shè)與運(yùn)營管理合同3篇
- 2024面料原產(chǎn)地認(rèn)證購銷合同2篇
- 2025年度在線招聘平臺用戶隱私保護(hù)合同3篇
- 2024版車輛轉(zhuǎn)讓協(xié)議書范文大全
- 2024版學(xué)校食堂綜合承包協(xié)議模板解析版B版
- 職業(yè)暴露處理方法與報(bào)告流程圖
- 蘇教版一年級上冊《科學(xué)》期末知識點(diǎn)匯總 重點(diǎn)知識梳理 總復(fù)習(xí)【版 】課件
- 青島版小學(xué)科學(xué)三年級下冊課程綱要
- 目標(biāo)、計(jì)劃與行動(dòng)課件
- 動(dòng)態(tài)變形模量Evd試驗(yàn)記錄
- 2020-2021學(xué)年浙江省溫州市八年級(上)期末數(shù)學(xué)試卷(附答案詳解)
- 蔬菜籽種采購清單
- 工期定額-民用建筑
- 低壓電能表安裝作業(yè)指導(dǎo)書
- 能見度不良時(shí)船舶航行須知
- 軟膠囊的制備
評論
0/150
提交評論