unknown 5 months ago
parent 54d95c4b08
commit 814fb87bf3

@ -0,0 +1,31 @@
/*
* Eslint config file
* Documentation: https://eslint.org/docs/user-guide/configuring/
* Install the Eslint extension before using this feature.
*/
module.exports = {
env: {
es6: true,
browser: true,
node: true,
},
ecmaFeatures: {
modules: true,
},
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
},
globals: {
wx: true,
App: true,
Page: true,
getCurrentPages: true,
getApp: true,
Component: true,
requirePlugin: true,
requireMiniProgram: true,
},
// extends: 'eslint:recommended',
rules: {},
}

@ -1,2 +1,3 @@
# shuxue
![截图](./screen.png)

@ -0,0 +1,19 @@
// app.js
App({
onLaunch() {
// 展示本地存储能力
const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
},
globalData: {
userInfo: null
}
})

@ -0,0 +1,51 @@
{
"pages":[
"pages/read/read",
"pages/say/say",
"pages/camel/camel",
"pages/hlm/hlm",
"pages/life/life",
"pages/cnjs/cnjs",
"pages/firefly/firefly",
"pages/individual/individual",
"pages/map/map",
"pages/revise/revise",
"pages/content/content",
"pages/login/login",
"pages/opinion/opinion"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle":"black"
},
"tabBar": {
"color": "#333",
"selectedColor": "#f7982a",
"backgroundColor": "#f6f6f6",
"borderStyle": "white",
"list": [
{
"pagePath": "pages/read/read",
"text": "书架",
"iconPath": "images/index.png",
"selectedIconPath": "images/index2.png"
},
{
"pagePath": "pages/map/map",
"text": " 名人",
"iconPath": "images/center.png",
"selectedIconPath": ""
},
{
"pagePath": "pages/individual/individual",
"text": "首页",
"iconPath": "images/center.png",
"selectedIconPath": "images/center2.png"
}
]
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}

@ -0,0 +1,10 @@
/**app.wxss**/
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 200rpx 0;
box-sizing: border-box;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

@ -0,0 +1,17 @@
// pages/camel/camel.js
Page({
formSubmit: function(e) {
// 表单返回的所有数据
var formData = e.detail.value
// 获取上一个页面的对象
var pages = getCurrentPages()
var prevPage = pages[pages.length - 2]
// 调用上一个页面的 setData() 方法,把数据存到上一个页面中去
prevPage.setData({
username: formData.username,
gender: formData.gender
})
// 返回到上一个页面
wx.navigateBack()
}
})

@ -0,0 +1,5 @@
{
"navigationBarBackgroundColor": "#cfe2f3",
"navigationBarTitleText": "孙子算经",
"navigationBarTextStyle":"black"
}

@ -0,0 +1,79 @@
<!--pages/camel/camel.wxml-->
<form bindsubmit="formSubmit" report-submit="true">
<view class="camel">
<image src="/images/11.jpg" />
</view>
<text class="word" decode="{{true}}">
&nbsp;&nbsp;&nbsp;&nbsp;孙子曰:夫算者:天地之经纬,群生之园首,五常之本末,阴阳之父母,星辰之建号,三光之表里,五行之准平,四时之终始,万物之祖宗,六艺之纲记。稽群伦之聚散,考二气之降升,推寒暑之迭运,步远近之殊同,观天道精微之兆基,察地理从横之长短,采神祇之所在,极成败之符验。穷道德之理,究性命之情。立规矩,准方圆,谨法度,约尺丈,立权衡,平重轻,剖毫厘,析泰絫。历亿载而不朽,施八极而无疆。散之者,富有余;背之者,贫且寠。心开者,幼冲而即悟;意闭者,皓首而难精。夫欲学之者,必务量能揆己,志在所专,如是,则焉有不成者哉!
全书共分三卷:
上卷
详细的讨论了度量衡的单位和筹算的制度和方法。
度量衡包括长度(度),质量(量),体积/容积。长度的基本单位是蚕吐出的一根丝直径为一忽以上为十进。小的长度单位包括忽50引。辅助单位包括匹40尺6尺240步。古代以方形周长代面积300步
质量的基本单位是一颗黍的质量以上是絫24铢即斤16两30斤4钧
体积和容积的基本单位是一颗粟的体积。以上是圭6粟斛。
大数的名称,一万万为亿,以上每一万倍称为兆,京,陔,秭,穣,沟,涧,正,载。
圆周率约等于三周三径一根号2约等于1.4(方五斜七)。
以下还记载了白银,铅,铜,铁,玉,石等生产生活和经济生活中常见的物质的密度。
物质密度表
物质
记载密度
现代测量密度
14两/立方寸
10.49 g/cm3
11两/立方寸
3~3.6 g/cm3
7.5两/立方寸
8.9 g/cm3纯铜。青铜黄铜按比例降低
9.5两/立方寸
11.3437 g/cm3
7两/立方寸
7.86 g/cm3
3两/立方寸
~3 g/cm3各不相同
筹算在春秋战国时代已经运用,但在古代中国数学著作如算数书、九章算术等书中都不曾记载算筹的使用方法;孙子算经第一次详细地记述筹算的布算规则:“凡算之法,先识其位,一纵十横,百立千僵,千十相望,百万相当”,此外又说明用空位表示零。
在进行乘法时,“凡乘之法,重置其位。上下相观,上位有十步至十,有百步至百,有千步至千。以上命下,所得之数列于中位。言十即过,不满自如。上位乘讫者先去之。下位乘讫者则俱退之。六不积,五不只。土下相乘,至尽则已。”《孙子算经》明确说明“先识其位”的位值概念,和“逢十进一”的十进位制。
除法法则:“凡除之法:与乘正异乘得在中央,除得在上方,假令六为法,百为实,以六除百,当进之二等,令在正百下。以六除一,则法多而实少,不可除,故当退就十位,以法除实,言一六而折百为四十,故可除。若实多法少,自当百之,不当复退,故或步法十者,置于十百位(头位有空绝者,法退二位。余法皆如乘时,实有余者,以法命之,以法为母, 实余为子。”)
在此之后记载了谷物换算成精谷物和米饭的经验比例:粟米打成粝米的体积是五分之三,粝米煮成米饭的体积是二分之五。
第一章的最后是乘法表(从九九八十一开始到一一得一)和每个乘法结果的乘方表。用表格记载下来如下:
《孙子算经》乘法表
乘法(口诀)
乘法答案的平方
平方约去乘法口诀所在行
8×9=72八九七十二
5184
5184÷8=648
7×9=63七九六十三
3969
3969÷7=567
…………
…………
…………
1×1=1一一如一
1一乘不长
-
中卷
主要是关于分数的应用题,包括面积、体积、等比数列等计算题,大致都在《九章》中论述的范围之内;
下卷
对后世的影响最为深远如下卷第31题即著名的“鸡兔同笼”问题后传至日本被改为“鹤龟算”。 [1]
今有雉、兔同笼,上有三十五头,下有九十四足。问:雉、兔各几何?答曰:雉二十 三,兔一十二。
术曰:上置三十五头,下置九十四足。半其足,得四十七,以少减多,再命之,上三 除下三,上五除下五,下有一除上一,下有二除上二,即得。又术曰:上置头,下置足,半其足,以头除足,以足除头,即得。
算法译文:第一行放好头的数目,第二行放好脚的数目。将脚的数目除以二,得四十七。以较少的头数减较多的”脚数的一半“,得十二(知道这就是兔的数目),将第一行的算筹数目根据第二行得出的数目依次取去,即得鸡的数目。
另一种算法是:第一行放头的数目,第二行放脚的数目,将脚的数目除以二,从脚的数目的一半减去头的数目,再从头的数目减去刚才所获得的结果,即得鸡的数目。
下卷27题则是”鸡兔同笼“的一种推广。即使是头多于一个的奇异生物也能计算它们的数量。
今有兽,六首四足;禽,四首二足,上有七十六首,下有四十六足。问:禽、兽各几何?答曰:八兽、七禽。
术曰:倍足以减首,余半之,即兽;以四乘兽,减足,余半之,即禽。
算法译文:将脚的总数乘以二,减去头的数目,差除以二,得到兽的数目。将兽的数目乘以四,减去脚的数目,除以二,得到禽的数目。
下卷第28题“物不知数”为后来的“大衍求一术”的起源被看作是中国数学史上最有创造性地成就之一称为中国余数定理今有物不知其数。三三数之剩二五五数之剩三七七数之剩二。问物几 何?答曰:二十三。
术曰:三三数之,剩二,置一百四十;五五数之,剩三,置六十三;七七数之,剩二 ,置三十。并之,得二百三十三,以二百一十减之,即得。凡三三数之,剩一,则置七十 ;五五数之,剩一,则置二十一;七七数之,剩一,则置十五。一百六以上,以一百五 减之,即得。
下卷最后一题还提供了一种卜算胎儿性别的”方法“,颇有些现代”校验算法“的旨趣,一并记之如下:
今有孕妇,行年二十九岁。难九月,未知所生?答曰:生男。
术曰:置四十九加难月,减行年,所余以天除一,地除二,人除三,四时除四,五行除五,六律除六,七星除七,八风除八,九州除九。其不尽者,奇则为男,耦则为女。
算法译文基数七七四十九加上孕妇的孕期九月得五十八减去孕妇的年龄二十九得二十九。计算结果连续除以一到九的整数。如果最后余数的和是奇数就是生男偶数就是生女。本例的结果是0、1、2、1、4、5、1、5、2和为21所以孕妇生的是男孩。
</text>
</form>

@ -0,0 +1,15 @@
/* pages/camel/camel.wxss */
page {
background-color: #d9e8f0;
font-size: 35rpx;
}
.camel {
/* 水平垂直居中 */
display: flex;
justify-content: center;
align-items: center;
}
.camel > image {
width: 400rpx;
height: 500rpx;
}

@ -0,0 +1,17 @@
// pages/cnjs/cnjs.js
Page({
formSubmit: function(e) {
// 表单返回的所有数据
var formData = e.detail.value
// 获取上一个页面的对象
var pages = getCurrentPages()
var prevPage = pages[pages.length - 2]
// 调用上一个页面的 setData() 方法,把数据存到上一个页面中去
prevPage.setData({
username: formData.username,
gender: formData.gender
})
// 返回到上一个页面
wx.navigateBack()
}
})

@ -0,0 +1,5 @@
{
"navigationBarBackgroundColor": "#cfe2f3",
"navigationBarTitleText": "九章算术",
"navigationBarTextStyle":"black"
}

@ -0,0 +1,34 @@
<!--pages/cnjs/cnjs.wxml-->
<form bindsubmit="formSubmit" report-submit="true">
<view class="CN">
<image src="/images/04.webp" />
</view>
<text class="word" decode="{{true}}">
&nbsp;&nbsp;&nbsp;&nbsp;《九章算术》的内容十分丰富全书采用问题集的形式收有246个与生产、生活实践有联系的应用问题其中每道题有问题目、答答案、术解题的步骤但没有证明有的是一题一术有的是多题一术或一题多术。这些问题依照性质和解法分别隶属于方田、粟米、衰cuī分、少广、商功、均输、盈不足、方程及勾股。共九章如下所示。原作有插图今传本已只剩下正文了。
《九章算术》共收有246个数学问题分为九章。它们的主要内容分别是
第一章“方田”: 主要讲述了平面几何图形面积的计算方法。包括长方形、等腰三角形、直角梯形、等腰梯形、圆形、扇形、弓形、圆环这八种图形面积的计算方法。另外还系统地讲述了分数的四则运算法则以及求分子分母最大公约数等方法。其中例题38个立术21条。
第二章“粟米”谷物粮食的按比例折换提出比例算法称为今有术衰分章提出比例分配法则称为衰分术其中例题46个立术33条。
第三章“衰分”比例分配问题。其中例题20个立术22条。
第四章“少广”已知面积、体积反求其一边长和径长等介绍了开平方、开立方的方法。其中例题24个立术16条。
第五章“商功”土石工程、体积计算除给出了各种立体体积公式外还有工程分配方法其中例题28个立术24条。
第六章“均输”合理摊派赋税用衰分术解决赋役的合理负担问题。今有术、衰分术及其应用方法构成了包括今天正、反比例、比例分配、复比例、连锁比例在内的整套比例理论。西方直到15世纪末以后才形成类似的全套方法。其中例题28个立术28条。
第七章“盈不足”即双设法问题提出了盈不足、盈适足和不足适足、两盈和两不足三种类型的盈亏问题以及若干可以通过两次假设化为盈不足问题的一般问题的解法。这也是处于世界领先地位的成果传到西方后影响极大。其中例题20个立术27条。
勾股定理求解 [2]
第八章“方程”一次方程组问题采用分离系数的方法表示线性方程组相当于现在的矩阵解线性方程组时使用的直除法与矩阵的初等变换一致。这是世界上最早的完整的线性方程组的解法。在西方直到17世纪才由莱布尼兹提出完整的线性方程的解法法则。这一章还引进和使用了负数并提出了正负术——正负数的加减法则与现今代数中法则完全相同解线性方程组时实际还施行了正负数的乘除法。这是世界数学史上一项重大的成就第一次突破了正数的范围扩展了数系。外国则到7世纪印度的婆罗摩及多才认识负数。其中例题18个立术19条。
第九章“勾股”利用勾股定理求解的各种问题。其中的绝大多数内容是与当时的社会生活密切相关的。提出了勾股数问题的通解公式若a、b、c分别是勾股形的勾、股、弦则a²+b²=c²。在西方毕达哥拉斯、欧几里得等仅得到了这个公式的几种特殊情况直到3世纪的丢番图才取得相近的结果这已比《九章算术》晚约3个世纪了。勾股章还有些内容在西方却还是近代的事。例如勾股章最后一题给出的一组公式在国外到19世纪末才由美国的数论学家迪克森得出。其中例题24个立术19条。
《九章算术》
《九章算术》是《算经十书》中最重要的一部成于公元一世纪左右。其作者已不可考一般认为它是经历代各家的增补修订而逐渐发展完备成为现今定本的西汉的张苍、耿寿昌曾经做过增补和整理其时大体已成定本。最后成书最迟在东汉前期现今流传的大多是在三国时期魏元帝景元四年263年刘徽为《九章》所作的注本。
《九章算术》内容十分丰富,全书总结了战国、秦、汉时期的数学成就。同时,《九章算术》在数学上还有其独到的成就,不仅最早提到分数问题,也首先记录了盈不足等问题。《方程》章还在世界数学史上首次阐述了负数及其加减运算法则。它是一本综合性的历史著作,是当时世界上最简练有效的应用数学,它的出现标志中国古代数学形成了完整的体系。
2020年4月列入《教育部基础教育课程教材发展中心 中小学生阅读指导目录2020年版》初中段。
创作背景
《九章算术》
《九章算术》早期文本的编纂时间及经过,历代聚讼,众说不一,目前为止,最明确而中肯的论定还是出自刘徽的《九章算术注·原序》:昔在庖牺氏始画八卦,以通神明之德,以类万物之情,作九九之术,以合六爻之变。……按:周公制礼而有九数,九数之流,则《九章》是矣。往者暴秦焚书,经术散坏。自时厥后,汉北平侯张苍、大司农中丞耿寿昌皆以善算命世。苍等因旧文之遗残,各称删补。故校其目则与古或异,而所论者多近语也。
郭书春认为刘徽关于《九章算术》编纂的论述是完全正确的。他说:“《九章算术》由先秦‘九数’发展而来的,是张苍、耿寿昌在先秦遗文的基础上先后整理、加工、增补而成的,它的最后编定者是耿寿昌,时在公元前一世纪中叶。”但在早期文本的流传过程中书名的确定尚存诸多疑点,据现有史料推测,《九章算术》书名出现应晚于文本的编定,约于公元一世纪后期。 [7]
1984年在湖北出土了《算数书》书简。据考证它比《九章算术》要早一个半世纪以上书中有些内容和《九章算术》非常相似一些内容的文句也基本相同。有人推测两书具有某些继承关系但也有不同的看法认为《九章算术》没有直接受到《算数书》影响。
</text>
</form>

@ -0,0 +1,16 @@
/* pages/cnjs/cnjs.wxss */
page {
background-color: #d9e8f0;
font-size: 35rpx;
}
.CN {
/* 水平垂直居中 */
display: flex;
justify-content: center;
align-items: center;
}
.CN > image {
width: 400rpx;
height: 500rpx;
}

@ -0,0 +1,35 @@
// pages/content/content.js
Page({
data: {
username: '',
gender: '女',
phone:'12365485952',
QQ:'789546231'
},
onLoad: function(options) {
this.setData({
// 收到数据后使用decodeURIComponent()解码
username: decodeURIComponent(options.username),
gender: decodeURIComponent(options.gender),
phone: decodeURIComponent(options.phone),
QQ: decodeURIComponent(options.QQ)
})
},
formSubmit: function(e) {
// 表单返回的所有数据
var formData = e.detail.value
// 获取上一个页面的对象
var pages = getCurrentPages()
var prevPage = pages[pages.length - 2]
// 调用上一个页面的 setData() 方法,把数据存到上一个页面中去
prevPage.setData({
username: formData.username,
gender: formData.gender,
phone: formData.phone,
qq: formData.qq,
})
// 返回到上一个页面
wx.navigateBack()
}
})

@ -0,0 +1,7 @@
{
"usingComponents": {},
"navigationBarTitleText": "修改资料",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#9999CC"
}

@ -0,0 +1,31 @@
<!--pages/content/content.wxml-->
<form bindsubmit="formSubmit" report-submit="true">
<view class="section">
<view class="section-title">姓名:</view>
<view>
<input type="text" name="username" value="{{username}}" placeholder="请输入姓名" />
</view>
</view>
<view class="section">
<view class="section-title">性别:</view>
<view class="group">
<radio-group name="gender">
<label><radio value="男" checked="{{gender==='男' ? 'checked' : ''}}" />男</label>
<label><radio value="女" checked="{{gender==='女' ? 'checked' : ''}}" />女</label>
</radio-group>
</view>
<view class="section">
<view class="section-title">电话:</view>
<view>
<input type="text" name="phone" value="{{phone}}" placeholder="请输入电话:" />
</view>
</view>
<view class="section">
<view class="section-title">QQ</view>
<view>
<input type="text" name="QQ" value="{{QQ}}" placeholder="请输入QQ" />
</view>
</view>
</view>
<button formType="submit" class="primary">保存</button>
</form>

@ -0,0 +1,33 @@
/* pages/content.content.wxss */
page {
font-size: 32rpx;
}
.section {
padding: 40rpx;
border-bottom: 1px solid #efefef;
}
.section:last-child {
border: none;
}
.section-title {
width: 20%;
float: left;
}
label {
padding: 0 20rpx;
}
.primary{
width:100%;
margin-left: 20rpx;
margin-top: 100rpx;
height: 104rpx;
line-height: 78rpx;
text-align: center;
border-radius: 30rpx;
font-size: 34rpx;
background-color: #e3f4ff;
}

@ -0,0 +1,17 @@
// pages/firefly/firefly.js
Page({
formSubmit: function(e) {
// 表单返回的所有数据
var formData = e.detail.value
// 获取上一个页面的对象
var pages = getCurrentPages()
var prevPage = pages[pages.length - 2]
// 调用上一个页面的 setData() 方法,把数据存到上一个页面中去
prevPage.setData({
username: formData.username,
gender: formData.gender
})
// 返回到上一个页面
wx.navigateBack()
}
})

@ -0,0 +1,5 @@
{
"navigationBarBackgroundColor": "#cfe2f3",
"navigationBarTitleText": "五经算术",
"navigationBarTextStyle":"black"
}

@ -0,0 +1,9 @@
<!--pages/firefly/firefly.wxml-->
<form bindsubmit="formSubmit" report-submit="true">
<view class="firefly">
<image src="/images/16.jpg" />
</view>
<text class="word" decode="{{true}}">
&nbsp;&nbsp;&nbsp;&nbsp;五经算术》是北周甄鸾所著,共二卷。书中对《易经》、 《诗经》、《尚书》、 《周礼》、《仪礼》、《礼记》、《论语》、《左传》等儒家经典及其古注中与数字有关的地方详加注释,对研究经学的人或可有一定的帮助,但就数学的内容而论,其价值有限。现传本亦系抄自《永乐大典》。
</text>
</form>

@ -0,0 +1,15 @@
/* pages/firefly/firefly.wxss */
page {
background-color: #d9e8f0;
font-size: 35rpx;
}
.firefly {
/* 水平垂直居中 */
display: flex;
justify-content: center;
align-items: center;
}
.firefly > image {
width: 400rpx;
height: 500rpx;
}

@ -0,0 +1,17 @@
// pages/hlm/hlm.js
Page({
formSubmit: function(e) {
// 表单返回的所有数据
var formData = e.detail.value
// 获取上一个页面的对象
var pages = getCurrentPages()
var prevPage = pages[pages.length - 2]
// 调用上一个页面的 setData() 方法,把数据存到上一个页面中去
prevPage.setData({
username: formData.username,
gender: formData.gender
})
// 返回到上一个页面
wx.navigateBack()
}
})

@ -0,0 +1,5 @@
{
"navigationBarBackgroundColor": "#cfe2f3",
"navigationBarTitleText": "缉古算经",
"navigationBarTextStyle":"black"
}

@ -0,0 +1,13 @@
<!--pages/hlm/hlm.wxml-->
<form bindsubmit="formSubmit" report-submit="true">
<view class="hlm">
<image src="/images/10.jpg" />
</view>
<text class="word" decode="{{true}}">
&nbsp;&nbsp;&nbsp;&nbsp;第一题为推求月球赤纬度数,属于天文历法方面的计算问题,第二题至十四题是修造观象台、修筑堤坝、开挖沟渠,以及建造仓廪和地窖等土木工程和水利工程的施工计算问题,第十五至二十题是勾股问题。这些问题反映了当时开凿运河、修筑长城和大规模城市建设等土木和水利工程施工计算的实际需要。
王孝通在《上缉古算经表》中说:伏寻《九章》商功篇有平地役功受袤之术。至于上宽下狭,前高后卑,正经之内阙而不论。致使今代之人不达深理,就平正之间同欹邪之用。斯乃圆孔方枘,如何可安。臣昼思夜想,临书浩叹,恐一旦瞑目,将来莫睹。遂于平地之余,续狭邪之法,凡二十术,名曰《缉古》这段话清楚地说明了他写作本书的目的和研究成果。
《缉古算经》涉及到立体体积计算、勾股计算、建立和求解三次方程x3+ax2+bx=Aa、b和A非负建立和求解双二次方程x4+ax2=Aa、A为正这是一种特殊形式的四次方程等数学内容。这类问题与解法大多相当复杂就当时数学水平而言是相当困难的因此在国子监算学馆要学习三年学习年限仅次于祖氏父子的《缀术》。
例如该书第三题假如从甲、乙、丙、丁四县征派民工修筑河堤这段河堤的横截面是等腰梯形已知两端上下底之差两端高度差一端上底与高度差一端高度与堤长之差且已知各县出工人数每人每日平均取土量、隔山渡水取土距离、负重运输效率和筑堤土方量以及完工时间等求每人每日可完成的土方量整段河堤的土方量即河堤体积和这段河堤的长度、两端高度、两端上下底宽度以及各县完成的堤段长度等。前两个问题是比较简单的算术问题后两个问题则要经过较复杂的推导和几何变换归结为建立和求解形如x3+ax2+bx=A的三次方程。
在《缉古算经》第十五题至二十题等属于勾股算术的问题中,王孝通还创造性地把勾股问题引向三次方程,并与代数方法结合起来,扩大了勾股算术的范围,发展了勾股问题的解题方法。
</text>
</form>

@ -0,0 +1,15 @@
/* pages/hlm/hlm.wxss */
page {
background-color: #d9e8f0;
font-size: 35rpx;
}
.hlm {
/* 水平垂直居中 */
display: flex;
justify-content: center;
align-items: center;
}
.hlm > image {
width: 400rpx;
height: 500rpx;
}

@ -0,0 +1,18 @@
// pages/individual/individual.js
Page({
person: function() {
wx.navigateTo({
url: '/pages/revise/revise',
})
},
opinion:function(e){
wx.navigateTo({
url:'/pages/opinion/opinion',
})
},
contact: function (e) {
wx.makePhoneCall({
phoneNumber: '15882736954'
})
}
})

@ -0,0 +1,6 @@
{
"usingComponents": {},
"navigationBarTitleText": "中国古代数学",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#9999CC"
}

@ -0,0 +1,85 @@
<view class='amountBg'>
<view class='img'>
<image src="/images/01.jpg" style='width:86px;height:86px;'></image>
</view>
<view class='account'>
<view class="name">Ancient Chinese Mathematics</view>
<view class='manage_text'>中国古代数学</view>
</view>
</view>
<view class='contain'>
<view class='order'>
<view class='order_text'>古代数学文化</view>
<view class='cut'></view>
<view class='order_list'>
<view class='cut'></view>
<view class='desc'>
<view class="desc_img"><image src='/images/05.jpg'></image></view>
<view>算术工具</view>
</view>
<view class='desc'>
<view class='desc_img'><image src="/images/03.png"></image></view>
<view>杰出人物</view>
</view>
<view class='desc'>
<view class='desc_img'><image src='/images/04.webp'></image></view>
<view>经典著作</view>
</view>
</view>
</view>
<view class='clear'></view>
<!-- -->
<view class="section">
<view class="list">
<view class="row">
<view class="left">
<view class="text">数学的萌芽</view>
</view>
<view class="right">
<van-icon name="arrow" size="18px"/>
</view>
</view>
<!-- -->
<view class="row">
<view class="left">
<view class="text">框架的建立</view>
</view>
<view class="right">
<van-icon name="arrow" size="18px"/>
</view>
</view>
<view class="row">
<view class="left">
<view class="text">体系的构成</view>
</view>
<view class="right">
<van-icon name="arrow" size="18px"/>
</view>
</view>
<view class="row">
<view class="left">
<view class="text">数学的巅峰</view>
</view>
<view class="right">
<van-icon name="arrow" size="18px"></van-icon>
</view>
</view>
<!-- -->
<view class="row">
<view class="left">
<view class="text">继承和发展</view>
</view>
<view class="right">
<van-icon name="arrow" size="18px"/>
</view>
</view>
</view>
</view>
</view>

@ -0,0 +1,156 @@
Page{
background-color: #f4f4f4;
}
.amountBg{
height: 330rpx;
background:linear-gradient(to top,#e791a5,#e9ccd3);
display: flex;
flex-direction: row;
}
.img{
margin-left:60rpx;
margin-top:50rpx;
}
.account{
color: #ffffff;
margin-left: 30rpx;
margin-top: 68rpx;
}
.name{
font-size: 50rpx;
}
.manage_text{
font-size: 30rpx;
color: white;
margin-top: 10rpx;
border:2rpx solid #e9ccd3;
border-radius: 10rpx;
text-align: center;
}
.order{
width:92%;
height: 260rpx;
margin:0 auto;
background-color: #ffffff;
border-radius: 20rpx;
text-align: center;
margin-bottom: 40rpx;
margin-top: -80rpx;
display: flex;
flex-direction: column;
box-shadow:0rpx 8rpx 8rpx 3rpx rgb(221, 220, 220);
}
.order_text{
font-size: 44rpx;
color: gray;
margin-top: 20rpx;
text-align: left;
height:60rpx;
margin-left: 30rpx;
}
.cut{
opacity: 0.2;
height: 2rpx;
margin-top: 20rpx;
background-color: #000000;
}
.order_list{
display: flex;
flex-direction:row;
}
.desc{
color: gray;
width: 33%;
font-size: 30rpx;
}
.item{
background-color: #ffffff;
display: flex;
margin:0 auto;
flex-direction: row;
height: 100rpx;
align-items: center;
width: 92%;
margin-top: 20rpx;
border-radius: 20rpx;
box-shadow:0rpx 8rpx 8rpx 3rpx rgb(221, 220, 220);
}
.icon{
width: 100rpx;
text-align: center;
margin-top: 16rpx;
}
.itemname{
color: gray;
width: 40%;
font-size: 34rpx;
}
.hr{
height: 2rpx;
background-color: #000000;
width: 90%;
margin: 0 auto;
opacity: 0.2;
}
.remark{
font-weight: normal;
margin-top:10rpx;
}
.right{
color: #707075;
width: 5%;
text-align: right;
float: right;
}
.desc_img image{
margin-top: 16rpx;
width: 90rpx;
height: 90rpx;
}
.icon image{
height: 62rpx;
width: 62rpx
}
/* */
.section {
width: 690rpx;
margin: 80rpx auto;
border: 1rpx solid #eee;
border-radius: 10rpx;
box-shadow: 0 0 30rpx rgba(0, 0, 0, 0.2);
}
.section .list .row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 30rpx;
height: 100rpx;
border-bottom: 1rpx solid rgb(219, 196, 196);
}
.section .list .row:last-child {
border-bottom: 0;
}
.section .list .row .left {
display: flex;
align-items: center;
}
.section .list .row .left .text {
padding-left: 20rpx;
color: #666;
}
.section .list .row .right {
display: flex;
align-items: center;
}
.section .list .row .right .text {
font-size: 28rpx;
color: #aaa;
}
/* */

@ -0,0 +1,66 @@
// pages/life/life.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

@ -0,0 +1,5 @@
{
"navigationBarBackgroundColor": "#cfe2f3",
"navigationBarTitleText": "海岛算经",
"navigationBarTextStyle":"black"
}

@ -0,0 +1,9 @@
<!--pages/life/life.wxml-->
<form bindsubmit="formSubmit" report-submit="true">
<view class="life">
<image src="/images/09.jpg" />
</view>
<text class="word" decode="{{true}}">
&nbsp;&nbsp;&nbsp;&nbsp;《海岛算经》由刘徽于三国魏景元四年公元263年所撰本为《九章算术注》之第十卷题为《重差》。唐初开始单行体例亦是以应用问题集的形式。研究的对象全是有关高与距离的测量所使用的工具也都是利用垂直关系所连接起来的测竿与横棒。有人说是实用三角法的启蒙不过其内容并未涉及三角学中的正余弦概念。所有问题都是利用两次或多次测望所得的数据来推算可望而不可及的目标的高、深、广、远。此卷书被收集于明成祖时编修的永乐大典中现保存在英国剑桥大学图书馆。刘徽也曾对九章算数重编并加以注释。全书共9题全是利用测量来计算高深广远的问题首题测算海岛的高、远故得名。
</text>
</form>

@ -0,0 +1,15 @@
/* pages/life/life.wxss */
page {
background-color: #d9e8f0;
font-size: 35rpx;
}
.life {
/* 水平垂直居中 */
display: flex;
justify-content: center;
align-items: center;
}
.life > image {
width: 400rpx;
height: 500rpx;
}

@ -0,0 +1,357 @@
// pages/login/login.js
Page({
data: {
islogin:'1', //控制注册、登录、找回密码的控制量
loginbtnstate2:true,//注册 //当输入的手机号为11位时登录框变蓝色可点击否则为灰色
loginbtnstate:true,//登录
loginbtnstate1:true,//找回密码
password:'',
inputipone:'',//登录注册时时输入的手机号
compassiphone:'',//找回密码时输入的手机号
strloginUser:'',//登录用户名
strloginpassword:'',//用户密码
switchChecked:'',//选中按钮
},
onLoad() {
var _this = this;
console.log('开始检测。。。');
if( wx.getStorageSync("checkedValue")==false)
{
_this.setData({
strloginUser:'',
strloginpassword: '',
switchChecked:wx.getStorageSync('checkedValue'),
loginbtnstate:true,
})
console.log('无记住密码');
}
else{
_this.setData({
strloginUser: wx.getStorageSync("iphone"),
strloginpassword: wx.getStorageSync("password"),
switchChecked:wx.getStorageSync('checkedValue'),
loginbtnstate:wx.getStorageSync('wxlogin'),
})
console.log('记住密码'+_this.data.strloginUser+_this.data.strloginpassword+_this.data.switchChecked)
}
},
//判断是否要记住密码
bindswitchchange: function (event) {
//得到值
var checkedValue = event.detail.value; //接收true/false的状态量
var _this = this;
if (checkedValue == true){
_this.setData({
switchChecked:true,
})
wx.setStorageSync("checkedValue", _this.data.switchChecked);
} else if (checkedValue == false) {
_this.setData({
switchChecked: false
})
wx.setStorageSync("checkedValue", _this.data.switchChecked);
}
console.log("开关状态"+checkedValue);
},
//输入密码(登录界面判断有无)
password1:function(event){
var that = this
var m=event.detail.value
console.log(event.detail.value)
if(m!=''){
this.setData({
strloginpassword:m
})
if(this.data.strloginUser!=''&&(this.data.strloginUser.length==11))
{
this.setData({
loginbtnstate:false
})
}
else{
this.setData({
loginbtnstate:true,
})
}
}
else{
this.setData({
loginbtnstate:true,
password:''
})
}
},
//输入手机号(登录界面判断有无)
inputiphone1:function(event){
console.log(event.detail.value)
var m=event.detail.value
if(m!=''&&(m.length==11)){
this.setData({
strloginUser:m
})
if(this.data.strloginpassword!='')
{
this.setData({
loginbtnstate:false
})
}
else{
this.setData({
loginbtnstate:true,
})
}
}
else{
this.setData({
loginbtnstate:true,
})
}
},
//输入密码(注册界面判断有无)
password2:function(event){
console.log(event.detail.value)
var m=event.detail.value
var userinfos=wx.getStorageSync('userjobs') ||[];//找数组
var k=1
for(var s=0;s<userinfos.length;s++)
{
if(this.data.inputipone==userinfos[s].iphone)
{
k=0
wx.showToast({
title: '手机号已注册',
icon:'error'
})
}
}
if(m!=''){
this.setData({
password:m
})
if(this.data.inputipone!=''&&(this.data.inputipone.length==11&& k))
{
this.setData({
loginbtnstate2:false
})
}
else{
this.setData({
loginbtnstate2:true,
})
}
}
else{
this.setData({
loginbtnstate2:true,
password:''
})
}
},
//输入手机号(注册界面判断有无)
inputiphone2:function(event){
console.log(event.detail.value)
var userinfos=wx.getStorageSync('userjobs') ||[];//找数组 数据缓存
var k=1
var m=event.detail.value //定义一个量接收传入过来的量
if(m!=''&&(m.length==11)){ //判断手机号是否为空或是否等于11位
this.setData({
inputipone:m
})
for(var s=0;s<userinfos.length;s++)
{
if(this.data.inputipone==userinfos[s].iphone)
{
k=0
wx.showToast({
title: '手机号已注册',
icon:'error'
})
}
}
if(this.data.password!=''&& k) //判断密码不为空
{
this.setData({
loginbtnstate2:false
})
}
else{
this.setData({
loginbtnstate2:true,
})
}
}
else{
this.setData({
loginbtnstate2:true,
inputipone:''
})
}
},
//找回密码输入框
compass:function(event){
console.log("找回密码"+event.detail.value)
var m=event.detail.value
if(m!=''&&(m.length==11)){
this.setData({
compassiphone:m,
loginbtnstate1:false //如果输入的手机号正确状态值设为False
})
}
else{
this.setData({
loginbtnstate1:true,
inputipone:''
})
}
},
//登录
onlogin:function(e){
var that=this
//记住密码
var checkedValue = that.data.switchChecked;
console.log(checkedValue);
//如果记住密码则向微信缓存写入账号密码
//如果不记住密码则清空微信缓存存在的账号密码
if (checkedValue == true) {
wx.setStorageSync("iphone",that.data.strloginUser); //把输入的手机号存入
wx.setStorageSync("password",that.data.strloginpassword);
wx.setStorageSync("checkedValue", that.data.switchChecked);
wx.setStorageSync("wxlogin", false);
console.log(that.data.loginbtnstate)
} else if (checkedValue == false) {
wx.setStorageSync("iphone","");
wx.setStorageSync("password","");
wx.setStorageSync("checkedValue", false); //手机号、密码为空记住密码为false登录按钮禁用
wx.setStorageSync("wxlogin", true);
}
//开始检查用户名和密码是否一致
var userinfos=wx.getStorageSync('userjobs') ||[];//找数组 得到数值
var k=1
for(var s=0;s<userinfos.length;s++)
{
if(userinfos[s].iphone==that.data.strloginUser){
if(userinfos[s].password==that.data.strloginpassword)
{
wx.showToast({
title: '登录成功',
duration:2000,
}),
wx.reLaunch({
url: '../read/read',
})
}
else{
wx.showToast({
title: '密码错误',
icon:'error',
duration:2000
})
}
}
k++
}
if(k==userinfos.length)
{
wx.showToast({
title: '手机号未注册',
icon:'error',
duration:2000
})
}
},
//注册
formsubmit:function(e){
var that=this
console.log(e.detail.value)
var obj={}
obj.password=e.detail.value.inputpassword, //存入获取到的密码
obj.iphone=e.detail.value.iphone, //存入获取到的手机号
console.log(obj)
//存入多个注册用户
var arr=wx.getStorageSync('userjobs',arr) ||[];
console.log(arr);
arr.push(obj);
wx.setStorageSync('userjobs',arr); //将数据存储在本地缓存中指定的 key 中(本地缓存中指定的 key需要存储的内容
wx.showToast({ //显示注册成功
title: '注册成功',
duration:1000,
success:function(){
that.setData({
islogin:1,
password:'',
inputiphone:'',
loginbtnstate2:true
})
}
})
},
//找回密码
comebackpassword:function(e){
var that =this
let lqy=wx.getStorageSync('userjobs') || [];//找数组 //从本地缓存中同步获取指定 key 的内容
var k=1
for(var s=0; s<lqy.length;s++)
{
if(lqy[s].iphone==that.data.compassiphone)
{
wx.setClipboardData({ //把密码写到粘贴板上
data: lqy[s].password,
success (res) {
wx.getClipboardData({ //从粘贴板上得到这个密码
success (res) {
console.log(res.data) // data
that.setData({
islogin:1,
loginbtnstate1:true
})
wx.showToast({
title: '密码已复制',
duration:2000
})
}
})
}
})
}
else
{
wx.showToast({ //不等的情况下显示手机号未注册
title: '该手机号码未注册',
duration:2000
})
// this.setData({
// loginbtnstate1:true
// })
}
}
},
//跳转到注册
register:function(e){
this.setData({
islogin:3
})
},
//跳转到忘记密码
forget:function(e){
this.setData({
islogin:2
})
},
//跳转到登录
denglu:function(e){
this.setData({
islogin:1
})
}
})

@ -0,0 +1,6 @@
{
"usingComponents": {},
"navigationBarTitleText": "登录",
"navigationBarTextStyle": "black"
}

@ -0,0 +1,82 @@
<view class="wrapper">
<!-- 第一部分 -->
<view wx:if="{{islogin==1}}">
<view class="header">
<view class="title">请登录</view>
<view class="info">Please Login Your Account</view>
</view>
</view>
<!-- 找回密码 -->
<view wx:elif="{{islogin==2}}">
<view class="header">
<view class="title">找回密码</view>
<view class="info">Retrieve the password</view>
</view>
</view>
<!-- 请注册 -->
<view wx:else="{{islogin==3}}">
<view class="header">
<view class="title">请注册</view>
<view class="info">Please Register Your Account</view>
</view>
</view>
<!-- 第二部分 -->
<view class="body">
<!-- 登录页面 -->
<view wx:if="{{}}">
<view class="input1">
<input class="one" type="number" bindinput="inputiphone1" maxlength="11" placeholder="请输入手机号" value="{{}}"/>
<input class="one" password="true" bindinput="password1" placeholder="请输入密码" value="{{}}"/>
</view>
<view class="remenber"> <switch type="checkbox" checked="{{switchChecked}}" bindswitcheck="switchChecked" bindchange="bindswitchchange" style="transform:scale(0.8)"/>记住密码</view>
<button class="two" color="#3d7ef9" type="primary" bindtap="onlogin" disabled="{{loginbtnstate}}">登录</button>
</view>
<!-- 找回密码 -->
<view wx:elif="{{islogin==2}}">
<view class="input1">
<input class="one" type="number" bindinput="compass" maxlength="11" placeholder="请输入手机号" />
</view>
<button class="two" color="#3d7ef9" type="primary" bindtap="comebackpassword" disabled="{{}}">找回密码</button>
</view>
<!-- 注册页面 -->
<view wx:else="{{}}">
<form bindsubmit="formsubmit">
<view class="input1">
<input class="one" type="number" bindinput="inputiphone2" maxlength="11" placeholder="请输入手机号" name="iphone" />
<input class="one" password="true" bindinput="password2" placeholder="请输入密码" name="inputpassword" />
</view>
<button class="two" color="#3d7ef9" type="primary" form-type="submit" disabled="{{loginbtnstate2}}">注册</button>
</form>
</view>
<!-- 第三部分 -->
<!-- 登录 -->
<view wx:if="{{islogin==1}}">
<view class="end">
<text bindtap="register">注册账户</text>
<text>|</text>
<text bindtap="forget">忘记密码</text>
</view>
</view>
<!-- 找回密码 -->
<view wx:elif="{{islogin==2}}">
<view class="end">
<text bindtap="denglu">登录页面</text>
</view>
</view>
<!-- 注册 -->
<view wx:else="{{islogin==3}}">
<view class="end">
<text bindtap="denglu">登录页面</text>
</view>
</view>
<view class="end-power">
<view class="power">
<text>图书资源管理系统</text>
</view>
</view>
</view>
</view>

@ -0,0 +1,60 @@
/* pages/login/login.wxss */
.header{
height: 200rpx;
padding:40rpx 30rpx;
display: flex;
flex-direction: column;
background-color:#9999CC;
color: #E8E8E8;
}
.title{
font-size: 52rpx;
font-weight: 700;
padding: 20rpx;
}
.header .info{
font-size:28rpx ;
padding: 20rpx;
}
.body{
padding: 40rpx;
}
.input{
margin-top: 20rpx;
}
.one{
height: 100rpx;
margin-top: 20rpx;
box-shadow: #056901 0 0 5rpx;
border-radius: 10rpx;
}
.two{
border: solid 1rpx #57b676;
margin-top: 40rpx;
width: 100%;
background-color: #73d884;
border-radius: 40rpx;
}
.end{
display: flex;
justify-content: center;
margin-top: 40rpx;
color: #45a142;
}
.end text{
margin-left:30rpx;
}
.end-power{
display: flex;
justify-content: center;
}
.power{
color: #25a154;
position: fixed;
bottom: 50rpx;
}
.remenber{
margin-top: 20rpx;
}

@ -0,0 +1,40 @@
Page({
data: {
banners: [
{ url: 'https://pic.vjshi.com/2022-08-31/578a52769c9e48bd803212d743022624/00001.jpg?x-oss-process=style/watermark' },
{ url: 'https://ts1.cn.mm.bing.net/th/id/R-C.f710b3dd4dcc3a230c59e37fe8648803?rik=JYB%2fWaSduGLMZQ&riu=http%3a%2f%2fwww.tanmizhi.com%2fimg%2fallimg%2f01%2f19-2001091RJ2.jpg&ehk=%2bZymS0MGiSDKNKCwx23%2bNvO0B9S4DTZtJpBGYiHq3SI%3d&risl=&pid=ImgRaw&r=0' },
{ url: 'https://ts1.cn.mm.bing.net/th/id/R-C.2cd67462b64447245bdfe216b463c645?rik=EwYm5k2zUgB4hg&riu=http%3a%2f%2fwww.tanmizhi.com%2fimg%2fallimg%2f01%2f19-2001091RJ3-50.jpg&ehk=xnDGy1mugyNjDpuuOIy6Rwnfn54oQ3cock9LReF%2fvGM%3d&risl=&pid=ImgRaw&r=0&sres=1&sresct=1' }
],
historians: [
{
avatar: 'https://tse2-mm.cn.bing.net/th/id/OIP-C.Y_LM4QVJ9qifB2ctdxeeoAHaJT?w=600&h=754&rs=1&pid=ImgDetMain',
name: '祖冲之',
intro: '祖冲之是南北朝时期的数学家,他首次将圆周率计算到小数点后七位。'
},
{
avatar: 'https://ts1.cn.mm.bing.net/th/id/R-C.670c838d1b365325623135ea4ba40342?rik=RvMNP3yvxw%2bl%2bw&riu=http%3a%2f%2fimgres.qulishi.com%2fqulishi%2f94%2f468290-2023082511110164e81bc54aeb0.jpg&ehk=Qq6D6%2buuRGH7ZMBdVdPkYurtXq7g9soywbgKEDwvzjo%3d&risl=&pid=ImgRaw&r=0',
name: '刘徽',
intro: '刘徽是魏晋时期的数学家,他的《九章算术注》对后世产生了深远影响。'
},
{
avatar: 'https://ts1.cn.mm.bing.net/th/id/R-C.445fde33d3319f45eabcdcbcffaef306?rik=ntURNR08LBQv6Q&riu=http%3a%2f%2fwww.cas.cn%2fspzb1%2fJNHLGSS25ZN%2fHLG25LZP%2f201006%2fW020100610507641629592.jpg&ehk=SLv45SiVMzt%2bh10bRJu3zDfu%2febBYtC%2bXUSQKLvJj6o%3d&risl=&pid=ImgRaw&r=0',
name: '华罗庚',
intro: '华罗庚是现代数学家,他在数论、代数几何等领域取得了杰出成就。'
}
],
mathProblems: [
{
title: '鸡兔同笼',
content: '今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?'
},
{
title: '韩信点兵',
content: '韩信率军出征他想知道士兵的准确数目。他让士兵按照每3人一排排队剩下2人按照每5人一排排队剩下3人按照每7人一排排队剩下2人。请问韩信的军队有多少人'
},
{
title: '百鸡问题',
content: '今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、雏各几何?'
}
]
}
})

@ -0,0 +1,6 @@
{
"usingComponents": {},
"navigationBarTitleText": "中国古代数学",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#9999CC"
}

@ -0,0 +1,41 @@
<view class="container">
<!-- 轮播图 -->
<swiper class="swiper" indicator-dots="{{true}}" autoplay="{{true}}" interval="{{5000}}" duration="{{500}}">
<block wx:for="{{banners}}" wx:key="index">
<swiper-item>
<image src="{{item.url}}" mode="aspectFill" class="swiper-img"></image>
</swiper-item>
</block>
</swiper>
<!-- 关于我们 -->
<view class="section">
<view class="section-title">关于古代数学</view>
<view class="section-content">
小程序致力于展示中国古代数学的悠久历史和丰富贡献。通过展示中国古代数学著作、算术仪器、古代知名数学家,我们希望带领您领略古代数学的魅力。
</view>
</view>
<!-- 历史名人 -->
<view class="section">
<view class="section-title">历史名人</view>
<view class="section-content">
<view wx:for="{{historians}}" wx:key="index" class="historian">
<image src="{{item.avatar}}" mode="aspectFill" class="historian-avatar"></image>
<text class="historian-name">{{item.name}}</text>
<text class="historian-intro">{{item.intro}}</text>
</view>
</view>
</view>
<!-- 数学趣题 -->
<view class="section">
<view class="section-title">数学趣题</view>
<view class="section-content">
<view wx:for="{{mathProblems}}" wx:key="index" class="math-problem">
<text class="math-problem-title">{{item.title}}</text>
<text class="math-problem-content">{{item.content}}</text>
</view>
</view>
</view>
</view>

@ -0,0 +1,75 @@
.container {
display: flex;
flex-direction: column;
align-items: center;
padding: 20px;
}
.swiper {
width: 100%;
height: 200px;
}
.swiper-img {
width: 100%;
height: 100%;
}
.section {
width: 100%;
margin-top: 20px;
}
.section-title {
font-size: 24px;
font-weight: bold;
margin-bottom: 10px;
}
.section-content {
font-size: 16px;
line-height: 1.5;
}
.historian {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
}
.historian-avatar {
width: 100px;
height: 100px;
border-radius: 50%;
margin-bottom: 10px;
}
.historian-name {
font-size: 18px;
font-weight: bold;
margin-bottom: 5px;
}
.historian-intro {
font-size: 16px;
line-height: 1.5;
}
.math-problem {
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
margin-bottom: 10px;
}
.math-problem-title {
font-size: 18px;
font-weight: bold;
margin-bottom: 5px;
}
.math-problem-content {
font-size: 16px;
line-height: 1.5;
}

@ -0,0 +1,32 @@
// pages/opinion/opinion.js
Page({
/**
* 页面的初始数据
*/
data: {
num:0
},
bindFormSubmit: function(e) {
var that = this;
var formData = e.detail.value;
console.log(e.detail.value.textarea)
wx.showToast({
title: '反馈成功',
icon: 'success',
duration: 2000
})
that.setData({
form_info: '',
num:0
})
},
inputs: function (e) {
var value = e.detail.value;
var len = parseInt(value.length);
console.log(len);
this.setData({
num: len //当前字数
});
}
})

@ -0,0 +1,6 @@
{
"usingComponents": {},
"navigationBarTitleText": "意见与反馈",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#9999CC"
}

@ -0,0 +1,13 @@
<view class="container">
<view class="box">
<view class="title">意见反馈</view>
<view class="section">
<form bindsubmit="bindFormSubmit">
<textarea placeholder="请详述您的问题,以便我们为您提供更好的服务"
name="textarea" value='{{form_info}}' maxlength="200" bindinput="inputs"/>
<text class="count">{{num}}/200</text>
<button form-type="submit" class="submit"> 提交 </button>
</form>
</view>
</view>
</view>

@ -0,0 +1,46 @@
/* pages/opinion/opinion.wxss */
.container{
width: 100%;
margin: 0;
padding: 0;
}
.box{
width: 90%;
margin-left: 20rpx;
margin-top: 40rpx;
height: 480rpx;
border: 2rpx solid #f8f8f8;
border-radius: 40rpx;
box-shadow: 2rpx 10rpx 6rpx rgb(211, 210, 210)
}
.section{
width: 100%;
height: 300px;
}
.title{
font-size: 40rpx;
margin-top: 20rpx;
margin-left: 40rpx;
}
textarea{
width: 90%;
height: 320rpx;
margin-left: 32rpx;
margin-top: 20rpx;
font-size: 28rpx;
}
.count{
margin-left: 500rpx;
color: #9e9c9c;
}
.submit{
width:100%;
margin-left: 20rpx;
margin-top: 50rpx;
height: 104rpx;
line-height: 78rpx;
text-align: center;
border-radius: 30rpx;
font-size: 34rpx;
background-color: #e3f4ff;
}

@ -0,0 +1,40 @@
<!-- 内容滚动区域 -->
<scroll-view class="content-info" scroll-y>
<!-- 轮番图 -->
<swiper class="content-info-slide" indicator-color="rgba(255,255,255,.5)" indicator-active-color="#fff" indicator-dots circular autoplay>
<swiper-item><image src="/images/17.jpeg" /></swiper-item>
<swiper-item><image src="/images/18.jpg" /></swiper-item>
<swiper-item><image src="/images/19.jpg" /></swiper-item>
</swiper>
<!-- 热门图书 -->
<view class="content-info-list">
<view class="list-title">古代数学名著</view>
<view class="list-inner">
<view class="list-item" bindtap="CN">
<image src="/images/04.webp" />
<view>九章算术</view>
</view>
<view class="list-item" bindtap="life">
<image src="/images/09.jpg" />
<view>海岛算经</view>
</view>
<view class="list-item" bindtap="hlm">
<image src="/images/10.jpg" />
<view>缉古算经</view>
</view>
<view class="list-item" bindtap="camel">
<image src="/images/11.jpg" />
<view>孙子算经</view>
</view>
<view class="list-item" bindtap="say">
<image src="/images/12.jpg" />
<view>算经十书</view>
</view>
<view class="list-item" bindtap="firefly">
<image src="/images/16.jpg" />
<view>五经算术</view>
</view>
</view>
</view>
</scroll-view>

@ -0,0 +1,50 @@
// pages/read/read.js
Page({
CN: function() {
// 保留当前页面,点击页面左上角箭头,返回上一个页面
wx.navigateTo({
url: '/pages/cnjs/cnjs',
})
},
life: function() {
// 保留当前页面,点击页面左上角箭头,返回上一个页面
wx.navigateTo({
url: '/pages/life/life',
})
},
hlm: function() {
// 保留当前页面,点击页面左上角箭头,返回上一个页面
wx.navigateTo({
url: '/pages/hlm/hlm',
})
},
camel: function() {
// 保留当前页面,点击页面左上角箭头,返回上一个页面
wx.navigateTo({
url: '/pages/camel/camel',
})
},
say: function() {
// 保留当前页面,点击页面左上角箭头,返回上一个页面
wx.navigateTo({
url: '/pages/say/say',
})
},
firefly: function() {
// 保留当前页面,点击页面左上角箭头,返回上一个页面
wx.navigateTo({
url: '/pages/firefly/firefly',
})
},
// 跳转事件
jump: function(e) {
// 跳转到“个人资料修改页”
wx.navigateTo({
// 为了避免用户名中的特殊字符破坏字符串结构使用encodeURIComponent()编码
url: '/pages/modify/modify?username=' + encodeURIComponent(this.data.username) + '&gender=' + encodeURIComponent(this.data.gender)
})
},
})

@ -0,0 +1,5 @@
{
"navigationBarBackgroundColor": "#9999CC",
"navigationBarTitleText": "中国古代数学",
"navigationBarTextStyle":"white"
}

@ -0,0 +1,13 @@
<!--pages/read/read.wxml-->
<!-- 标签页标题 -->
<view class="tab">
<view class="tab-item {{tab==0?'active':''}}" bindtap="changeItem" data-item="0">中国数学发展</view>
</view>
<!-- 内容区域 -->
<view class="content">
<swiper current="{{item}}" bindchange="changeTab">
<swiper-item>
<include src="info.wxml" />
</swiper-item>
</swiper>
</view>

@ -0,0 +1,78 @@
/* pages/read/read.wxss */
page {
display: flex;
flex-direction: column;
background: #cedce4;
color: #696569;
height: 100%;
}
.tab {
display: flex;
height: 77rpx;
}
.tab-item {
flex: 1;
font-size: 10pt;
text-align: center;
line-height: 72rpx;
border-bottom: 6rpx solid #eee;
}
.content {
flex: 1;
}
.content > swiper {
height: 100%;
}
.tab-item.active {
color: #c25b5b;
border-bottom-color:#c25b5b ;
}
.content-info {
height: 100%;
}
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}
/* 轮番图 */
.content-info-slide {
height: 302rpx;
margin-bottom: 20px;
}
.content-info-slide image {
width: 100%;
height: 100%;
}
/* 热门图书 */
.content-info-list {
font-size: 11pt;
margin-bottom: 20rpx;
margin-top: 20rpx;
}
.content-info-list > .list-title {
margin: 20rpx 35rpx;
}
.content-info-list > .list-inner {
display: flex;
flex-wrap: wrap;
margin: 0 20rpx;
}
.content-info-list > .list-inner > .list-item {
flex: 1;
}
.content-info-list > .list-inner > .list-item > image {
display: block;
width: 188rpx;
height: 230rpx;
margin: 0 auto;
border-radius: 10rpx;
border: 1rpx solid #555;
}
.content-info-list > .list-inner > .list-item > view {
width: 200rpx;
margin: 10rpx auto;
font-size: 10pt;
}

@ -0,0 +1,34 @@
// pages/revise/revise.js
Page({
data: {
gender: '女',
username: 'Lily',
QQ:'784562136',
phone:'14236654896',
imgUrl: "/images/me.jpg",
color1:'#e3f4ff'
},
changeAvatar: function() {
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success: res => {
// tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths
this.setData({
imgUrl: tempFilePaths
})
}
})
},
jump: function(e) {
// 跳转到“个人资料修改页”
wx.navigateTo({
// 为了避免用户名中的特殊字符破坏字符串结构使用encodeURIComponent()编码
url: '/pages/content/content?username=' + encodeURIComponent(this.data.username) + '&gender=' + encodeURIComponent(this.data.gender)+ '&QQ=' + encodeURIComponent(this.data.QQ)+ '&phone=' + encodeURIComponent(this.data.phone)
})
}
})

@ -0,0 +1,7 @@
{
"usingComponents": {},
"navigationBarTitleText": "个人资料",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#9999CC"
}

@ -0,0 +1,30 @@
<!--pages/revise/revise.wxml-->
<view class="info">
<!-- 头像 -->
<view>
<view class="fl">头像</view>
<view class="rl">
<image src="{{imgUrl}}" mode="aspectFill" bindtap="changeAvatar"></image>
<image class="arrow" src="/images/arrow.png"></image>
</view>
</view>
<!-- 昵称 -->
<view>
<view class="fl">昵称</view>
<view class="rl">{{username}}<view class="arrow"></view></view>
</view>
<!-- 性别 -->
<view>
<view class="fl">性别</view>
<view class="rl">{{gender}}<view class="arrow"></view></view>
</view>
<view>
<view class="fl">电话</view>
<view class="rl">{{phone}}<view class="arrow"></view></view>
</view>
<view>
<view class="fl">QQ</view>
<view class="rl">{{QQ}}<view class="arrow"></view></view>
</view>
<button bindtap="jump" from-type="primary" class="primary">确定修改</button>
</view>

@ -0,0 +1,57 @@
/* pages/revise/revise.wxss */
page {
background-color: #f4f4f4;
font-size: 32rpx;
}
.info > view {
background-color: #fff;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 20rpx;
line-height: 80rpx;
border-bottom: 1px solid #efefef;
height: 80rpx;
}
/* .button{
color: rgb(149, 189, 176);
} */
.info > view:last-child {
border: none;
}
.fl {
flex: 1;
}
.rl {
flex: 1;
text-align: right;
}
.info image {
width: 50rpx;
height: 50rpx;
margin-top: 20rpx;
}
.info .arrow {
width: 30rpx;
height: 32rpx;
float: right;
margin: 26rpx 0 0 15rpx;
}
.primary{
width:100%;
margin-left: 20rpx;
margin-top: 50rpx;
height: 104rpx;
line-height: 78rpx;
text-align: center;
border-radius: 30rpx;
font-size: 34rpx;
background-color: #e3f4ff;
}

@ -0,0 +1,17 @@
// pages/say/say.js
Page({
formSubmit: function(e) {
// 表单返回的所有数据
var formData = e.detail.value
// 获取上一个页面的对象
var pages = getCurrentPages()
var prevPage = pages[pages.length - 2]
// 调用上一个页面的 setData() 方法,把数据存到上一个页面中去
prevPage.setData({
username: formData.username,
gender: formData.gender
})
// 返回到上一个页面
wx.navigateBack()
}
})

@ -0,0 +1,5 @@
{
"navigationBarBackgroundColor": "#cfe2f3",
"navigationBarTitleText": "算经十书",
"navigationBarTextStyle":"black"
}

@ -0,0 +1,9 @@
<!--pages/say/say.wxml-->
<form bindsubmit="formSubmit" report-submit="true">
<view class="say">
<image src="/images/12.jpg" />
</view>
<text class="word" decode="{{true}}">
&nbsp;&nbsp;&nbsp;&nbsp;唐代国子监内设立算学馆置博士、助教指导学生学习数学唐高宗显庆元年656年规定《周髀算经》、《九章算术》、《孙子算经》、《五曹算经》、《夏侯阳算经》、《张丘建算经》、《海岛算经》、《五经算术》、《缀术》、《缉古算经》十部汉、唐一千多年间的十部著名数学著作作为国家最高学府的算学教科书用以进行数学教育和考试后世通称为《算经十书》
</text>
</form>

@ -0,0 +1,15 @@
/* pages/say/say.wxss */
page {
background-color: #d9e8f0;
font-size: 35rpx;
}
.say {
/* 水平垂直居中 */
display: flex;
justify-content: center;
align-items: center;
}
.say > image {
width: 400rpx;
height: 500rpx;
}

@ -0,0 +1,53 @@
{
"description": "项目配置文件",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"bundle": false,
"userConfirmedBundleSwitch": false,
"urlCheck": true,
"scopeDataCheck": false,
"coverView": true,
"es6": true,
"postcss": true,
"compileHotReLoad": false,
"lazyloadPlaceholderEnable": false,
"preloadBackgroundData": false,
"minified": true,
"autoAudits": false,
"newFeature": false,
"uglifyFileName": false,
"uploadWithSourceMap": true,
"useIsolateContext": true,
"nodeModules": false,
"enhance": true,
"useMultiFrameRuntime": true,
"useApiHook": true,
"useApiHostProcess": true,
"showShadowRootInWxmlPanel": true,
"packNpmManually": false,
"enableEngineNative": false,
"packNpmRelationList": [],
"minifyWXSS": true,
"showES6CompileOption": false,
"minifyWXML": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"condition": false,
"ignoreUploadUnusedFiles": false
},
"compileType": "miniprogram",
"libVersion": "2.19.4",
"appid": "wx0384afbf2f937970",
"projectname": "miniprogram-92",
"condition": {},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
}
}

@ -0,0 +1,29 @@
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "%E6%95%B0%E5%AD%A6",
"setting": {
"compileHotReLoad": true,
"urlCheck": false
},
"libVersion": "2.19.6",
"condition": {
"miniprogram": {
"list": [
{
"name": "",
"pathName": "pages/login/login",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/read/read",
"query": "",
"launchMode": "default",
"scene": null
}
]
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 KiB

@ -0,0 +1,7 @@
{
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
"rules": [{
"action": "allow",
"page": "*"
}]
}

@ -0,0 +1,19 @@
const formatTime = date => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}
const formatNumber = n => {
n = n.toString()
return n[1] ? n : `0${n}`
}
module.exports = {
formatTime
}

Binary file not shown.
Loading…
Cancel
Save