⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scorecompute.java

📁 JAVA学分计算器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			jContentPane.add(getXuekeTextField(), null);
			jContentPane.add(getScoreTextField(), null);
			jContentPane.add(tongjiLabel, null);
			jContentPane.add(getJButton(), null);
			jContentPane.add(getJComboBox(), null);
			jContentPane.add(jLabel, null);
			jContentPane.add(jLabel1, null);
			jContentPane.add(jLabel2, null);
			jContentPane.add(getJButton1(), null);
			jContentPane.add(getJButton2(), null);
			jContentPane.add(getJScrollPane(), null);
			
			jContentPane.add(jLabel11, null);
			jContentPane.add(jLabel12, null);
			jContentPane.add(jLabel13, null);
			jContentPane.add(jLabel14, null);
			jContentPane.add(jLabel15, null);
			jContentPane.add(jLabel16, null);
			jContentPane.add(jLabel17, null);
			jContentPane.add(jLabel18, null);
			jContentPane.add(jLabel19, null);
			jContentPane.add(jLabel20, null);
			jContentPane.add(jLabel21, null);
			jContentPane.add(jLabel22, null);
			jContentPane.add(jLabel23, null);
			jContentPane.add(jLabel24, null);
			jContentPane.add(jLabel25, null);
			jContentPane.add(jLabel26, null);
			jContentPane.add(jLabel27, null);
			jContentPane.add(jLabel28, null);
			jContentPane.add(jLabel29, null);
			PanelExample paint = new PanelExample();
			jContentPane.add(paint,BorderLayout.CENTER);
			
		}
		return jContentPane;
	}

	/**
	 * This method initializes jJMenuBar	
	 * 	
	 * @return javax.swing.JMenuBar	
	 */
	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new JMenuBar();
			jJMenuBar.add(getFileMenu());
			jJMenuBar.add(getHelpMenu());
		}
		return jJMenuBar;
	}

	/**
	 * This method initializes jMenu	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getFileMenu() {
		if (fileMenu == null) {
			fileMenu = new JMenu();
			fileMenu.setText("文件");
			fileMenu.add(getSaveMenuItem());
			fileMenu.add(getExitMenuItem());
		}
		return fileMenu;
	}
	/**
	 * This method initializes jMenu	
	 * 	
	 * @return javax.swing.JMenu	
	 */
	private JMenu getHelpMenu() {
		if (helpMenu == null) {
			helpMenu = new JMenu();
			helpMenu.setText("帮助");
			helpMenu.add(getHelpMenuItem());
			helpMenu.add(getAboutMenuItem());
			
		}
		return helpMenu;
	}

	/**
	 * This method initializes jMenuItem	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getExitMenuItem() {
		if (exitMenuItem == null) {
			exitMenuItem = new JMenuItem();
			exitMenuItem.setText("退出");
			exitMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					System.exit(0);
				}
			});
		}
		return exitMenuItem;
	}

	/**
	 * This method initializes jMenuItem	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getAboutMenuItem() {
		if (aboutMenuItem == null) {
			aboutMenuItem = new JMenuItem();
			aboutMenuItem.setText("关于小智星");
			aboutMenuItem.addActionListener(new ActionListener() 

{
				public void actionPerformed(ActionEvent e) {
					JDialog aboutDialog = getAboutDialog

();
					//aboutDialog.pack();
					Point loc = getJFrame().getLocation

();
					loc.translate(200, 100);
					aboutDialog.setLocation(loc);
					aboutDialog.setVisible(true);
				}
			});
		}
		return aboutMenuItem;
	}

	/**
	 * This method initializes jMenuItem	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getHelpMenuItem() {
		if (useMenuItem == null) {
			useMenuItem = new JMenuItem();
			useMenuItem.setText("使用说明");
			useMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JDialog helpDialog = getHelpDialog();
					//helpDialog.pack();
					Point loc = getJFrame().getLocation

();
					loc.translate(200, 100);
					helpDialog.setLocation(loc);
					helpDialog.setVisible(true);
				}
			});
		}
		return useMenuItem;
	}
	
	/**
	 * This method initializes aboutDialog	
	 * 	
	 * @return javax.swing.JDialog
	 */
	private JDialog getAboutDialog() {
		if (aboutDialog == null) {
			aboutDialog = new JDialog(getJFrame(), true);
			aboutDialog.setTitle("关于小智星");
			aboutDialog.setSize(new Dimension(272, 94));
			aboutDialog.setResizable(false);
			aboutDialog.setContentPane(getAboutContentPane());
		}
		return aboutDialog;
	}
	/**
	 * This method initializes aboutDialog	
	 * 	
	 * @return javax.swing.JDialog
	 */
	private JDialog getHelpDialog() {
		if (helpDialog == null) {
			helpDialog = new JDialog(getJFrame(), true);
			helpDialog.setTitle("使用说明");
			helpDialog.setSize(new Dimension(414, 215));
			helpDialog.setResizable(false);
			helpDialog.setContentPane(getHelpContentPane());
		}
		return helpDialog;
	}

	/**
	 * This method initializes aboutContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getAboutContentPane() {
		if (aboutContentPane == null) {
			aboutContentPane = new JPanel();
			aboutContentPane.setLayout(new BorderLayout());
			aboutContentPane.add(getAboutVersionLabel(), 

BorderLayout.CENTER);
		}
		return aboutContentPane;
	}
	/**
	 * This method initializes aboutContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getHelpContentPane() {
		if (helpContentPane == null) {
			helpContentPane = new JPanel();
			helpContentPane.setLayout(new BorderLayout());
			helpContentPane.add(getHelpVersionLabel(), 

BorderLayout.CENTER);
		}
		return helpContentPane;
	}

	/**
	 * This method initializes aboutVersionLabel	
	 * 	
	 * @return javax.swing.JLabel	
	 */
	private JLabel getAboutVersionLabel() {
		if (aboutVersionLabel == null) {
			aboutVersionLabel = new JLabel();
			aboutVersionLabel.setText("<html><center>中力技术团队制作</center>版权所有:www.scusoft.cn");
			aboutVersionLabel.setHorizontalAlignment

(SwingConstants.CENTER);
		}
		return aboutVersionLabel;
	}
	private JLabel getHelpVersionLabel() {
		if (aboutHelpLabel == null) {
			aboutHelpLabel = new JLabel();
			aboutHelpLabel.setText("<html><br><center>小智星使用说明</center><li>总成绩一栏一般为整数,若为小数,小数点后只能有一位</li>" +
					"<li>若你的成绩是九级制,请按照如下数据比照,输入分数<br>分数  A  A-  B+  B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F <br>" +
					"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;优  优-  良+  良  良-  中+ 中  合格  差<br>绩点  4.0   3.8    3.6    3.2  2.7   2.2  1.7   1.0   0 <br></li>" +
					"<li>由于框架所限,目前图形分析只支持20科成绩</li><li>保存计算结果,请在菜单栏中选择'文件'——'保存'</li>");
			aboutHelpLabel.setHorizontalAlignment

(SwingConstants.CENTER);
		}
		return aboutHelpLabel;
	}

	private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane(getJList());
			jScrollPane.setBounds(new Rectangle(34, 62, 246, 379));
		}
		return jScrollPane;
	}
	/**
	 * This method initializes jMenuItem	
	 * 	
	 * @return javax.swing.JMenuItem	
	 */
	private JMenuItem getSaveMenuItem() {
		if (saveMenuItem == null) {
			saveMenuItem = new JMenuItem();
			saveMenuItem.setText("保存");			
			saveMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					String listtxt = "";
					int pos2 = jList.getModel().getSize();
					listtxt += "成绩      "+"   学分"+"  课程名\n";
					 for(int i=0;i<pos2;i++)
				        {
				            listtxt += listModel.get(i).toString()+"\n";
				        }
					 listtxt += "\n"+"总学分: "+totalxuefen;
					 listtxt += "\n"+"标准平均分: "+averagescore;
					 listtxt += "\n"+"加权平均分: "+averagepoint;
					 listtxt += "\n"+"学分绩点: "+averagescorepoint;
				//System.out.println(listtxt);
					try{
						 FileOutputStream fos = new FileOutputStream(new File("成绩单.txt"));
						 OutputStreamWriter osw = new OutputStreamWriter(fos);
						 String savestring = listtxt.replaceAll("\n", "\r\n");
						 osw.write(savestring);				 
						 osw.flush();
						 osw.close();
					}catch(Exception ee) 
					{
						ee.printStackTrace();
					}
					JOptionPane.showMessageDialog(null, "成绩已经保存在程序所在目录!", "温馨提示",JOptionPane.INFORMATION_MESSAGE); 
					//}
					 
					 
					
					
				}
			});
		}
		return saveMenuItem;
	}
	
	public void  computercenter()
	   { 
		int pos1 = jList.getModel().getSize();
        String selectItem = "";
        int getxuefen = 0;
        double getscore =0;
        double totalscore = 0;
        totalxuefen=0;
        totalchengji=0;
        double bigpoint = 0;
        
        char Item1[] = new char[4];
        char Item2[] = new char[4];
        if(pos1==0)
        {
        	averagepoint=0;
        	averagescore=0;
        	averagescorepoint=0;
        	totalxuefen=0;
        }
        else{
        for(int i=0;i<pos1;i++)
        {
        	String coursescorestr = "";
            String coursexuefenstr = "";
            
            
        	selectItem = listModel.get(i).toString();
        	selectItem.getChars(0, 4, Item1, 0);
        	selectItem.getChars(14, 17, Item2, 0);
        	for(int j=0;j<4;j++){
        		coursescorestr += Item1[j];
        		coursexuefenstr += Item2[j];
        	}
        	//去空格并转化为int 	
        	getscore = Double.parseDouble(coursescorestr.trim());
        	
        	getxuefen = Integer.parseInt(coursexuefenstr.trim());
	      
		   double getchengji = getxuefen*getscore;
		   double scorepoint=0;
		   totalxuefen += getxuefen;
		   totalscore += getscore;
		   totalchengji += getchengji;
		   
		   //成绩与学分绩点的匹配
		   if(getscore>=95&&getscore<=100)
			   scorepoint=4.0;
		   else if(getscore>=90&&getscore<=94)
			   scorepoint=3.8;
		   else if(getscore>=85&&getscore<=89)
			   scorepoint=3.6;
		   else if(getscore>=80&&getscore<=84)
			   scorepoint=3.2;
		   else if(getscore>=75&&getscore<=79)
			   scorepoint=2.7;
		   else if(getscore>=70&&getscore<=74)
			   scorepoint=2.2;
		   else if(getscore>=65&&getscore<=69)
			   scorepoint=1.7;
		   else if(getscore>=60&&getscore<=64)
			   scorepoint=1.0;
		   else
			   scorepoint=0;
		   double smallpoint = scorepoint*getxuefen;
		   bigpoint += smallpoint;
		   
        }
           
           averagepoint = totalchengji/totalxuefen;
           averagescore = totalscore/pos1 ;
           averagescorepoint = bigpoint/totalxuefen;
        }
		   jContentPane.updateUI();
		   
		   	   
	   }

     class PanelExample extends JPanel   {   
	   public   PanelExample()   {   
	            repaint();   
	    }  

	    public void paintComponent(Graphics g){   
	    	
	            super.paintComponent(g);
	            g.setColor(Color.black);
	            g.fillRoundRect(280, 165, 670, 320, 10, 10);
	            g.setColor(Color.white);	            
	            g.drawLine(290,430,900,430);   //横坐标
	            g.drawString("0", 290, 442);   //坐标原点
	            g.drawString("^ /分数", 298, 204);
	            g.drawLine(300,200,300,440);    //纵坐标
	            g.drawString(">", 900, 435);
	            g.drawString("/科目编号", 880, 445);
	            g.drawLine(300,230,305,230); //100分线
	            g.drawString("100", 278, 235);
	            g.drawLine(300,250,305,250); //90分线
	            g.drawString("90", 283, 255);
	            g.drawLine(300,270,305,270); //80分线
	            g.drawString("80", 283, 275);
	            g.drawLine(300,290,305,290); //70分线
	            g.drawString("70", 283, 295);
	            g.drawLine(300,310,305,310); //60分线
	            g.drawString("60", 283, 315);
	            g.drawLine(300,330,305,330); //50分线
	            g.drawString("50", 283, 335);

	            //绘横坐标上的科目编号	            
	            for(int i=1;i<=20;i++)
	            {
	            	//int pointy = i*5+420;
	            	int pointx = i*28+300;
	            	g.drawLine(pointx,425,pointx,429);
	            	g.drawString(""+i, pointx-3, 445);
	            }
                //绘制线条说明
	            g.drawString("标准平均分", 815, 195);
	            g.drawString("低于平均分科目", 815, 210);
	            g.drawString("高于平均分科目", 815, 225);
	            
	            g.setColor(Color.yellow);
	            g.drawLine(800,190,810,190); //黄线
	            g.setColor(Color.red);
	            g.drawLine(800,205,810,205); //红线
	            g.setColor(Color.green);
	            g.drawLine(800,220,810,220); //绿线
	            
	            //绘制平均分线
	            g.setColor(Color.yellow);
	            if(averagescore != 0)
		            g.drawLine(300,(int)(430-averagescore*2),900,(int)(430-averagescore*2));
	            //绘制单科成绩
	            int pos2 = jList.getModel().getSize();
	            String selectItem = "";
	            char Item1[] = new char[4];
	            char Item2[] = new char[4];
	            for(int i=0;i<pos2;i++)
	            {
	            	String coursescorestr = "";
	                String coursexuefenstr = "";
	            	selectItem = listModel.get(i).toString();
	            	selectItem.getChars(0, 4, Item1, 0);
	            	selectItem.getChars(14, 17, Item2, 0);
	            	for(int j=0;j<4;j++){
	            		coursescorestr += Item1[j];
	            		coursexuefenstr += Item2[j];
	            	}
	            	//去空格并转化为int 	
	            	double coursescore = Double.parseDouble(coursescorestr.trim());
	            	if(coursescore>averagescore)
	            		g.setColor(Color.green);
	            	else
	            		g.setColor(Color.red);
	            	int pointx = i*28+328;
	            	g.drawLine(pointx,(int)(430-coursescore*2),pointx,430);
                  
	            }
	            //画虚线设置
	            g.setColor(Color.black);
	            float[] dash1 = { 5.0f };
                Graphics2D gw = (Graphics2D) g;
                gw.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER, 10.0f, dash1, 0.0f));
	            gw.drawLine(8,35,278,35);
	            gw.drawLine(278,0,278,490);
	            gw.drawLine(275,160,950,160);
	            
	            g.drawRoundRect(590, 10, 350, 140, 20, 20) ;
	            
	            g.setColor(Color.black);
	            g.setFont(new Font("Bookman",Font.BOLD,13));
	            gw.drawString("即时成绩显示", 720, 25);
	            gw.drawString("总学分:", 600, 50);            
	            gw.drawString("标准平均分:", 600, 80);            
	            gw.drawString("加权平均分:", 600, 110);            
	            gw.drawString("学分绩点:", 600, 140);
	            g.setColor(Color.white);
	            gw.drawString("即时成绩分析图", 590, 190);
	            g.setColor(Color.red);
	            gw.drawString(""+totalxuefen, 650, 50);
	            gw.drawString(""+averagescore, 680, 80);
	            gw.drawString(""+averagepoint, 680, 110);
	            gw.drawString(""+averagescorepoint, 680, 140);         
   
	    }   

	}  
   
   

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -