鸿蒙小姑娘
*-------------------------------------------------------------------添加第二列 输入框*//*-----------------------------------------------------添加第三列显示计算器按钮*//*-----------------------------------添加第一列 上面空白部分*//
得路
@Entry
@Component
struct Register {
/*初始化函数 中设置全铺整个屏幕*/
aboutToAppear(): void {
window.getLastWindow(getContext(),(error,win)=>{
win.setWindowLayoutFullScreen(true)
})
}
/*构造界面*/
build() {
/*添加列*/
Column(){
/*添加Stack组件*/
Stack(){
/*添加列*/
Column(){
}/*设置列的样式*/
.width(350)
.height(600)
.backgroundColor(Color.Gray)/*设置列的背景颜色*/
.opacity(0.6)/*设置列的透明度*/
.borderRadius(20)
/*添加列,组织表单组件*/
Column(){
/*添加标题*/
Text('REGISTER')
.fontSize(30)/*设置标题大小*/
.fontColor(Color.White)/*设置标题颜色*/
/*用户姓名*/
this.builderTextInput('用户姓名:', '', '')
/*用户密码*/
this.builderTextInput('用户密码:', '', 'password')
/*确认密码*/
this.builderTextInput('确认密码:', '', 'password')
/*添加行*/
Row({space: 10}){
/*用户类型*/
Text('用户类型:')
.fontSize(20)/*设置标题大小*/
.fontColor(Color.White)/*设置标题颜色*/
/*添加下拉列表*/
Select([{value: '普通用户'},{ value: '管理员'}])
.width(140)
.height(35)
.value('请选择')
.fontColor(Color.White)/*设置下拉列表的文字颜色*/
.backgroundColor('#abcdef')/*设置下拉列表的背景颜色*/
.borderRadius(10)/*设置下拉列表的圆角*/
.opacity(0.6)/*设置下拉列表的透明度*/
}/*设置行的样式*/
.height(50)
/*添加行*/
Row({space: 12}){
/*用户性别*/
Text('用户性别:')
.fontColor(Color.White)/*设置标题颜色*/
.fontSize(20)
/*单选按钮*/
Radio({value: '男',group: 'sex'})
.borderRadius(10)/*设置单选按钮的圆角*/
.backgroundColor('#abcdef')
.opacity(0.6)/*设置单选按钮的透明度*/
/*添加文本*/
Text('男')
.fontColor(Color.White)/*设置标题颜色*/
.fontSize(20)
/*添加单选按钮*/
Radio({value: '女',group: 'sex'})
.borderRadius(10)/*设置单选按钮的圆角*/
.backgroundColor('#abcdef')
.opacity(0.6)/*设置单选按钮的透明度*/
/*添加文本*/
Text('女')
.fontColor(Color.White)/*设置标题颜色*/
.fontSize(20)
}/*设置行的样式*/
.height(50)
/*出生日期*/
this.builderTextInput('出生日期:', '年/月/日', '')
/*添加行 兴趣爱好*/
Row({space: 1}){
/*添加文本*/
Text('兴趣爱好:')
.fontColor(Color.White)/*设置标题颜色*/
.fontSize(20)
/*添加多选按钮*/
Checkbox()
.borderRadius(10)/*设置多选按钮的圆角*/
.backgroundColor('#abcdef')
.opacity(0.6)/*设置多选按钮的透明度*/
/*添加文本*/
Text('编程')
.fontColor(Color.White)/*设置标题颜色*/
.fontSize(20)
/*添加多选按钮*/
Checkbox()
.borderRadius(10)/*设置多选按钮的圆角*/
.backgroundColor('#abcdef')
.opacity(0.6)/*设置多选按钮的透明度*/
/*添加文本*/
Text('游戏')
.fontColor(Color.White)/*设置标题颜色*/
.fontSize(20)
}/*设置行的样式*/
.height(50)
/*电子邮件*/
this.builderTextInput('电子邮件:', '', '')
/*添加行 自我简介*/
Row({space: 10}){
/*添加文本*/
Text('自我简介:')
.fontColor(Color.White)/*设置标题颜色*/
.fontSize(20)
/*添加文本域*/
TextArea()
.backgroundColor('#abcdef')
.borderRadius(10)/*设置文本域的圆角*/
.opacity(0.6)/*设置文本域的透明度*/
.width('40%')/*设置文本域的宽度*/
.height(100)/*设置文本域的高度*/
}
/*添加行 */
Row({space: 20}){
/*添加提交按钮*/
Button('提交')
.backgroundColor('#ff0567c3')/*设置按钮的背景颜色*/
.borderRadius(10)/*设置按钮的圆角*/
.opacity(0.6)/*设置按钮的透明度*/
.width(80)/*设置按钮的宽度*/
.height(40)/*设置按钮的高度*/
/*添加提交按钮*/
Button('重置')
.backgroundColor('#ff0567c3')/*设置按钮的背景颜色*/
.borderRadius(10)/*设置按钮的圆角*/
.opacity(0.6)/*设置按钮的透明度*/
.width(80)/*设置按钮的宽度*/
.height(40)/*设置按钮的高度*/
}/*设置行的样式*/
.height(50)
}/*设置列的样式*/
.width(350)
.height(600)
.justifyContent(FlexAlign.Center)/*设置列的居中*/
}/*设置Stack的样式*/
.width('100%')
.height('100%')
}/*设置列的样式*/
.width('100%')
.height('100%')
.backgroundImage($r('app.media.bj4'))/*设置列的背景图片*/
.backgroundImageSize({width: '100%', height: '100%'})
}
/**
* 创建函数,用来构造输入框类型
* @param name 名称
* @param placeholder 提示
* @param type 文本框 类型
*/
@Builder
builderTextInput(name: string, placeholder: string,type: string){
/*添加行*/
Row({space: 10}){
/*添加文本*/
Text(name)
.fontSize(20)
.fontColor(Color.White)
/*添加文本框*/
TextInput({placeholder: placeholder})
.type('password' == type? InputType.Password:InputType.Normal)
.backgroundColor('#abcdef')/*设置文本框的背景颜色*/
.borderRadius(10)/*设置文本框的圆角*/
.width('40%')/*设置文本框的宽度*/
.opacity(0.6)/*设置文本框的透明度*/
}/*设置行的样式*/
.height(50)
}
}
计算器
/**
* @Description: 计算器
* @Author: khc
* @Date: 2026/3/31 8:55
* @Version: 1.0
*/
@Entry
@Component
struct Calculator {
/*创建数组,用来设置计算器按钮上显示的内容*/
private buttonTexts = [
'AC', 'del','+/-', '÷',
'7', '8', '9', '*',
'4', '5', '6', '-',
'1', '2', '3', '+',
'%','0', '.', '=',
]
/*构造界面*/
build() {
/*添加列*/
Column(){
/*-----------------------------------添加第一列 上面空白部分*/
Column(){
}/*设置列的样式*/
.width('100%')
.height('10%')
/*-------------------------------------------------------------------添加第二列 输入框*/
Column(){
/*添加文本框,用来输入计算*/
TextInput()
.fontSize(70)/*设置字体大小*/
.height('80%')/*设置文本框高度*/
.textAlign(TextAlign.End)/*输入显示在右边*/
.backgroundColor(Color.White)
}/*设置列的样式*/
.width('100%')
.height('35%')
.backgroundColor(Color.White)
/*-----------------------------------------------------添加第三列 显示计算器按钮*/
Column(){
/*添加网格组件 */
Grid(){
/*循环创建计算器的按钮,同时设置按钮上显示的内容*/
ForEach(this.buttonTexts,(item: string,index)=>{
/*添加网格项*/
GridItem(){
/*添加按钮*/
Button(item)
.width('100%')/*设置按钮宽度*/
.height('100%')/*设置按钮高度*/
.fontSize(30)/*设置按钮的字体大小*/
.borderRadius(50)/*设置按钮的圆角*/
.backgroundColor(this.setButtonBackgroundColor(item))/*设置按钮的背景颜色*/
.fontColor(this.setButtonFontColor(item))/*设置按钮的字体颜色*/
}
})
}/*设置网格组件的样式*/
.columnsTemplate("1fr 1fr 1fr 1fr")/*四列*/
.rowsTemplate("1fr 1fr 1fr 1fr 1fr")/*五行*/
.rowsGap(10)/*设置行间距*/
.columnsGap(10)/*设置列间距*/
}/*设置列的样式*/
.width('95%')
.height('55%')
.margin(10)/*设置列外边距*/
}/*设置列的样式*/
.width('100%')
.height('100%')
}
/*创建函数,用来设置按钮的背景颜色*/
setButtonBackgroundColor(item: string){
/*分支判断*/
switch (item){
case '+':
case '-':
case '*':
case '÷':
return '#ffdeccbe'
case '=':
return '#ffde0a0a'
default:
return '#ededed'
}
}
/*创建函数,用来设置按钮上显示的内容的颜色*/
setButtonFontColor(item: string){
switch (item){
case '+':
case '-':
case '*':
case '÷':
case 'AC':
case 'del':
case '+/-':
return '#ffe00606'
case '=':
return '#ffffff'
default:
return '#000000'
}
}
}
二维码
/**
* @Description: 二维码
* @Author: khc
* @Date: 2026/3/31 10:20
* @Version: 1.0
*/
@Entry
@Component
struct QrcodeTest {
/*创建变量,用来设置二维编码的宽度*/
@State qrcodeWidth: number = 200
/*定义变量,用来设置二维编码的颜色*/
@State qrcodeColor: Color = Color.Black
/*创建变量,用来设置二维编码生成的内容*/
@State qrcodeContent: string = ''
/*创建变量,用来设置二维编码的最小宽度*/
@State qrcodeMinWidth: number = 50
/*创建变量,用来设置二维编码的最大宽度*/
@State qrcodeMaxWidth: number = 300
/*构造界面*/
build() {
/*添加列*/
Column() {
/*添加Stack布局*/
Stack() {
/*添加二维码组件*/
QRCode(this.qrcodeContent)
.width(this.qrcodeWidth)/*设置二维码组件的宽度*/
.height(this.qrcodeWidth)/*设置二维码组件的高度*/
.color(this.qrcodeColor) /*设置二维码组件的颜色*/
/*添加logo图片*/
Image($r('app.media.startIcon'))
.width(this.qrcodeWidth / 4) /*设置logo图片的宽度*/
} /*设置Stack组件的样式*/
.width('100%') /*设置Stack组件的宽度*/
.height('50%') /*设置Stack组件的高度*/
/*添加行 用来设置二维编码的大小*/
Row() {
/*添加文本*/
Text('大小:')
/*添加滑块组件*/
Slider({
min: 0, /*最小*/
max: 100, /*最大值*/
step: 1, /*步长*/
value: (this.qrcodeWidth - this.qrcodeMinWidth) / (this.qrcodeMaxWidth - this.qrcodeMinWidth) * 100 /*默认值*/
})/*设置滑块的样式*/
.width('70%')/*设置滑块组件的宽度*/
.onChange((value: number) => { /*value滑块的值*/
/*设置二维码组件的宽度*/
this.qrcodeWidth = this.qrcodeMinWidth + (this.qrcodeMaxWidth - this.qrcodeMinWidth) * value / 100
})
}
/*添加行,用来设置二维编码的颜色*/
Row({ space: 10 }) {
/*添加文本*/
Text('颜色:')
/*添加一组颜色按钮*/
this.createColorButton(Color.Red) /*添加红色按钮*/
this.createColorButton(Color.Green) /*添加绿色按钮*/
this.createColorButton(Color.Blue) /*添加蓝色按钮*/
this.createColorButton(Color.Yellow) /*添加黄色按钮*/
this.createColorButton(Color.Black) /*添加黑色按钮*/
}
/*添加列,用来生成二维编码的内容*/
Column(){
/*添加文本*/
Text('输入二维码的生成内容:')
.fontSize(20)
.fontWeight(FontWeight.Bold)
/*添加文本域*/
TextArea({placeholder: '请输入......'})
.width('70%')/*设置文本域的宽度*/
.height(180)/*设置文本域的高度*/
.foregroundColor(Color.Black)/*设置文本域的前景色*/
.backgroundColor(Color.Gray)/*设置文本域的背景颜色*/
.onChange((value)=>{
this.qrcodeContent = value/*设置二维码组件的内容*/
})
}
} /*设置列的样式*/
.width('100%')
.height('100%')
}
/*创建函数,用来生成颜色按钮*/
@Builder
createColorButton(color: Color) {
/*添加按钮*/
Button()
.width(30)/*设置按钮的宽度*/
.height(40)/*设置按钮的高度*/
.borderRadius(15)/*设置按钮的圆角*/
.backgroundColor(color)/*设置按钮的背景颜色*/
.onClick(()=>{
this.qrcodeColor = color/*设置二维码组件的颜色*/
})
}
}
背景切换
/**
* @Description: 微信主页面
* @Author: khc
* @Date: 2026/3/30 9:15
* @Version: 1.0
*/
@Entry
@Component
struct Home{
/*创建变量,用来获取点击选项时选项的索引值*/
@State selectedIndex: number = 0
/*构造界面*/
build() {
/*添加列*/
Column(){
/*添加选项卡组件 1: barPosition: BarPosition.End在底部显示 index:指定默认选中的选项 指定选项的索引*/
Tabs({barPosition: BarPosition.End,index: this.selectedIndex}){
/*-----------------------------------微信*/
TabContent(){
/*添加列*/
Column(){
}/*设置列的样式*/
.width('100%')
.height('100%')
.background(Color.Red)
}/*设置选项的标题*/
//.tabBar('微信')
.tabBar(this.builderTabBar(0,'微信',$r('app.media.wechat1'),$r('app.media.wechat2')))
/*------------------------------------通讯录*/
TabContent(){
}/*设置选项的标题*/
//.tabBar('通讯录')
.tabBar(this.builderTabBar(1,'通讯录',$r('app.media.contacts1'),$r('app.media.contacts2')))
/*------------------------------------------发现*/
TabContent(){
}/*设置选项的标题*/
//.tabBar('发现')
.tabBar(this.builderTabBar(2,'发现',$r('app.media.find1'),$r('app.media.find2')))
/*------------------------------------------我*/
TabContent(){
}/*设置选项的标题*/
//.tabBar('我')
.tabBar(this.builderTabBar(3,'我',$r('app.media.me1'),$r('app.media.me2')))
}/*设置Tabs的样式*/
.onChange((index: number)=>{/*index就是选中的选项的索引值*/
/*把选中的选项的索引值设置给selectedIndex变量*/
this.selectedIndex = index
})
}/*设置列的样式*/
.width('100%')/*设置列的宽度*/
.height('100%')/*设置列的高度*/
}
/**
* 创建选项中的内容
* @param index 选项的索引
* @param title 标题
* @param icon 默认的图片
* @param selectedIcon 选中之后显示的图片
*/
@Builder
builderTabBar(index: number,title: string ,icon: Resource,selectedIcon: Resource){
/*添加列*/
Column(){
/*添加图片*/
Image(this.selectedIndex == index?selectedIcon:icon)
.width(30)
.height(30)
/*添加标题*/
Text(title)
.fontColor(this.selectedIndex == index?Color.Green:'')
}/*设置列的样式*/
.width('100%')/*设置列的宽度*/
.height('70%')/*设置列的高度*/
}
}
选择排序法应用及过程描述
对序列 (10, 2, 7, 1, 9, 5, 4, 8, 6, 3) 使用选择排序法进行排序。
- 请描述选择排序的基本思想。
- 写出排序过程中每一趟选择后的序列。
答案:
(1)选择排序的基本思想:
选择排序是一种简单直观的排序算法。其基本思想是每一轮从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。具体步骤如下:
- 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
- 然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
- 以此类推,直到所有元素均排序完毕。
(2)对给定序列 (10, 2, 7, 1, 9, 5, 4, 8, 6, 3) 进行选择排序的过程如下:
- 第一趟:从初始序列中找到最小元素 1,将其与第一个元素 10 交换位置,得到序列 (1, 2, 7, 10, 9, 5, 4, 8, 6, 3)。
- 第二趟:从剩余序列 (2, 7, 10, 9, 5, 4, 8, 6, 3) 中找到最小元素 2,由于它已经在正确位置,序列不变,仍为 (1, 2, 7, 10, 9, 5, 4, 8, 6, 3)。
- 第三趟:从剩余序列 (7, 10, 9, 5, 4, 8, 6, 3) 中找到最小元素 3,将其与第三个元素 7 交换位置,得到序列 (1, 2, 3, 10, 9, 5, 4, 8, 6, 7)。
- 第四趟:从剩余序列 (10, 9, 5, 4, 8, 6, 7) 中找到最小元素 4,将其与第四个元素 10 交换位置,得到序列 (1, 2, 3, 4, 9, 5, 10, 8, 6, 7)。
- 第五趟:从剩余序列 (9, 5, 10, 8, 6, 7) 中找到最小元素 5,将其与第五个元素 9 交换位置,得到序列 (1, 2, 3, 4, 5, 9, 10, 8, 6, 7)。
- 第六趟:从剩余序列 (9, 10, 8, 6, 7) 中找到最小元素 6,将其与第六个元素 9 交换位置,得到序列 (1, 2, 3, 4, 5, 6, 10, 8, 9, 7)。
- 第七趟:从剩余序列 (10, 8, 9, 7) 中找到最小元素 7,将其与第七个元素 9 交换位置,得到序列 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)。
- 第八趟:从剩余序列 (8, 9, 10) 中找到最小元素 8,将其与第八个元素 9 交换位置,得到序列 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)。
- 第九趟:从剩余序列 (9, 10) 中找到最小元素 9,序列不变,仍为 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)。
- 第十趟:剩余最后一个元素 10,序列已完全排序,为 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)。
在线留言板系统数据流图及元素分析
某在线留言板系统允许用户提交留言,并对留言内容进行审核后展示。请画出该系统的数据流图,并指出其包含的元素及其作用。

数据流图元素及其作用:
- 用户(A):
- 外部实体,代表使用在线留言板系统的用户,可以提交留言和浏览留言。
- 留言提交系统(B):
- 处理过程,用户通过此系统提交他们的留言。
- 留言数据库(C):
- 数据存储,用于存储用户提交的留言内容,等待审核。
- 留言审核系统(D):
- 处理过程,系统或管理员对提交的留言进行审核。
- 留言展示系统(E):
- 处理过程,负责展示审核通过的留言内容给用户。
数据流动关系:
- 用户提交留言:
- 用户(A)通过留言提交系统(B)提交留言,留言内容被存储在留言数据库(C)。
- 审核留言:
- 留言审核系统(D)从留言数据库(C)请求审核留言,审核结果返回到留言数据库(C)。
- 展示留言:
- 留言展示系统(E)从留言数据库(C)检索并展示审核通过的留言内容。
- 用户浏览留言:
用户(A)通过留言展示系统(E)浏览已审核的留言。
更多推荐



所有评论(0)