编程项目综合实训课程设计报告.docx
- 文档编号:292290
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:20
- 大小:175.20KB
编程项目综合实训课程设计报告.docx
《编程项目综合实训课程设计报告.docx》由会员分享,可在线阅读,更多相关《编程项目综合实训课程设计报告.docx(20页珍藏版)》请在冰点文库上搜索。
编程项目综合实训课程设计报告
《编程项目综合实训》
课程设计报告
电子通讯录设计任务书
1.设计目的与要求
设计一款电子通讯录软件,用于记录所有客户信息以及所有部门领导人的联系资料,并且访问该通讯录时需要密码,以保证客户信息不外泄。
该电子通讯录具有查询、添加、删除和修改客户信息以及部门领导人联系资料信息的功能。
2.设计内容
软件分为5个模块:
数据库模块、用户登录模块、客户信息模块、部门领导人信息模块和用户信息维护模块:
(1)建立“电子通讯录”的数据库及其相应表
(2)完成用户登录模块的设计与开发
(3)完成“电子通讯录”主窗体界面的设计与实现
(4)完成“客户信息汇总”子模块的设计与实现
(5)完成“客户信息管理”子模块的设计与实现
3.编写设计报告
写出设计的全过程,附上有关资料,有心得体会。
4.任务叙述
在规定时间内完成设计,叙述并回答问题
摘要
本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯录都是由联系人采用名片,笔录手工记账的方式来操作的。
现在一般的通讯录管理都是采用计算机作为工具,通用编写使用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理,通讯录管理系统是典型的信息管理系统(MIS),其开发主要包括数据库的建立和维护,以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库,在本系统中选用SQLServerManagementStudio数据库。
对于后者则要求应用程序功能完备、易使用,界面友好等特点,本电子通讯录用的前端开发程序是MicrosoftVisualStudio2010.
(中文摘要约150汉字)
关键字:
通讯录管理系统SQLServerC#
第1章系统分析
1.1需求分析
对于现如今高速发展的社会,有着各种各样的管理模式,但是都离不开计算机。
在学习过程中,我们慢慢学到了编程,这是一个简单的管理系统,让我们理解系统管理的起步点。
对于电子通讯录的实训,是一次锻炼的机会,在程序到设计中,采用的是函数的嵌套,这样就告别了main函数的巧妙变化,提高自己的优化能力。
对于操作界面,达到能与用户友好交流,考虑到每一方面,从而进行完善,在每一个模块中,采用结构体类型,每一步的衔接设计了循环,这样操作既方便又能使程序代码简单明了。
1.2可行性分析
通讯录管理系统是对已有联系人数字化管理的一个重要程序,它体现了相关信息的信息化管理,摆脱了以往人工操作的许多不便。
本系统将方便使用者的存储、查询、修改和删除,也大大提高联系人信息资源的利用率,同时使用者能够更加方便的对相关信息进行个性化的管理。
我们大一的时候,学过C语言,面向对象编程对基础知识,有一定的编程语言基础。
同时,经过大一的学习,有主动学习和探索的精髓,可以接受项目化实训的锻炼。
第2章数据库设计
2.1数据库分析
针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下需求信息:
每条原始记录要包括姓名、公司名称、电话、邮箱、传真、手机号码,其中姓名、公司名称、手机号码不能为空。
保证通过姓名或公司名称能查询到对应的数据,能删除相应的信息,每张表的详细设计见以下内容(用户信息表,客户信息表,部门经理信息表)
2.2数据库设计
用户信息表(用户编号,用户姓名,用户密码);
客户信息表(客户编号,客户姓名,公司名称,传真,固定电话,手机号码,Email,最近联系时间)
部门经理信息表(经理编号,经理名字,所在部门,固定电话,手机号码,Email)
2.3数据库详细设计
数据库名称:
Contacts,共有3个数据表;用户信息表(tb_userinfo),客户信息表(tb_customerinfo),经理信息表(tb_departmentmanagerinfo),以下是3个数据表的详细设计;
1.用户信息表(tb_userinfo);
tb_userinfo
列名
数据类型(长度)
允许空
主键
默认值
备注
userId
nvarchar(20)
√
用户编号
loginName
nvarchar(30)
用户姓名
loginPassword
nvarchar(40)
用户密码
2.客户信息表(tb_customerinfo);
tb_customerinfo
列名
数据类型(长度)
允许空
主键
默认值
备注
customerID
int
√
设置为标识,种子为20010,增量为1
客户编号
customerName
nvarchar(30)
客户姓名
customerCompany
nvarchar(50)
公司名称
companyfax
nvarchar(20)
√
传真
telephone
nvarchar(20)
√
固定电话
mobilePhone
nvarchar(20)
手机号码
nvarchar(50)
√
邮箱
lastcall
datetime
√
最近联系时间
3.经理信息表(tb_departmentmanagerinfo);
tb_departmentmanagerinfo
列名
数据类型(长度)
允许空
主键
默认值
备注
managerID
nvarchar(20)
√
经理编号
managerName
nvarchar(30)
经理姓名
department
nvarchar(50)
所在部门
telephone
nvarchar(20)
√
电话号码
mobilePhone
nvarchar(20)
手机号码
nvarchar(50)
√
邮箱
第3章数据库设计
3.1系统目标
电子通讯录使用数据库存储信息,使用户通过登录进入系统后,可以进行管理(增加、修改删除和查询)客户信息。
由于本系统实现的电子通讯录是一个网络上分的封闭系统,隐私还需要包含用户管理的功能。
具体来说,电子通讯录具有以下功能。
用户注册:
实现用户的注册功能。
用户登录:
实现用户验证及登录功能。
修改密码:
实现用户登录密码的修改。
查看功能:
通过姓名或部门查看客户及经理信息。
增加功能:
添加客户或者经理信息。
修改功能:
修改用户或者经理信息。
删除功能:
删除某些客户或经理资料。
管理的同时能够通过连接数据库,对数据进行相应的操作。
3.2系统功能模块设计
通过对通讯录的调研和分析,一个完整的通讯录管理系统应该包括:
数据集模块,登录窗体模块,用户管理模块,主窗体模块,客户信息管理模块,经理信息管理模块。
3.3系统功能模块详细设计
根据系统功能模块设计思路,将各个模块的功能进行细分,可以用模块结构图进行表示如下:
第4章网站的实现
4.1登录界面设计与实现
1.登录界面的设计
(1)登录界面效果图
(2)登录窗体对象和属性
登录窗体需要两个标签(lable),两个文本框(textBox),两个按钮(button),背景是一副图片
对象
属性
属性值
说明
Form1
Name
loginForm
设置窗体对象名
AcceptButton
loginButton
BackgroundImage
带有公司logo的图片
该图片作为窗体背景
Text
登录界面
设置窗体的标题文字
Label1
Text
登录名
Label2
Text
登录密码
TextBox1
Name
loginNameTextBox
TextBox2
Name
loginPasswordTextBox
Button1
Name
loginButton
Text
登录
Button2
Name
exitButton
Text
取消
(3)登录窗体类图的设计
登录窗体
字段:
UserId
loginName
loginPassword
与数据库中的“用户信息表”中的列名相对应,以便于数据库中读取出的数据能存放在类的对象中
与登录界面的数据对应,以便于存储登陆界面填写的数据,通过登陆界面的数据查看在数据库中是否存在
属性:
UserId
loginName
loginPassword
属性使数据在类外能处理
方法
Login()
通过方法从数据库中查找是否与登录界面填写的数据一致,如果有则登录成功,否则登录失败
(4)规划事件处理方法与实现
对象
事件方法
动作伪代码
loginButton
loginButton_Click()
创建“用户信息表”对象“1”;判断登录名和密码是否为空;调用“1”对象的登录方法UserInfo(),根据返回值
进行判断是否成功
exitButton
exitButton_Click()
退出应用程序
4.2“电子通讯录”主窗体规划与实现
1.“主窗体”窗体规划与实现
(1)“电子通讯录”主窗体效果
(2)规划主窗体对象与属性
对象
属性
属性值
说明
Form2
Name
mainForm
设置窗体对象名
BackgroudImage
带有公司logo的图片
该图片为背景图
menuStript1
Name
menuStrip1
ToolStripMenuItem1
Name
customerinfoMenu
Text
客户信息
ToolStripMenuItem2
Name
customerinfoMenuItem
Text
客户信息汇总
ToolStripMenuItem3
Name
customerinfoMenuItem
Text
客户信息管理
(3)规划主窗体事件与实现代码
对象
事件方法
动作伪代码
customerinfoMenuItem
(客户信息汇总)
customerinfoMenuItem_Click
()
创建客户信息汇总窗体对象并显示该窗体
customerinfoMenuItem
(客户信息管理)
customerinfoMenuItem_Click
()
创建客户信息管理窗体对象并显示该窗体
4.3“客户信息”窗体规划与实现
1.“客户信息汇总”窗体规划与实现
(1)“客户信息汇总”窗体(最终效果图)
(2)规划“客户信息汇总”窗体对象和属性
对象
属性
属性值
说明
Form3
(客户信息汇总窗体)
Name
Text
customerInfoForm
客户信息汇总
窗体对象名
DataGridView1
(数据方格视图)
Name
dataGridView1
Columns
新增8列内容用于显示客户信息
8列具体内容在下方进行详细说明
(3)按上述对象和属性设计主窗体
增加一个dataGridView控件到customerInfoForm窗体,设计dataGridView1控件的Columns属性如下:
列名
属性
属性值
说明
Columns1
Name
Columns1
某一列
DataPropertyName
customerId
与数据库列名对应
HeadText
客户编号
菜单栏显示的内容
Columns2
Name
Column2
DataPropertyName
customerName
HeadText
客户姓名
Columns3
Name
Column3
DataPropertyName
Customercompany
HeadText
客户公司
Columns4
Name
Column4
DataPropertyName
companyfax
HeadText
传真
Columns5
Name
Column5
DataPropertyName
telephone
HeadText
联系电话
Columns6
Name
Column6
DataPropertyName
mobilePhone
HeadText
手机号码
Columns7
Name
Column7
DataPropertyName
HeadText
邮箱
Columns8
Name
Column8
DataPropertyName
lastCall
HeadText
最近一次联系时间
(4)规划“客户信息汇总”与连接类的类图
“客户信息汇总”窗体用来呈现所以的客户信息,因此该窗体与数据库的“客户信息表”相关联,需要设计一个类来处理针对“客户信息表”的一些业务,并且还需要一个查询和显示该表数据的方法(CustomerInfoFind())。
考虑到本任务中多处需要连接数据库,为了方便管理和省去重复编写创建连接过程的代码,我们编写一个名为GetConnection的类,放在要用的类文件夹中,该类有一个名为SqlCon()的方法,返回一个连接对象。
CustomerInfo
字段:
customerId
customerName
customerCompany
companyfax
telephone
mobilePhone
lastCall
与数据库中的表“客户信息表”的列名相对应,以便于从数据库中读取出的数据能存放在类的对象中
与客户信息汇总界面对应,以便于存储类的对象中的数据,赋值给数据dataGridView1的数据源
属性:
CustomerId
CustomerName
CustomerCompany
Telephone
MobilePhone
Lastcall
属性使数据能在类的外部处理
方法:
CustomerInfoFind()
通过方法连接数据库,查询“客户信息表”的所有信息,并填充在类的对象中
GetConnection
方法
SqlCon()
返回一个连接对象
(5)规划“客户信息汇总”窗体事件与实现代码
对象
事件方法
动作-伪代码
创建CustomerInfo类的对象customerInfo,调用该对象的查询方法CustomerInfoFind(),获得数据集,并赋值给dataGridView1的数据源
customerInfoForm
customerInfoForm_Load()
2.“客户信息管理”窗体规划与实现
(1)“客户信息管理”窗体效果图
(2)“客户信息管理”窗体对象和属性
“客户信息管理”窗体包含一个dataGridView控件,7个Label控件,6个TextBox控件,1和dateTimePicker控件和1个toolStrip控件,具体的属性和属性值设置如下表:
对象
属性
属性值
说明
Form4
(客户信息管理窗体)
Name
Text
customerManagerForm
客户信息管理
窗体对象名
窗体显示的名称
dataGridView
(数据方格视图)
Name
dataGridView1
Columns
新增8列内容用于显示客户信息
与“客户信息汇总”窗体的数据方格相同,这里不做详细说明
Label1
Name
customerNameLabel
Text
客户姓名:
Label2
Name
customerCompanyLabel
Text
公司名称
Label3
Name
faxLabel
Text
传真:
Label4
Name
telephoneLabel
Text
单位电话:
Label5
Name
mobilephoneLabel
Text
手机号码
Label6
Name
emailLabel
Text
Email:
Label7
Name
lastCallLabel
Text
最近联系时间:
TextBox1
Name
customerNameTextBox
TextBox2
Name
customerCompanyTextBox
TextBox3
Name
faxTextBox
TextBox4
Name
telephoneTextBox
TextBox5
Name
mobilephoneTextBox
TextBox6
Name
emailTextBox
dateTimePicker1
Name
默认值(dateTimePicker1)
toolStrip1
Name
默认值(toolStrip1)
toolStripButton1
Name
toolSave
Text
保存
Image
选择保存的图标
DisplayStyle
ImageAndText
Enable
false
toolStripButton2
Name
toolCancel
Text
取消
Image
选择取消的图标
DisplayStyle
Text
Enable
false
toolStripButton3
Name
toolAdd
Text
添加
Image
选择添加的图标
DisplayStyle
ImageAndText
Enable
True
toolStripButton4
Name
toolAmend
Text
修改
Image
选择修改的图标
DisplayStyle
Text
Enabled
True
toolStripButton5
Name
toolDelete
Text
删除
Image
选择删除的图标
DisplayStyle
Text
Enabled
True
toolStripLabel1
Name
labCondition
Text
查询条件
toolStripComboBox1
Name
conditionComboBox
Text
客户姓名
Item
客户姓名公司名称
ToolStripTextBox1
Name
keyWordTextBox
toolStripButton6
Name
toolSelet
Text
查询
Image
选择查询的图标
DisplayStyle
Text
Enabled
true
toolStriptButton7
Name
shuaxin
Text
刷新
Iamge
选择查询的图标
DisplayStyle
Text
Enabled
true
(3)为customerInfo类添加方法与规划“客户信息管理”窗体事件代码
customerInfo
方法:
CustomerInfoSelect()
CustomerInfoAdd()
CustomerInfoDelete()
CustomerInfoUpdate()
对象
事件方法
动作-伪代码
客户信息管理
CustomerManageForm_Load
创建CustomerInfo类对象customerInfo,调用customerInfo对象的查询方法CustomerInfoFind()获得数据集;设置dataGridView1的数据源
toolAdd
(添加按钮)
toolAdd_Click()
调用工具按钮使能设置方法进行按钮使能(Enabled)设置,调用清空方法清空文本框中已有数据,设置日期控件的值为今日
toolAmend
(修改按钮)
toolAmend_Click()
调用工具按钮使能设置方法进行按钮使能(Enabled)设置
toolDelete
(删除按钮)
toolDelete_Click()
调用工具按钮使能设置方法进行按钮使能(Enabled)设置
toolCancel
(取消按钮)
toolCancel_Click()
调用工具按钮使能设置方法进行按钮使能(Enabled)设置,调用清空方法清空文本框中已有数据,设置日期控件的值为今日
toolSelect
(查询按钮)
toolSelect_Click()
根据查询条件调用customerInfo类的查询方法CustomerInfoSelect()查询客户信息,查询出来的客户信息用
dataGridView1显示,并且第1条信息在工具栏下方的文本框显示出来
toolSave
(保存按钮)
toolSave_Click()
根据需要执持“增加”“删除”
或“修改”的操作进行数据库数据更新
Shuaxin
(刷新表格)
Shuaxin_Click()
经理信息管理
用户信息管理自行添加
总结
经过这次的实训,我真真确确的感受到了计算机在我们生活中工作中的运用,这些软件、程序能让我们提高工作的效率,更直观更便捷的切入主题。
这次我们学习的是数据路的原理及应用的各方面知识,由老师带着我们不断操作。
在实训中,我们认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索。
而且遇到一些小错误运行不出来,就会烦躁不安,觉得有些自暴自弃或者抱怨项目的变态,以后要克服,尽量保持一颗良好的心态,学好c语言,也学好用c语言编写一个按要求的系统。
还有就是对于未来,近程就是下学期,我觉得我还有许多方面需要提高。
首先我要继续学习好c语言的基础知识,然后能在电脑上熟练的运用。
然后每天都能写一些程序,上网时候多看一些优秀的教程和优秀的代码。
遇到问题时多和同学讨论,并且多弄出几套方案,多锻炼自己结局问题的能力和与同学合作的能力。
首先我要感谢我们的陈老师,带领我们走向这个实训的项目,让我学会了如何解决一些问题,使我们有更好的进步,带我们走向美好编程设计这条路。
让我再次感谢陈老师的关心和照顾!
谢谢老师。
指导教师评语:
优秀/良好/中等/合格
指导教师:
2016年12月20日
课程设计成绩:
附录(关键部分程序清单)
××××××
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 项目 综合 课程设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)