c报刊订阅管理系统数据库课程设计报告.docx

上传人:b****6 文档编号:8945998 上传时间:2023-02-02 格式:DOCX 页数:51 大小:355.74KB
下载 相关 举报
c报刊订阅管理系统数据库课程设计报告.docx_第1页
第1页 / 共51页
c报刊订阅管理系统数据库课程设计报告.docx_第2页
第2页 / 共51页
c报刊订阅管理系统数据库课程设计报告.docx_第3页
第3页 / 共51页
c报刊订阅管理系统数据库课程设计报告.docx_第4页
第4页 / 共51页
c报刊订阅管理系统数据库课程设计报告.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

c报刊订阅管理系统数据库课程设计报告.docx

《c报刊订阅管理系统数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《c报刊订阅管理系统数据库课程设计报告.docx(51页珍藏版)》请在冰豆网上搜索。

c报刊订阅管理系统数据库课程设计报告.docx

c报刊订阅管理系统数据库课程设计报告

课程设计

 

课程设计名称:

数据库应用系统课程设计

专业班级:

学生姓名:

马飞扬

学号:

指导教师:

课程设计时间:

2011-12-19至2011-12-30

 

计算机科学与技术专业课程设计任务书

学生姓名

马飞扬

专业班级

学号

题目

报刊订阅管理系统

课题性质

其它

课题来源

自拟课题

指导教师

同组姓名

主要内容

人们在部门单位中一直以来都是使用传统人工方式管理本单位的报刊订阅,这种管理方式存在着许多缺点,而且时间一长,将产生大量的文件和数据,难于归类整理,这对于查找、更新和维护都带来了不少的困难。

课题要求设计并实现一个报刊订阅管理系统,能够通过计算机和数据库对本单位的报刊订阅进行管理。

一个单位可指定一个或多个管理员,普通用户注册获得一个账号后就可以订阅报刊以及在自己的权限范围内进行相关的操作。

功能应包括:

登录对角色的判断,管理员注册新用户,查看、更新报刊信息,查询、统计订阅信息,维护数据,管理用户,普通用户修改个人信息,查询、统计、增加订阅等模块。

界面设计相对友好,方便用户的操作。

任务要求

综合运用所学的数据库基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。

要求根据本课题设计出合理的数据结构,并实现报刊订阅管理系统中,登录对角色的判断,管理员注册新用户,管理员查看、更新报刊信息,查询、统计订阅信息,维护数据,管理用户,普通用户修改个人信息,查询、统计、增加订阅等功能模块。

参考文献

【1】尹志宇、郭晴数据库原理与应用教程清华大学出版社2010.5

【2】(美)厄尔曼数据库系统基础教程机械工业出版社2009.8

【3】郑阿奇sqlserver2005教程电子工业出版社2011.2

【4】明日科技c#开发技术大全人民邮电出版社2011.11

【5】(美)米凯利斯c#本质论人民邮电出版社2010.9

审查意见

指导教师签字:

教研室主任签字:

年月日

报刊订阅管理系统

1:

概述

人们在部门单位中一直以来都是使用传统人工方式管理本单位的报刊订阅,这种管理方式存在着许多缺点,譬如:

效率低、保密性差,而且时间一长,将产生大量的文件和数据,难于归类整理,这对于查找、更新和维护都带来了不少的困难。

本学期学习了c#、数据库以及基于c#的windows应用程序开发以后,在本次课程设计中,便利用这些知识点,实现一个报刊订阅管理系统,能够通过计算机和数据库对本单位的报刊订阅进行管理,实现智能化管理,克服传统人工管理方式的缺点以及弊端。

在报刊订阅管理系统中,要实现:

一个单位可指定一个或多个管理员,管理员可以注册新用户,查看、更新报刊信息,查询、统计订阅信息,系统维护,管理用户;普通用户通过注册获得一个账号后就可以订阅报刊以及在自己的权限范围内进行查询、统计订阅以及修改个人信息等相关的操作。

功能应包括:

登录对角色的判断,管理员注册新用户,管理员查看、更新报刊信息,管理员查询、统计订阅信息,管理员维护数据、管理员管理用户、普通用户修改个人信息、普通用户查询、统计、增加订阅等功能模块。

界面设计要相对友好,方便用户的操作。

2:

需求分析

设计报刊订阅管理系统,要能够通过计算机和数据库对本单位的报刊订阅进行管理,实现智能化管理,克服传统人工管理方式的缺点以及弊端。

要实现:

一个单位可指定一个或多个管理员,管理员可以注册新用户,查看、更新报刊信息,查询、统计订阅信息,系统维护,管理用户;普通用户通过注册获得一个账号后就可以订阅报刊以及在自己的权限范围内进行查询、统计订阅以及修改个人信息等相关的操作。

具体功能应包括:

用户登录,管理员注册用户(包括普通用户、管理员),更新报刊(包括查看、录入、修改、删除),查询订阅(按用户、报刊、部门),统计订阅(按用户、报刊、部门),系统维护(备份、还原数据)、管理用户(查询、修改、删除),普通用户修改个人信息,增加、删除、修改、查询、统计订阅信息等功能模块。

界面设计要相对友好,方便用户的操作。

系统流程图如图1:

图1:

 

3:

概念结构设计

在报刊订阅管理系统中,共涉及到3个实体:

报刊、部门、用户。

用户包括普通用户、管理员,每个用户都唯一属于一个部门,每个部门可包括多个用户,它们是多对一的关系。

普通用户可以订阅多份报刊,一份报刊可被多个用户订阅,属于多对多的关系。

E-R图如图2。

 

图2:

 

 

4:

逻辑结构设计

设计数据库共有7个关系模式,分别为:

用户(用户账号,姓名,密码,用户类别)用户账号为主键,决定因素为主键自身或包含主键,满足BC范式。

普通用户1(用户账号,联系电话,联系地址,部门编号)用户账号为主键,部门编号为外键,决定因素为主键自身或包含主键,满足BC范式。

普通用户2(用户账号,身份证号)用户账号为主键,决定因素为主键自身或包含主键,满足BC范式。

部门(部门编号,部门名称)部门编号为主键,决定因素为主键自身或包含主键,满足BC范式。

报刊信息(报刊编号,报刊名称,出版报社,出版周期,季度报价,内容介绍,分类编号)报刊编号为主键,分类编号为外键,决定因素为主键自身或包含主键,满足BC范式。

报刊类别(分类编号,分类名称)分类编号为主键,决定因素为主键自身或包含主键,满足BC范式。

订单(用户编号,报刊编号,订阅份数,订阅月数)用户编号、报刊编号为主键,决定因素为主键自身或包含主键,满足BC范式。

5:

源代码及系统截图

源代码:

(1)登录界面的逻辑实现

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.IO;

usingSystem.Data.SqlClient;

namespacenewspaperorder

{

publicpartialclasslogin:

Form

{

privateintchildFormNumber=0;

publiclogin()

{

InitializeComponent();

}

privatevoidShowNewForm(objectsender,EventArgse)

{

FormchildForm=newForm();

childForm.MdiParent=this;

childForm.Text="Window"+childFormNumber++;

childForm.Show();

}

privatevoidOpenFile(objectsender,EventArgse)

{

OpenFileDialogopenFileDialog=newOpenFileDialog();

openFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);

openFileDialog.Filter="TextFiles(*.txt)|*.txt|AllFiles(*.*)|*.*";

if(openFileDialog.ShowDialog(this)==DialogResult.OK)

{

stringFileName=openFileDialog.FileName;

}

}

privatevoidSaveAsToolStripMenuItem_Click(objectsender,EventArgse)

{

SaveFileDialogsaveFileDialog=newSaveFileDialog();

saveFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);

saveFileDialog.Filter="TextFiles(*.txt)|*.txt|AllFiles(*.*)|*.*";

if(saveFileDialog.ShowDialog(this)==DialogResult.OK)

{

stringFileName=saveFileDialog.FileName;

}

}

privatevoidExitToolsStripMenuItem_Click(objectsender,EventArgse)

{

this.Close();

}

 

privatevoidCascadeToolStripMenuItem_Click(objectsender,EventArgse)

{

LayoutMdi(MdiLayout.Cascade);

}

privatevoidTileVerticalToolStripMenuItem_Click(objectsender,EventArgse)

{

LayoutMdi(MdiLayout.TileVertical);

}

privatevoidTileHorizontalToolStripMenuItem_Click(objectsender,EventArgse)

{

LayoutMdi(MdiLayout.TileHorizontal);

}

privatevoidArrangeIconsToolStripMenuItem_Click(objectsender,EventArgse)

{

LayoutMdi(MdiLayout.ArrangeIcons);

}

privatevoidCloseAllToolStripMenuItem_Click(objectsender,EventArgse)

{

foreach(FormchildForminMdiChildren)

{

childForm.Close();

}

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

this.textBox1.Clear();

this.textBox2.Clear();

}

privatevoidnotifyicon1_click(objectsender,System.Windows.Forms.MouseEventArgse)

{

if(e.Button==System.Windows.Forms.MouseButtons.Right)

{

if(this!

=null&&this.contextMenuStrip1!

=null)

{

this.contextMenuStrip1.Show();

}

}

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

stringusernum=null;usernum=this.textBox1.Text.ToString();

stringuserpass=null;userpass=this.textBox2.Text.ToString();

if(usernum.Equals("")||userpass.Equals(""))

{

MessageBox.Show("请?

输?

入?

账?

号?

和í密ü码?

");

}

else

{

stringstrCon=@"server=(local);IntegratedSecurity=true;database=newspaperorder;uid=sa;pwd=111111";

SqlConnectionMyCon=newSqlConnection(strCon);

try

{

MyCon.Open();

stringsql=@"select*from用?

户§where用?

户§账?

号?

="+usernum+"and密ü码?

="+userpass+"";

SqlCommandMyCommand=newSqlCommand(sql,MyCon);

SqlDataReadermydatareader=MyCommand.ExecuteReader();

if(mydatareader.HasRows)

{

mydatareader.Read();

stringpower=mydatareader.GetString(3);

if(power.StartsWith("管ü理え员±"))

{

this.Hide();

this.admin=newadminform(usernum);

}

if(power.StartsWith("普?

通用?

户§"))

{

this.Hide();

mon=newcommonform(usernum);

}

}

else

{

MessageBox.Show("账?

号?

或ò密ü码?

不?

正y确ā?

");

}

MyCon.Close();

}

catch(Exceptione1){MessageBox.Show(e1.Message);}

}

}

privatevoidtoolStripMenuItem1_Click(objectsender,EventArgse)

{

this.Dispose();

}

}

}

(2)管理员主界面的逻辑实现

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespacenewspaperorder

{

publicpartialclassadminform:

Form

{

privateintchildFormNumber=0;

publicadminform(stringusernum)

{

this.Visible=true;

this.usernum=usernum;

InitializeComponent();

}

privatevoidShowNewForm(objectsender,EventArgse)

{

FormchildForm=newForm();

childForm.MdiParent=this;

childForm.Text="Window"+childFormNumber++;

childForm.Show();

}

privatevoidOpenFile(objectsender,EventArgse)

{

OpenFileDialogopenFileDialog=newOpenFileDialog();

openFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);

openFileDialog.Filter="TextFiles(*.txt)|*.txt|AllFiles(*.*)|*.*";

if(openFileDialog.ShowDialog(this)==DialogResult.OK)

{

stringFileName=openFileDialog.FileName;

}

}

privatevoidSaveAsToolStripMenuItem_Click(objectsender,EventArgse)

{

SaveFileDialogsaveFileDialog=newSaveFileDialog();

saveFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);

saveFileDialog.Filter="TextFiles(*.txt)|*.txt|AllFiles(*.*)|*.*";

if(saveFileDialog.ShowDialog(this)==DialogResult.OK)

{

stringFileName=saveFileDialog.FileName;

}

}

privatevoidExitToolsStripMenuItem_Click(objectsender,EventArgse)

{

this.Close();

}

privatevoidCascadeToolStripMenuItem_Click(objectsender,EventArgse)

{

LayoutMdi(MdiLayout.Cascade);

}

privatevoidTileVerticalToolStripMenuItem_Click(objectsender,EventArgse)

{

LayoutMdi(MdiLayout.TileVertical);

}

privatevoidTileHorizontalToolStripMenuItem_Click(objectsender,EventArgse)

{

LayoutMdi(MdiLayout.TileHorizontal);

}

privatevoidArrangeIconsToolStripMenuItem_Click(objectsender,EventArgse)

{

LayoutMdi(MdiLayout.ArrangeIcons);

}

privatevoidCloseAllToolStripMenuItem_Click(objectsender,EventArgse)

{

foreach(FormchildForminMdiChildren)

{

childForm.Close();

}

}

privatevoidtoolStripMenuItem5_Click(objectsender,EventArgse)

{

if(this.userselect1==null)

{

this.userselect1=newuserselect();

this.userselect1.TopMost=true;

}

else

{

if(this.userselect1.WindowState==FormWindowState.Minimized)

{

this.userselect1.WindowState=FormWindowState.Normal;

}

this.userselect1.display();

this.userselect1.TopMost=true;

this.userselect1.Show();

}

}

privatevoid管ü理え员±ToolStripMenuItem_Click(objectsender,EventArgse)

{

if(this.add1==null)

{

this.add1=newaddadmin();

this.add1.TopMost=true;

}

else

{

this.add1.Show();

this.add1.TopMost=true;

}

}

privatevoid普?

通用?

户§ToolStripMenuItem_Click(objectsender,EventArgse)

{

if(this.add2==null)

{

this.add2=newaddcommon();

this.add2.TopMost=true;

}

else

{

this.add2.Show();

this.add2.TopMost=true;

}

}

privatevoidtoolStripMenuItem3_Click(objectsender,EventArgse)

{

if(this.addnewspaper1==null)

{

this.addnewspaper1=newaddnewspaper();

this.addnewspaper1.TopMost=true;

}

else

{

this.addnewspaper1.Show();

this.addnewspaper1.TopMost=true;

}

}

privatevoidtoolStripMenuItem6_Click(objectsender,EventArgse)

{

if(this.newspaperselect1==null)

{

this.newspaperselect1=newnewspaperselect();

this.newspaperselect1.TopMost=true;

}

else

{

if(this.newspaperselect1.WindowState==FormWindowState.Minimized)

{

this.newspaperselect1.WindowState=FormWindowState.Normal;

}

this.newspaperselect1.display();

this.newspaperselect1.Show();

this.newspaperselect

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1