1、 银行业务管理系统设计说明书 组长(学号姓名): 组内成员: 成员1(学号姓名): 成员2(学号姓名): 成员3(学号姓名): 完成日期: 目 录 1. 引言 1 1.1 编写目的 1 1.2 背景 1 1.3 定义 1 1.4 参考资料 1 2. 程序(子系统)系统的组织结构 1 3. 界面设计要求 1 4. 本软件系统中各程序(子系统)的设计说明 1 4.1 程序(子系统)1的设计说明 1 4.2 程序(子系统)2的设计说明 1 5. 子系统相互关系表 2
2、 1. 引言 1.1 编写目的 本说明书确定系统的功能模块和数据结构,为下阶段开发工作提供依据。 本系统是专门用于银行基本业务办理的平台,经过我们小组的研究编制而成本系统可以实现开户、存款、取款、保存信息、查询等多项功能。在一定程度上满足了银行的业务需求,基本实现了预期目标。 1.2 背景 软件系统的名称: 银行业务管理系统 本项目的任务提出者: 本项目的任务开发者: 1.3 定义 1.4 参考资料 2. 程序(子系统)系统的组织结构 提示:用层次图表列出系统内各层模块。着重标明一下每位小组成员完成了哪些模块。 银行业务管理系统 登 录
3、 否 密码是否正确 主页面 利率设置 帮助文档 其他功能 职员管理 存款取款 汇总查询 更改客户密码 更改操作密码 零存整取 定 期 活 期 工资调整 基本信息 开 户 当日汇总 取款查询 存款查询 取 款 存 款 成员分工: 在原有的程序基础上每个分别完成的操作是: ***:(1)职员的基本信息处理:录入、显示、修改、查询等; (2)职员工资的调整 (3)负责整理汇总,即把大家各自实现的功能模块进行汇总 ***:(
4、1)当日的汇总:时间、账号、类型、交易金额等 (2)存款查询 (3)取款查询 ***:(1)活期的利率以及调整利率的功能 (2)定期的利率以及修改调整的功能,还包含业务类别 (3)零存整取的利率以及调整利率的功能,还包含业务类别 ***:(1)更改操作密码 (2)更改客户密码 (3)帮助文档中的文字描述 其中的存款取款中的开户、存款、取款大家一起完成。 3. 界面设计要求 提示:登录界面和主窗体界面的设计。 1、登陆界面 2、 主页面(包含了系统中的所有功能) 3
5、 存款取款(包含了开户、存款和取款的功能) (1)开户 (2) 存款 (3) 取款 4、 汇总查询(包含有当日汇总、存款查询、取款查询) (1) 当日汇总(当日的交易金额) (2) 存款查询 (3) 取款查询 5,、职员管理(包含有银行职员的基本信息、职员的工资调整) (1) 银行职员的基本信息 (2) 职员的工资调整 6、 银行操作系统的其他功能(包括有更改操作密码、更改客户密码) (1) 更改操作密码 (2) 更改客户密码 7、 利率设置(包括活期、定期和零存整取利率的调整) (1)活期利率的
6、调整 (2)定期各个业务利率的调整 (3)零存整取各个业务利率的调整 8、 帮助文档的设计 4.本软件系统中各程序(子系统)的设计说明 提示:在本节中要求按模块依次说明在“2、程序(模块)系统的组织结构”中列出的每个模块的设计内容,包括: Ø 程序(子系统)功能描述 Ø 程序(子系统)性能描述 Ø 该程序(子系统)的输入项 Ø 该程序(子系统)的输出项 Ø 该程序(子系统)的算法 Ø 该程序(子系统) 设计思想 Ø 接口设计 功能的实现: (1)开户:提供了对新客户的注册开户功能,当开户成功会把数据存到系统中。 (2)存款:实现把客户的存款添加到主
7、系统数据中。 (3)取款:实现客户取款功能并将数据田家达主系统数据中。 (4)汇总查询:实现对该业务员操作的所有客户信息的查询显示。 (5)职员管理:可以对业务员的一些基本信息进行操作,实现信息的导入、查找、修改、删除等功能。 (6)其他功能:包括更改操作和客户密码,目的是确保信息的安全性。 (7)利率设置:实现了业务员可以及时校正国家利率因调整儿导致的系统利率不同意的漏洞。 3.1 程序(子系统)1的设计说明 提示:简单描述子系统的功能、设计思想、界面以及每位小组成员完成的情况。 (一) 存款取款 (1) 开户操作(**) namespace BankManage
8、{ public partial class NewAccountForm : BasePanelForm { public NewAccountForm() { InitializeComponent(); string[] items = Enum.GetNames(typeof(MoneyAccountType)); comboBoxAccountType.Items.AddRange(items); //只允许从选项中选择
9、 comboBoxAccountType.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxAccountType.SelectedIndex = 0; } //单击开户按钮 private void buttonOK_Click(object sender, EventArgs e) { Custom custom = DataOperation.CreateCustom(comboBoxAcco
10、untType.SelectedItem.ToString()); custom.AccountInfo.帐号 = textBoxAccount.Text.Trim() ; custom.AccountInfo.身份证号 = textBoxIdCard.Text.Trim(); custom.AccountInfo.姓名 = textBoxName.Text.Trim(); custom.AccountInfo.密码 = textBoxPassword.Text.Trim();
11、 custom.Create(textBoxAccount.Text.Trim(), double.Parse(textBoxMoney.Text.Trim())); this.Close(); } private void buttonCancel_Click(object sender, EventArgs e) { this.Close(); } private void comboBoxAccountType_Selected
12、IndexChanged(object sender, EventArgs e) { string s = comboBoxAccountType.SelectedItem.ToString(); BankDataContext c = new BankDataContext(); var q = from t in c.AccountInfo where t.存款类型 == s select t;
13、 if (q.Count() > 0) { textBoxAccount.Text = string.Format("{0}", int.Parse(q.Max(x => x.帐号)) + 1); } else { textBoxAccount.Text = string.Format("{0}00001", comboBoxAccountType.SelectedIndex + 1); }
14、 } } } (2) 存款(***) namespace BankManage { public partial class DepositForm : BasePanelForm { public DepositForm() { InitializeComponent(); } //单击存款按钮 private void buttonOK_Click(object sender, EventArgs e)
15、 { Custom custom = DataOperation.GetCustom(textBoxAccount.Text.Trim()); if (custom == null) { MessageBox.Show("帐号不存在,请重新输入!"); return; } custom.MoneyInfo.帐ê号? = textBoxAccount.Text.Trim();
16、 custom.Diposit("存款", double.Parse(textBoxMoney.Text.Trim())); this.Close(); } private void buttonCancel_Click(object sender, EventArgs e) { this.Close(); } } } (3) 取款(***) namespace BankManage { public partial
17、class WithdrawForm : BasePanelForm { int n = 0; public WithdrawForm() { InitializeComponent(); } //单击取款按钮 private void buttonOK_Click(object sender, EventArgs e) { Custom custom = DataOperation
18、GetCustom(textBoxAccount.Text.Trim()); if (custom == null) { MessageBox.Show("账号不存在,请重新输入!"); return; } if (custom.AccountInfo.密码 = textBoxPassword.Text) { MessageBox.Show("密码不正确?);
19、 n++; if (n >= 3) { MessageBox.Show("密码错洙误超过三次,禁止操作!"); this.Close(); } } else { n = 0; custom.Withdraw(double.Parse(te
20、xtBoxMoney.Text)); this.Close(); } } private void buttonCancel_Click(object sender, EventArgs e) { this.Close(); } } } (二) 汇总查询(***完成代码) (1) 当日汇总 namespace BankManage { public partial class SumForm : Ba
21、sePanelForm { BankDataContext c; public SumForm() { InitializeComponent(); c = new BankDataContext(); var q=from t1 in c.AccountInfo from t2 in c.MoneyInfo where t1.帐号==t2.帐号 && t2.发生时间.Day=
22、DateTime.Now.Day select new { 时间 = string.Format("{0:yyyy-MM-dd HH:mm:ss}", t2.发生时间), 帐号 = t1.帐号, 姓名 = t1.姓名, 存款类型 = t1.存款类型, 类别 = t2.发生类别,
23、 金额 = string.Format("{0:f2}", t2.发生金额), 余额 = string.Format("{0:f2}", t2.余额) }; c.SubmitChanges(); dataGridView1.DataSource = q; } private void btnTotal_Click(object sender, EventArgs e) {
24、 c=new BankDataContext(); var q = from t in c.MoneyInfo where t.发生时间.Day == DateTime.Now.Day select t.发生金额; if (q.Count() > 0) { txtTotal.Text = q.Sum().ToString(); }
25、 else { txtTotal.Text = "0"; } } } } (2) 存款查询 namespace BankManage { public partial class DespoitQueryForm : Form { BankDataContext c; public DespoitQueryForm() { InitializeComponent()
26、 c = new BankDataContext(); var q = from t1 in c.AccountInfo from t2 in c.MoneyInfo where t1.帐号 == t2.帐号 && t2.发生类别 == "存款" select new { 时间 = string.Format("{0:yyyy
27、MM-dd HH:mm:ss}", t2.发生时间), 帐号 = t1.帐号, 姓名 = t1.姓名, 存款类型 = t1.存款类型, 类别 = t2.发生类别, 金额 = string.Format("{0:f2}", t2.发生金额), 余额 = string.Format("{0:f2}",
28、 t2.余额) }; c.SubmitChanges(); dataGridView1.DataSource = q; } private void btnTotal_Click(object sender, EventArgs e) { c = new BankDataContext(); var q = from t in c.MoneyInfo
29、where t.发生类别 == "存款" && t.发生时间.Day == DateTime.Now.Day select t.发生金额; if (q.Count() > 0) { textBox1.Text = q.Sum().ToString(); } else { textBox1.Text = "0"; }
30、 } } } (3) 取款查询 namespace BankManage.query { public partial class WithdrawQueryForm : Form { BankDataContext c; public WithdrawQueryForm() { InitializeComponent(); c = new BankDataContext(); var q = from t1 in c.A
31、ccountInfo from t2 in c.MoneyInfo where t1.帐号 == t2.帐号 && t2.发生类别 == "取款" select new { 时间 = string.Format("{0:yyyy-MM-dd HH:mm:ss}", t2.发生时间), 帐号 = t1.帐号,
32、 姓名 = t1.姓名, 存款类型 = t1.存款类型, 类别 = t2.发生类别, 金额 = string.Format("{0:f2}", t2.发生金额), 余额 = string.Format("{0:f2}", t2.余额) }; c.SubmitChanges();
33、dataGridView1.DataSource = q; } private void btnTotal_Click(object sender, EventArgs e) { c = new BankDataContext(); var q = from t in c.MoneyInfo where t.发生类别 == "取款" select t.发ぁ?生Θ?金e额?; i
34、f (q.Count() > 0) { textBox1.Text = q.Sum().ToString(); } else { textBox1.Text = "0"; } } } } (三) 职员管理(***完成代码) (1) 职员基本信息 namespace BankManage { public partial class BasicInf
35、oForm : Form { public BasicInfoForm() { InitializeComponent(); //BankDataContext c = new BankDataContext(); //var q1 = from t in c.EmployeeInfo // select new // { // 编号 =
36、t.编号, // 姓名 = t.姓名, // 性别 = t.性别, // 参加工作日期 = t.参加工作日期, // 电话 = t.x, // 身份证号 = t.身份证号 // }; //var q2 = from t in c.Emp
37、loyeeInfo // select t.照片; ////pictureBox1.DataBindings = q2; //dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //dataGridView1.DataSource = q1; } private void employeeInfoBindingNavigatorSaveI
38、tem_Click(object sender, EventArgs e) { this.Validate(); this.employeeInfoBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.bank); MessageBox.Show("保存成功!"); } private void BasicInfoForm_Load(object send
39、er, EventArgs e) { // TODO: 这行代码将数据加载到表“bank.EmployeeInfo”中。您可以根据需要移动或移除它。 this.employeeInfoTableAdapter.Fill(this.bank.EmployeeInfo); this.employeeInfoDataGridView.DataError += new DataGridViewDataErrorEventHandler(employeeInfoDataGridView_DataError);
40、 } private void employeeInfoBindingNavigatorSaveItem_Click_1(object sender, EventArgs e) { this.Validate(); this.employeeInfoBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.bank); } private voi
41、d employeeInfoDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e) { MessageBox.Show("操作失败!"); } //导入照片 private void buttonIn_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog();
42、 if (ofd.ShowDialog() == DialogResult.OK) { this.照片PictureBox.Image = Image.FromFile(ofd.FileName); } } //移除照片 private void buttonOut_Click(object sender, EventArgs e) { this.照片PictureBox.Image =null;
43、 } } } (2) 职员工资调整 namespace BankManage { public partial class PayForm : BasePanelForm { public PayForm() { InitializeComponent(); } BankDataContext c = new BankDataContext(); private void PayForm_Load(object sende
44、r, EventArgs e) { var q = from t in c.EmployeeInfo select t.编号; string[] items = q.ToArray(); thisxboBox1.Items.AddRange(items); thisxboBox1.SelectedIndex = -1; } private void comboBox1_Selected
45、IndexChanged(object sender, EventArgs e) { string id = thisxboBox1.SelectedItem.ToString(); var q = from t in c.EmployeeInfo where t.编号 == id select t; if (q.Count() > 0) { this.te
46、xtBoxName.Text = q.Single().姓名.ToString(); this.textBoxOld.Text = q.Single().工资.ToString(); } else { this.textBoxOld.Text=""; } } //提交 private void buttonSubmit_Click(object sender, Event
47、Args e) { if (this.textBoxNew.Text.Trim() == "") { MessageBox.Show("工资不能为空!"); return; } else { string id = thisxboBox1.SelectedItem.ToString(); try
48、 { var q = from t in c.EmployeeInfo where t.编号 == id select t; q.Single().工资 = Convert.ToDecimal(this.textBoxNew.Text); c.SubmitChanges(); MessageBox
49、Show("提交成功!"); this.textBoxOld.Text = this.textBoxNew.Text; this.textBoxNew.Text = ""; } catch (Exception err) { MessageBox.Show("调整失败,err.Message); } }
50、 } //取消 private void buttonCancle_Click(object sender, EventArgs e) { this.Close(); } } } (四) 其他功能(**完成代码) (1) 更改操作密码 private void buttonOperatorPassword_Click(object sender, EventArgs e) { ChangeOperat






