计算与软件工程作业一
本文简介
本篇文章在Markdown编辑模式下完成的,主要是针对《计算与软件工程》课前的相关准备以及对第一章概论的读后感。
一、遇到的困难
一开始对于博客园这个平台还不太熟悉,通过慢慢的摸索学习了解了大概情况。
问题一:不知道怎么设置markdown编译方式
解决:在博客园的选项里面查找到
二、工具软件认识及看法
首先,Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。
优点:
1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。
2、操作简单。比如:WYSIWYG编辑时标记个标题,先选中内容,再点击导航栏的标题按钮,选择几级标题。要三个步骤。而Markdown只需要在标题内容前加#即可。
3、Markdown默认并不显示广告(非常友好)
缺点:
1、需要记一些语法。
2、有些平台不支持Markdown编辑模式。例如知乎
三、学习过程
目前对于markdown编译器尚不够熟练,但是一些简单的语法可以快速记忆,对于一些难记的语法在之后的学习中更要多用,熟能生巧。
四、第一章概述内容的读后感
对于软件的阐述中,我有了深刻的认识,
在第一章概述中作者讲 软件 = 程序 + 软件工程
一个扩展的推论是:软件企业 = 软件 + 商业模式
正如作者所说
程序是基本功,但是除了程序之外,软件工程决定了软件的命运。
而陶华亭在《软件工程概论》中是这样讲的 软件=程序+数据+文档
我认为这两种说法都是有一定道理的。不同的是,陶华亭多了一项文档,这里的文档就是描述程序功能需求以及程序如何操作和使用所要求的文档。以开发语言作为描述语言 。
关于什么是bug 这个问题, 第一章概述中非常形象明了的说明软件的行为和用户的期望值不一样的话, 就叫bug.即bug不是绝对的,而是相对的,因为大多数软件工程所面对的用户群体不同,而不能简单的去判定这个软件是否是“完美无暇”的。
软件工程的一个重要任务就是要决定一个软件在什么时候能“足够好”, 没有严重的“bug”,就可以发布。
——————
计算与软件工程作业二
一、作业要求
https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10402
二、运行结果
三、gitee链接
https://gitee.com/if_evening/Myproject1/commit/4eef4aac8ae97fae3b6585c4dd5e191d640ec63a
四、设计思路
工具:NetBeans IDE8.2
语言:Java语言
思路:创建随机数和运算符进行计算
五、总结
基本了解gitee的使用功能,Java语言自从大二经常使用到现在不经常使用,有点生疏,代码的完成仍有一些困难,有一些要求的功能还未实现,很多代码都要思考很久才能继续往下做,以后能多加熟悉应用,考虑更多方面,提升自己的代码技能。
部分代码参考CSDN。
代码附录
(''')
package xxys;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.util.Random;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/**
*
-
@author LENOVO
*/
public class Xxys extends JFrame{
public JPanel Panel1;
public JLabel graselect;//年级选择
public JLabel questnum;//题目数量
public ButtonGroup buttonGroup;
public JTextField textnum;//添加题目数量
public JButton chuti;//出题
public JButton chongzhi;//重置
public JTextArea quest;//出题的地方
public JRadioButton gradeone;
public JRadioButton gradetwo;
public JRadioButton gradethree;
public JRadioButton gradefour;
public JRadioButton gradefive;
public JRadioButton gradesix;public static void main(String[] args) {
try{
Xxys jm=new Xxys();
jm.setVisible(true);
}
catch(Exception e){
e.printStackTrace();
}
}
public Xxys(){
super();
setTitle("小学四则运算系统");
setBounds(0,0,400,500);
getContentPane().setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//年级选择
graselect=new JLabel();
graselect.setBounds(0, 30, 50, 30);
graselect.setText("年级:");
getContentPane().add(graselect);
//一年级
buttonGroup=new ButtonGroup();
gradeone =new JRadioButton();
buttonGroup.add(gradeone);
gradeone.setText("一年级");
gradeone.setBounds(60, 30, 80, 30);
gradeone.setSelected(true);
getContentPane().add(gradeone);
//二年级
buttonGroup=new ButtonGroup();
gradetwo =new JRadioButton();
buttonGroup.add(gradetwo);
gradetwo.setText("二年级");
gradetwo.setBounds(140, 30, 80, 30);
gradetwo.setSelected(true);
getContentPane().add(gradetwo);
//三年级
gradethree =new JRadioButton();
buttonGroup.add(gradethree);
gradethree.setText("三年级");
gradethree.setBounds(220, 30, 80, 30);
//gradetwo.setSelected(false);
getContentPane().add(gradethree);
//四年级
gradefour =new JRadioButton();
buttonGroup.add(gradefour);
gradefour.setText("四年级");
gradefour.setBounds(300, 30, 80, 30);
//gradetwo.setSelected(false);
getContentPane().add(gradefour);
//五年级
gradefive =new JRadioButton();
buttonGroup.add(gradefive);
gradefive.setText("五年级");
gradefive.setBounds(380, 30, 80, 30);
//gradetwo.setSelected(false);
getContentPane().add(gradefive);
//六年级
gradesix =new JRadioButton();
buttonGroup.add(gradesix);
gradesix.setText("六年级");
gradesix.setBounds(460, 30, 80, 30);
//gradetwo.setSelected(false);
getContentPane().add(gradesix);
questnum=new JLabel();
questnum.setText("题目数量:");
questnum.setBounds(0, 80, 80, 40);
getContentPane().add(questnum);
//题目数量
textnum=new JTextField();
textnum.setBounds(90,90, 80, 20);
getContentPane().add(textnum);
//出题的按钮
chuti= new JButton();
chuti.setText("出题");
chuti.setBounds(60, 150, 60, 30);
chuti.addActionListener(new chutiListener());
getContentPane().add(chuti);
//重置的按钮
chongzhi =new JButton();
chongzhi.setText("重置");
chongzhi.setBounds(240, 150, 60, 30);
chongzhi.addActionListener(new chongzhiListener());
getContentPane().add(chongzhi);
//出题的方框
quest=new JTextArea();
quest.setColumns(15);
quest.setRows(3);
quest.setLineWrap(true);
JScrollPane scrollPane=new JScrollPane();
scrollPane.setViewportView(quest);
Dimension dime=quest.getPreferredSize();
scrollPane.setBounds(0, 200, 400, 200);
getContentPane().add(scrollPane);
}
//生成数的方法
public int shenchengnum(int a){
Random rand=new Random();
int k=0;
int j=0;
for(int i=0;i<a;i++)
{
j=rand.nextInt(9)+1;
k=k*10+j;
}
return k;
}
public char shengchenchar(boolean zhfu){
Random rand=new Random();
char c=' ';
if(zhfu){
int j=rand.nextInt()%2;
if(j==0)
{
c='-';
}
}
return c;
}
public void fenshunum(int a,int b,int c){
a=shenchengnum(c);
b=shenchengnum(c);
}
public String xiaoshusc(){
Random rand=new Random();
DecimalFormat dcmFmt = new DecimalFormat("0.00");
float a=rand.nextFloat()*100;
String b=dcmFmt.format(a);
return b;
}
public char yunsuanchar(boolean szyf){
Random rand=new Random();
int j=0;
char c=' ';
if(szyf){
j=rand.nextInt(2);
if(j==0){
c='/';
} else if(j==1){
c='*';
}
}
else{
j=rand.nextInt()%2;
if(j0){
c='+';
}
else {
c='-';
}
}
return c;
}
//生成数的方法
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String num=textnum.getText();
int qtnum=Integer.parseInt(num);
if(gradetwo.isSelected()){
for(int i=0;i<qtnum;i++){
Random rand=new Random();
int k=rand.nextInt()%2;
if(k0){
String fnum=String.valueOf(shenchengnum(4));
String snum=String.valueOf(shenchengnum(4));
String ch=String.valueOf(yunsuanchar(false));
quest.append(fnum+" "+" "+ch+" "+snum+"=");
quest.append("
");
}else{
String fnum=String.valueOf(shenchengnum(2));
String snum=String.valueOf(shenchengnum(1));
String ch=String.valueOf(yunsuanchar(true));
quest.append(fnum+" "+" "+ch+" "+snum+"=");
quest.append("
");
}
}
}
else if(gradethree.isSelected()){
for(int i=0;i<qtnum;i++){
Random rand=new Random();
int k=rand.nextInt()%2;
if(k==0){
String fnum=String.valueOf(shenchengnum(4));
String snum=String.valueOf(shenchengnum(4));
String ch=String.valueOf(yunsuanchar(false));
quest.append(fnum+" "+" "+ch+" "+snum+"=");
quest.append("
");
}else{
String fnum=String.valueOf(shenchengnum(4));
String snum=String.valueOf(shenchengnum(1));
String ch=String.valueOf(yunsuanchar(true));
quest.append(fnum+" "+" "+ch+" "+snum+"=");
quest.append("
");
}
}
}else if(gradefour.isSelected()){
for(int i=0;i<qtnum;i++){
String fnum=String.valueOf(shenchengnum(3));
String snum=String.valueOf(shenchengnum(2));
String ch=String.valueOf(yunsuanchar(true));
quest.append(fnum+" "+" "+ch+" "+snum+"=");
quest.append("
");
}
}
else if (gradefive.isSelected()){
for(int i=0;i<qtnum;i++){
String fnum=xiaoshusc();
String snum=xiaoshusc();
String ch=String.valueOf(yunsuanchar(true));
quest.append(fnum+" "+" "+ch+" "+snum+"=");
quest.append("
");
}
}
}
public class chutiListener implements ActionListener{
@Override public void actionPerformed(ActionEvent e) {
}
}
public class chongzhiListener implements ActionListener{
@Override public void actionPerformed(ActionEvent e) {
textnum.setText(null);
quest.setText(null);
}
}
}
(''')