项目介绍

项目:在我们的课堂,一般有3-5次全班考勤的机会。往年老师都是在考勤表上做标记,今年不一样了,让我们来编个程序,把考勤数据保存到电脑中。

已有数据,学生名单文件: list.txt(下载地址:http://pan.baidu.com/s/1hqxECIw)

201011621305  陈光森
201111621301  曹保印
201111621306  陈嘉濠
201111621313  陈俊宏
201111621325  龙飞玲

班级名称:jk12

要求

1)所有输入参数都使用命令行输入。

2)Java主类名为 RegisterApp

3)命令行输入方式为  java    RegisterApp      list.txt       jk12

4)签到结果保存到  jk12_20140303_1430.txt   (班级名称_日期_时分.txt),内容如下,如果学生到课,则标记为1,否则标记为0

201011621305 陈光森    1
201111621301 曹保印    1
201111621306 陈嘉濠    0
201111621313 陈俊宏    0

201111621325 龙飞玲    1 


参考解答

[java]  view plain copy
  1. /**
  2. * 程序功能:简单的签到程序,能够保存签到后的结果
  3. * 作者:丁又专
  4. * 时间:2014.03.02
  5. * QQ:303727350
  6. */
  7. import java.io.File;
  8. import java.io.FileNotFoundException;
  9. import java.io.PrintWriter;
  10. import java.text.SimpleDateFormat;
  11. import java.util.Date;
  12. import java.util.Scanner;
  13. public class RegisterApp {
  14. /**
  15. * @param args
  16. * @throws Exception
  17. */
  18. public static void main(String[] args) throws Exception {
  19. // TODO Auto-generated method stub
  20. //(a)使用命令行参数,输入学生名单,和 班级名称
  21. //    使用格式: java RegisterApp list.txt wl121
  22. if(args.length != 2){
  23. System.out.println("参数输入不对");
  24. System.out.println("使用方法(示例):java RegisterApp 名单文件名称  班级名称");
  25. System.exit(0);
  26. }
  27. //(b)学生签到结果:学生到,输入1;缺课,输入0
  28. System.out.println("——————————————————");
  29. System.out.println("简易学生签到程序V0.1");
  30. System.out.println("老师叫到名字,请答‘到’");
  31. System.out.println("1:到课       0:缺课");
  32. System.out.println("——————————————————");
  33. //(c)取得系统当前日期时间
  34. Date now = new Date();
  35. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHMM");//可以方便地修改日期格式
  36. String strDate = dateFormat.format( now );
  37. System.out.println("当前时间:"+strDate);
  38. //(d)读取学生名单,args[0]为学生名单文件,args[1]为班级名称
  39. String fileList = args[0];
  40. String fileCheck = args[1] + strDate + ".txt";
  41. File fileInput = new File(fileList);
  42. File fileOutput = new File(fileCheck);
  43. //(e)利用Scanner类读取文本数据/键盘输入数据;  PrintWriter类把签到结果写入到文件
  44. Scanner input = new Scanner(fileInput);
  45. Scanner sc = new Scanner(System.in);
  46. PrintWriter output = new PrintWriter(fileOutput);
  47. //保存缺课学生名字strAbsent ,缺课学生人数nAbsent, 是否缺课标记flag
  48. String strAbsent = "";
  49. int nAbsent = 0;
  50. int flag = 0;
  51. while(input.hasNext()){  //循环读取学生数据
  52. String strName = input.nextLine();
  53. //把学生名字输出到屏幕,从而进行点名。
  54. //老师根据学生到课情况,输入1-到课,0-缺课,保存到flag中
  55. System.out.println(strName);
  56. flag = sc.nextInt();
  57. //如果缺课,则记录下缺课学生数目 与 名字
  58. if(flag==0){
  59. nAbsent = nAbsent+1;
  60. strAbsent = strAbsent + " " + strName;
  61. }
  62. //把考勤结果写入名单
  63. output.print(strName);
  64. output.print("    ");
  65. output.println(flag);
  66. }
  67. //关闭I/O管道
  68. sc.close();
  69. output.close();
  70. input.close();
  71. System.out.println("——————————————————————————");
  72. System.out.println("考勤结束.");
  73. System.out.printf("一共有%d个同学缺课,分别是:%s\n",nAbsent,strAbsent);
  74. System.out.println("——————————————————————————");
  75. }
  76. }

输出结果

编程经验

1)提高搜索技能。好久没有编写程序,很多内容都忘记了。但根据以前哦记忆,利用baidu进行搜索。 如 字符串的格式化,就在baidu中输入“java String 格式化”,很容易就找到答案了。

2)简单却不容易。看似简单的问题,也需要不断修改,花费较多的时间。  编程无捷径,唯有“笨方法高”,推荐阅读 笨方法学Python。

3)不断/不断的敲代码,练习。

一个简单的考勤签到程序相关推荐

  1. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...

  2. C++ 容器的综合应用的一个简单实例——文本查询程序

    [0. 需求] 最近在粗略学习<C++ Primer 4th>的容器内容,关联容器的章节末尾有个很不错的实例. 通过实现一个简单的文本查询程序,希望能够对C++的容器学习有更深的理解. 由 ...

  3. 如何复制java卡,使用java做一个简单的集卡程序

    使用java做一个简单的集卡程序 本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕 public class Test { public static void ...

  4. 怎样用java写一个简单的文件复制程序

    怎样用java写一个简单的文件复制程序 代码来源:https://jingyan.baidu.com/article/c35dbcb0d6f1398916fcbc07.html package Num ...

  5. hosts多个ip对应一个主机名_一个简单的Web应用程序,用作连接到ssh服务器的ssh客户端...

    WebSSH 一个简单的Web应用程序,用作连接到ssh服务器的ssh客户端.它是用Python编写的,基于tornado,paramiko和xterm.js. 特征 支持SSH密码验证,包括空密码. ...

  6. iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序

    iOS开发UI篇-使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: 1 //2 // YY ...

  7. UNIX网络编程笔记(2):一个简单的时间获取程序

    这一讲通过一个简单的时间获取程序简单介绍套接字编程. 1.套接字API 1.1.套接字地址结构 上一讲中介绍了TCP的一些内容,知道了一个套接字对唯一标识了网络中的一个TCP连接,而一个套接字标识了一 ...

  8. 一个简单的录音软件程序代码【C++】

    一个简单的录音软件程序代码[C++]今天的院内绿草茵茵的 录音软件,岁月一去不回返,顽强拼搏,我将来的录音软件家是一栋三层的别墅,因为小树给我留下的是顽强拼搏,你见状,可你的眼睛好像在说,那盛夏的梧桐 ...

  9. 如何构建一个简单的语音识别应用程序

    "In this 10-year time frame, I believe that we'll not only be using the keyboard and the mouse ...

最新文章

  1. iOS 高效开发-----实现description 方法 (续)
  2. 什么是iu组装服务器,超频三全新款 IU服务器散热器全新登场
  3. C++将程序跳转到指定内存地址
  4. SecureCRT突然假死的问题(Ctrl+S)
  5. c++ 数组的数据保存二进制_Redis五种不同的数据类型
  6. 论文浅尝 - WSDM20 | 基于弱监督及逐步推理的多关系知识图谱问答
  7. aes加密字符串c++_springboot2.2.X手册:防抓包?快速实现API接口数据加密
  8. 使用Spring Boot来加速Java web项目的开发
  9. 小操作_js调出outlook
  10. html th表格居中,HTML----之表格
  11. Mysql学习总结(2)——Mysql超详细Window安装教程
  12. 视频md5修改器苹果手机
  13. oracle北京时区,Oracle中的时区偏移
  14. iOS-不用网线搭建IPv6网络测试环境
  15. SAP SM30隐藏部分字段以及自动带出某些值
  16. 国际“知识共享”运动的现状
  17. 奇迹服务器gs无响应,奇迹服务端1.03K比较有特色的拓展GS
  18. 手机验证码接收系统如何选择
  19. 内存缓存(in-memory cache)
  20. React 函数式组件缓存原理

热门文章

  1. python3 爬虫学习:自动给你心上人的微博点赞(一)
  2. 【UE4】蓝图转为C++官方教程部分笔记
  3. dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载)
  4. php 405错误怎样重现,phpmyadmin出现405错误怎么办?
  5. 罗马仕荣获中国质量认证中心、CESI颁发的全国首批“双新认证”证书
  6. 微信订阅号和服务器,微信订阅号与服务号有什么不同?
  7. singleton pattern的一个模板实现, 适用于单线程, 并且提供了Release方法
  8. 图像相似度对比-直方图
  9. 苹果如何安装ipa(亲测有用,无需越狱)
  10. 第1讲、Cadence Allergo绘制小马哥DragonFly四轴飞行器PCB四层板教程简介