Jave毕业课程设计

上传人:h****M 文档编号:74462604 上传时间:2022-04-13 格式:DOC 页数:27 大小:847.50KB
收藏 版权申诉 举报 下载
Jave毕业课程设计_第1页
第1页 / 共27页
Jave毕业课程设计_第2页
第2页 / 共27页
Jave毕业课程设计_第3页
第3页 / 共27页
资源描述:

《Jave毕业课程设计》由会员分享,可在线阅读,更多相关《Jave毕业课程设计(27页珍藏版)》请在装配图网上搜索。

1、( 此文档为word 格式,下载后您可任意编辑修改!)课程设计课程名称Java 程序设计学生姓名谭杰学号专业班级信管 1122指导教师罗毅辉2013年 12月 30日IJAVA课程设计一、实验目的通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。信管11 级学生的课程设计主要是Java 语言程序设计的实现。通过该课程设计,可以将学生课堂上掌握的理论知识与处理数据的业务相结合,以检验我们掌握知识的宽度、深度及对知识的综合运用能力。二、实验环境电脑型号:联想G470 笔记本电脑操作系统 : Windows7 旗舰版( 64 位)处理器: Intel(R)Core(T

2、M)i3-2330M CPU 2.50GHz 2.50 GHz双核处理器内存: 2.00GB软件: Eclipse7.1、JSDK1.8三、实验内容内容一:设计一个计算器,利用它可以进行简单的四则运算(加、减、乘、除、开方)等,但仅限于十进制下,此外还可以进行(八进制,十进制,十六进制)之间的相互转换。(必做)知识点:掌握图形用户界面设计;掌握基本类的设计与使用;掌握事件处理机制;掌握使用异常处理方法。内容二: 利用 JAVA的输入输出流,打开文件iris.txt,求出该文件每列的总和及平均值。(注意观察iris.txt文件的分割符)(必做)知识点:掌握使用 JAVA的输入输出流掌握使用 St

3、ring类以及和基本数据类型的转换。内容三:利用蒙特卡罗仿真逼近PI 的值。(必做)知识点:掌握使用 JAVA随机采样掌握使用 String类以及和基本数据类型的转换。内容六:设计一个记事本,菜单中要求有文件,编辑,和帮助。文件中有新建、打开、保存和退出;编辑中有剪切、复制和粘贴;帮助中显示开发人和版本信息。知识点:掌握图形用户界面设计;掌握基本类的设计与菜单设计;掌握事件处理机制;掌握使用异常处理方法。2四、算法分析、设计与描述1. 算法分析和设计内容一:算法分析:首先,设计对输入数字的进行转换,不进行转换操作则默认为十进制,然后进行符号转换操作以及正弦函数等, 接着可以进行加减乘除等运算,

4、 添加“ C”、“CE”按钮进行退格和清空操作,清空操作显示“ 0” ,最后在帮助中显示开发人信息。功能及界面设计:功能 1:按下数字键在液晶平上会显示数字,这时计算器最基本的功能。功能 2:输入数字后,点击进制转换 , 可转换成二、八进制;按“ exp”“ log ” 键,则进行 e 次幂运算和自然对数运算;按“ tan ”“cos”“sin ”则进行三角函数运算。功能 3:按“ +”“- ”“ * ”“”分别进行四则运算功能 4:在任何时候按下“ +- ”键,计算器文本框上的数字置反号。功能 5:第一次按下“运算”键,再按下数字键,将重新输入第二个数字。再次按下“运算”键,将算出前两个数字

5、运算的结果,然后按下数字,将又重新输入新的数字。功能 6:按下“ C”键向前退格,按下“CE”键,数据被全部清除功能 7:按下“帮助”键查看制作人信息功能 8:按下“选项”键,点“退出”键退出内容二:此程序主要是实现对输入的数字字符串进行统计(列的均值与和)。在算法设计上,运用 java 程序输入输出流,以及调用Stringtokennizer类来实现分词并按水平制表方式读取文本内容,调用BufferedReader 类中的 readLine ()方法读取文本行,这样就方便对文本行的统计(注:文本行与列等长)。其次用两个数组分别存放列的均值和列的和。在统计输入的字符串时,可以定义相应的统计计数

6、变量,对输入的字符串按每一个字符截取进行判断。在判定时,若符合条件则在相应的统计数上加 1,若不符则直接跳至下一个判断模块。整个程序就实现了对文本内容的行列统计功能。内容三:此程序主要是利用蒙特卡罗仿真逼近PI 的值。在算法设计上,先用Scanner 来让用户输入一个随机数的基数,用Math 类调用其类方法random() 产生随机数,并3用 Math 类的 pow()方法判断该随机数是否落在指定的范围内,然后统计在范围内的数的个数,最后通过随机数和基数算出圆面积从而算出Pi 的值。内容六:算法分析:此程序应当符合大众化,因为记事本是一个常用程序,因此我们常用计算机系统带的记事本进行设计本程序

7、,其功能有以下几个方面:(1) “菜单”中有“文件” ,“编辑”,“帮助”三个主菜单。(2) “文件”中有“新建” , “打开” , “保存” , “退出”四个子菜单:分别用于新建文件,打开文件,保存文件,退出记事本。(3) “编辑”中有“剪切” , “复制”,“粘贴”三个子菜单:用于剪切文字,复制文字,粘贴文字。(4) “帮助”菜单中有“关于”用来显示作者信息。2算法描述(可插入流程图)内容一:用 switch 语句判断点击的是什么类型的按钮,是数字键则接受数字到输入框,是运算符则执行相应的运算,加减乘除算法的描述 : 用 switch 语句判断点击的是何种算法,定义一个变量 mark 存放

8、运算符,实现对应的运算。进制转换算法描述:用 if 语句判断选中的进制对应的按钮(默认是十进制) ,并对该事件做对应的按钮处理,用变量 length 判断上次选中的是哪个进制的按钮,用来进行相互转换,然后进行运算。假如是非十进制,则先转化成十进制,然后再转化成需要的进制。内 容二 :程 序 应 用JAVA 的输 入 输 出流 , 打 开 文 件iris.txt,调 用StringTokenizer类创建一个分析器按照并按水平制表的分词方法读取文件中的内容,调用 BufferedReader类中的方法 readLine 读取文本行。再利用两个数组存放文件中列的和以及各列的平均值,这里用count

9、 记录读取的行数, sumk 存放各列的和, sumkcount存放各列的平均值(注意输入的为长宽相等的表格形式,内容为数值)。内容三:用一个for循环来产生随机数,并判断是否在圆内,在圆内i+1 ,直到循环完毕,输出i 的个数,用 0.05*(double)im输出 Pi 的值。内容五:第一步:程序通过创建一个窗口,将文本区和菜单条添加到窗口上。第二步 : 以窗口作为监视器对部分菜单项监听,通过实现这些按钮的actionPerformed()方法,来实现文件的打开,保存,编辑,复制粘贴,及显示开发人的版本信息等。 (注意:这里是通过 JOptionPane.showMessageDialog

10、 ()方法来开启一个面板显示开发人的版本信息)五、程序设计1 程序设计的基本思路内容一:41). 通过继承 JFrame 类和实现监听器接口ActionListener和 ItemListener 接口来完成窗口的布局管理和个组件相对应的事件。2).定义一个窗口作为容器来合理安置一个标签、五个面板和三个同组的选择框等组件 ,标签用来显示输入的数据和运算的结果,第一个面板用来存放数字键、“.”和“ =”。第二个面板用来存放四则运算的运算符,第三个面板用来存放“返回”、“清除”和“ sqrt”。内容二:1). 利用 java 输入输出流,来打开记事本,调用StringTokenizer类创建一个分

11、析器按照并按水平制表的分词方法读取文件中的内容,调用 BufferedReader 类中的方法 readLine 读取文本行。2). 用两个数组分别存列的均值和列的和并输出结果并用 try.catch 语句来捕捉文本读取时触发的错误事件。内容三:输入要测试的基数,然后调用 random() 方法来产生 01 的随机数,通过判断产生的随机数是否符合园内的方程,并进行计数,再由该数除以基数,得到仿真圆的面积,再除以圆半径的平方得出仿真的Pi 值。内容六:1). 基于内容五按照要求将一个带有三个菜单的菜单条添加到窗口顶端,再将一个文本区添加到窗口中央,三个菜单各自添加相应的菜单项。2). 通过对菜单

12、项添加窗口作为监视器,然后实现 actionPerformed 方法来实现实现文件的打开,保存,编辑,复制粘贴,及显示开发人的版本信息等。2. 程序代码内容一:publicclassCalculatorextendsFrame implementsActionListener,WindowListenerprivate Container container;private GridBagLayout layout;private GridBagConstraints constraints;private JTextField displayField;计算结果显示区private Stri

13、ng lastCommand;保存 +,-,*,=命令 0private double result;保存计算结果private boolean start;判断是否为数字的开始private JMenuBar menubar;private JMenuItem m_exit,m2_ejz,m2_bjz;private Dialog dialog;private Label label_dialog;privateJButtonbutton_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_52,button_3,but

14、ton_4,button_5,button_6,button_7,button_8,button_9,button _0,button_plus,button_minus,button_multiply,button_divide,button_point,button_equal,button_log,button_tan,button_cos,button_sin,button_exp;public Calculator()构造方法设置布局、为按钮注册事件监听器super(Calculator);this.setLocation();this.setSize();this.setResiz

15、able(true);this.setLayout(new GridLayout(7,1);this.addmyMenu(); 调用成员方法添加菜单 displayField=new JTextField(30);this.add(displayField);displayField.setEditable(true);start=true;result=0;lastCommand = =;JPanel panel0=new JPanel();panel0.setLayout(new GridLayout();JPanel panel1=new JPanel();panel1.setLayou

16、t(new GridLayout();this.add(panel1);button_sqrt=new JButton(sqrt);button_plusminus=new JButton(+-);button_exp=new JButton(exp);button_CE=new JButton(C);button_cancel=new JButton(CE);JPanel panel2=new JPanel();panel2.setLayout(new GridLayout();this.add(panel2);button_7=new JButton(7);button_8=new JBu

17、tton(8);button_9=new JButton(9);button_log=new JButton(log);button_divide=new JButton();JPanel panel3=new JPanel();6panel3.setLayout(new GridLayout();this.add(panel3);button_4=new JButton(4);button_5=new JButton(5);button_6=new JButton(6);button_tan=new JButton(tan);button_multiply=new JButton(*);JP

18、anel panel4=new JPanel();panel4.setLayout(new GridLayout();this.add(panel4);button_1=new JButton(1);button_2=new JButton(2);button_3=new JButton(3);button_cos=new JButton(cos);button_minus=new JButton(-);JPanel panel5=new JPanel();panel5.setLayout(new GridLayout();this.add(panel5);button_0=new JButt

19、on(0);button_point=new JButton(.);button_equal=new JButton(=);button_sin=new JButton(sin);button_plus=new JButton(+);panel1.add(button_sqrt);panel1.add(button_plusminus);panel1.add(button_exp);panel1.add(button_CE);panel1.add(button_cancel);panel2.add(button_7);panel2.add(button_8);panel2.add(button

20、_9);panel2.add(button_log);panel2.add(button_divide);panel3.add(button_4);panel3.add(button_5);panel3.add(button_6);panel3.add(button_tan);panel3.add(button_multiply);panel4.add(button_1);panel4.add(button_2);panel4.add(button_3);panel4.add(button_cos);panel4.add(button_minus);panel5.add(button_0);7

21、panel5.add(button_point);panel5.add(button_equal);panel5.add(button_sin);panel5.add(button_plus);button_sqrt.addActionListener(this);button_plusminus.addActionListener(this);button_exp.addActionListener(this);button_CE.addActionListener(this);button_cancel.addActionListener(this);button_7.addActionL

22、istener(this);button_8.addActionListener(this);button_9.addActionListener(this);button_log.addActionListener(this);button_divide.addActionListener(this);button_4.addActionListener(this);button_5.addActionListener(this);button_6.addActionListener(this);button_tan.addActionListener(this);button_multip

23、ly.addActionListener(this);button_1.addActionListener(this);button_2.addActionListener(this);button_3.addActionListener(this);button_cos.addActionListener(this);button_minus.addActionListener(this);button_0.addActionListener(this);button_point.addActionListener(this);button_equal.addActionListener(t

24、his);button_sin.addActionListener(this);button_plus.addActionListener(this);this.addWindowListener(new WinClose();注册窗口监听器this.setVisible(true);private void addmyMenu()菜单的添加JMenuBar menubar=new JMenuBar();this.add(menubar);JMenu m1=new JMenu(选项 );JMenu m2=new JMenu(进制转换 );JMenuItem m1_exit=new JMenuI

25、tem( 退出 );m1_exit.addActionListener(this);JMenuItem m2_ejz=new JMenuItem( 二进制 );m2_ejz.addActionListener(this);8JMenuItem m2_bjz=new JMenuItem( 八进制 );m2_bjz.addActionListener(this);JMenuItem m2_sljzew JMenuItem(十六制 );m2_bjz.addActionListener(this);JMenu m3 = new JMenu(帮助 );JMenuItem m3_Help = new JM

26、enuItem(作者 );m3_Help.addActionListener(this);dialog = new Dialog(this,关于 ,true);模式窗口dialog.setSize(240,80);label_dialog = new Label(,Label.CENTER);标签的字符串为空,居中对齐dialog.add(label_dialog);dialog.addWindowListener(this);为对话框注册窗口事件监听器m1.add(m1_exit);menubar.add(m1);m2.add(m2_ejz);m2.add(m2_bjz);m2.add(m2

27、_sljzmenubar.add(m2);m3.add(m3_Help);menubar.add(m3);public void actionPerformed(ActionEvent e)按钮的单击事件处理方法if(e.getSource().equals(button_1)|e.getSource().equals(button_2)| e.getSource().equals(button_3)|e.getSource().equals(button_4)| e.getSource().equals(button_5)| e.getSource().equals(button_6)| e

28、.getSource().equals(button_7)| e.getSource().equals(button_8)| e.getSource().equals(button_9) |e.getSource().equals(button_0)| e.getSource().equals(button_point)|e.getSource().equals(button_plusminus)|e.getSource().equals(button_cancel)|e.getSource().equals(button_CE)非运算符的处理方法String input=e.getActio

29、nCommand();if (start)displayField.setText();start=false;if(input.equals(+-)9displayField.setText(displayField.getText()+-);if(!input.equals(+-)String str=displayField.getText();if(input.equals(C)退格键的实现方法if(str.length()0)displayField.setText(str.substring(0,str.length()-1);else if(input.equals(CE)清零键

30、的实现方法displayField.setText(0);start=true;elsedisplayField.setText(displayField.getText()+input);else if (e.getActionCommand()=二进制 )二进制的转换int n=Integer.parseInt(displayField.getText();displayField.setText(Integer.toBinaryString(n);else if (e.getActionCommand()=八进制 )八进制的转换int n=Integer.parseInt(display

31、Field.getText();displayField.setText(Integer.toOctalString(n);else if (e.getActionCommand()=十六进制 )十六进制的转换int n=Integer.parseInt(displayField.getText();displayField.setText(Integer.toHexString(n);else if (e.getActionCommand()=退出 )选项中退出的处理方法System.exit(0);else if (e.getActionCommand()=作者 )按下 帮助 菜单栏中用法

32、的处理方法10label_dialog.setText(谭杰制作 n学号:dialog.setLocation();dialog.setVisible(true);else各运算符的识别String command=e.getActionCommand();if(start)lastCommand=command;elsecalculate(Double.parseDouble(displayField.getText();lastCommand=command;start=true;public void calculate(double x)各运算符的具体运算方法double d=0;if

33、 (lastCommand.equals(+)result+= x;else if (lastCommand.equals(-)result-=x;else if (lastCommand.equals(*)result*=x;else if (lastCommand.equals()result=x;else if (lastCommand.equals(=)result=x;else if (lastCommand.equals(sqrt)d=Math.sqrt(x);result=d;else if (lastCommand.equals(exp)d=Math.exp(x);result

34、=d;11else if (lastCommand.equals(log)d=Math.log(x);result=d;else if (lastCommand.equals(tan)d=Math.tan(x);result=d;else if (lastCommand.equals(cos)d=Math.cos(x);result=d;else if (lastCommand.equals(sin)d=Math.sin(x);result=d;displayField.setText(+ result);public void windowClosing(WindowEvent e)if(e

35、.getSource()=dialog)dialog.setVisible(false);隐藏对话框elseSystem.exit(0);public void windowOpened(WindowEvent e) public void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e) public void windowClosed(WindowEvent e) public void windowIconified(WindowEvent e) public void windowDe

36、iconified(WindowEvent e) public static void main(String args)Calculator calculator=new Calculator();class WinClose implements WindowListener12public void windowClosing(WindowEvent e)单击窗口关闭按钮时触发并执行实现窗口监听器接口System.exit(0);结束程序运行public void windowOpened(WindowEvent e)public void windowActivated(WindowE

37、vent e)public void windowDeactivated(WindowEvent e)public void windowClosed(WindowEvent e)public void windowIconified(WindowEvent e)public void windowDeiconified(WindowEvent e)内容二:public class Iostream public static void main(String args)读取文件 iris.txt中.+n);float sum = new float4;存放所有列的和float average

38、 = new float4;存放平均值int count=0;用来记录文件的行数String str = new String5,s;文件读取缓冲区tryFileReader file = new FileReader(e:iris.txt);BufferedReader br= new BufferedReader(file);s = br.readLine();while( s!=null)循环读取所有的数 int i=0;StringTokenizer tokenizer = new StringTokenizer(s,t);while(tokenizer.();float temp =

39、 Float.parseFloat(stri);把字符型数转换成数字类型sumi=sumi+temp;i+;s = br.readLine();count+;br.close();file.close();文件读取错误 ); for(int k=0;k4;k+) averagek=sumkcount;第+(k+1)+ 列的和是 : +sumk);第+(k+1)+ 列的平均值是 :+averagek+n);13内容三:public class randomTest public static void main(String args) TODO Auto-generated method st

40、ubdouble a,b,j = 0.0;int i = 0,n=0,m = 0;Scanner s = new Scanner(System.in);m = s.nextInt();for (;nm;n+) a = Math.random();b = Math.random();if (Math.pow (a-0.5,2.0)+Math.pow (b-0.5,2.0)=0.25)i+;落在圆里的点的个数: +i);j =(double) im;内容六:class MyPad extends JFrame implements ActionListener, KeyListener boole

41、an txtChanged = false;String fname = ;JMenuBar mbar;JMenu mnuFile, mnuEdit, mnuHelp;JMenuItem fileNew, fileOpen, fileSave, fileExit;JMenuItem editCut, editCopy, editPaste, editSelectAll, editDel; JMenuItem iconNew, iconOpen, iconSave;ImageIcon iconCut, iconCopy, iconPaste;JButton bttnNew, bttnOpen,

42、bttnSave;JButton bttnCut, bttnCopy, bttnPaste;JTextArea txtPad;Container c;MyPad()14initComponents();setTitle(MyPad);setSize();setVisible(true);setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WinHandler();void initComponents()c = getContentPane();c.setLayout(new BorderLayout();i

43、nitMenu();txtPad = new JTextArea();Font f = new Font(Comic Sans MS, Font.PLAIN, 20); txtPad.setFont(f);txtPad.addKeyListener(this);JScrollPane jscroll = new JScrollPane(txtPad);c.add(jscroll, BorderLayout.CENTER);void initMenu()mbar = new JMenuBar();mnuFile = new JMenu(文件 );mnuEdit = new JMenu( 编辑 )

44、;mnuHelp= new JMenu( 帮助 );fileNew = new JMenuItem(新建 );fileOpen= new JMenuItem(打开 );fileSave= new JMenuItem(保存 );fileExit = new JMenuItem(退出 );editCut = new JMenuItem(剪切 );editCopy= new JMenuItem(复制 );editPaste = new JMenuItem(黏贴 );editSelectAll = new JMenuItem(全选 );editDel= new JMenuItem(删除 ););mnu

45、File.add(fileSave);mnuFile.add(fileExit);mnuEdit.add(editCut);mnuEdit.add(editCopy);mnuEdit.add(editPaste);mnuEdit.addSeparator();mnuEdit.add(editSelectAll);mnuEdit.add(editDel);mnuHelp.add(.addActionListener(this);15fileSave.addActionListener(this);fileExit.addActionListener(this);editCut.addAction

46、Listener(this);editCopy.addActionListener(this);editPaste.addActionListener(this);editSelectAll.addActionListener(this);editDel.addActionListener(this);) | src.equals(fileOpen)openFile();else if(src.equals(bttnSave) | src.equals(fileSave)saveFile();else if(src.equals(fileExit)exitFile();else if(src.

47、equals(bttnCut) | src.equals(editCut)txtPad.cut();else if(src.equals(bttnCopy) | src.equals(editCopy)txtPad.copy();else if(src.equals(bttnPaste) | src.equals(editPaste)txtPad.paste();else if(src.equals(editSelectAll)txtPad.selectAll();else if(src.equals(editDel)txtPad.replaceSelection();else if(src.

48、equals(;fname = ;txtChanged = false;16txtPad.setText();void saveFile()if(fname.equals()JFileChooser jfc = new JFileChooser();int res;res = jfc.showSaveDialog(this);if(res = jfc.APPROVE_OPTION)fname = jfc.getSelectedFile().getAbsolutePath();elsereturn;tryFileWriter fw = new FileWriter(fname);fw.write

49、(txtPad.getText();fw.flush();fw.close();txtChanged = false;catch(Exception ex)JOptionPane.showMessageDialog(this,ex.getMessage(), 保存失败 , JOptionPane.ERROR_MESSAGE );void openFile()int res;JFileChooser jfc = new JFileChooser(c:);res = jfc.showOpenDialog(this);if(res = jfc.APPROVE_OPTION)17fname = jfc

50、.getSelectedFile().getAbsolutePath();tryFileReader fr = new FileReader(fname);BufferedReader br = new BufferedReader(fr);txtPad.setText();String s;while( (s = br.readLine() != null )txtPad.append(s);txtPad.append(n);br.close();fr.close();catch(Exception ex)JOptionPane.showMessageDialog(this,ex.getMe

51、ssage(), 打开失败 , JOptionPane.ERROR_MESSAGE );void exitFile()if(txtChanged)int res;res = JOptionPane.showConfirmDialog(this, 保存更改? , 退出 ,JOptionPane.YES_NO_CANCEL_OPTION);if(res = JOptionPane.YES_OPTION)saveFile();else if(res = JOptionPane.CANCEL_OPTION)18return;dispose();void aboutHelp()new HelpDlg(t

52、his);public void keyPressed(KeyEvent e)public void keyReleased(KeyEvent e)public void keyTyped(KeyEvent e)txtChanged = true;class WinHandler extends WindowAdapterpublic void windowClosing(WindowEvent e)exitFile();public static void main(String args)MyPad mp = new MyPad();class HelpDlg extends JDialogpublic HelpDlg(MyPad m)JOptionPane.showOptionDialog(null,程序名称 :nMyPad n +程序设计 :n熊瑛琪n,制作人 ,JOptionPane.DEFAULT_OPTION,19JOptionPane.INFORMATION_MESSAGE,null, null, null);setDefaultCloseOperation(DISPOSE_ON_CLOSE);六、程序运行、调试和结果分析1程序运行中出现的问题及调试手段(包括异常处理)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!