用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付
当前位置:完美毕业网毕业论文计算机毕业设计论文

研究生招生系统-非全日制招生模块

论文代写发表联系:点击这里给我发消息QQ8191040
一键分享拿折扣:

 摘要
对于一个程序员而言,跟上时代的脚步,选一门主流学习的语言是很重要的。通过一些了解,python具备这样的潜质,据最新的数据统计,在编程语言领域中,python位居第六,前五名分别是Java、C、VB、PHP和C++.并且相对年轻的语言Python,也正在稳步的上升中。随着微软将Python纳入.Net 平台,Python的未来会有更强劲的发展。Python 很可能会成为.Net平台快速开发的主流语言。随之而来的设计便是结合这门初步接触的语言,来编写导师给指定的招生系统;本段不长篇大论,只做简单说明,文章记录从学习到实践全过程,系统实现研究生网上招生;导师提供客户端方面的经验,我来通过学习完成web系统。
系统用到了python内置的xlrd3-0.1.4库和xlwt3-0.1.2库,实现研究生数据以excel文件形式导入系统的功能;用到了bottle框架,结合html,css,javascript等web相关语言实现研究生个人数据及相关功能的web展示;用到了内置sqlite3数据库,实现了数据库中数据的增删改查功能。

关键词: spython,web系统,库,框架,数据库

Abstract
For a programmer to keep up with The Times, choose a language mainstream learning is very important. Through understanding, python has such potential, according to the latest statistics, in the field of the programming language, the python was sixth, the top five: Java, C and C + +, VB, PHP, and relatively young language python, has also been rising steadily. As Python should be brought into the Microsoft.net platform, Python will have a strong development in the future. Python is likely to become the.net platform for rapid development of the mainstream language. The resulting design is combined with the preliminary contact with language, writing tutor to designated enrollment system; This section is not long, only do simple instructions, records from learning to practice whole process, the system realize the online graduate admissions; On the surface of the mentor offers clients a much experience, I to complete web system by learning.
System USES python's built-in xlrd3 0.1.4 libraries and xlwt3-0.1.2 library, graduate student data in the form of excel file import system function; Use the bottle framework, combined with HTML, CSS, javascript and web language graduate student personal data and other related functions in the web show; Use the built-in sqlite3 database, realized the data in the database to add and delete functionality.
Key Words : the python, web system, library, framework, database


目录
摘要 1
Abstract 2
第一章 Python语言 1
1.1 Python的特色 1
1.2 Python在编程语言中的定位 2
1.3 Python的设计理念 2
1.4 Python的不适之处 3
1.5 Python的缺点和补救措施 3
1.6 Python的前景 4
第二章 开发工具简介 5
2.1 python3安装 5
2.2 bottle框架 5
2.2.1 bottle框架的加载 5
2.2.2 bottle框架的应用 5
2.3 xlrd3-0.1.4库 6
2.3.1 xlrd3-0.1.4库的安装 6
2.3.2 xlrd3-0.1.4库的应用 7
2.4 xlwt3-0.1.2库的功能 8
第三章 需求分析与设计 9
3.1系统实现功能: 9
3.2 系统层次分析 9
3.2.1总体设计层次方框图 9
3.2.2 具体层次解析 10
3.2.2 层次图设计的意义 10
3.2 详细业务流程分析 10
3.2.1 详细业务流程分析图 10
3.2.2 详细业务流程分析图具体解析 10
3.2.3 详细业务流程分析图的意义 13
3.3 相关函数代码 14
第四章 程序运行结果截图演示 18
4.1 研究生个人信息导入 18
4.2 研究生个人信息编辑和删除 19
4.3研究生个人信息查询 20
4.4 研究生信息分类管理 21
结论 22
致谢 23
参考文献 24


第一章 Python语言
1.1 Python的特色
1、简单----Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
2、易学----就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。
3、免费、开源----Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一--它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。
4、高层语言----当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
5、可移植性----由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC!
6、解释性----这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
7、面向对象----Python即支持面向过程的编程也支持面向对象的编程。在"面向过程"的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在"面向对象"的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
8、可扩展性----如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
9、可嵌入性----你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
10、丰富的库----Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的"功能齐全"理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
概综上所述,Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。
1.2 Python在编程语言中的定位
Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。很多大规模软件开发计划例如 Zope, Mnet 及 BitTorrent. Google都在广泛地使用它。
通常认为,Python是一种解释性的语言,但是这种说法是不正确的,实际上,Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是.pyc格式。
在实际开发中,python常被昵称为胶水语言,这不是说他会把你的手指粘住,而是说他能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
1.3 Python的设计理念
可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可以用C 或 C++写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。
Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言(称为The Zen of Python)里面表述为:
There should be one-- and preferably only one --obvious way to do it.
有意思的是,这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。这似乎是人们常把Perl和Python互相比较的重要原因。
Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。
例如if语句:
if age<21:
print "You cannot buy wine!\n"
print "But you can buy chewing gum.\n"
print "this is outside if\n"
一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。
另外Python在其他部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。Python直接编写的程序段有时运行效率甚至高于用C编写的程序。
1.4 Python的不适之处
虽然Python是一个非常成功的语言,但对于习惯其他语言的程序员,有两个地方会让他们感觉略有不适。
1、强制缩进
这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,而这是用肉眼无法分别的。
2、单行语句和命令行输出问题
很多时候不能将程序连写成一行,如import sys;for i in sys.pathrint i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。(对很多用户而言这也不算是限制)
1.5 Python的缺点和补救措施
1、运行速度(虽然比java快,但没法和需要编译的语言相比。)。有速度要求的话,用C++改写关键部分吧。
2、 国内市场较小(国内以python来做主要开发的,目前只有一些 web2.0公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用他。
3、 中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
4、 构架选择太多(没有像C#这样的官方.net构架,也没有像rudy由于历史较短,构架开发的相对集中。rudy on rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
1.6 Python的前景
Python在编程领域的占有率一直处于稳步上升之中,根据最新的数据,Python排名第六。前五名分别是Java、C、VB、PHP和C++. 作为一个很年轻的语言,Python的位置已经相当令人振奋了。随着微软将Python纳入.Net 平台,相信Python的将来会更加强劲发展。Python 很可能会成为.Net平台快速开发的主流语言。欲了解这方面情况,请参考Iron Python的相关信息.
著名的搜索引擎 Google 也大量使用Python。更加令人吃惊的是,在Nokia智能手机所采用的Symbian操作系统上,Python成为继C++,Java之后的第三个编程语言!2006年的Google编程大赛已经将Python作为参赛语言之一,可见Python的影响力之巨大。

第二章 开发工具简介
2.1 python3安装
下载python-3.3版本,双击运行python-3.3.msi 进行安装
2.2 bottle框架
Bottle是一个Python Web框架,整个框架只有一个文件,几十K,却自带了路径映射、模板、简单的数据库访问等web框架组件,其语法简单,部署方便,是一个可用的框架。
2.2.1 bottle框架的加载
参考网页http://bottlepy.org/docs/dev/
2.2.2 bottle框架的应用
Bottle框架下的Web应用
(1).基本映射
映射使用在根据不同URLs请求来产生相对应的返回内容.Bottle使用route() 修饰器来实现映射.
1
2
3
4
5 from bottle import route, run
@route('/hello')
def hello():
return "Hello World!"
run() # This starts the HTTP server
运行这个程序,访问http://localhost:8080/hello 将会在浏览器里看到 "Hello World!".
(2).GET, POST, HEAD,…
这个映射装饰器有可选的关键字method默认是method='GET'. 还有可能是POST,PUT,DELETE,HEAD或者监听其他的HTTP请求方法.
1
2
3
4
5
6 from bottle import route, request
@route('/form/submit', method='POST')
def form_submit():
form_data = request.POST
do_something(form_data)
return "Done"
(3).动态映射
你可以提取URL的部分来建立动态变量名的映射.
1
2
3 @route('/hello/:name')
def hello(name):
return "Hello %s!" % name
默认情况下, 一个:placeholder会一直匹配到下一个斜线.需要修改的话,可以把正则字符加入到#s之间:
1
2
3 @route('/get_object/:id#[0-9]+#')
def get(id):
return "Object ID: %d" % int(id)
或者使用完整的正则匹配组来实现:
1
2
3 @route('/get_object/(?P<id>[0-9]+)')
def get(id):
return "Object ID: %d" % int(id)
正如你看到的,URL参数仍然是字符串, 即使你正则里面是数字.你必须显式的进行类型强制转换.
(4).模板
Bottle使用自带的小巧的模板.你可以使用调用template(template_name, **template_arguments)并返回结果.
1
2
3 @route('/hello/:name')
def hello(name):
return template('hello_template', username=name)
这样就会加载hello_template.tpl,并提取URL:name到变量username,返回请求.
hello_template.tpl大致这样:
1
2 <h1>Hello {{username}}</h1>
<p>How are you?</p>
(5).模板搜索路径
模板是根据bottle.TEMPLATE_PATH列表变量去搜索.默认路径包含['./%s.tpl', './views/%s.tpl'].
(6).模板缓存
模板在编译后在内存中缓存.修改模板不会更新缓存,直到你清除缓存.调用bottle.TEMPLATES.clear().
2.3 xlrd3-0.1.4库
2.3.1 xlrd3-0.1.4库的安装
到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。
2.3.2 xlrd3-0.1.4库的应用
python操作Excel读写--使用xlrd
(一)安装xlrd模块
到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。
(二)使用介绍
1、导入模块
      import xlrd
 2、打开Excel文件读取数据
       data = xlrd.open_workbook('excelFile.xls')
3、使用技巧
        获取一个工作表
        table = data.sheets()[0]          #通过索引顺序获取
        table = data.sheet_by_index(0) #通过索引顺序获取
        table = data.sheet_by_name(u'Sheet1')#通过名称获取
        获取整行和整列的值(数组)  
         table.row_values(i)
         table.col_values(i) 
        获取行数和列数  
        nrows = table.nrows
        ncols = table.ncols  
        循环行列表数据
        for i in range(nrows ):
      print table.row_values(i)
单元格
cell_A1 = table.cell(0,0).value 
cell_C4 = table.cell(2,3).value 
使用行列索引
cell_A1 = table.row(0)[0].value 
cell_A2 = table.col(1)[0].value
简单的写入
row = 0 
col = 0 
# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype = 1 value = '单元格的值' 
xf = 0 # 扩展的格式化 
table.put_cell(row, col, ctype, value, xf) 
table.cell(0,0)  #单元格的值' 
table.cell(0,0).value #单元格的值'
2.4 xlwt3-0.1.2库的功能
向Excel文件中写数据,此功能只做了解,系统未做实现。
参考网页:https://pypi.python.org/pypi/xlwt/

第三章 需求分析与设计
3.1系统实现功能:
①非全日制研究生招生系统个人信息导入(页面导入或上传excel文件)。
②系统实现研究生个人信息的增加,删除,更改,查询(面向管理员)。
③对信息进行分类:主要信息(主要界面显示),报考信息(院校分数),其他信息(将其他数据统筹归类)。
④分配导师学院。
3.2 系统层次分析
根据功能需求勾画层次图。
3.2.1总体设计层次方框图

图3-1 总体设计层次方框图
(本图由于信息量大,可按住ctrl键,通过鼠标滚轮放大缩进)
3.2.2 具体层次解析
根据系统需求来分析,画出大体的层次方框图,有图可知:系统大体分为5层;
第1层 研究生招生系统,是web页面首页标题;系统管理员界面,显示主菜单。
第2层 包括研究生信息导入,研究生信息编辑,研究生信息删除,研究生信息查询,系统管理。
第3层 页面填写,Excel上传,二者对应研究生信息导入(可选择);基本信息编辑,分配导师,分配学院,三者对应研究生信息编辑;
第4层 学院信息表,对应分配学院;导师信息表,对应分配导师;学生基本信息表,对应研究生信息编辑;信息分类表,对应研究生信息查询,系统管理;
第5层 相应数据库的数据表视图(显示数据库数据信息,并标明相应表、相应模块、相应层之间对应关系)。
3.2.2 层次图设计的意义
通过需求分析画出总体层次方框图,可以明了系统的大致框架,之前一直是导师给功能,自己就写功能,没有整体上把握系统的架构。通过画图,便能很清晰的知道系统中模块与数据库之间的对应关系,这样便能更好的编写调用数据库数据,为后面功能模块的显示与函数的实现打下了基础。
3.2 详细业务流程分析
3.2.1 详细业务流程分析图
详细业务流程分析图主要是对总体方框图的整体性把握,可以有效的分析出各个功能模块间的对应关系,并清晰的列出需要完成的步骤函数。
3.2.2 详细业务流程分析图具体解析
大体还是分5层:
第1层 homepage(管理界面主菜单);菜单信息有:信息导入界面,信息编辑删除界面,信息查询界面,分类管理界面
第2层importdate.py(信息导入界面),包括页面导入和Excel上传,实现步骤如图:
图3-2 详细业务流程分析图部分截图1

具体解释:
A.程序通过封装对象的形式确定学生这个对象,创建函数如下
class Xuesheng: //定义学生类
def __init__(self,xsxuehao,xsxingming,xszhunkaozhenghao,xsxueyuan="",xsdaoshi=""): //对象名及其属性
self.xsxuehao=xsxuehao //属性定义
self.xsxingming=xsxingming
self.xszhunkaozhenghao=xszhunkaozhenghao
self.xsxueyuan=xsxueyuan
self.xsdaoshi=xsdaoshi
B.程序中调用xstools.py,其实是将sql语言写成字符串然后进行调用,实现了边写sql语句边操作数据库的功能:
db=sqlite3.connect('DB/yanjiusheng.db') //链接数据库
dbcs=db.cursor()
//给数据库插入游标,此处是python特有的一项功能,可以清晰的调用不用的数据库
sql="""
insert into xuesheng (xsxuehao,xsxingming,xszhunkaozhenghao,xsxueyuan,xsdaoshi) values('"""+xsxuehao+"""','"""+xsxingming+"""','"""+xszhunkaozhenghao+"""','','')
""" //将数据库编写成字符串
dbcs.execute(sql) //通过调用字符串来调用sql语句,从而实现对数据库的操作
db.commit() //结束调用
editdate.py(信息编辑和删除界面),实现步骤如图:

图3-3详细业务流程分析图部分截图2

xsxuehao=xs.xsxuehao
xsxingming=xs.xsxingming
//主要是之前的学生对象的封装属性参数与数据库数据参数间的传递和调用,代码过多不做具体呈现了
sql="""
update xuesheng set xsxingming='"""+xsxingming+"""',xszhunkaozhenghao='"""+xszhunkaozhenghao+"""',xsxueyuan='"""+xsxueyuan+"""',xsdaoshi='"""+xsdaoshi+"""' where xsxuehao='"""+xsxuehao+"""'
"""
// sql字符串,编辑界面和插入类似

(3)inquery.py(信息查询界面),实现步骤如图:

图3-4详细业务流程分析图部分截图3
具体解释:
查询函数不做说明,与插入编辑函数类似。
from DBtools import xstools //函数的加载调用,加载文件夹DBtools中的文件xstools.py 这样本文件继承xstools下相关函数内的属性

(4)manage.py(分类管理界面),
实现步骤如图:

图3-5详细业务流程分析图部分截图4
具体解释:
(1)本图主要讲述python又一特殊功能,通过将html语言编写成字符串进行调用。
homepage="""
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF8" />
</head>
<body>
<form action="/serve" method="GET">
请输入需要查询学生的学号:<input type="text" name="xsxuehao" value="" maxlength="100"><br>
<input type="submit" name="save" value="查询">
</form>
</body>
</html>
""" // html语言以字符串形式赋予homepage,其中中英转换采用UTF-8格式
return homepage //返回字符串
(2)管理层分类采用了单选框,函数以数字1、0作参数
第3层 subedit.py(信息编辑和删除界面),实现步骤如图:

图3-6 详细业务流程分析图部分截图4
具体解释:
(1)相关类似功能不做阐述,主要说下数据的调用,代码:
titlels=list(map(lambda x:x[1],vsluels))
//遍历对象vsluels,从他的属性x的第二个元素x[1]开始,最后以数组形式赋给titlels
(2)from bottle import route,run,request,redirect
@route('/xx')
//加载内置库,实现页面跳转,其中xx为跳转路径
第4层 xytools.py(学院数据表操作模块),dstools.py(导师数据表操作模块),xstools.py(学生数据表操作模块),fltools.py(分类数据表模块)
第5层 xueyuan.py(学院数据表模型),daoshi.py(导师数据表模型),xuesheng.py(学生数据表模型),fenlei.py(分类数据表模型)
3.2.3 详细业务流程分析图的意义
详细设计流程分析图的意义一方面承接了上面的总体层次方框图的层次性,另一方面为模块的实现拟定了具体的实现步骤,而最大的意义在于我们能根据系统的模块性、层次性找出我们所需要的写出的相关功能的函数。
3.3 相关函数代码
1.主界面
<a href="importdata">1.研究生信息导入</a><br>
<a href="editanddelete">2.研究生信息编辑</a><br>
<a href="inquery">3.研究生信息查询</a><br>
<a href="manage">4.信息分类的管理</a><br>
2.数据库增删改查对应模块模型的类
(1)daoshi.py: (以导师为对象进行封装)
class Daoshi:
def __init__(self,dsbianhao,dsxingming,dsxueyuan):
self.dsbianhao=dsbianhao //导师对象属性定义
self.dsxingming=dsxingming
self.dsxueyuan=dsxueyuan

(2)fenlei.py (设置分类表,同样封装为一个对象)
class Fenlei:
def __init__(self,fllieming,flzhongwen,flzhuyao,flbaokao,flqita):
self.fllieming=fllieming (分类表对象参数定义)
self.flzhongwen=flzhongwen
self.flzhuyao=flzhuyao
self.flbaokao=flbaokao
self.flqita=flqita
(3)xuesheng.py (将学生封装为一个对象)
class Xuesheng:
def __init__(self,xsxuehao,xsxingming,xszhunkaozhenghao,xsxueyuan="",xsdaoshi=""):
self.xsxuehao=xsxuehao (对象属性的定义)
self.xsxingming=xsxingming
self.xszhunkaozhenghao=xszhunkaozhenghao
self.xsxueyuan=xsxueyuan
self.xsdaoshi=xsdaoshi
(4)xueyuan.py (将学院封装为一个对象)
class Xueyuan:
def __init__(self,xybianhao,xymingcheng):
self.xybianhao=xybianhao (对象属性定义)
self.xymingcheng=xymingcheng
3.5 相关数据库表格

表3-1 学院数据表结构
学院数据表结构
xybiaohao TEXT 考生照片文件名称
xymingcheng TEXT 备注一


表3-2 导师数据表结构
导师数据表结构
dsbianhao TEXT 导师编号
dsxingming TEXT 导师姓名
dsxueyuan TEXT 导师学院

表3-3 分类信息数据表结构
分类信息数据表结构
fllieming TEXT 列名
flzhongwen TEXT 中文形式
flzhuyao TEXT 主要信息
flbaokao TEXT 报考信息
flqita TEXT 其他信息
下面呈现分类表、导师表、学院表相关sql语句的实现
2设置分类表
sql="""
create table fenlei(
fllieming text,
flzhongwen text,
flzhuyao text,
flbaokao text,
flqita text
)
"""
dbcs.execute(sql)
#sql语言插入数据,再将其以字符串格式赋给sql:
sql="""
insert into fenlei(fllieming,flzhongwen,flzhuyao,flbaokao,flqita) values('xsxuehao','学生学号',1,1,1)
"""
dbcs.execute(sql)
sql="""
insert into fenlei(fllieming,flzhongwen,flzhuyao,flbaokao,flqita) values('xsxingming','学生姓名',1,0,0)
"""
dbcs.execute(sql)
sql="""
insert into fenlei(fllieming,flzhongwen,flzhuyao,flbaokao,flqita) values('xszhunkaozhenghao','学生准考证号',1,0,0)
"""
dbcs.execute(sql)

3导师表
sql="""
CREATE TABLE daoshi(
dsbianhao text,
dsxingming text,
dsxueyuan text
)
"""
dbcs.execute(sql)
#sql语言插入数据,再将其以字符串格式赋给sql:
sql="""
insert into daoshi(dsbianhao,dsxingming,dsxueyuan) values('0101','张三导','01')
"""
dbcs.execute(sql)

4学院表
sql="""

CREATE TABLE xueyuan(
xybianhao text,
xymingcheng text
)
"""
dbcs.execute(sql)
#sql语言插入数据,再将其以字符串格式赋给sql:
sql="""
insert into xueyuan(xybianhao,xymingcheng) values('01','计算机学院')
"""
dbcs.execute(sql)


第四章 程序运行结果截图演示
4.1 研究生个人信息导入


图4-1 系统主菜单
研究生招生系统主界面,显示主菜单。包括研究生信息导入、研究生信息编辑、研究生信息查询、信息分类的管理。

图4-2 个人信息倒入界面

导入有2种渠道:
(1)直接在网页上输入。
(2)点击浏览按钮,上传Excel文件。


图4-3 Excel导入
4.2 研究生个人信息编辑和删除

图4-4 个人信息编辑删除界面
个人信息编辑删除界面包含对研究生信息的编辑和删除2个功能,其中点击删除按钮可直接删除相应学生信息。而点击编辑按钮进入编辑界面。

图4-5 编辑个人信息

对个人信息进行编辑,相应下拉列表框的实现让信息导入更加方便高效。
4.3研究生个人信息查询

图4-6 个人信息查询
输入研究生学号,点击查询按钮。


图4-7个人信息查询结果

输入错误学号便不会有查询结果。
4.4 研究生信息分类管理

图4-8 信息分类管理
分类管理用单选按钮来实现,用来保证个人信息查询结果界面只显示主要信息和报考信息。点击提交按钮。

结论
本文主要介绍了基于python语言下的网上研究生报名系统设计与实现过程,首先文章具体介绍了python语言的特色、地位、理念、不足、前景等,接着对相应的开发工具的安装、环境的配置作了具体的说明。并对系统进行需求分析,初步确定了系统需求、基本功能、及相应的规划。最大最提出的优点便是利用了“总统层次方框图”“详细流程分析设计图”,前者对系统整体进行了分层规划,后者对各个层次模块进行了解析,找出系统在设计中需要注意的一些细节及相应的函数,从而在满足了系统要求的前提下能够流畅的运行。本系统采用python下的bottle框架构建web框架,数据库用的是python内置的sqlite3数据库,Excel文件上传功能的实现则依靠的是python又一内置库xlrd库,实现了对Excel文件数据信息的读写。系统以考生的报名流程为走向,主要实现了研究生网上导入个人信息。
本系统的运行使学校研究生报名网站的效率得到了显著提高,使得学校对考生信息的获得准确性得到明显增强,主菜单页面的第四个功能就是对信息进行管理,实现了信息的动态管理。本文中所有的程序,均调试运行通过。
由于工作强度很大,个人精力和技术力量有限,论文中阐述不到之处,衷心肯请各位老师批评指正。


致谢
在历时三个多月的毕业设计中,感谢我的指导教师刘博老师。在项目开发过程中他虽然由于读博时间比较紧,但是依然严格要求自己抽出时间回校检查我们的程序,还时时督促我们,由于自己找工作耽误了很多时间,老师也很谅解,这让我十分抱歉,另一方也无形中对自己的要求严格了,对于我们的帮助他也是不烦不燥、耐心教导,幽默的风格使我们交流顺畅。当然也与学校提供的优越的环境,完善的设备以及同学好友的帮忙分不开。正因为这样我才顺利地完成了这次毕业设计,同时也从中获益非浅。
在此衷心的感谢所有关心本次毕业设计和实现的老师和同学,能够给我这次学习和交流的机会。

参考文献
[1] [挪]Magnus Lie Hetland著,《Python基础教程(第2版)》,人民邮电出版社。
[2]《Python标准库(第1版)》,全球资深Python专家Doug Hellmann亲自执笔,Python语言的核心开发人员Jesse Noller作序鼎力推荐,机械工业出版社,出版时间:2012年5月1日。
[3] (美)巴里 著,林琪 等译,《Head First Python(中文第一版)》,中国电力出版社,出版时间:2012年3月1日。
[4] 李勇,王文强 编著,《Python Web开发学习实录》,清华大学出版社,出版时间:2010年10月1日。
[5] (美)梁勇 著,《Python语言程序设计》,英文版,作者全新编写针对Python程序设计的权威教材,机械工业出版社,出版时间2013年2月1日。
[6] Mark Summerfield[美],《精通Python 3程式设计(第二版)》,出版社:基峰资讯股份有限公司,出版时间:2010年12月1日。
[7] (美)高森 著,莫迟 等译,《Python网络编程基础》,电子工业出版社,2007年6月1日。
[8] 哲思社区著,《可爱的Python》,电子工业出版社,出版时间2009年9月1日。
[9]周伟等编著,《Python开发技术详解》,出版社:机械工业出版社,出版时间:2009年8月1日
[10] 陈建勤著,《Python3 程式库参考手冊》,出版社:基峰资讯股份有限公司,出版时间:2012年1月16日。
[11] (美)卢茨(Lutz,M) 著,《学习Python 第3版(影印版)》,出版社:东南大学出版社,出版时间:2008年8月1日。

Tags:

作者:佚名
Copyright © 2007-2013 完美毕业网. All Rights Reserved .
页面执行时间:953.12500 毫秒
Powered by:完美毕业网 http://www.biye114.com