版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE11《JAVA程序设计课程设计》报告书学生考勤系统的设计和实现目 录摘要 3一、前言 3二、设计分析 3三、实现方法 4四、调试问题,调试记录及解决 4五、系统的使用说明书 5六、结论 5致谢 5附录 6学生考勤系统的设计和实现摘 要:我这次的课程设计是学生考勤系统的设计和实现。具有如下功能:1、根据教师提供的excel考勤文件夹,统计学生出勤次数,缺勤次数,出勤分数(设考勤次数为N次,满勤为100分,缺勤1次扣总分的1/N),并按分数排序。2、统计结果在屏幕上显示出来,并保存到文本文件.txt之中。为了完成上述功能,我采用了java语言,用一个Student类数组专门存储学生的每个学生的出勤信息,包括姓名,出勤次数,出勤分数。具体使用了JFrame,JButton等组件。最终我成功的完成了具有以上功能的一个小系统。该系统具有了一个较为简单的界面。用。总之这次课程设计让我受益颇丰。关键词:课程设计;功能;系统;函数;图形界面;一、前言本次课程设计我选的是学生考勤系统的设计和实现。刚开始看到这个题我大意的认为这个题很简单,用一些文件操作就可以完成。但动笔写后才发现也不是那么简单。使得我只能小心翼翼的去写去学。总之在这次课程设计中,与其说我是在写这个系统不如说我是在学着写这个系统。二、设计分析我拿到的这个课题从名称上就可以看出来是一个统计出勤次数的系统,它的要求如下:具有如下功能:1、根据教师提供的excel考勤文件夹,统计学生出勤次数,缺勤次数,出勤分数(N10011/N),2、统计结果在屏幕上显示出来,并保存到文本文件.txt计的成功。三、实现方法javaMyEclipse我设计了以下类:StudentAttendStatistics//继承JFrame并实现相关功Student //存储每位同学的信息MyCompare //Arraysjava.util.ComparatorStudentAttendStatistics对数据进行处理得到分数、然后按照分数排序、最后显示统计后的结果并将结果保存txt首先对于数据的处理,对于一个信息的多元素问题我采用类数组存储来解决。并1000正常数据每一行都是三个部分,于是我采用分割一行一行的数据,并分辨该行信息是否具有完整的三部分来判断该信息是否为有效信息,并将有效数据的学生姓名赋值给txtJFileChooserArrays.sort(),并实现了java.util.ComparatorJFramejava.awt.Color类,对显示面板的背景颜色以及字体颜色进行设计,是界面更加美观。四、调试问题,调试记录及解决JTextAreaJTextAreaJScrollPaneboundsJScrollPane即可。JFileChooserJFileChooser.FILES_AND_DIRECTORIES就可以实现同时可以选定文件夹和文件。五、系统的使用说明书功能该系统是针对老师提供的考勤文件存放的文件夹来进行统计。具有如下功能:1)根据教师提供的excel考勤文件夹,统计学生出勤次数,缺勤次数,出勤分数(N10011/N),2)统计结果在屏幕上显示出来,并保存到文本文件.txt使用方法:启动系统点第一个浏览选定考勤情况文件的文件夹..txt可以重新统计或者点退出退出系统。六、结论完成了这个课题设计,同时我感觉自己的系统设计道路才刚刚起步。前方还有更多的任务等着我去完成。系统设计对我来说还是比较陌生的,在未来的日子里我一定会一点点的进步。该系统现在时能完成老师对考勤情况统计的要求。而经过修改后就能完成更多的统计任务。相信使用得当能给我的学习生活带来便利。附录:系统源代码classMycompareimplementsjava.util.Comparator{publicintcompare(Objecto1,Objecto2){Studenta1=(Student)o1;Studenta2=(Student)o2;returna1.score<a2.score?1:-1;}}publicclassStringSname;intTime;doublepublicStudent(StringSname=name;Time=1;score=100;}}importjava.awt.Color;importjava.awt.event.*;importjava.io.*;importjava.util.*;importjavax.swing.*;publicclassStudentAttendStatisticsextendsprivateJTextAreajta;privatestaticintstucount=0;privateJFileChooserprivateFiledir,save;privateStudent[]stu;privateintN;publicStudentAttendStatistics()throwsException{this.setTitle("考勤情况统计系统");fileChooser=newJFileChooser();fileChooser.setCurrentDirectory(newFile("."));//设置当前目录fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);//设置JFileChooser,以允许用户只选择文件、只选择目录,或者可选择文件和目录。this.setBounds(400,100,500,650);this.setLayout(null);//设置布局JLabeljla=newJLabel("请输入你要统计文件所在的文件夹");jla.setBounds(0,0,200,20);this.add(jla);JButtonjb=newJButton("浏览");jb.setBounds(200,0,150,20);jb.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){try{intres=fileChooser.showOpenDialog(null);//弹出一个"OpenFile"文件选择器对话框。if(resJFileChooser.APPROVE_OPTION){//(yes、ok)后返回该值。dir=newFile(fileChooser.getSelectedFile().getPath());//径名转换为一个路径名字符串。stu=newStudent[1000];Stringstr[];str=dir.list();//返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。N=str.length;//需要统计的文件的个数//System.out.println(N);for(inti=0;i<str.length;++i){FileF=newFile(dir,str[i]);//System.out.println(F.toString());BufferedReaderbr=newBufferedReader(newFileReader(F));
Stringline;while(br.ready()){//判断此流是否已准备好被读取。如果缓冲区不为空,或者基础字符流已准备就绪,则缓冲的字符流准备就绪。line=br.readLine();//读取一个文本行。StringTokenizerrecord=newStringTokenizer(line,",");//字符串分词器if(record.countTokens()==3){//选择有效记录record.nextToken();Stringname=record.nextToken();intj;for(j=0;j<stucount;++j){if(stu[j].Sname.equals(name)){stu[j].Time++;break;}}if(j==stucount){stu[stucount++]=newStudent(name);}//System.out.println(name);}}br.close();}}}catch(Exceptione){e.printStackTrace();}}});this.add(jb);JLabeljla1=newJLabel("保存路径设定");jla1.setBounds(0,25,200,20);this.add(jla1);JButtonjb1=newJButton("浏览");jb1.setBounds(200,25,150,20);jb1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){try{intres=fileChooser.showSaveDialog(null);if(res==fileChooser.APPROVE_OPTION){Stringpath=fileChooser.getSelectedFile().getPath();if(path.indexOf(".txt")==-1){path+=".txt";}save=newFile(path);}}catch(Exceptione){e.printStackTrace();}}});this.add(jb1);JButtonjb2=newJButton("统计");jb2.setBounds(400,0,100,20);jb2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){try{for(inti=0;i<stucount;++i){stu[i].score=((stu[i].Time)/(double)N)*100;}Arrays.sort(stu,0,stucount,newMycompare());//Filesavepath=newFile(save,"考勤统计情况.txt");PrintWriterpw=newPrintWriter(newBufferedWriter(newFileWriter(save)));//向文本输出流打印对象的格式化表示形式。java.text.DecimalFormatdf=newjava.text.DecimalFormat("0.00");pw.println("考勤统计情况:");for(inti=0;i<stucount;++i){//System.out.println("\t"+stu[i].Sname+"\t"+stu[i].Time+"\t"+(N-stu[i].Time)+"\t数:"+df.format(stu[i].score));jta.append("姓名:"+stu[i].Sname+"\t出勤次数:"+stu[i].Time+"\t缺勤次数:"+(N-stu[i].Time)+"\t出勤分数:"+df.format(stu[i].score)+"\n");pw.println("姓名:"+stu[i].Sname+"\t出勤次数:"+stu[i].Time+"\t缺勤次数:"+(N-stu[i].Time)+"\t出勤分数:"+df.format(stu[i].score));}pw.close();}catch(Exceptione){e.printStackTrace();}}});this.add(jb2);JButtonjb3=newJButton("退出");jb3.setBounds(400,25,100,20);jb3.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){System.exit(0);}});this.add(jb3);JLabelRes=newJLabel("考勤情况统计结果:");Res.setBounds(0,80,200,20);this.add(Res);jta=newJTextArea("");jta.setEditable(false);jta.setBac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西南医科大学《微机原理及接口》2023-2024学年第一学期期末试卷
- 西南交通大学《计算机辅助设计》2019-2020学年第一学期期末试卷
- 西京学院《景观小品设计》2021-2022学年第一学期期末试卷
- 西京学院《插画设计》2023-2024学年第一学期期末试卷
- 西华大学《计算机组成原理》2022-2023学年第一学期期末试卷
- 西北大学《物理讲坛》2021-2022学年第一学期期末试卷
- 精细化工发展潜力分析
- 数字电压表的课程设计
- 中国生活用纸行业投资前景分析及未来发展趋势研究报告(智研咨询发布)
- 《农药基础知识》课件
- 电脑绣花机安全操作规程.doc
- 【定岗定编】企业定岗定编中出现的问题及改进
- (完整版)企业破产流程图(四张)
- JJF 1617-2017电子式互感器校准规范(高清版)
- 外贸企业出口业务自查表
- 第六讲-爱情诗词与元好问《摸鱼儿》
- 学习贯彻2021年中央经济工作会议精神领导讲话稿
- 复式交分道岔的检查方法
- 高一物理必修1期末复习题库
- 模拟真实天平(flash模拟型课件)
- 芭蕾舞介绍-PPT
评论
0/150
提交评论