# 基于Rust+Tauri开发的简易windows桌面点名器
**Repository Path**: ucanner/choosename
## Basic Information
- **Project Name**: 基于Rust+Tauri开发的简易windows桌面点名器
- **Description**: 基于Rust+Tauri开发的简易windows桌面点名器
- **Primary Language**: Rust
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-03-07
- **Last Updated**: 2026-04-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 课堂点名系统




**一款现代化的课堂随机点名桌面应用程序**
[功能特性](#功能特性) • [快速开始](#快速开始) • [使用说明](#使用说明) • [技术栈](#技术栈)
---
## 📖 项目简介
课堂点名系统是一款基于 **Tauri 2.x + Rust** 开发的 Windows 桌面应用程序,专为教师课堂点名设计。采用加权随机算法,确保每位学生被点到的概率公平合理,同时提供丰富的辅助功能。
### 🎯 设计理念
- **公平公正**:加权随机算法,被点次数少的学生概率更高
- **简洁高效**:纯原生界面,无 Electron 臃肿,安装包小巧
- **功能丰富**:点名、计时、考试倒计时、小组管理等多种功能
---
## ✨ 功能特性
### 核心功能
| 功能 | 描述 |
|------|------|
| 🎲 **随机点名** | 加权随机算法,公平点名,支持语音播报 |
| 👥 **多班级管理** | 支持创建多个班级,快速切换 |
| 📊 **点名统计** | 记录每位学生被点次数,可视化展示 |
| 📝 **批量点名** | 一次点名多人,支持自定义人数 |
### 辅助工具
| 功能 | 描述 |
|------|------|
| ⏱️ **课堂计时器** | 倒计时提醒,支持语音播报 |
| 🖥️ **考试倒计时大屏** | 全屏考试倒计时,适合投影展示 |
| 🎯 **高考倒计时** | 设置高考日期,实时倒计时 |
| 🔗 **校内网站导航** | 快速访问学校常用网站 |
### 窗口模式
| 模式 | 描述 |
|------|------|
| 📋 **完整模式** | 完整功能界面,适合日常使用 |
| 📝 **精简模式** | 缩小窗口,仅保留核心功能 |
| 🎈 **悬浮球模式** | 桌面悬浮球,一键点名 |
| 📌 **窗口置顶** | 始终显示在最前 |
### 其他特性
- 🌓 **亮色/暗色主题** 切换
- 🎨 **自定义字体和颜色**
- 💾 **数据导入导出** 支持
- 🚀 **开机自启动** 支持
- 📌 **系统托盘** 最小化
---
## 🚀 快速开始
### 环境要求
- **操作系统**: Windows 10/11
- **开发环境** (可选):
- [Node.js](https://nodejs.org/) 18+
- [Rust](https://www.rust-lang.org/) 1.70+
- [Tauri CLI](https://tauri.app/) 2.x
### 安装使用
#### 方式一:直接下载
1. 前往 [Releases](../../releases) 页面下载最新版本
2. 解压后运行 `课堂点名系统.exe`
#### 方式二:从源码构建
```bash
# 克隆仓库
git clone https://github.com/your-username/choosename.git
cd choosename
# 安装依赖
npm install
# 开发模式运行
npm run tauri dev
# 构建生产版本
npm run tauri build
```
---
## 📚 使用说明
### 基本操作
1. **创建班级**:点击左侧 `+` 按钮或菜单 `文件 → 新建班级`
2. **导入学生**:菜单 `文件 → 导入名单`,支持批量导入
3. **开始点名**:选择班级后,点击右侧 `随机点名` 按钮
### 数据导入格式
支持以下格式:
```
张三
李四
王五
```
或带序号:
```
1. 张三
2. 李四
3. 王五
```
### 快捷键
| 快捷键 | 功能 |
|--------|------|
| `Ctrl + N` | 新建班级 |
| `Ctrl + I` | 导入名单 |
| `F5` | 考试倒计时大屏 |
| `Alt + T` | 窗口置顶 |
---
## 🛠️ 技术栈
| 技术 | 用途 |
|------|------|
| [Tauri 2.x](https://tauri.app/) | 跨平台桌面应用框架 |
| [Rust](https://www.rust-lang.org/) | 后端核心逻辑 |
| [HTML/CSS/JavaScript](https://developer.mozilla.org/) | 前端界面 |
| [Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API) | 语音播报 |
### 项目结构
```
choosename/
├── src/ # 前端源码
│ ├── index.html # 主页面
│ ├── float.html # 悬浮球页面
│ ├── main.js # 主逻辑
│ └── styles.css # 样式文件
├── src-tauri/ # 后端源码
│ ├── src/
│ │ ├── lib.rs # 核心逻辑
│ │ └── main.rs # 入口文件
│ ├── init.db # 初始数据
│ ├── Cargo.toml # Rust 配置
│ └── tauri.conf.json # Tauri 配置
└── README.md # 说明文档
```
---
## 📝 数据存储
- **数据位置**: `%LOCALAPPDATA%\choosename\`
- **now.db**: 当前数据文件
- **init.db**: 初始数据模板
### 恢复原始数据
菜单 `设置 → 初始化数据 → 恢复原始数据`
---
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
---
## 📄 许可证
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
---
## 👨💻 作者
- 📧 Email: wb@mlyz.cn
---
## 🙏 致谢
感谢所有为这个项目做出贡献的人!
**如果这个项目对你有帮助,请给一个 ⭐️ Star!**