资源描述
智能系统开发课程设计
通讯录信息管理系统
姓 名
张培琳
学 院
信息与电气工程学院
专 业
信息工程
年 级
2011
学 号
20112814680
指导教师
周树森
2014 年 12月5日
1 引言 1
1.1 课题背景 1
1.2 所用技术 1
2 系统分析 2
3 系统设计 2
3.1 结构分析 2
3.2 数据库设计 3
4 系统实现 4
4.1 步骤及截图 4
4.2 代码实现 6
5 结束语 9
鲁东大学本科毕业设计
学生信息管理系统
张培琳
(信息与电气工程学院,信息工程专业,2011级2班,20112814680)
摘 要:本文是一个通讯录信息管理系统,主要功能有后台管理员可以添加,删除修改联系人的信息,前台供用户使用的界面,用户可以根据姓名查询联系人的信息。
关键词:Eclipse;Python Django;数据库(mysql);html;
1 引言
1.1 课题背景
通讯录已经成为是我们每个人日常不可或缺的一样东西。一个功能齐全、简单易用的通讯录信息管理系统能有效的减轻我们每个人记住联系人信息的负担,它的内容对于我们日常管理联系人来说都至关重要。所以通讯录信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。近年来,随着我们网络信息的发展我们每个人的社交的规模不断扩大,联系人数量急剧增加,有关的各种信息量也能成倍增长。面对庞大的信息量需要有通讯录信息管理系统来提高管理工作的效率。本系统主要用于联系人信息管理,总体任务是实现信息关系的系统化、规范化和自动化,其主要任务是用计算机对联系人各种信息进行日常管理,如查询、修改、增加、删除等,是通讯录信息的管理向着规范化、简单化、有效化的发展。
1.2 所用技术
Python是一种开源的、解析性的,面向对象的语言编程。它语法优雅,可读性强,让程序员注重功能实现,而非代码本身实现细节。现广泛运用于Web开发、运维自动化、测试自动化及数据挖掘等多个行业和领域。Python语言有很大的优势:比Java、C++简单更易于使用;比PHP易懂易学并且用途更广;比Perl更简洁的语法、更简单的设计,更具可读性、更易于维护,有助于减少Bug。但它的性能不如Java、C、C++这类编译性语言强大。因此本系统开发选用Python语言编写。
2 系统分析
本次设计用Eclipse、Django开发工具,Python语言进行学生信息管理系统的开发,主要功能有后台进行建表,与数据库同步,在数据库中存储学生信息,并有增加、删除、修改功能;用户可以通过网址输入自己的登录姓名和学号,查询其余信息。分为管理端和客户端:
管理端:管理员在后台进行学生信息增加、删除、修改等功能,将学生信息保存进数据库。
客户端:用户通过管理员给定的网址进入查询页面,输入姓名与学号查询自己的信息。
3 系统设计
3.1 结构分析
(1)根据系统分析,画出系统功能模块结构图:
通讯录
用户
管理员
查 询 联 系 人
修改 联 系 人
删除联 系 人
增加 联 系 人
查 询 联 系 人
图 3.1 系统功能模块结构图
(2)画出系统模块功能流程图:
通讯录
管理员
通讯录信息录入及增删
用户查找通讯录
显示联系人信息
图 3.2 系统功能模块流程图
3.2 数据库设计
本文系统采用了mysql数据库,实现比较简单。主要是对学生各种信息进行存储,用到了一张表格,如果还需要其他信息,可进行表格增加。
表1 联系人详细信息
列名
功能描述
类型
字段大小
主键否
name
姓名
varchar
150
否
sex
性别
varchar
150
否
Tel
电话号码
varchar
150
否
address
住址
varchar
150
否
birth
生日
varchar
150
否
4 系统实现
4.1 步骤及截图
(1) 通过编写model.py和admin.py建立后台管理员界面并显示:
图 4.1 建立用户模块
(2)管理员增加用户信息:
图 4.2 管理员增加用户信息
(3)显示所增加的用户信息:
图 4.3 增加用户信息
(4)用户查询界面
图 4.4 用户查询页面
(5)查询结果显示
图 4.5 查询结果显示
4.2 代码实现
(1)在model.py中建立一个AddressBook类,设置通讯录信息管理系统中的各项内容,并规定字符最大长度。
from django.db import models
from django.contrib import admin
# Create your models here.
class AddressBook(models.Model):
name = models.CharField(max_length = 150)
sex = models.CharField(max_length = 150)
tel = models.CharField(max_length = 150)
address = models.CharField(max_length = 150)
birth = models.DateTimeField()
class AddressBookAdmin(admin.ModelAdmin):
list_display = ('name', 'sex','tel','address', 'birth')
admin.site.register(AddressBook, AddressBookAdmin)
(2)查询模块:可以查询通讯录中联系人的信息,对search_from.html中的表单中添加了table组件并加了一个搜索按钮,修改如下:
<html>
<head>
<title>search</title>
</head>
<body bgcolor= "#70DB93">
{% if errors %}
<ul>
{% for error in errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
<div align="center" style="width:600;height:200;"><table width="600" height="200">
<tr> <td colspan="3"><font align="center" color="yellow" size="50" >通讯录检索</font><td></tr>
<tr><td ><font color="white">请输入姓名进行检索</font></td> </tr>
<tr><td>
<form action="" method="get">
<input type="text" name="q">
<input type="submit" value="搜索">
</form>
</td>
</tr>
</table>
<div>
</body>
</html>
(3)对views.py中的search函数进行了修改,编写查询操作。代码如下:
def search(request):
errors = []
if 'q' in request.GET:
q = request.GET['q']
if not q:
errors.append('Enter a search name.')
elif len(q) > 5:
errors.append('Please enter at most 5 characters.')
else:
contactors =AddressBook.objects.filter(name__icontains=q)
return render_to_response('search_results.html',
{'contactors': contactors, 'query': q})
return render_to_response('search_form.html',
{'errors': errors})
(4)对结果显示页面search_results.html进行了修改,控制查询页面输出。
<body bgcolor="#70DB93">
<p> <font size="5"><strong >检索关键字:</font> <font color="red" size="5">{{ query }}</font></strong></p>
{% if contactors %}
<p>找到 <font color="red" > {{ contactors |length }}</font> 个联系人</p>
<table width="800" height="500">
{% for contactor in contactors %}
<tr><td colspan="10"> ----------------------------------------------------------------------------------------------------------------------------------------</td></tr>
<tr height="15" >
<td align="right">姓名:</td><td align="left" >{{ contactor.name }}</td>
</tr>
<tr height="15" >
<td align="right">性别:</td><td align="left" >{{ contactor.sex }}</td>
<td align="right">电话:</td><td align="left" >{{ contactor.tel }}</td>
<td align="right">住址:</td><td align="left" >{{ contactor.address }}</td>
<td align="right">生日:</td><td align="left" >{{ contactor.birth }}</td>
</tr>
<tr height="5%"></tr>
{% endfor %}
</table>
{% else %}
<p>没有找到联系人.</p>
{% endif %}
5 结束语
这次做论文使我受益良多。一方面,通过这次实验的完成,我对Python有了更深刻的理解,能够更加熟练的运用这门语言,更加理解到了编程的魅力。而另一方面,使我明白了认真做事的重要性。使我体会到完成一件事的喜悦。以后面对困难的时候,都能有直面困难并克服它的决心。本设计能够顺利的完成,也感谢老师的辅导和同学们的互相帮助学习,使我能够很好的掌握和运用专业知识,并在设计中得以体现。在以后的学习生活中我一定会能有更好的发挥,克服自己的缺点,不断改进,不断成长!
9
展开阅读全文