




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学课程实践(论文)摘 要该程序是一个利用java语言编写的简单的学生信息管理系统,具有良好的界面,使用人员能快捷简单地进行操作。本系统可服务于各需要对学生信息进行电子化管理的学校机构。共有有管理员,教师和学生三类人员的操作界面,管理员具有添加,修改,删除和查询教师信息的功能;教师具有添加,删除,修改和查询学生信息,录入,删除,修改,查询和排名学生成绩的功能;学生可以查询信息和成绩,也可以查看成绩排名。本报告主要介绍的是系统外部模块设计的部分,本报告共分四个章节,第一章为前言,第二章为系统需求分析,第三章为系统模块设计,第四章为程序代码。关键词:信息管理;java;模块设计目 录摘 要I1 前言11.1课题背景11.2选题说明11.2.1可行性分析11.2.2基本思路11.2.3作业目标21.3工作业绩21.3.1 个人主要工作21.3.2主要收获21.3.3自我评定31.3.4小组成员任务分工情况32. 系统需求分析42.1 开发环境和软件42.2 系统设计与功能分析42.3适用范围43. 系统模块详细设计53.1界面构建53.2用户登录模块53.3 各用户操作模块63.2.1 管理员操作模块63.2.2 教师操作模块83.2.3学生操作模块124主要程序代码144.1登陆界面与主功能界面:14向数据库添加新的学生信息:18结束语31参考文献3231沈阳理工大学课程实践(论文)1 前言1.1课题背景由于高等学校的快速发展,高校的规模也越来越大,学生数量和课程量都迅速地增长,管理上的手工操作不仅仅会耗费学生与工作人员大量的时间和精力,效率以及准确性也很低。如何使同学们方便、快捷、准确地选课,以及老师们对学生的相关信息的管理,已经成为一个重要的问题。利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。本课题就是针对便于学生信息管理的问题而设计的一个管理系统。1.2选题说明项目背景研究课题题目:学生信息管理系统。需要在两周的时间做出一个小型的java程序并应用实施,考虑到我们所掌握的知识和所学过的课程,同时贴合我们日常学生生活,我们小组讨论决定设计一个学生信息管理系统比较合适。这个系统是同时方便老师和学生日常对信息查询管理的系统。1.2.1可行性分析系统的性质为管理软件,因而数据库的设计与操纵是系统设计的核心。这里从两方面分析技术上的可行性。首先,对于java编程部分,java课已经开过,本人基本上掌握了对java编程上技巧。其次,数据库的课程也已经学过。并且本人运用了大量的时间对相关书籍的阅读以及上机实验,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵;因而该系统的实现在技术上是可行的。1.2.2基本思路 (1) 思考总体设计方案:总体结构和模块外部设计,功能分配。思考要实现整个程序大体需要的几个模块和其中用到的java语言基本操作符、语句等。(2) 画出总体设计方案流程图:用流程图的形式展现基本编程思想。(3) 流程图具体化:即将流程图中的几大模块的具体实现思考清楚,可以用流程图的形式展现并想好实现的关键代码。(4) 编辑程序代码:这是一个至关重要复杂而且需要反复修改的环节,在此环节中我发现总体设计和模块思想会存在很多问题,我会不断改进如何实现各函数功能,达到预期效果。(5)代码的调试:在java环境下输入代码并进行调试和正确运行。在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。(6)最后修饰:程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化增强程序的新意与可行性。1.2.3作业目标通过对学生信息管理系统的设计与开发,熟练使用所学的数据库与java课程知识,分析系统,设计系统。学会知识的实际运用与实施。掌握相关软件的运用。学会使用模块设计方法,数据库设计方法,代码设计方法,输入输出设计方法等。1.3工作业绩1.3.1 个人主要工作对系统的背景,需求和可行性进行分析,确定系统编写与实施的意义。思考总体设计方案:总体结构和模块外部设计,功能分配。思考要实现整个程序大体需要的几个模块和其中用到的java语言基本操作符、语句等。1.3.2主要收获经过了两周的课程实践,我学习到了很多东西,首先这是一次由自己亲身设计,编写,运行一套系统的难得经历。在对做需求分析的过程中,我了解了很多信息,发散了自己的思维。在对整体模块进行设计的过程中,我能做到认真仔细思考,尽力将各模块做到完整,清晰。在编程和调试的过程中,我体会到了编写程序的辛苦,和细节的重要性。为了更完整更好的完成课设,我查阅了很多的课外资料,也在查阅资料的过程中收获了更多的知识。1.3.3自我评定优 良 中 及格 不及格1.3.4小组成员任务分工情况本组为本次课程设计第四组,组长为:张蕊,小组所有成员分工如下:小组成员分工表学号姓名任务备注需求分析与系统模块详细设计数据库设计与系统实施组长2. 系统需求分析2.1 开发环境和软件(1) 操作系统:Windows 7 (2) 数据库软件:SQL Server 2005 (3) Java开发工具:Eclipse2.2 系统设计与功能分析 学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。该系统实现的大致功能:1 用户登陆界面。该界面可以选择使用者的身份,“管理员,教师,学生”。不同的身份有不同的操作界面和功能权限。ID号和密码输入正确即可登录。学生管理界面。提供了学生学籍信息的查询,相关科目的成绩查询和排名,修改登录密码等功能。2 教师管理界面。提供了对学生学籍信息的查询,添加,修改,删除;学生成绩的录入,修改,删除,查询班级排名。修改密码等功能。3 管理员管理界面。拥有最高的权限。允许添加教师信息和课程信息等。4 登录的用户信息分别存储在SQL数据库的“管理员信息表”, “教师信息表”, “学籍信息表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。保证了本学生管理系统的安全性。2.3适用范围 本学生信息管理系统适用于需要对学生信息进行电子化管理的各大学,中学,小学以及教辅机构等。3. 系统模块详细设计3.1界面构建1、为了便于各种操作,软件采用多窗口的模式。用户可在不同窗口进行相应操作(录入、查询、修改、删除、显示所有学生省信息)。 2、主窗口是用户进行各种操作的平台,具体操作在各个独立功能窗口中完成。 3、主窗口的主要功能位于菜单中,菜单为进入各个功能窗口的唯一通道。 4、当用户在进行个别录入、删除或错误输入操作时,会弹出相应对话框提示用户。如当录入成功或删除成功,弹出成功以及相应的简明信息提示当,当录入、删除失败以及输入不当是,弹出错误以及简单的错误原因提示用户重新操作。 5、界面布局尽量合理,各组件位置分布均匀美观。3.2用户登录模块(图3.1)3.3 各用户操作模块3.2.1 管理员操作模块 (图3.2)(1)添加教师信息 如果要修改的教师信息不存在,则 (图3.3)(2)修改教师信息 如果要修改的教师信息不存在,则 (图3.4)(3)删除信息修改 输入的教师信息不存在,则 (图3.5)(4)查询教师信息(图3.6)3.2.2 教师操作模块 (图3.7) (1)显示学生信息。 (图3.8)(2)添加学生信息新添加的信息会保存在学籍信息表中!如果输入的信息已经存在,则显示 如果输入的数据正确,则 (图3.9)(3)修改学生信息,输入正确则显示! (图3.10)(4) 删除学生信息 (图3.11)(5)录入学生成绩 (图3.12)(6)修改学生成绩 (图3.13)(7) 删除学生成绩 (图3.14)(8)查询学生成绩 (图3.15)(9)所有成绩排名 (图3.16)(10)更改登录密码 (图3.17)3.2.3 学生操作模块 (图3.18)(1) 显示学生信息(图3.19)(2) 查询个人成绩 (图3.20)(3)单科成绩排名 (图3.21)(4)全班成绩排名(图3.22)(5)修改密码 (图3.23)4主要程序代码由于篇幅有限,所以只附上主要功能的代码:4.1登陆界面与主功能界面:public class Sq1 extends JFrame implements ActionListener JFrame mm=new JFrame(您好!请您先登录!); JTextField t2=new JTextField(null,15); JTextField t4=new JPasswordField(null,15); public String zh=null; JRadioButton b=new JRadioButton(教师);JRadioButton b1=new JRadioButton(学生);JRadioButton b2=new JRadioButton(管理员); public void jiemian() mm.setSize(300,340); mm.setVisible(true); mm.setLocation(200,300); mm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel t1=new JLabel(ID号:); JLabel t3=new JLabel(密码:); JButton denglu2=new JButton(登录); denglu2.setContentAreaFilled(false); Container n=mm.getContentPane(); n.setLayout(null); t1.setBounds(42,125,75,35); t2.setBounds(80,125,150,35); t3.setBounds(40,180,75,35); t4.setBounds(80,180,150,35); denglu2.setBounds(102,245,70,30); n.add(t1);n.add(t2); n.add(t3); n.add(t4); n.add(denglu2); b.setBounds(130,85,70,30); b1.setBounds(70,85,70,30); b2.setBounds(190,85,70,30); ButtonGroup rg=new ButtonGroup(); b.setSelected(false); b1.setSelected(true); b1.setSelected(false); n.add(b); n.add(b2); rg.add(b2); rg.add(b); n.add(b1); rg.add(b1); b.setContentAreaFilled(false); b1.setContentAreaFilled(false); b2.setContentAreaFilled(false); denglu2.addActionListener(this); public void actionPerformed(ActionEvent e) JButton denglu2=(JButton)e.getSource();if(b.isSelected() zh=t2.getText(); String mima=t4.getText(); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery(select * from 教师信息表 where 教师ID=+zh+ and 登录密码=+mima+); r.last(); if(r.getRow()=1) mm.setVisible(false); r.beforeFirst(); while(r.next() JOptionPane.showMessageDialog( null ,r.getString(教师姓名)+老师!您好!欢迎登录教师管理系统! ) ; JFrame mmm=new JFrame();mmm.setSize(400,420); mmm.setVisible(true); mmm.setLocation(200,300); mmm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel aaa=new JLabel(学生信息管理:);JLabel aaa1=new JLabel(学生成绩管理:);JButton b1=new JButton(显示学生信息);b1.setBounds(40,45,140,30);JButton b2=new JButton(添加学生信息);b2.setBounds(200,45,140,30);JButton b3=new JButton(修改学生信息);b3.setBounds(40,90,140,30);JButton b4=new JButton(删除学生信息);b4.setBounds(200,90,140,30);JButton b5=new JButton(录入学生成绩);b5.setBounds(40,170,140,30);JButton b6=new JButton(修改学生成绩);b6.setBounds(200,170,140,30);JButton b7=new JButton(删除学生成绩);b7.setBounds(40,215,140,30);JButton b8=new JButton(查询学生成绩);b8.setBounds(200,215,140,30);JButton b9=new JButton(所有成绩排名);b9.setBounds(40,260,140,30);JButton b12=new JButton(单科成绩排名);b12.setBounds(200,260,140,30);JButton b10=new JButton(退出系统);b10.setBounds(60,325,100,30);JButton b11=new JButton(修改密码);b11.setBounds(220,325,100,30);aaa.setBounds(15,15,90,30); aaa1.setBounds(15,140,90,30);Container n=mmm.getContentPane();n.setLayout(null);J_ActionListener1 a1=new J_ActionListener1();J_ActionListener2 a2=new J_ActionListener2(); J_ActionListener3 a3=new J_ActionListener3(); J_ActionListener4 a4=new J_ActionListener4(); J_ActionListener5 a5=new J_ActionListener5(); J_ActionListener7 a7=new J_ActionListener7(); J_ActionListener8 a8=new J_ActionListener8(); J_ActionListener9 a9=new J_ActionListener9(); J_ActionListener10 a10=new J_ActionListener10(); J_ActionListener12 a12=new J_ActionListener12(); J_ActionListener11 a11=new J_ActionListener11(); n.add(b1);n.add(b2);n.add(b3);n.add(b4);n.add(b5);n.add(b6); n.add(b7);n.add(b8);n.add(b9);n.add(b10);n.add(aaa);n.add(aaa1);n.add(b11);n.add(b12);b1.addActionListener(a1);b2.addActionListener(a2); b3.addActionListener(a3);b4.addActionListener(a4);b5.addActionListener(a5);b6.addActionListener(a7);b7.addActionListener(a8);b8.addActionListener(a9); b9.addActionListener(a10); b11.addActionListener(a1)b12.addActionListener(a12); b10.addActionListener(new ActionListener() public void actionPerformed(final ActionEvent e) System.exit(0); );(JComponent) mmm.getContentPane().setOpaque(false); .URL url = Sq1.class.getResource(未命名.jpg);ImageIcon img = new ImageIcon(url);JLabel background = new JLabel(img);mmm.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE);background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight(); else JOptionPane.showMessageDialog( null ,教师ID或密码有误!请重新输入!) ; catch(Exception e1) e1.printStackTrace(); public static void main(String args) Sq1 app=new Sq1(); app.jiemian(); 向数据库添加新的学生信息:class DataBase / DataBase类public void Add(String xh,String xm,String xb,String bj,String jg,String mm) throws SQLException /为学籍管理系统添加新记录 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统); Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery(select * from 学籍信息表 where 学号=+xh+); r.last(); if(r.getRow()=1) JOptionPane.showMessageDialog( null ,该学号的学生信息已存在); Else if(xh.equals() /判断新输入的学号是否为空 JOptionPane.showMessageDialog( null ,学号不能为空); else s.executeUpdate( insert into 学籍信息表 values (+xh+,+xm+,+xb+,+ bj+,+jg+,+mm+); s.close();c.close(); JOptionPane.showMessageDialog( null ,html+学号:+xh+br+姓名:+xm+br +性别:+xb+br+班级号:+bj+br +籍贯:+jg+br +登录密码:+mm+br学生记录添加成功! ) ; catch (ClassNotFoundException e) JOptionPane.showMessageDialog( null , 数据添加异常! ) ; public void DisplayAll(ResultSet r) JFrame m=new JFrame(显示所有学生信息);m.setBounds(60,70,700,600);m.setVisible(true);JTextArea aa=new JTextArea();aa.setBounds(0,0,700,600);Container c1=m.getContentPane();c1.setLayout(null);c1.add(aa); try r.last(); aa.append(t学号+t+ 姓名+t+性别+t+班级+t+籍贯+n); r.beforeFirst(); while(r.next() aa.append(第+r.getRow()+行记录: ); aa.append(r.getString(学号); aa.append(t+r.getString(姓名); aa.append(t+r.getString(性别); aa.append(t+r.getString(班级); aa.append(t+r.getString(籍贯)+n); catch(Exception e) e.printStackTrace(); public void DisplayOne(String str22) throws Exception try Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery(select 学号 ,姓名,性别, 班级名称 as 班级,籍贯 from 学籍信息表 join 班级信息表 on 班级信息表.班级号=学籍信息表.班级号 where 学号=+str22+); /执行查询的SQL语句 r.last(); int cc=r.getRow(); if(cc=0) JOptionPane.showMessageDialog( null ,未查询到相关信息! ) ; elser.beforeFirst(); while(r.next() JOptionPane.showMessageDialog( null ,html+ 学号:+r.getString(学号)+br+姓名:+r.getString(姓名)+br+性别:+r.getString(性别)+br +班级:+r.getString(班级)+br+籍贯:+r.getString(籍贯)+br 已查询到相关记录! ) ; catch(Exception e) e.printStackTrace(); public void DeleteXh(String str11) /执行按学号删除学生记录的操作 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery(select * from 学籍信息表 where 学号=+str11+); r.last();if(r.getRow()=1) s.executeUpdate(delete from 学籍信息表 where 学号=+str11+); JOptionPane.showMessageDialog( null , 学生记录删除成功! ) ; else JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ); catch(Exception e) public void DeleteXm(String str13) /执行按姓名删除学生记录的操作 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery(select * from 学籍信息表 where 姓名=+str13+); r.last(); if(r.getRow()=1) s.executeUpdate(delete from 学籍信息表 where 姓名=+str13+); JOptionPane.showMessageDialog( null , 学生记录删除成功! ) ; else JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; catch(Exception e) public void UpdateXh(String xg,String str15,String str16) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery(select * from 学籍信息表 where 学号=+xg+); r.last(); if(r.getRow()=1) s.executeUpdate(update 学籍信息表 set +str15+=+str16+ where 学号=+xg+); /直接执行SQL语句修改 JOptionPane.showMessageDialog( null , 学生记录修改成功! ) ; elseJOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; ; catch(Exception e) JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; public void UpdateXm(String str18,String str19,String str20) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统);Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery(select * from 学籍信息表 where 姓名=+str18+); r.last(); if(r.getRow()=1) s.executeUpdate(update 学籍信息表 set +str19+=+str20+ where 姓名=+str18+); /直接执行SQL语句修改 JOptionPane.showMessageDialog( null , 学生记录修改成功! ) ; elseJOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; ; catch(Exception e) JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; public void AddScore(String xh,String kch, String cj) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); if(xh.equals()|kch.equals()|cj.equals() JOptionPane.showMessageDialog( null ,输入框不允许为空); else ResultSet r=s.executeQuery(select * from 成绩信息表 where 学号=+xh+ and 课程号=+kch+); r.last(); int i=Integer.parseInt(cj); if(r.getRow()=1) JOptionPane.showMessageDialog( null ,该学生该科成绩已存在); else s.executeUpdate( insert into 成绩信息表 values (+xh+,+kch+,+i+); JOptionPane.showMessageDialog( null ,html+学号:+xh+br +课程号:+kch+br+成绩:+cj+br 学生成绩添加成功! ) ; catch (Exception e) JOptionPane.showMessageDialog( null , 成绩输入的学号或者课程号不存在! ) ; public void UpdateScore(String xh,String kch,String cj) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection c=DriverManager.getConnection(jdbc:odbc:学生信息系统); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); if(xh.equals()|kch.equals()|cj.equals() JOptionPane.showMessageDialog( null ,输入框不允许为空); elseint i=Integer.parseInt(cj); ResultSet r=s.executeQuery(select * from 成绩信息表 where 学号=+xh+ and 课程号=+kch+); r.last();if(r.getRow()=1) s.executeUpdate(update 成绩信息表 set 成绩=+i+ where 学号=+xh+ and 课程号=+kch+); JOpt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨栏考试题及答案
- 中级财务会计(北方工业大学)知到智慧树答案
- 新安全生产法培训试题(含答案)
- 天津历年教师招聘考试教育公共基础知识真题及答案
- 实验动物助理技师模拟题+参考答案
- 中学生心理健康与道德教育知到智慧树答案
- 化妆品相关法规考核试题(附答案)
- 2025年度税务单证审核及报税合同
- 2025年食品级储存空间租赁合同
- 2025年度道路拓宽土方运输合同范本
- GB/T 21220-2024软磁金属材料
- 《数字媒体技术导论》全套教学课件
- 吉林大学介绍
- 卫浴设备安装技能的培训与认证
- NB-T+10488-2021水电工程砂石加工系统设计规范
- 废气处理工程协议
- SH/T 3158-2024 石油化工管壳式余热锅炉(正式版)
- QCSG1204009-2015电力监控系统安全防护技术规范
- 学校幼儿园消防安全风险自查检查指南
- 厚积落叶听雨声
- 《机械能及其转化》名师教案
评论
0/150
提交评论