资源描述
c班级通讯录标准管理系统实训报告
《C#应用程序设计》
实
训
报
告
系部: 信息工程系
班级: 12软件班
姓名: 陶沪
指导教师: 刘春友
实训时间: 2013年春季学期
班级通讯录管理系统实训报告
一、实训主题
班级通讯录系统的开发和运用
二、实训时间:
2013年6月1日~2013年6月27日
三、实训目的
教会学生利用Visul status 2005开发平台开发出班级通讯录系统, Framework组件实际与数据库的连接,建立班级通讯录的显示,查询,添加,修改,删除四个功能块窗体,,删,改,查四项基本功能.
四、实训内容与要求:
“班级通讯录管理系统”是以班级学生的个人信息为主的管理系统,合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。运用结构化开发方法,分析并开发一个小型、简单的“班级通讯录管理系统”。功能:设计一个班级通讯录管理系统,班级通讯录数据信息构成内容可自行设计(如班级、学号、姓名、性别、年龄、电话、邮政编码、等)。要求实现显示、查找、添加、删除、修改某个记录等功能。
五、实训中的重要知识和方法
: 提供诸如SQL Server 和XML这样的数据源以及通过OLE DB和ODBC公开的数据源的一致访问。, Framework 数据提供程序。这些结果或者被直接处理, DataSet对象中以便用特别的方式向用户开放,并与来自多个源的数据组合:或者在层之间传递。 Framework数据提供程序,用于管理应用程序本地的数据或源自XML的数据。
:.NET Framework数据提供程序和DataSet。
.NET Framework数据提供程序用于连接到数据库,执行命令和检索结果。
DataSet 可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及有关DataTable 对象中数据的主键,外键,约束和关系信息组成。
六、实训步骤
1. 总体结构图
班级通讯录管理系统
查找联系人
添加联系人
删除联系人
修改联系人
2. 流程图:
登录
判断用户名的有效性和合法性
班级通讯录管理系统主界面
查
询
联
系
人
信
息
删除
联
系
人
信
息
添加
联
系
人
信
息
修改
联
系
人
信
息
否
是
3. 数据库设计
字段名
类型
长度
是否为空
是否为主键
说明
userId
文本
10
否
是
用户名
userPwd
文本
10
否
否
用户密码
字段名
类型
长度
是否为空
是否为主键
说明
stuNo
文本
8
否
是
学号
stuName
文本
10
否
否
姓名
classId
文本
10
是
否
班级
Sex
文本
2
否
否
性别
birthday
日期/时间
10
是
否
出生日期
tel
文本
15
是
否
电话
address
文本
100
是
否
家庭住址
文本
6
是
否
邮政编码
email
文本
30
是
否
电子
remark
文本
是
否
备注
七、实训代码
数据库链接代码:
using System;
using ;
using ;
using ;
using ;
using ;
namespace 班级通讯录管理系统
{
class DataAccess
{
//定义连接字符串
private string strDSN;
//定义数据库连接对象
OleDbConnection oledbCon;
//数据库连接方法
public void dataCon()
{
strDSN = "Provider=;Data Source=" + () + "\\";
oledbCon = new OleDbConnection(strDSN);
}
//获取DataSet
public DataSet getDataset(string sql)
{
DataSet ds = new DataSet();
();
try
{
OleDbCommand oledbCom = new OleDbCommand(sql, oledbCon);
OleDbDataAdapter oledbDa = new OleDbDataAdapter(oledbCom);
(ds);
return ds;
}
catch (Exception ex)
{
throw new Exception(());
}
finally
{
();
}
}
//执行SQL语句
public bool sqlExec(string sql)
{
try
{
();
}
catch
{
("数据库未连接");
}
try
{
OleDbCommand oledbCom = new OleDbCommand(sql, oledbCon);
();
return true;
}
catch (Exception ex)
{
(, "提示");
return false;
}
finally
{
();
}
}
}
}
登录界面:
using System;
using ;
using ;
using ;
using ;
using ;
using ;
using ;
namespace 班级通讯录管理系统
{
public partial class UsersLogin : Form
{
public UsersLogin()
{
InitializeComponent();
}
private void UsersLogin_Activated(object sender, EventArgs e)
{
//将光标放在用户名文本框上
();
}
private void button1_Click(object sender, EventArgs e)
{
string username, password;
string strSql = "";
DataSet ds;
//判断文本框是否为空
if (textBox1 .Text .Trim () != "" && textBox2 .Text .Trim () != "")
{
username = ();
password = ();
strSql = "select * from userslogin where userId='" + username + "' and userPwd='" + password + "'";
//实例化类
DataAccess data = new DataAccess();
//连接数据库
();
//执行查询语句,获取Dataset
ds = (strSql);
//判断是否登录成功
if ([0]. == 1)
{
Main fMain = new Main();
();
();
}
else
{
("用户名或密码错误!", "登录失败");
}
}
}
private void button2_Click(object sender, EventArgs e)
{
();
}
private void label2_Click(object sender, EventArgs e)
{
}
}
}
主界面:
using System;
using ;
using ;
using ;
using ;
using ;
using ;
namespace 班级通讯录管理系统
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
();
}
private void 添加联系人ToolStripMenuItem_Click(object sender, EventArgs e)
{
AddLinkman frm2 = new AddLinkman();
();
}
private void 删除联系人ToolStripMenuItem_Click(object sender, EventArgs e)
{
ManageLinkman frm4 = new ManageLinkman();
();
}
private void 显示全部联系人ToolStripMenuItem_Click(object sender, EventArgs e)
{
AllLinkman frm1 = new AllLinkman();
();
}
private void 修改联系人ToolStripMenuItem_Click(object sender, EventArgs e)
{
ManageLinkman frm3 = new ManageLinkman();
();
}
private void 查询联系人ToolStripMenuItem_Click(object sender, EventArgs e)
{
ManageLinkman frm4 = new ManageLinkman();
();
}
private void 退出系统ToolStripMenuItem_Click(object sender, EventArgs e)
{
();
}
}
}
查询窗体代码:
using System;
using ;
using ;
using ;
using ;
using ;
using ;
namespace 班级通讯录管理系统
{
public partial class ManageLinkman : Form
{
public ManageLinkman()
{
InitializeComponent();
}
public static string stuNo;
public static string StuNo
{
get { return stuNo; }
set { stuNo = value; }
}
private void button1_Click(object sender, EventArgs e)
{
string strSql;
string conditon="";
DataAccess data = new DataAccess();
DataSet ds;
if ( != "")
{
conditon += "and stuNo='" + + "'";
}
if ( != "")
{
conditon += "and stuName='" + + "'";
}
if ( != "")
{
conditon += "and classId='" + + "'";
}
if ( != "")
{
conditon += "and Sex='" + + "'";
}
strSql = "select stuNo as 学号,stuName as 姓名,Sex as 性别, birthday as 出生日期, classId as 班级, tel as 电话, address as 家庭地址,postalcode as 邮政编码,email as 电子, remark as 备注 from usersinfo where 1=1" + conditon;
();
ds = (strSql);
= [0];
}
private void button2_Click(object sender, EventArgs e)
{
string strSql;
DataAccess data = new DataAccess();
strSql = "delete from usersinfo where stuNo ='" + [0].() + "'";
();
if ((strSql))
{
("删除成功!");
}
else
{
("删除失败!");
}
}
private void button3_Click(object sender, EventArgs e)
{
ManageLinkman .StuNo = [0].();
EditLinkman s1 = new EditLinkman();
();
}
}
}
修改窗体代码:
using System;
using ;
using ;
using ;
using ;
using ;
using ;
namespace 班级通讯录管理系统
{
public partial class EditLinkman : Form
{
public EditLinkman()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string strSql = "";
if (textBox2 .Text != "" && textBox3 .Text != "" && textBox4 .Text != "" && textBox5 .Text != "" && textBox6 .Text != "" && textBox7 .Text !=""&& textBox8 .Text !=""&& textBox9 .Text !="" && comboBox1 .Text != "")
{
strSql = "update uesrsinfo set stuName ='" + + "',Sex='" + + "',birthday='" + + "',classId='" + + "',tel='" + + "',Address='" + + "',postalcode='" + + "', email='" + + "',remark='" + + "',where stuNo ='" + + "'";
DataAccess data = new DataAccess();
();
if ((strSql))
{
("修改成功!");
}
else
{
("修改失败!");
}
}
else
{
("输入未完全!");
}
}
private void EditLinkman_Load(object sender, EventArgs e)
{
= ;
}
private void button2_Click(object sender, EventArgs e)
{
();
}
}
}
添加窗体代码:
using System;
using ;
using ;
using ;
using ;
using ;
using ;
namespace 班级通讯录管理系统
{
public partial class AddLinkman : Form
{
public AddLinkman()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string strSql;
DataAccess data = new DataAccess();
strSql = "insert into usersinfo(stuNo,stuName,classId,birthday,tel,postalcode,email,address,remark,Sex) values ('"+textBox1 .Text +"','"+textBox2 .Text +"','"+textBox3 .Text +"','"+textBox4 .Text +"','"+textBox5 .Text +"','"+textBox6 .Text +"','"+textBox7 .Text+ "','"+textBox8 .Text+"','"+textBox9 .Text +"','"+comboBox1 .Text +"' )";
();
if ((strSql))
{
("添加成功!");
}
else
{
("添加失败!");
}
}
private void button2_Click(object sender, EventArgs e)
{
();
}
}
}
显示所有联系人窗体代码:
using System;
using ;
using ;
using ;
using ;
using ;
using ;
namespace 班级通讯录管理系统
{
public partial class AllLinkman : Form
{
public AllLinkman()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string strSql;
DataAccess data =new DataAccess ();
DataSet ds;
strSql = "select * from usersinfo";
();
ds = (strSql);
= [0];
}
}
}
系统调试/系统测试
系统调试通过,运行正常。
心得体会
通过本次实训我有的收获:对C#有了一个更深的了解认识,以前学的知识得到巩固,也尝试运行编程,每运行程序成功,让我对下面的题就充满信心。通过自己独立编写程序,我最终把最初的理论知识转化基本技能。这次的实训,使我对C#的学习产生浓厚的兴趣。这次实训中,使我认识到自己还有很多的知识没学好,基础知识没理清。自己也不能独立编程。遇到一些小错误运行不出来,就叫老师过来帮忙,觉得有依赖性,以后要克服,尽量自己多尝试完成,学好这门课。C#知识是有序的学习,没有零碎的感觉。增加了动手的时间,使动手能力得到了提高,编写C#程序和分析C#问题的能力提高了。进而提升我们的学习效率。
参考文献
《C#程序设计与开发》
实训结果:
上机实验是学习程序设计语言必不可少的实习环节,特别是c#灵活、简洁,更需要通过编程的实习来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
通过上机实验来验证自己编制的程序是否正确,但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c#的理解和程序开发能力。
此次实训我按时完成了实训课题,通过实训有利于加强我对C#,作品功能效果基本符合老师的要求,当然开发的过程并不是一帆风顺的,当我遇到一些难以解决的问题时,我就会主动去查找一些相关书籍或者求助于任课老师。虽然该系统还有不足之处,但是我会在以后的学习中不断加强和改进,尽力让该管理系统的功能更加完善。
展开阅读全文