版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告( 2015- 2016年度第1学期)实验名称: 数据库应用课程设计 题 目: 在线投稿审稿治理系统 院 系: 操纵与运算机工程学院 班 级: 计算1302 学 号: 07 学生姓名: 兰鑫玥 指导教师: 周长玉 设计周数: 1 周 成 绩: 日期:2016年1月17日课程设计的目的与要求目的学习和实践在分析和设计运算机应用系统所需要的知识,包括面向对象的系统分析与设计,对数据库做进一步的了解,把握相关知识;进一步增强对数据库运用能力和熟练把握数据库中的重要知识,了解如何从数据库中读写有关数据;培育分析问题、解决问题的能力。要求完成数据库系统的安装与设置。依照具体的课题完成需求分析
2、。完成数据库应用系统的逻辑设计。创建数据库、数据表。完成设计报告。二、设计正文1.需求分析 调查用户需求在线投稿审稿治理系统最终用户为投稿人、审稿人和杂志社治理员,有效地解决了传统模式下投递和送审的各类短处,实现了作者的投稿、信息查询、信息反馈的便利处置和编辑部标准高效化办公,从而节省了稿件处置的时刻和流通费用,提高了稿件投递和投审的效率和平安性,同时也保证了杂志社所有的编辑能够在相同的业务平台进行业务处置,适应了集中治理的需要。通过标准流程、强化内部治理,成立壮大的数据库,为数据分析、人员治理等提供壮大的支持,为用户、编辑提供了平安的权限设置,使稿件分级处置,幸免了处置流程的混乱,减低工作量
3、、减少重复劳动,得出用户的以下实际要求:大体功能需求出版社的在线投稿审稿治理系统包括以下几方面信息:投稿人的大体信息 每一个投稿人都有唯一的编号,有真实姓名,有笔名,有联系方式包括:号码、Email等。审稿人的大体信息审稿人负责审理投稿人的稿件且为治理员治理添加或删除,每一个审稿人都有唯一的编号,有真实姓名,有联系。治理员的大体信息治理员负责治理审稿人,统计稿件信息,指定审稿人去审理指定的稿件,每一个治理员都有唯一的编号,有姓名,有联系。稿件的大体信息每篇文章都有唯一的稿件编号,有稿件名,有稿件类型,有稿件内容,发表日期,有审查标记来记录此篇文章是不是已被审稿人审查,还要有此篇文章的作者。用户
4、对系统的要求投稿人a.信息要求投稿人能够对自己的大体信息进行查看,能够查看自己的稿件状态。b.处置要求投稿人能够添加新的稿件进行提交,等待审稿人审理。投稿人能够修改自己的个人信息,但不能修改账号,账号一经注册,便不可更改。比如,某位作者能够对他的帐号密码进行更改。c平安性与完整性要求平安性要求登录系统设置访问用户的标识以辨别是不是是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;系统应付不同的数据设置不同的访问级别,限制访问用户可查询和处置数据的类别和内容;登录系统对不同用户设置不同的权限,区分不同的用户,如区分投稿人,审稿人,治理员。完整性要求各类信息记录的完整性,如账号和密码等信
5、息记录内容不能为空;各类数据间彼此的联系的正确性;相同的数据在不同记录中的一致性。审稿人 a.信息要求审稿人能够对自己的大体信息进行查看,能够查看自己的审查任务安排。b.处置要求审稿人能够在线审查治理员给自己安排的要审查的稿件,查看稿件的相关信息及内容,并给出自己对这篇文章的评语。审稿人能够修改自己的个人信息,但不能修改账号。治理员 a.信息要求治理员能够对自己的大体信息进行查看,能够查看统计出来的各个作者的稿件信息。b.处置要求治理员能够分派稿件审理,指定审稿人去审理指定的稿件。治理员能够确认发表哪篇稿件,和发表日期。治理员能够对各个作者的稿件进行治理,能够进行删除处置。治理员能够添加和删除
6、审稿人,能够查看和修改个人信息。 系统功能的设计和划分依照如上取得的用户需求,咱们将本系统依照所完成的功能分成以下几部份:第一部份:登录部份第二部份:投稿人治理部份第三部份:审稿人治理部份第四部份:治理员治理部份各部份完成的功能如下:登录部份处置投稿人登录处置审稿人登录处置治理员登录投稿人治理部份处理投稿人注册投稿人能够查询修改个人信息投稿人能够提交稿件并填写稿件的相关信息投稿人能够缴纳稿费投稿人能够查看稿件状态:未审和已审,已审稿件能够查看评语审稿人治理部份审稿人能够查询修改个人信息。审稿人能够审理治理员指定分派的稿件,决定是不是发表。审稿人能够在线审稿,给出评语。治理员治理部份治理员能够查
7、询修改治理员信息。治理员能够添加、删除审稿人。治理员分派审稿人审理哪篇稿件。治理员能够查询某一作者的全数稿件信息。治理员能够删除稿件。治理员能够确信哪篇稿件能够发表,和发表的时刻。 数据流图图2.总数据流图 数据字典 数据项投稿人数据字典:投稿人=账号+密码+姓名+笔名+地址+E-mail+备注账号= 1数字20密码= 1数字20姓名= 1汉字20笔名= 1汉字20= 11数字11地址= 1汉字100地址= 1汉字100数据项:账号含义说明:唯一标识每一个投稿人别名:投稿人编号类型:字符型长度:20数据项:密码含义说明:每一个投稿人的登录密码类型:字符型长度:20数据项:姓名含义说明:每一个投
8、稿人的真实姓名类型:字符型长度:20数据项:含义说明:每一个投稿人的联系类型:字符型长度:11数据项:E-mail含义说明:每一个投稿人的电子邮箱类型:字符型长度:30稿件数据字典:稿件=编号+作者+题目+类型+关键词+摘要+内容+审查标记+缴费标记编号= 8数字8作者= 1汉字20题目= 1汉字20类型= 1数字10关键词= 1汉字50摘要= 1汉字100摘要= 1内容8000审查标记=0|1缴费标记=0|1数据项:编号含义说明:唯一标识每篇稿件别名:稿件编号类型:整型长度:8数据项:类型含义说明:记录稿件类型的编号类型:字符型长度:10数据项:摘要含义说明:每篇稿件的要紧内容与中心主旨 类
9、型:字符型长度:100数据项:内容含义说明:每篇稿件的正文内容 类型:字符型长度:8000数据项:审查标记含义说明:记录稿件是不是审查的标记,0为未审查,1为已审查类型:整型长度:1数据项:缴费标记含义说明:记录稿件是不是缴纳稿费的标记,0为未审查,1为已审查类型:整型长度:1 数据结构数据结构名组成投稿人信息账号,密码,姓名,笔名,电话,地址,E-mail,备注审稿人信息账号,密码,姓名,电话 管理员信息账号,密码,姓名,电话 稿件信息编号,作者,标题,类型,关键词,摘要,内容,审查标记,缴费标记稿件类型信息编号,类型名 数据流数据流名数据流来源数据流去向组成审稿人审查信息审稿人信息稿件信息
10、审查信息管理员管理稿件信息稿件信息稿件信息发表信息数据存储数据存储名输入的数据流输出的数据流组成投稿人信息表投稿人信息投稿人信息投稿人信息审稿人信息表审稿人信息审稿人信息审稿人信息管理员信息表管理员信息管理员信息管理员信息稿件信息表审稿人审查信息稿件信息稿件信息稿件信息 处置进程处理过程名输入数据流输出数据流审稿人审查信息表审稿人信息稿件信息审稿人审查信息管理员管理稿件表稿件信息稿件信息2.概念设计依照需求分析说明书设计ER图,设计完成的ER图为:图3. 总ER图3.逻辑设计 关系表设计将ER图转换为关系模式、要求设计出数据库所有关系表 表1. 投稿人信息表(Writer)属性名存储代码类型长
11、度备注完整性约束账号W_LoginNumvarchar20投稿人登录账号主键密码W_Passwordvarchar20投稿人登录密码非空姓名W_RealNamevarchar20作者真实姓名非空笔名W_PenNamevarchar20作者笔名电话W_PhoneNumchar11联系电话非空地址W_Addressvarchar100联系地址E-mailW_Emailvarchar30电子邮箱CHECK规则备注W_Remarkvarchar100作者备注信息表2. 稿件信息表(Article)属性名存储代码类型长度备注完整性约束编号A_IDint文章编号主键,自增作者A_WriterNumvarc
12、har20投稿人账号主键标题A_Titlevarchar20文章标题非空类型A_TypeNumvarchar10文章类型非空关键词A_Keywordvarchar50文章关键词摘要A_Summaryvarchar100文章摘要内容A_Contentvarchar8000文章正文内容非空审查标记A_CheckFlagint是否经过审查CHECK(0或1)缴费标记A_PayFlagint是否缴纳稿费CHECK(0或1) 表3.、稿件类型表(ArticleType)属性名存储代码类型长度备注完整性约束编号AT_IDvarchar10文章类型编号主键名称AT_Namevarchar20文章类型名称名非
13、空表4.审稿人信息表(Editor)属性名存储代码类型长度备注完整性约束账号E_LoginNumvarchar20审稿人登录账号主键密码E_Passwordvarchar20审稿人登录密码非空姓名E_Namevarchar20审稿人姓名非空电话E_PhoneNumchar11联系电话非空 表5.审稿人审查表(CheckArticle)属性名存储代码类型长度备注完整性约束审查编号C_IDint主键,自增稿件编号C_ArticleIDint主键审稿人C_EditorNumvarchar20审稿人账号主键评语C_CommentVarchar1000审稿人评语审稿时间C_CheckDatedateti
14、me8 表6.治理员信息表(Manager)属性名存储代码类型长度备注完整性约束账号M_LoginNumvarchar20管理员登录账号主键密码M_Passwordvarchar20管理员登录密码非空姓名M_Namevarchar20管理员姓名非空电话M_PhoneNumchar11联系电话非空 表7.治理员治理稿件表(ManageArticle)属性名存储代码类型长度备注完整性约束稿件编号MA_ArticleIDint主键管理员编号MA_LoginNumvarchar20管理员登录密码主键发表标志MA_Publishint是否决定发表CHECK(0或1)发表日期MA_PublishDated
15、atetime8审查标记MA_CheckFlagint是否经过审查CHECK(0或1)缴费标记MA_PayFlagint是否缴纳稿费CHECK(0或1)以上关系模式均为BCNF。视图设计为了方便程序查询,成立了如下用户视图:信息视图(账号,密码)CREATE VIEW W_LOGIN(W_LoginNum,W_Password)ASSELECT W_LoginNum,W_PasswordFROM Writer;信息视图(账号,密码)CREATE VIEW E_LOGIN(E_LoginNum,E_Password)ASSELECT E_LoginNum,E_PasswordFROM Edito
16、r;3.治理员登录信息视图(账号,密码)CREATE VIEW M_LOGIN(M_LoginNum,M_Password)ASSELECT M_LoginNum,M_PasswordFROM Manager;4.创建包括稿件所有信息的视图CREATE VIEW Check_Article_View(E_LoginNum,A_ID,A_Title,W_RealName,W_PenName,A_Keyword,A_Summary,A_Content,A_WriterNum,A_CheckFlag,A_PayFlag,AT_Name,C_Comment)AS SELECT E_LoginNum,A
17、_ID,A_Title,W_RealName,W_PenName,A_Keyword,A_Summary,A_Content,A_WriterNum,A_CheckFlag,A_PayFlag,AT_Name,C_CommentFROM Article,ArticleType,CheckArticle,Editor,Writerwhere A_TypeNum = AT_ID AND A_WriterNum = W_LoginNum AND A_ID = C_ArticleID AND C_EditorNum = E_LoginNum5.创建待审稿件信息视图CREATE VIEW notSee(
18、A_WriterNum,A_ID,A_Title,AT_Name,A_CheckFlag,A_PayFlag)ASSELECT A_WriterNum,A_ID,A_Title,AT_Name,A_CheckFlag,A_PayFlagFROM ArticleType,Article left join CheckArticle on (A_ID = C_ArticleID)WHERE A_TypeNum = AT_ID6.创建已审稿件信息视图CREATE VIEW haveSeen(A_WriterNum,A_ID,A_Title,AT_Name,C_Comment,A_CheckFlag,
19、A_PayFlag)ASSELECT A_WriterNum,A_ID,A_Title,AT_Name,C_Comment,A_CheckFlag,A_PayFlagFROM ArticleType,Article left join CheckArticle on (A_ID = C_ArticleID)WHERE A_TypeNum = AT_ID7.创建定稿治理视图CREATE VIEW Sure_Article_View(A_ID,A_Title,C_Comment,A_PayFlag,MA_Publish,MA_PublishDate)ASSELECT A_ID,A_Title,C_
20、Comment,A_PayFlag,MA_Publish,MA_PublishDateFROM CheckArticle,Article left join ManageArticle on (A_ID = MA_ArticleID)WHERE A_CheckFlag=1 and A_ID=C_ArticleID 8.创建审稿治理中的所有稿件视图CREATE VIEW All_Article_View(A_ID,A_Title,AT_Name,W_RealName,A_Keyword)AS SELECT A_ID,A_Title,AT_Name,W_RealName,A_KeywordFROM
21、 Article,ArticleType,WriterWHERE A_TypeNum = AT_ID AND A_WriterNum = W_LoginNum存储进程及触发器设计1.创建存储进程,统计指定作者的稿件信息CREATE PROCEDURE STASTICSA_WriterNum varchar(20)ASSELECT W_RealName,A_ID,A_Title,AT_Name,A_CheckFlag,A_PayFlag,C_Comment from Writer,ArticleType,Article LEFT join CheckArticle on (A_ID = C_Ar
22、ticleID) WHERE A_WriterNum = A_WriterNum and W_LoginNum = A_WriterNum and A_TypeNum=AT_ID;2.创建触发器,当Article表中A_PayFlag发生改变时,ManageArticle表中的MA_PayFlag也改变CREATE TRIGGER PayFLAG ON Article FOR UPDATE AS IF UPDATE(A_PayFlag) BEGIN UPDATE ManageArticle SET MA_PayFlag= FROM ManageArticle br , Deleted d ,I
23、nserted iWHERE = END; 3.创建触发器,当Article表中A_CheckFlag发生改变时,ManageArticle表中的MA_CheckFlag也改变CREATE TRIGGER CheckFLAG ON Article FOR UPDATE AS IF UPDATE(A_CheckFlag) BEGIN UPDATE ManageArticle SET MA_CheckFlag= FROM ManageArticle br , Deleted d ,Inserted iWHERE = END; 4.创建触发器,当删除一片稿件时,同时删除CheckArticle中有关
24、这篇文章的记录CREATE TRIGGER DeleteCheckArticle ON Article AFTER DELETEAS DELETE CheckArticle FROM CheckArticle br , Deleted dWHERE =5.创建触发器,当删除一片稿件时,同时删除ManageArticle中有关这篇文章的记录CREATE TRIGGER DeleteManageArticle ON Article AFTER DELETEAS DELETE ManageArticle FROM ManageArticle br , Deleted dWHERE = 6.创建触发器
25、,当删除一个审稿人时,同时删除CheckArticle中由此审稿人审查的任务CREATE TRIGGER DeleteEditor ON Editor AFTER DELETEAS DELETE CheckArticle FROM CheckArticle br , Deleted dWHERE =4. 物理设计确信数据库物理结构要紧指确信数据的寄存位置和存储结构,包括确信关系、索引、聚簇、日记、备份等的存储安排和存储结构,确信系统配置等。1、系统自动在每一个表的主码上成立索引。5.系统界面及代码实现包括以下几部份内容:表间连接关系图图4.表连接关系样例图CHECK约束设置图图约束设置样例图系
26、统实现界面图图10.投稿人修改个人资料界面关键代码登录模块package 在线审稿投稿治理系统;import .*;import .*;import .*;import 在线审稿投稿治理系统.Register;import 在线审稿投稿治理系统.WriterSystem;public class Login extends JFrame implements ItemListener JFrame frame=this;Connection conn;Statement stm;ResultSet rs;String url = jdbc:;DatabaseName=Management;pu
27、blic static void main(String args) (new Runnable() public void run() try Login frame = new Login();(true); catch (Exception e) public Login() throws Exception ();conn=(url,aa,aa);stm=();loginBtn= new JButton(登录);(new ActionListener() public void actionPerformed(ActionEvent e) String passwordStr=new
28、String();if ().equals()|() (frame, 账号或密码未填写!, 提示, , ; else if (RadioButton=manager) try rs=(select M_LoginNum,M_Password from M_LOGIN);while()if(M_LoginNum).equals() & (M_Password).equals(passwordStr) ();new ManagerSystem().setVisible(true);();();();(frame, 账号或密码错误,请从头输入!, 提示, , ; catch (Exception e
29、1) if (RadioButton=writer) try rs=(select W_LoginNum,W_Password from W_LOGIN);while()if(W_LoginNum).equals() & (W_Password).equals(passwordStr)();new WriterSystem().setVisible(true);();();();(frame, 账号或密码错误,请从头输入!, 提示, , ; catch (Exception e1) else if (RadioButton=editor) try rs=(select E_LoginNum,E
30、_Password from E_LOGIN);while()if(E_LoginNum).equals() &(E_Password).equals(passwordStr) ();new EditorSystem().setVisible(true);();();();(frame, 账号或密码错误,请从头输入!, 提示, , ; catch (Exception e1) (new Color(0, 0, 139);(new Font(微软雅黑, , 12);( 135, 200, 60, 20);(new Color(176, 224, 230);(loginBtn);registerB
31、tn= new JButton(注册);(new ActionListener() public void actionPerformed(ActionEvent e) new Register().setVisible(true); );public void itemStateChanged(ItemEvent e) if () RadioButton = manager;if()RadioButton = writer;else if()RadioButton =editor;if(RadioButton=manager | RadioButton=editor)(false);(fal
32、se);else (true);(true);注册模块public void actionPerformed(ActionEvent e)if().equals()|().equals()|().equals()|().equals()|().equals()|().equals()(this, 请将必填信息填写完整!, 提示, , ; else if(!().equals()(this, 两次输入的密码不一致,请从头输入!, 提示, , ; else try ();conn=(url,aa,aa);stm=();rs=(select W_LoginNum from Writer where
33、W_LoginNum=+()+);if()(this, 此账号已存在,请从头输入!, 提示, , ;else String sql=insert into Writer values (+()+,+()+,+()+,+()+,+()+,+()+,+()+,+()+);(sql);();(); catch (Exception e1) if ().indexOf(W_Email)0) (this, 邮箱格式错误,请从头输入!, 提示, , ;投稿人模块public WriterSystem(String userNameString) throws Exception userNameStr=u
34、serNameString;JButton button = new JButton(提交稿费);(new ActionListener() public void actionPerformed(ActionEvent e) try String payFlag=(row,3).toString();if(是)(frame, 您已交过稿费!, 提示, , ;else(UPDATE Article SET A_PayFlag = 1 WHERE A_ID = +a_IDString+); (frame, 稿费缴纳成功!, 提示, , ;(是,row,3); catch (SQLExceptio
35、n e1) (););rs=(select DISTINCT A_ID,A_Title,AT_Name,A_PayFlag from haveSeen where A_WriterNum = +userNameStr+ and A_CheckFlag = 1);while()Vector vrow=new Vector();(A_ID);(A_Title);(AT_Name);if(A_PayFlag)=0)(否); else if (A_PayFlag)=1) (是);(vrow);(编号);(题目);(类型);(是不是缴费);dtm1=new DefaultTableModel(vdata
36、1,vcolumn1);ListSelectionModel selectionMode=();(new ListSelectionListener() public void valueChanged(ListSelectionEvent e) try row=();if(row-1 & ()a_IDString=(String) (row,0);rs=(select C_Comment from haveSeen where A_ID = +a_IDString+);if()(C_Comment); catch (Exception e1) );(new ActionListener()
37、public void actionPerformed(ActionEvent e) int trow=();String articleIDString=(trow,0).toString();try String payFlag=(trow,3).toString();if(是)(frame, 您已交过稿费!, 提示, , ; else(UPDATE Article SET A_PayFlag = 1 WHERE A_ID = +articleIDString+);(frame, 稿费缴纳成功!, 提示, , ;(是,trow,3); catch (SQLException e1) ();
38、);typeComboBox = new JComboBox();rs=(select AT_Name from ArticleType);while () (AT_Name);(new ItemListener() public void itemStateChanged(ItemEvent e) typeStr=(String)(););(new ActionListener() public void actionPerformed(ActionEvent e) payFlag=1;(frame, 稿费缴纳成功!, 提示, , ; );(new ActionListener() publ
39、ic void actionPerformed(ActionEvent e) if().equals()|().equals()(frame, 请将题目或内容填写完整!, 提示, , ;else try rs=(select AT_ID from ArticleType where AT_Name = +typeStr+);if()typeNumStr=(AT_ID);String sql=insert into Article (A_WriterNum,A_Title,A_TypeNum,A_Keyword,+ A_Summary,A_Content,A_CheckFlag,A_PayFla
40、g) values + (+userNameStr+,+()+,+typeNumStr+,+()+,+()+,+()+,+checkFlag+,+payFlag+ ) ;(sql);(frame, 稿件提交成功!, 提示, , ;();();();();payFlag=0;(0);catch (SQLException e1) public void actionPerformed(ActionEvent e) if().equals()|().equals()(frame, 请将密码填写完整!, 提示, , ;else if(!().equals()(frame, 两次输入的密码不一致,请从头输入!, 提示, , ;else try rs=(select DISTINCT W_LoginNum from Writer where W_LoginNum = +userNameStr+);if()String sql=update Writer set W_Password = +()+ where W_LoginNum = +userNameStr+;(sql);(frame, 密码更新成功!, 提示, , ;();(); catch (Exception e1) );(new ActionListener(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年恋爱专家里的测试题及答案
- 2026年最强脑力测试题及答案
- 2026年是否懂女人测试题及答案
- 2026年智力生与死测试题及答案
- 2026年绝境反击测试题及答案
- 2026年网络平台测试题及答案
- 2026年校园消杀测试题及答案
- 2026年杭州驾校测试题及答案
- 智研咨询报告:中国包装机械行业政策汇 总、市场运行态势及投资前景分析
- 2026年全国军队文职人员招聘之军队文职教育学考试重点试卷(详细参考解析)
- 办公用房租房合同协议书
- 抑郁症中西医结合诊疗指南
- 国开电大软件工程形考作业3参考答案 (一)
- 中华体育精神课件
- 2024年西安铁路局招聘考试真题
- 三级人力资源考试真题及答案(2024-2025年)
- 《经络与腧穴》课件-足太阴脾经
- 机场周边绿化养护管理方案
- 培训班开班典礼流程
- 工业缝纫机基本构造及使用方法课件
- 《中国心力衰竭诊断和治疗指南2024》解读
评论
0/150
提交评论