固定电话收费系统.docx
- 文档编号:27711981
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:39
- 大小:680.72KB
固定电话收费系统.docx
《固定电话收费系统.docx》由会员分享,可在线阅读,更多相关《固定电话收费系统.docx(39页珍藏版)》请在冰豆网上搜索。
固定电话收费系统
数据库课程设计报告
题目:
固定电话收费系统
专业:
计算机科学与技术
班级:
姓名:
学号:
指导教师:
戚晓明
2010年12月
目录
1、开发背景2
2.系统需求分析3
3.系统功能分析4
4.整体设计5
1.E-R图(略)5
2.选用程序语言5
3.系统软件结构6
4.程序流程图:
6
5、具体设计和程序设计7
1.登陆界面8
2.主界面13
6.结束语31
7参考文献33
1、开发背景
90年代中期,由于Internet的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。
企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。
引入Internet后,形成了新型的浏览器/服务器(Browser/Server)结构,而传统的客户机/服务器(Client/Server)结构在这方面就远不及B/S结构。
固定电话收费信息系统是在适应市场需求的客观前提下,为了满足固话收费员管理对每个家庭或某一公司固话费用的收取而开发的。
该系统的是终目的是方便固话收费员对固定电话话费的收取。
2.系统需求分析
概述:
随着信息技术的迅速发展,计算机在经济建设及人们的日常生活中的应用日益普及,它正在改变着人们的日常生活的各个方面。
固定电话收费系统就是用现代的、发展的、系统的思想和观念管理企业而建设起来的,其主要目标是实现固话管理的标准化、科学化和现代化,以提高固话收费员的收取固话费用的工作效率,享受信息化时代给人们生活带来的便利。
数据库系统是随着计算机技术的不断发展,为了实现对数据统一有效地管理而出现的,自20世纪60年代中期以来,数据库系统经历了三个发展阶段:
层次与网状数据库系统,关系数据库系统,以及关系数据库的发展阶段。
数据库技术是计算机科学与技术中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机信息系统与应用系统的核心技术和重要基地。
今天,信息资源已成为各个部门的重要财富和资源。
建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。
因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用,越来越多新的应用领域采用数据库技术来存储和处理信息资源。
本次的课程设计我选择的课题是固定电话收费管理系统,立足于社会实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高固话收费的现代化管理水平,实现信息资源的共享。
程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,软件和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。
概括性的设计思路如下:
首先进行的是对系统的总体设计。
考虑到固话收费管理的实际需求,进行恰当的安排。
然后是数据库的设计,数据库的设计来源于系统的总体要求。
用企业管理器实现的数据库创建,数据库中共有二个表。
分别用于记录固话的号码管理和通话记录,其中话费收取在号码管理表中。
综合运用数据库的知识并不是一项很简单的事情,需要仔细地分析课题要求,多方面考虑如何全面并且正确地使用数据库的强大功能。
3.系统功能分析
根据需求分析,本系统要实现以下的基本功能。
1.登录功能:
该系统自有收费管理员一种登录用户。
用户通过
输入不同用户名和密码进行身份验证,系统通过用户名和密码判断该用户是否有登录的权限,从而确定该用户可以执行的操作。
2.固话用户信息查询功能:
查询该用户电话的话费信息。
3.修改功能:
固化收费管理员能够修改某一用户的电话号码和固化的话费信息,也能实现用户的添加,以此确保该系统能够安全操作,避免不必要的损失。
4.话费汇总功能:
对某一固话在某一月里消耗的话费进行汇总。
4.整体设计
1.E-R图(略)
2.选用程序语言
本系统是用C#语言,选用这个语言的原因有以下几点:
1)C#与C/C++具有极大的相似性,我们之前认真学习过C语言和c++语言,c#是这两个语言的高效率版本,更易于上手。
2)C#语言完美支持.NET平台,可以在Microsoft.NET平台上事半功倍的构建应用程序的扩展框架(即与数据库的连接非常易于实现,对数据可以直接进行操作。
)
3)全界面人性化操作,实现代码简单易懂,适合初学者学习。
2.3数据库选择SQL2008
这学期我们学的就是SQL数据库,因为我的电脑装的是Windows7系统,考虑兼容性问题,装了SQL2008,跟平时在机房用的SQL2005有点差别,但比2005更高级,这点是毋庸置疑的,下面找到的一点资料:
1)对于SQLServer系统而言,SQLServer2008已经不简单的是一个数据存储仓库,它可以通过新增的功能逐渐演化成更加智能的数据平台。
SQLServer2008在设置和安装方面都做了大量的改进,将配置数据和引擎分开,从而使得创建基本的未配置系统的磁盘映像变成可能,将数据分布到多个服务器也变得更加容易。
2)另外,在SQLServer2008中,不仅对原有性能进行了改进,还添加了许多新特性,比如新添了数据集成功能,改进了分析服务,报表服务,以及Office集成等等。
当然在这次课程设计的制作中所使用到的都是些浅显的功能了。
3.系统软件结构
固话收费管理系统主要设有三个主要功能模块:
分别是用户号码管理、通话记录管理、话费收取管理。
1)用户号码管理模块
该模块主要实现用户固话的编辑。
固话管理中的数据源为SQL数据库中user表,在此管理部分中,能够使用界面操作实现固定电话的编辑,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。
2)通话记录管理模块
该模块主要实现通话信息的录入、修改与删除。
3)用户管理模块
该模块主要实现电话费用的汇总和收取业务。
4.程序流程图:
5、具体设计和程序设计
应用主程序代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Windows.Forms;
namespaceWindowsFormsApplication1
{
staticclassProgram
{
///
///应用程序的主入口点。
///
[STAThread]
staticvoidMain()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newForm1());
}
}
}
1.登陆界面
图一:
流程图
图二管理员登陆界面
C#源代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication1
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
StringuserName=this.textBox1.Text.Trim();
Stringpassword=this.textBox2.Text.Trim();
if(userName==""&&password=="")
{
MessageBox.Show("请输入用户名或密码");
return;
}
Stringsql="select用户名,密码from用户where用户名='"+userName+"'";
SqlDataReaderreader=Connection.GetReader(sql);
if(!
reader.Read())
{
MessageBox.Show("用户不存在");
return;
}
if(password!
=reader["密码"].ToString())
{
MessageBox.Show("密码错误");
return;
}
mainm=newmain();
m.Show();
this.Hide();
}
privatevoidForm1_Load(objectsender,EventArgse)
{
this.textBox1.Focus();
}
}
}
连接数据库:
图三数据库用户图
图四数据库通话记录图
图五数据库固话收费管理员图
连接SQL2008相关代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.SqlClient;
usingSystem.Data;
namespaceWindowsFormsApplication1
{
publicclassConnection
{
//得到数据库连接
publicstaticSqlConnectionGetConnection()
{
Stringstr=System.Configuration.ConfigurationSettings.AppSettings["DB"];//读取配置文件,得到连接数据库参数
SqlConnectionconn;
try
{
conn=newSqlConnection(str);
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}
returnconn;
}
catch(SqlExceptione)
{
throwe;
}
}
//关闭数据库连接
publicstaticvoidCloseConnection(SqlConnectionconn)
{
if(conn!
=null)
{
try
{
conn.Close();
}
catch(SqlExceptione)
{
throwe;
}
}
}
//运行Sql语句返回SqlDataReader对象
publicstaticSqlDataReaderGetReader(stringSQL)
{
SqlConnectionconn=GetConnection();
SqlCommandCmd=CreateCmd(SQL,conn);
SqlDataReaderDr;
try
{
Dr=Cmd.ExecuteReader(CommandBehavior.CloseConnection);
returnDr;
}
catch(Exceptione)
{
CloseConnection(conn);
thrownewException(SQL);
}
}
//运行Sql语句返回SqlDataReader对象
publicstaticDataSetGetDataSet(stringsql)
{
SqlConnectionconn=GetConnection();
SqlDataAdapterda=newSqlDataAdapter(sql,conn);
DataSetds=newDataSet();
da.Fill(ds);
conn.Close();
returnds;
}
//生成Command对象
publicstaticSqlCommandCreateCmd(stringSQL,SqlConnectionconn)
{
SqlCommandCmd=newSqlCommand(SQL,conn);
returnCmd;
}
}
}
2.主界面
图六固话用户图
图七添加固话用户图
图八用户添加成功
相关代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication1
{
publicpartialclassnoadd:
Form
{
privatemainm;
publicnoadd(mainm)
{
InitializeComponent();
this.m=m;
}
privatevoidtextBox_KeyPress(objectsender,KeyPressEventArgse)
{
//如果输入的不是数字键,也不是回车键、Backspace键,则取消该输入
if(!
(Char.IsNumber(e.KeyChar))&&e.KeyChar!
=(char)13&&e.KeyChar!
=(char)8)
{
e.Handled=true;
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Hide();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")
{
MessageBox.Show("请输入户主名");
return;
}
if(textBox2.Text=="")
{
MessageBox.Show("请输入身份证号码");
return;
}
Stringname=textBox1.Text.Trim();
StringID=textBox2.Text.Trim();
SqlDataReaderreader=Connection.GetReader("select*from户主where身份证='"+ID+"'");
if(reader.Read())
{
Stringno=reader.GetString(0);
MessageBox.Show("您已经注册了电话号码"+no);
return;
}
Randomr=newRandom();
Strings2=r.Next(1300000000,1899999999).ToString();
StringNO2=s2+r.Next(0,9).ToString();
Stringsql="insert户主values('"+ID+"','"+name+"','"+NO2+"','0')";
SqlConnectionconn=Connection.GetConnection();
SqlCommandcmd=Connection.CreateCmd(sql,conn);
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("添加成功,您的电话号码是:
"+NO2);
this.Hide();
this.m.scanUser();
}
}
}
图九固话用户删除图
图十固话话费汇总信息图
相关代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication1
{
publicpartialclassmain:
Form
{
publicmain()
{
InitializeComponent();
}
publicDataSetds=newDataSet();
publicSqlDataAdapterda=null;
privateconststringsql_rec="select*from通话记录";
privateconststringsql_user="select*from户主";
publicSqlConnectionconn=null;
publicStringstate;
privatevoid添加号码ToolStripMenuItem_Click(objectsender,EventArgse)
{
noaddna=newnoadd(this);
na.Show();
}
privatevoid查看号码ToolStripMenuItem_Click(objectsender,EventArgse)
{
searchNOsn=newsearchNO(this);
sn.Show();
}
privatevoid查看记录ToolStripMenuItem_Click(objectsender,EventArgse)
{
scanRec();
}
publicvoidscanRec()
{
this.state="R";
ds.Clear();
conn=Connection.GetConnection();
da=newSqlDataAdapter(sql_rec,conn);
da.Fill(ds,"rec");
this.dataGridView1.DataSource=ds.Tables["rec"].DefaultView;
}
privatevoidtoolStripMenuItem1_Click(objectsender,EventArgse)
{
scanUser();
}
publicvoidscanUser()
{
this.state="U";
ds.Clear();
conn=Connection.GetConnection();
da=newSqlDataAdapter(sql_user,conn);
da.Fill(ds,"user");
this.dataGridView1.DataSource=ds.Tables["user"].DefaultView;
}
privatevoid查询记录ToolStripMenuItem_Click(objectsender,EventArgse)
{
searchRecar=newsearchRec(this);
ar.Show();
}
privatevoid生成记录测试ToolStripMenuItem_Click(objectsender,EventArgse)
{
adda=newadd(this);
a.Show();
}
privatevoid删除户主ToolStripMenuItem_Click(objectsender,EventArgse)
{
this.dataGridView1.EndEdit();
this.Validate();
intrownum=dataGridView1.CurrentCellAddress.Y;
intcolnum=2;
StringNO=dataGridView1[colnum,rownum].Value.ToString();
SqlConnectionconn=Connection.GetConnection();
SqlCommandcmd=newSqlCommand();
Stringsql="deletefrom户主where电话号码='"+NO+"'";
cmd.Connection=conn;
cmd.CommandText=sql;
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("成功!
!
!
");
scanUser();
}
}
}
图十一通话记录表
图十二查询某一固话的通话记录
图十三查询记录表
图十四查看记录表
相关代码:
usingSystem;
usingSystem.Collections.Generic;
usingS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 固定 电话 收费 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)