# 1. 2018~2019学年第2学期Delphi数据库课程设计
## 1.1. 目录
- [1. 2018~2019学年第2学期Delphi数据库课程设计](#1-20182019%E5%AD%A6%E5%B9%B4%E7%AC%AC2%E5%AD%A6%E6%9C%9Fdelphi%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1)
- [1.1. 目录](#11-%E7%9B%AE%E5%BD%95)
- [1.2. 系统需求](#12-%E7%B3%BB%E7%BB%9F%E9%9C%80%E6%B1%82)
- [1.2.1. 系统功能简介](#121-%E7%B3%BB%E7%BB%9F%E5%8A%9F%E8%83%BD%E7%AE%80%E4%BB%8B)
- [1.2.2. 软件环境与开发工具](#122-%E8%BD%AF%E4%BB%B6%E7%8E%AF%E5%A2%83%E4%B8%8E%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7)
- [1.3. 数据库设计](#13-%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1)
- [1.3.1. 概要结构设计](#131-%E6%A6%82%E8%A6%81%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1)
- [1.3.1.1. 数据表结构分析](#1311-%E6%95%B0%E6%8D%AE%E8%A1%A8%E7%BB%93%E6%9E%84%E5%88%86%E6%9E%90)
- [1.4. 系统设计与实现](#14-%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0)
- [1.5. 结论与尚存在的问题](#15-%E7%BB%93%E8%AE%BA%E4%B8%8E%E5%B0%9A%E5%AD%98%E5%9C%A8%E7%9A%84%E9%97%AE%E9%A2%98)
- [1.6. 个人总结](#16-%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93)
- [1.7. 项目用法](#17-%E9%A1%B9%E7%9B%AE%E7%94%A8%E6%B3%95)
## 1.2. 系统需求
### 1.2.1. 系统功能简介
  本项目是一个户籍管理系统,用于记录住户身份信息,提供新户登记(增加)、户籍变更(修改)、户籍注销(删除)、户籍查询、曾用名查询、迁户记录查询以及创建备份、删除备份共8个功能。
### 1.2.2. 软件环境与开发工具
- 操作系统:Windows 10 Home China 1809 17763
- 数据库:[SQL Server Express 2017](https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads)
- 集成开发环境:[Embarcadero Delphi Architect 10.3](https://www.embarcadero.com/cn/products/delphi)
## 1.3. 数据库设计
### 1.3.1. 概要结构设计
  数据库`Manager`共包括以下3张表:
| 表名 | 说明 |
| ------------ | ---------------------------------------- |
| `People` | 存储用户信息,是程序的核心表 |
| `Rename` | 存储用户改名记录,作为曾用名表 |
| `Move` | 存储用户的住址变更记录,作为户籍变更历史 |
| `Controller` | 存储系统管理员账户信息 |
#### 1.3.1.1. 数据表结构分析
  4张数据表的字段分别列举如下:
| 字段名 | 含义 | 类型 |
| --------- | ---------------- | ---------------- |
| `Name` | 姓名 | `NVARCHAR(10)` |
| `Sex` | 性别 | `NCHAR(2)` |
| `ID_Num` | 身份证号(主键) | `CHAR(18)` |
| `Address` | 户籍地址 | `NVARCHAR(100)` |
| `Tel_No` | 联系方式 | `NUMERIC(12, 0)` |
| `Date` | 更新时间 | `DATETIME` |
<br />
| 字段名 | 含义 | 类型 |
| ---------- | -------------------- | ---------- |
| `ID_Num` | 身份证号(主键) | `CHAR(18)` |
| `Old_Name` | 曾用名 | `CHAR(10)` |
| `Date` | 改名时间(升序索引) | `DATETIME` |
<br />
| 字段名 | 含义 | 类型 |
| --------- | -------------------- | --------------- |
| `ID_Num` | 身份证号(主键) | `CHAR(18)` |
| `Address` | 曾用户籍地 | `NVARCHAR(100)` |
| `Date` | 迁户时间(升序索引) | `DATETIME` |
<br />
| 字段名 | 含义 | 类型 |
| ---------- | -------------- | ---------------- |
| `Username` | 用户名(主键) | `NCHAR(10)` |
| `Alias` | 别名 | `NCHAR(10)` |
| `Password` | 密码 | `VARBINARY(128)` |
<br />
## 1.4. 系统设计与实现
![程序登陆界面](img/App_Login.png)
![程序主界面](img/Main_Frame.png)
![数据容灾界面](img/Backup.png)
![数据插入界面](img/Insert.png)
![数据修改界面](img/Update.png)
![数据查询界面](img/Select.png)
![数据删除界面](img/Delete.png)
![曾用名记录](img/Rename.png)
![迁户记录](img/Move.png)
![关于界面](img/About.png)
## 1.5. 结论与尚存在的问题
  以下是本项目仍然存在的问题:
1. 用户查询功能存在缺陷,无法在`DBGrid`中显示`ADOQuery`的查询结果;
2. 数据库无法从`*.bak`文件中恢复。
## 1.6. 个人总结
  项目由可视化集成开发环境(快速应用程序开发工具)制作而成,对比于C/C++ MFC/QT、Java Swing/SWT、Python TKinter,Delphi具有方便、快捷的优势,在界面布局方面节省了大量的时间。但在另一方面,仍有个别功能只能通过编写代码实现,大量由Delphi自动生成的Object-Pascal代码使得项目维护难度提高。
  本次开发工作存在较大的失误,项目分工错误让我基本承担所有工作。此外项目的开工时间极度延后,导致工期不足,甚至无法完成基本功能。
  通过此次开发的教训,在后续课程设计乃至今后的生产环境开发都要提前估计工作量与工期,合理安排开发进度,杜绝临时赶工的行为。
## 1.7. 项目用法
  由于项目需要连接数据库程序,而不同设备的数据库配置可能存在差异,有别于直接连接到库文件的[Microsoft Office Access](https://products.office.com/zh-cn/access)、[SQLite](https://sqlite.org/index.html)。由我使用Windows-32bit Release模式编译发布的可执行程序并不通用,所以请根据以下步骤编译运行:
1. 项目提供了[`Citizens_log.ldf`](db/Citizens_log.ldf)数据库日志文件和[`Citizens.mdf`](db/Citizens.mdf)数据库主文件,这2个文件仅支持Microsoft SQL Server 2017及以上版本数据库的附加。对于之前的版本,项目额外提供了[`script.sql`](db/script.sql)以实现数据库导入工作,此脚本最低兼容SQL Server 2008。脚本仅涉及架构,没有任何数据。如有测试需要,请在运行此脚本生成数据库后自行添加备用数据。
2. 使用Delphi打开代码库中的[`Manager.dproj`](src/Manager.dproj),定位至[`Connect.pas`](src/Connect.pas)文件的窗体设计视图。
3. 修改`ADOConnection1`控件的`ConnectionString`属性,点击`Build`选项,在数据库连接向导切换为您设备的配置(包括驱动程序、服务器名、登陆账号及密码、数据库名)。
4. 定位至[`Backup.pas`](src/Backup.pas)文件的窗体设计视图,同样地修改`ADOQuery1`控件的`ConnectionString`属性。
5. 定位至[`Edit.pas`](src/Edit.pas)、[`Move.pas`](src/Move.pas)、[`Rename.pas`](src/Rename.pas),重新激活各个页面的`ADOTable1`,确认`DBGrid`能够正常显示数据库的内容。
6. 以上,即可正常编译运行。
没有合适的资源?快使用搜索试试~ 我知道了~
Delphi数据库课程设计.zip
共60个文件
dcu:15个
png:11个
dfm:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 88 浏览量
2023-12-06
08:29:26
上传
评论
收藏 9.02MB ZIP 举报
温馨提示
数据库课程设计
资源推荐
资源详情
资源评论
收起资源包目录
2018~2019学年第2学期Delphi数据库课程设计.zip (60个子文件)
001
bak
2019-5-31-0-04-13.bak 3.77MB
src
Backup.pas 3KB
Edit.dfm 16KB
Move.dfm 1KB
Move.pas 643B
Manager.identcache 664B
Main.dfm 1.08MB
About.pas 544B
Login.pas 2KB
Main.pas 2KB
Connect.pas 385B
Rename.pas 647B
Win32
Release
About.dcu 5KB
Login.dcu 8KB
Edit.dcu 15KB
Connect.dcu 2KB
Main.dcu 9KB
Move.dcu 5KB
Rename.dcu 6KB
Backup.dcu 11KB
Manager.exe 4.06MB
Debug
About.dcu 5KB
Login.dcu 5KB
Edit.dcu 16KB
Connect.dcu 2KB
Main.dcu 7KB
Move.dcu 5KB
Rename.dcu 5KB
Manager.exe 10.2MB
Login.dfm 8KB
Manager.dproj.local 62B
Manager.stat 172B
Manager.dproj 34KB
Edit.pas 5KB
Manager.dpr 749B
About.dfm 442KB
Backup.dfm 67KB
Rename.dfm 1KB
Backup.vlb 520B
Manager.res 58KB
Connect.dfm 877B
LICENSE 1KB
img
Backup.png 58KB
Move.png 11KB
Delete.png 18KB
Main_Frame.png 818KB
Rename.png 9KB
Select.png 20KB
Update.png 28KB
Database.png 30KB
About.jpg 195KB
About.png 285KB
App_Login.png 16KB
Login.jpg 489KB
Insert.png 23KB
.gitignore 79B
README.md 7KB
db
Citizens_log.ldf 8MB
script.sql 28KB
Citizens.mdf 8MB
共 60 条
- 1
资源评论
LeapMay
- 粉丝: 3w+
- 资源: 2305
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功