个人信息管理系统数据库设计Word格式文档下载.docx
《个人信息管理系统数据库设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《个人信息管理系统数据库设计Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
修改密码
用户密码的修改
2
修改个人信息
修改个人姓名、爱好、座右铭
3.1
添加财务信息
增加一条财务信息
3.2
删除财务信息
删除选定的财务信息
3.3
更改财务信息
更改选定的财务信息
4.1
通讯录信息添加
添加通讯录
4.2
通讯录信息删除
删除选定的通讯录信息
4.3
通讯录信息修改
修改选定的通讯录信息
4.4
搜索通讯录信息
根据输入的关键字模糊查询通讯录
5.1
添加行程信息
行程信息的添加
5.2
删除行程信息
删除选定的行程信息
数据需求:
系统的处理对象有:
用户:
姓名、爱好、座右铭、用户名、密码
个人管理:
姓名、爱好、座右铭
行程管理:
行程内容、时间、备注
通讯录管理:
朋友名、联系方式1、联系方式2、地址
财务管理:
财务名、资金数、去向、备注
事务:
增加、删除、修改、查询
顶层数据流图:
0层图:
第三层图:
三、概要设计
功能模块图:
E_R图:
四、数据库实施阶段
数据库的完整性和安全性设计,根据业务规则设计的触发器、存储过程。
用户表db_person
列名
数据类型
取值约束
索引否
主键/外键
可否为空
说明
name
vachar(50)
Clustered
主键
notnull
用户名
pwd
nchar(10)
密码
p_name
用户真名
p_favour
nchar(50)
爱好
p_motto
座右铭
vip
int
null
是否为VIP
行程表db_xingcheng
id
自增
xingcheng
varchar(max)
行程名字
date
datetime
日期格式
行程时间
beizhu
行程备注
pname
varchar(50)
外键
通讯录表db_phonebook
ntext
好友姓名
phone
nchar(14)
联系方式1
phone2
联系方式2
address
nchar(20)
null
好友地址
notnull
用户姓名
财务表db_account
account
账户名
sum
float
所用资金数
inout
进或出
remarks
备注
五、详细设计
1、登录模块:
界面
关键代码:
privatevoidenter_Click(objectsender,EventArgse)
{
if(string.Empty!
=username.Text.Trim())
Class1sql_form1=newClass1();
sql_form1.SelectDs("
select*fromtb_personwherename='
"
+username.Text.Trim()+"
'
"
aa"
);
if(string.Compare(sql_form1.ds.Tables["
].Rows[0][0].ToString().Trim(),username.Text.Trim())==0&
&
(sql_form1.ds.Tables["
].Rows[0][1].ToString().Trim()==password.Text.Trim()))
this.Hide();
Form2Form2=newForm2();
Form2.str_form2=username.Text.Trim();
Form2.Show();
}
else
MessageBox.Show("
用户名或密码错误!
错误提示"
password.Clear();
}
2、主界面:
3、个人备忘录:
Class1select1=newClass1();
SqlCommandcomm5;
comm5=select1.Select("
*"
tb_xingcheng"
date>
=getdate()andpname='
+str_form2+"
SqlDataReaderdr1=comm5.ExecuteReader();
if(dr1!
=null)
dr1.Read();
listBox1.Items.Add("
行程:
+dr1[1].ToString());
日期:
+dr1[2].ToString());
备注:
+dr1[3].ToString());
dr1.Close();
select1.con_close();
listView3.Columns[0].Width=0;
Stringconnstr="
DataSource=(local);
InitialCatalog=db_keshe;
IntegratedSecurity=True"
;
SqlConnectionconn=newSqlConnection(connstr);
conn.Open();
SqlCommandcomm4=newSqlCommand("
selectidfromtb_xingchengwherepname='
conn);
SqlDataReaderdr=comm4.ExecuteReader();
if(dr!
while(dr.Read())
{
listView3.Items.Add(dr[0].ToString());
dr.Close();
SqlCommandcomm=newSqlCommand("
selectxingchengfromtb_xingchengwherepname='
dr=comm.ExecuteReader();
i=0;
listView3.Items[i++].SubItems.Add(dr[0].ToString());
SqlCommandcomm2=newSqlCommand("
selectdatefromtb_xingchengwherepname='
dr=comm2.ExecuteReader();
listView3.Items[i++].SubItems.Add(dr[0].ToString());
SqlCommandcomm3=newSqlCommand("
selectbeizhufromtb_xingchengwherepname='
dr=comm3.ExecuteReader();
conn.Close();
4、行程的添加界面:
privatevoidbutton1_Click(objectsender,EventArgse)
stringxingcheng=textBox1.Text.Trim();
stringtime=textBox2.Text.Trim();
stringremark=textBox3.Text.Trim();
Class1insert=newClass1();
=textBox1.Text.Trim())
if(insert.Insert("
xingcheng,time,remark,str_form3)==1)
添加成功!
提示"
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
this.Close();
请输入行程内容!
5、通讯录界面:
listView4.Columns[0].Width=0;
inti=0;
Class1select=newClass1();
SqlCommandcomm1;
comm1=select.Select("
id"
tb_phonebook"
pname='
SqlDataReaderdr;
dr=comm1.ExecuteReader();
listView4.Items.Add(dr[0].ToString());
SqlCommandcomm2;
comm2=select.Select("
name"
listView4.Items[i++].SubItems.Add(dr[0].ToString());
SqlCommandcomm3;
comm3=select.Select("
phone"
SqlCommandcomm4;
comm4=select.Select("
phone2"
dr=comm4.ExecuteReader();
comm5=select.Select("
address"
+str_form2+"
dr=comm5.ExecuteReader();
select.con_close();
6、通讯录添加界面
if(string.Empty!
=textBox1.Text.Trim()&
button1.Text=="
添加"
)
stringstr1=textBox1.Text.Trim();
stringstr2=textBox2.Text.Trim();
stringstr3=textBox3.Text.Trim();
stringstr4=textBox4.Text.Trim();
if(1==insert.Insert("
insertintotb_phonebook(name,phone,phone2,address,pname)values('
+str1+"
'
+str2+"
+str3+"
+str4+"
+str_form4+"
)"
))
添加成功!
insert.con_close();
添加失败!
7、个人理财界面:
关键代码:
intsum=0;
intsum2=0;
listView2.Columns[0].Width=0;
if(1==sql.SelectDs("
select*fromtb_accountwherepname='
tb_account"
listView2.Items.Clear();
for(inti=0;
i<
sql.ds.Tables[0].Rows.Count;
i++)
listView2.Items.Add(sql.ds.Tables["
].Rows[i][0].ToString());
listView2.Items[i].SubItems.Add(sql.ds.Tables["
].Rows[i][1].ToString());
].Rows[i][2].ToString());
].Rows[i][3].ToString());
].Rows[i][4].ToString());
if((int)(sql.ds.Tables[0].Rows[i][2])>
0)
sum=sum+(int)(sql.ds.Tables["
].Rows[i][2]);
sum2=sum2+(int)(sql.ds.Tables["
listView1.Items[0].SubItems.Add(sum.ToString());
listView1.Items[1].SubItems.Add(sum2.ToString());
sum=sum+sum2;
listView1.Items[2].SubItems.Add(sum.ToString());
导入数据出错"
"
7、增加账户信息:
if("
==button1.Text&
string.Empty!
str[1]=textBox1.Text.Trim();
str[2]=textBox2.Text.Trim();
str[3]=textBox3.Text.Trim();
str[4]=textBox4.Text.Trim();
if(1==sql_form5.Insert("
insertintotb_account(account,sum,inout,remarks,pname)values('
+str[1]+"
+str[2]+"
+str[3]+"
+str[4]+"
+str_form5+"
添加成功"
添加失败"
8、个人信息管理:
privatevoidbutton1_Click(objectsender,EventArgse)
if(string.Compare(button1.Text,"
修改个人信息"
)==0)
button1.Text="
修改完成"
textBox5.Enabled=true;
textBox6.Enabled=true;
textBox4.Enabled=true;
sql.Update("
updatetb_personsetp_name='
+textBox5.Text.Trim()+"
p_motto='
+textBox4.Text.Trim()+"
p_favour='
+textBox6.Text.Trim()+"
wherename='
+str_form2+"
textBox5.Enabled=false;
textBox6.Enabled=false;
textBox4.Enabled=false;
六、总结
下面我简单的谈谈对此次设计的感想、收获和体会。
这次课设做了差不多有一个礼拜的时间,我们做的是个人信息管理这个题目。
开始觉得这个题目要求清晰,功能明确,应该很好做,做下来才发现并不是想象的那么简单。
光是界面就做了很长时间,然后一个界面一个界面的添加,再具体实现,其中也碰到了许多问题。
在这个程序里,我们在其他界面需要用到登陆界面的某个参数,这个问题困扰了很久,后来在上网查了以后才搞定。
方法首先在父界面中定义要传递的参数对象,然后再子界面中在定义相同的参数对象就可以在子界面中使用。
如果在子界面的子界面中还要用到该参数,这也是个大问题。
方法在使用的界面的父界面中定义新的参数对象并使该对象等于this.加上先前使用的对象。
还有一个重大问题就是每个功能的添加都不成功,他不能显示属于用户自己的信息而且还添加不上。
方法在class类里的insert函数中添加一个指定的列名用来存放姓名(及表明该信息属于谁),