




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告课程设计(论文)任务书 软件 学院软件+信息 专业 1班 班 一、课程设计(论文)题目 学籍管理系统 二、课程设计(论文)工作自 10 年 12 月 20 日起至 10 年 12 月 24 日止。三、课程设计(论文) 地点: 软件学院实训中心 四、课程设计(论文)内容要求:1本课程设计的目的(1)使学生巩固和提高java编程技术(2)培养学生掌握程序设计的基本思路和方法; (3)加强学生研发、调试程序的能力;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。2课程设计的任务及要求1)任务: (1)录入学生基本信息的功能;(2)修改学生基本信
2、息的功能(3)查询学生基本信息的功能(4)删除学生基本信息的功能2)创新要求: (5)显示所有学生基本信息的功能(6)在用户进行相应操作时应弹出提示对话框(7)采用数据库存储学生基本信息3)课程设计论文编写要求(1)课程设计任务及要求(2)设计思路-工作原理、功能规划(3)详细设计-数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。(4)运行调试与分析讨论-给出运行屏幕截图,分析运行结果,有何改进想法等。(5)设计体会与小结-设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格
3、式)(7) 报告按规定排版打印,要求装订平整,否则要求返工;(8) 课设报告的装订顺序如下:封面-任务书-中文摘要-目录-正文-附录(代码及相关图片)(9)严禁抄袭,如有发现,按不及格处理。4)答辩与评分标准: (1)考勤:10分; (2)程序检查:30分; (3)课设答辩:20分(3)课程设计报告:40分;5)参考文献:(1)丁振凡java语言使用教程 北京邮电大学出版社 (2)张 . 某出版社(3)6)课程设计进度安排内容 天数地点构思及收集资料 7图书馆编码与调试 5实验室撰写论文 3图书馆、实验室学生签名: 10年 12月 20 日课程设计(论文)评审意见(1)考勤(10分):优()、
4、良()、中()、一般()、差(); (2)程序检查(30分):优()、良()、中()、一般()、差(); (3)课设答辩(20分):优()、良()、中()、一般()、差(); (4)课设报告(40分):优()、良()、中()、一般()、差();评阅人: 职称: 讲师 10 年 01 月 25 日中文摘要本程序用于用户对少量学生信息进行简单的管理,本程序针对于对安全系数要求不高,炒作不是很复杂的小型客户开发,如本程序不符合您的要求,请选择其他大型程序。本程序可以实现对学生信息的录入、查询、修改、删除等操作,同时支持查看所有学生信息,功能完善,界面简洁美观,布局合理,操作简便,简单易用,任何人可轻
5、松操作。同时,本程序对系统要求配置较低,运行速度快,而却对数据库管理要求较低。本程序数据库采用office2007版本的access数据库(.accdb)进行数据存储,该数据库可实现关系较为简单的数据管理。如有需要,请与xxx公司联系。本程序版本为0.9公测版,使用完全免费,未经允许,禁止用于商业用途,欢迎用户使用,如在使用中出现问题,请及时将问题反馈给我们,一边为您提供质量更优秀的软件,我们再次深表感谢!目录一、课设任务及要求1二、需求分析2三、设计思路3四、详细设计4五、运行调试与分析讨论19六、设计体会与小结22七、参考文献23一、课设任务及要求题目 学籍管理系统设计内容设计基于acce
6、ss数据库的学籍管理系统。学生基本信息应包括对学生的相关属性进行操作,如学号、姓名、性别、专业、年级、生日等信息,另外添加备注一栏存储学生的附加信息。用户可对学生基本信息进行录入、查询、修改、删除、显示所有学生信息等基本操作。学生基本信息包括多项属性,关系较为复杂,应采用数据库存储学生基本信息,这样各种信息之间的关系、区别以及联系可以更好的存储起来。设计要求1录入学生基本信息的功能11 用户按照要求输入信息进行注册,成功之后要提示用户注册成功。12 当用户注册是输入不当,如学号已存在,应提示用户学号已存在,并重新输入。2查询学生基本信息的功能21用户可通过学号查询数据库中学生的基本信息,并将该
7、学号的学生基本信息显示在查询窗口里。22当用户输入有不当,如输入学号不存在,应提示用户输入的学号有误,并重新输入。23用户不能对查询窗口中显示的学生基本信息进行编辑。3修改学生基本信息的功能31用户可通过学号在数据库中搜索需要修改的学生的基本信息,并将该学号的学生基本信息显示在修改窗口里。32用户可通过各行的修改按钮来改变学生信息的状态,并对学生基本信息进行修改。33用户输入新的学生信息后可将修改后的学生信息上传至数据库中。4删除学生基本信息的功能41用户可通过学号在数据库中搜索需要删除的学生的基本信息,并将该学号的学生基本信息显示在删除窗口里。42用户可将需要删除的学生信息从数据库中删除。4
8、3当用户删除成功之后应提示用处该学号的同学已从数据库中删除。5显示所有学生基本信息的功能51可在窗口中显示所有数据库中的学生信息。52学生信息要按一定规则有序的显示。二、需求分析系统目标:软件开发的意图便于用户对学生的管理,方便查看学生的情况。如用户对学生基本信息进行录入、查询、修改、删除等。使用范围:本系统仅针对用户对少量学生进行学籍管理。功能要求:1录入学生基本信息的功能2 查询学生基本信息的功能3修改学生基本信息的功能4删除学生基本信息的功能5显示所有学生信息的功能信息采集与使用权限:使用时由用户录入学生信息,安装本系统的用户皆可使用此软件。性能需求:1、 程序运行流畅程序占用内存小,可
9、在大多数电脑上流畅运行。2、 数据的完整性,准确性录入按格式录入,同时只能录入一名学生的基本信息。输出按格式输出,输出所有学生信息是要采用表格形式。3、 界面适当美观,优雅,通用性较强三、设计思路界面构建:1、为了便于各种操作,软件采用多窗口的模式。用户可在不同窗口进行相应操作(录入、查询、修改、删除、显示所有学生省信息)。2、主窗口是用户进行各种操作的平台,具体操作在各个独立功能窗口中完成。3、主窗口的主要功能位于菜单中,菜单为进入各个功能窗口的唯一通道。4、各功能窗口(除显示所有学生信息窗口)均由两到三个模块构成。第一个模块中主要包含学号以及相关操作的组件。第二个模块由姓名、性别、专业、年
10、级、生日等相关组件构成。第三个模块(录入、修改、删除窗口中包含)由相关操作的功能按钮组件构成。5、当用户在进行个别录入、删除或错误输入操作时,会弹出相应对话框提示用户。如当录入成功或删除成功,弹出成功以及相应的简明信息提示当,当录入、删除失败以及输入不当是,弹出错误以及简单的错误原因提示用户重新操作。6、界面布局尽量合理,各组件位置分布均匀美观。数据存储1、由于学生包含多项属性,需对学生属性进行录入、修改、删除等多项操作,操作过程较为复杂,故采用数据库。本软件针对小型用户使用,故使用入门级的access数据库。2、由于存储少量信息,数据库中只包含一个表,表中有学号、姓名、性别、专业、年级、生日
11、等关键字。3、数据库在用完之后即使关闭。四、详细设计1、程序主体概述:import java.awt.*;import java.awt.event.*;import java.sql.*;程序采用awt包的相关组件设计,故包含awt包;通过各种动作完成相关操作,故包含awt.event包;学生信息用数据库存储,故包含sql包;public class studentmanagesystem extends frame implements windowlistener,actionlistener。 。 。studentmanagesystem为主类,通过继承类frame以及借口,分别实现主
12、窗口创建功能,动作、窗口都做监听的功能。2、窗口监听:windowclosingwei()为实现各窗口关闭的方法。 public void windowclosing(windowevent e) try frame frm=(frame)(e.getsource(); if(e.getsource()=this) try stmt.close(); con.close(); catch(exception ex) system.out.println(ex.getmessage(); system.exit(0); else frm.dispose(); catch(exception ex
13、) dialog dig=(dialog)(e.getsource(); dig.dispose(); 文件中出现的窗体有两种frame和dialog。关闭方法采用异常处理机制,非异常情况需要关闭的窗口是frame,如果需要关闭的窗体是dialog,则进入异常处理机制。当关闭frame时先判断是否为主窗体,主窗体则关闭所有窗体并退出窗体,同时与数据库断开,当需要关闭的窗体为功能窗体时,只关闭该功能窗体。3、公共组件:panel zt;/欢迎窗体中的重要容器menubar mt;/主菜单frame zf;/功能窗体加载的平台panel stuinf;/功能窗体中学生信息家在的容器font fon
14、t1;label number,name,sex,profession,grade,birthday;/属性标签textfield numbers,names,professions,grades,birthdays;/属性文本域checkboxgroup style=new checkboxgroup();/性别checkbox f,m;string url="jdbc:odbc:学生管理系统"/数据库连接string sql="select *from 学生信息"connection con;statement stmt;resultset rs;d
15、ialog wrongd;/错误对话框dialog confirmd;/成功对话框string num0=""4、构造函数主窗体: public studentmanagesystem1() super("学籍管理系统"); this.setvisible(true); 。 mt=new menubar(); menu menu=new menu("菜单"); menuitem ininformation=new menuitem("录入学生信息"); menu.add(ininformation); ininfo
16、rmation.addactionlistener(this); 。 mt.add(menu); setmenubar(mt); zt=new panel(); zt.add(new label("n"+"欢迎登陆学生管理系统"); this.add(zt);numbers=new textfield(20);。number=new label("学好");。m=new checkbox("男",true,style);f=new checkbox("女",false,style);trycla
17、ss.forname("sun.jdbc.odbc.jdbcodbcdriver");catch(java.lang.classnotfoundexception e)system.err.println(e.getmessage(); try con=drivermanager.getconnection(url, "", null); stmt=con.createstatement(); rs=stmt.executequery(sql); system.out.println("连接成功"); catch(sqlexcepti
18、on ex) system.out.println("message"+ex.getmessage(); 通过构造函数,加载主窗体(包括家在菜单以及欢迎界面),对主窗体设置大小,添加动作监听器以及窗口监听器,初始化部分程序用到的公共组件(学生学号、姓名、性别、专业、年级、生日等相关组件),以及连接数据库。5、学生信息加载方法: public panel lodeinf(panel stuinf)。 该方法用于加载功能窗体中学生信息显示组件的加载,包括学号、姓名、性别、专业、年级、生日的标签以及文本域组件。6、录入学生信息窗体 public void registzf(str
19、ing s) stuinf=new panel();zf=new frame(s);zf.dolayout();zf.setlayout(new borderlayout();panel ps=new panel();label l=new label("学号");ps.setlayout(null);。l.setbounds(50, 5, 30, 20);numbers.setbounds(100, 5, 220, 20);panel px=new panel();px.setlayout(null);px.setbounds(0, 0, 0, 40);button su
20、reb,cancelb;sureb=new button("录入");cancelb=new button("取消"); sureb.setbounds(150, 5, 40, 30);cancelb.setbounds(200, 5, 40, 30);px.setbackground(color.light_gray);px.add(sureb);px.add(cancelb);sureb.addactionlistener(this);cancelb.addactionlistener(this);zf.setvisible(true);。zf.ad
21、dwindowlistener(this); 录入窗体包含三个模块。通过容器ps加载学号的相关组件,成为第一模块。注册窗体调用lodeinf(panel stuinf)加载学生信息主体组件进行加载,成为第二模块。通过容器px加载录入,取消按钮,来实现成绩录入以及推出该窗体,成为第三模块。7、查询学生信息窗体 public void inquirezf(string s) stuinf=new panel();zf=new frame(s);。panel ps=new panel();label l=new label("请输入要查询的学号:");button b=new b
22、utton("查询");b.addactionlistener(this);ps.setlayout(null);ps.setbounds(0, 0, 100, 30);ps.setbackground(color.light_gray);ps.add(l);。l.setbounds(50, 5, 120, 20);。zf.add("north",ps);zf.add("center",lodeinf(stuinf);zf.addwindowlistener(this);names.setenabled(false);。 查询窗体包含
23、两个模块。通过容器ps加载学号的相关组件,以及查询按钮,成为第一模块。注册窗体调用lodeinf(panel stuinf)加载学生信息主体组件进行加载,成为第二模块。注意:该窗体中,用户不能对除学号以外的信息进行操作。8、修改学生信息窗体public void modifyzf(string s) stuinf=new panel();zf=new frame(s);。panel p=new panel();panel ps=new panel();label l=new label("请输入要修改的学号:");button b=new button("搜索&q
24、uot;);ps.setlayout(null);ps.setbounds(0, 0, 400, 60);ps.setbackground(color.light_gray);ps.add(l);。l.setbounds(25, 35, 120, 20);。b.addactionlistener(this);panel px=new panel();px.setlayout(null);px.setbounds(0, 250, 400, 50);button inquire,reinquire;inquire=new button("录入修改");reinquire=new
25、 button("重置"); inquire.setbounds(130, 5, 60, 25);reinquire.setbounds(210, 5, 40, 25);px.add(inquire);px.add(reinquire);px.setbackground(color.light_gray);inquire.addactionlistener(this);reinquire.addactionlistener(this);label wl1,wl2,wl3,wl4,wl5;wl1=new label("(新)");。wb1=new butt
26、on("修改");。wl1.setbackground(color.light_gray);。zf.add(wl1);。zf.add(wb1);。wl1.setbounds(25, 76, 25, 20);。wb1.setbounds(330, 75, 40, 20);。wb1.addactionlistener(this);。wb1.setenabled(false);。p=lodeinf(stuinf);p.setbounds(0,60,400,190);zf.addwindowlistener(this);zf.add(ps);。names.setenabled(fa
27、lse);。 修改窗体包含三个模块+部分辅助组件。通过容器ps加载学号的相关组件,以及搜索按钮,成为第一模块。注册窗体调用lodeinf(panel stuinf)加载学生信息主体组件进行加载,成为第二模块。通过容器px加载录入修改,重置按钮,来实现成绩录入以及推出该窗体,成为第三模块。还有部分显示“新”的标签,以及修改的按钮。注意:没有显示学号之前其他组件均不能操作。9、删除学生信息窗体 public void deletezf(string s) stuinf=new panel();zf=new frame(s);。panel ps=new panel();label l=new lab
28、el("请输入要删除的学号:");button b=new button("搜索");ps.setlayout(null);ps.setbounds(0, 0, 100, 30);ps.setbackground(color.light_gray);ps.add(l);。l.setbounds(50, 5, 120, 20);。b.addactionlistener(this);panel px=new panel();px.setlayout(null);px.setbounds(0, 0, 0, 40);button sureb,cancelb;su
29、reb=new button("删除");cancelb=new button("取消"); sureb.setbounds(150, 5, 40, 30);cancelb.setbounds(200, 5, 40, 30);px.setbackground(color.light_gray);。sureb.addactionlistener(this);cancelb.addactionlistener(this);zf.add("north",ps);。zf.addwindowlistener(this);names.setena
30、bled(false);。 删除窗体包含三个模块。通过容器ps加载学号的相关组件,以及搜索按钮,成为第一模块。注册窗体调用lodeinf(panel stuinf)加载学生信息主体组件进行加载,成为第二模块。通过容器px加载删除,取消按钮,来实现成绩录入以及推出该窗体,成为第三模块。注意:没有显示学号之前其他组件均不能操作。10、显示所有学生信息窗体 public void allzf(string s)string informations="学号 t姓名 t性别 t专业 t年级 t生日 rn"textarea text;zf=new frame(s);。font fon
31、t=new font("宋体",12,14);trysql="select *from 学生信息"rs=stmt.executequery(sql); while(rs.next() string s0=rs.getstring("学号"); 。 informations+=s0+"t"+s1+"t"+s2+"t"+s3+"t"+s4+"t"+s5+"rn" catch(exception ex)text=new t
32、extarea(informations);text.setbounds(10,30,380,260);text.setfont(font);text.setbackground(color.light_gray);zf.add(text);zf.addwindowlistener(this); 该窗体由一个textarea构成,用于显示全部学生的年基本信息。注意:显示要按一定规则输出(表格形式)。11、动作监听 public void actionperformed(actionevent e) if(e.getactioncommand()="录入学生信息") if(z
33、f!=null) zf.dispose(); registzf("学生信息录入"); if(e.getactioncommand()="查询学生信息")。 if(e.getactioncommand()="修改学生信息")。 if(e.getactioncommand()="删除学生信息")。 if(e.getactioncommand()="所有学生信息")。 if(e.getactioncommand()="录入"). if(e.getactioncommand()=&q
34、uot;查询"). if(e.getactioncommand()="搜索"). if(e.getactioncommand()="修改") numbers.settext(num0); if(e.getsource()=wb1) names.setenabled(true); 。 if(e.getactioncommand()="录入修改")。 if(e.getactioncommand()="重置") 。 try sql="select *from 学生信息" rs=stmt.ex
35、ecutequery(sql); while(rs.next() string s0=rs.getstring("学号"); 。 if(num0.equals(s0) names.settext(s1); if(s2.equals("男") m.setstate(true); 。 catch(exception ex) system.out.println(ex.getmessage(); if(e.getactioncommand()="删除") . if(e.getactioncommand()="取消") z
36、f.dispose(); if(e.getactioncommand()="退出") system.exit(0); if(e.getactioncommand()="确定") try confirmd.dispose(); catch(exception ex) try wrongd.dispose(); catch(exception ex) 11、1进入录入、查询、修改、删除、显示所有信息窗口if(e.getactioncommand()="录入学生信息")。if(e.getactioncommand()="查询学生信
37、息")。if(e.getactioncommand()="修改学生信息")。if(e.getactioncommand()="删除学生信息")。if(e.getactioncommand()="所有学生信息")。11、2录入 if(e.getactioncommand()="录入") string num0=""string s0=numbers.gettext();。if(m.getstate()s2="男"if(f.getstate()s2="女&qu
38、ot;int count=0; try sql="select *from 学生信息" rs=stmt.executequery(sql); while(rs.next() num0=rs.getstring("学号"); if(num0.equals(s0) count+; if(count=0)sql="insert into 学生信息(学号,姓名,性别,专业,年级,生日,备注) values('"+s0+"','"+s1+"','"+s2+"
39、;','"+s3+"','"+s4+"','"+s5+"','"+""+"')"stmt.executeupdate(sql); confirmd=new dialog(zf,"恭喜你!"); confirmd.setvisible(true); confirmd.setmodal(true); confirmd.setsize(300, 100); confirmd.setbounds(20,
40、 100, 220, 100); confirmd.addwindowlistener(this); label confirml=new label("注册成功!n学号:"+s0+"n姓名:"+s1+"n性别:"+s2+"n专业:"+s3+"n年级:"+s4+"n生日:"+s5+""); button confirmb=new button("确定"); confirmb.addactionlistener(this); confir
41、md.setlayout(new flowlayout(); confirmd.add("north",confirml); confirmd.add("center",confirmb); confirmd.pack(); else wrongd=new dialog(zf,"错误"); 。 catch(exception ex) system.out.println(ex.getmessage(); 录入之前先检查该学号是否存在,如果存在,弹出错误对话框,提示重新输入,如果录入成功,弹出成功窗口。11、3查询/搜索 if(e.ge
42、tactioncommand()="查询") num0=numbers.gettext(); int count=0; try sql="select *from 学生信息" rs=stmt.executequery(sql); while(rs.next() string s0=rs.getstring("学号"); 。 if(num0.equals(s0) names.settext(s1); if(s2.equals("男") m.setstate(true); 。 count+; if(count=0) w
43、rongd=new dialog(zf,"错误"); 。 label wrongl=new label("您输入的学号"+num0+"不存在,请重新输入!"); 。 numbers.settext(""); catch(exception ex) system.out.println(ex.getmessage(); 查询该学号是否存在,如果不存在,弹出错误对话框,提示重新输入,如果存在,在查询窗体中显示该学生信息。11、4修改 if(e.getactioncommand()="录入修改") n
44、umbers.settext(num0); string s0=num0;string s1=names.gettext();。if(m.getstate()s2="男"。system.out.println(s0+s1+s2+s3+s4+s5);trysql="update 学生信息 set 姓名 = '"+s1+"' where 学号 ="+"'"+s0+"'"stmt.executeupdate(sql);sql="update 学生信息 set
45、性别 = '"+s2+"' where 学号 ="+"'"+s0+"'"。 confirmd=new dialog(zf,"恭喜你!"); 。 names.settext(""); 。catch(exception ex) system.out.println(ex.getmessage(); 录入修改后该学生的信息,如果录入成功,弹出成功窗口。11、5删除 if(e.getactioncommand()="删除") numbers.settext(num0); 。 try sql="select *from 学生信息" rs=stmt.executequery(sql); while(rs.next() string s0=rs.getstring("学号"); if(num0.equals(s0)sql="delete *
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年货车运输合同模板
- 2025光纤通讯工程合同范本
- 元明清文学知到课后答案智慧树章节测试答案2025年春华侨大学
- 2025年农业用地长期租赁合同
- 2025个人汽车按揭贷款合同范本
- 保利城购房合同范本
- 2025建筑项目测绘劳动合同模板
- 合伙商业出租合同范本
- 苏教版四年级下册数学教案:五 解决问题的策略-画线段图
- 2024年平凉市市属事业单位考试真题
- 第二节欧洲西部24
- 小学五年级下册体育教案_(全册)
- 平行四边形的应用动点问题
- 多媒体课件制作流程图
- 关于调整城市下水道工人和环卫工人津贴的文件
- MT_T 695-1997 煤矿用高倍数泡沫灭火剂通用技术条件_(高清版)
- 纺织品装饰用织物
- 深静脉置管术护理及肝素钠封管的意义
- 万科房地产集团公司全套管理制度及流程图
- 《商业发票》word版
- 《教案封面设计》word版
评论
0/150
提交评论