博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件项目管理第1次作业:四则运算生成器
阅读量:5268 次
发布时间:2019-06-14

本文共 2420 字,大约阅读时间需要 8 分钟。

个人作业1

作业链接:

需求分析

1.设置题目数和数值范围

2.随机生成含有1-3个运算符题目
3.判断输入结果

功能设计

1.生成算式:从浏览器的text标签中获取题目数和数值范围,根据这两个个数随机生成符合要求的算式

2.结果判断:使用data- 标签存储答案,将输入的结果同答案对比,以改变边框颜色的方式实现反映结果正误

设计实现

1.算式生成:将运算符放入数组,以随机数下标的形式取得数组中的运算符。在算式生成前,通过随机数确定运算符个数,使用switch-case函数根据运算符个数确定算式格式。将生成的标签插入浏览器

2.判断:通过按键触发的函数监听输入值和自定义属性data-result对比,从而改变边框颜色来判断正误

代码说明

生成函数

function make() {//n和r分别用于存放题目数和范围数    var n = document.querySelector('#n').value;    var r = document.querySelector('#r').value;//存放四则运算符    var char = ['+', '-', '*', '/'];    if(parseInt(n) == n && parseInt(r) == r) {//标记循环次数的标量    var tag = 0;    while(tag < n) {//随机运算符数量    var charNumber = Math.round(Math.random() * 2) + 1;    var number = [];    for(var i = 0; i < charNumber + 1; i++) {    number.push(Math.ceil(Math.random() * r))    }//根据运算符数量定义对应的算式    switch(charNumber) {    case 1:        var str = number.shift() + char[Math.round(Math.random() * 3)] + number.shift() ;        break;    case 2:        var str = number.shift() + char[Math.round(Math.random() * 3)] +  number.shift() + char[Math.round(Math.random() * 3)] + number.shift();        break;    case 3:       var str = number.shift() + char[Math.round(Math.random() * 3)] + number.shift() + char[Math.round(Math.random() * 3)] + number.shift() + char[Math.round(Math.random() * 3)] + number.shift();        break;                }    var str1 = '' + '=' + '

'//将字符串插入浏览器 document.querySelector('section').innerHTML += str1; tag++; } } else { alert('题目数必须小于10000,范围必须为自然数'); }}

判断函数

function result(event) {//通过event.target获取被输入的标签,从而获取输入的值    if(event.target.value) {//将输入值和结果对比,相同则为绿色边框,否则为红色边框    if(event.target.value == event.target.dataset.result) {        event.target.style.border = '2px solid green';        } else {        event.target.style.border = '2px solid red';        }       } else {//当没有输入的内容时,将边框变回原来的样式        event.target.style.border = '1px solid grey';        }}

运行测试

1212316-20170921160814337-943319619.png

PSP

PSP2.1 Personal Software Process Stages Time Senior Student Time

Planning 计划 5 10
Estimate 估计这个任务的时间 1 1
Development 开发 300 420
Analysis 需求分析 2 5
Design Spec 生成设计文档 10 5
Design Review 设计复审 2 1
Coding standard 代码规范 5 1
Design 具体设计 30 20
Coding 具体编码 120 180
Code Review 代码复审 5 10
Test 测试 45 80
Reporting 报告 20 35
测试报告 20 25
计算工作量 5 5
提出过程改进计划 10 15

项目小结

这个项目对我来说有点困难。因为对编程的不熟悉,简化了很多功能,但是不管怎么说还是写出了一个能用的程序,这也刺激我在以后的时间里更加努力,提高自己的动手能力。

转载于:https://www.cnblogs.com/idun/p/7569129.html

你可能感兴趣的文章
高级程序设计第六章(2)--创建对象
查看>>
微信上传素材返回 '{"errcode":41005,"errmsg":"media data missing"}',php5.6返回
查看>>
2017年11月Dyn365/CRM用户社区活动报名
查看>>
mysql 数据库磁盘占用量统计
查看>>
七七四十九劫,九九八十一难
查看>>
C++中的链接错误
查看>>
linux 安装 ArcSDE10.1
查看>>
SQL Server比较2table字段的差异
查看>>
.net 获取CPU频率 内存 磁盘大小,域名 端口 虚拟目录等
查看>>
angular vue通过node启动项目局域网内关闭防火墙无法访问的解决办法
查看>>
pc 媒体查询
查看>>
angular6 增加webpack配置 亲测可用
查看>>
Git 忽略提交 .gitignore
查看>>
div或者p标签单行和多行超出显示省略号
查看>>
angular http 节流
查看>>
autoprefixer
查看>>
kkFileView在centos7上安装
查看>>
Elasticsearch 滚动重启 必读
查看>>
win8快捷键
查看>>
mysql explain执行计划详解
查看>>