考试系统(未完成的小程序)
系统组成:
1、用于封装get和set(name,idcard,grade,examid,location)方法的test_system包
2、用于封装add,delect和find方法的deo包
3、用于封装用户不存在的自定义异常类exception包
4、用于封装测试各类方法的test测试包
5、用于封装和用户打交道的UI界面包
6、用于封装(getdocument方法和把更改操作更新到xml文档中的方法)的utils工具包
7、用于充当数据库的xml文件
总结:用deo包封装了增、删、查方法,其中在增删查方法里用到了utils包里document方法(获取标签等)以及更新(更改xml文件)方法,另外还会出现一些异常,所以自定义了一个异常包。
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?><exam>//建一个xml文档,充当数据库 2 <student examid="4356" idcard="1234"> 3 <name>aa</name> 4 <locationg>沈阳</locationg> 5 <grade>89</grade> 6 </student> 7 8 <student examid="3434" idcard="45656"> 9 <name>dfdf</name> 10 <location>dgerg</location> 11 <grade>67.0</grade> 12 13 </student> 14 <student examid="7890" idcard="123"> 15 <name>heeh</name> 16 <location>345</location> 17 <grade>44.0</grade> 18 19 </student> 20 21 </exam>
1 package test_system; 2 //封装get和set方法 3 public class student { 4 5 private String idcard; 6 private String examid; 7 private String name; 8 private String location; 9 private double grade; 10 public String getIdcard() 11 { 12 return idcard; 13 } 14 public void setIdcard(String idcard) 15 { 16 this.idcard=idcard; 17 } 18 public String getExamid() 19 { 20 return examid; 21 } 22 public void setExamid(String examid) 23 { 24 this.examid=examid; 25 } 26 public String getLocation() 27 { 28 return location; 29 } 30 public void setLocation(String location) 31 { 32 this.location=location; 33 } 34 public String getName() 35 { 36 return name; 37 } 38 public void setName(String name) 39 { 40 this.name=name; 41 } 42 public double getGrade() 43 { 44 return grade; 45 } 46 public void setGrade( double grade) 47 { 48 this.grade=grade; 49 } 50 }
1 package test_system.deo; 2 3 //具体封装add方法,delect方法和find方法 4 5 import java.rmi.StubNotFoundException; 6 7 import org.w3c.dom.Document; 8 import org.w3c.dom.Element; 9 import org.w3c.dom.NodeList; 10 11 import test_system.student; 12 import test_system.exception.StudentNotException; 13 import test_system.utils.xmlutils; 14 15 public class studentdeo { 16 17 public void add(student s) 18 { 19 try { 20 Document document= xmlutils.getDocument(); 21 //创建出封装学生信息的标签 22 Element student_tag=document.createElement("student"); 23 student_tag.setAttribute("idcard", s.getIdcard()); 24 student_tag.setAttribute("examid", s.getExamid()); 25 //创建用于封装学生姓名、成绩和所在地的标签 26 Element name=document.createElement("name"); 27 Element location=document.createElement("location"); 28 Element grade=document.createElement("grade"); 29 name.setTextContent(s.getName()); 30 location.setTextContent(s.getLocation()); 31 grade.setTextContent(s.getGrade()+""); 32 student_tag.appendChild(name); 33 student_tag.appendChild(location); 34 student_tag.appendChild(grade); 35 //把封装了学生信息的标签挂到文档上 36 document.getElementsByTagName("exam").item(0).appendChild(student_tag); 37 //更新内存 38 xmlutils.writetoxml(document); 39 40 41 } catch (Exception e) { 42 throw new RuntimeException(e);//此处的异常,不能直接抛给上一级,因为没有意义,又不能打印,因为只能转型成运行异常! 43 } 44 } 45 public student find(String examid) 46 { 47 try { 48 Document document=xmlutils.getDocument(); 49 NodeList list=document.getElementsByTagName("student"); 50 for(int i=0;i<list.getLength();i++) 51 { 52 Element stdent_tag=(Element) list.item(i); 53 if(stdent_tag.getAttribute("examid").equals(examid)) 54 { 55 student s=new student(); 56 s.setExamid(examid); 57 s.setIdcard(stdent_tag.getAttribute("idcard")); 58 s.setName(stdent_tag.getElementsByTagName("name").item(0).getTextContent()); 59 s.setLocation(stdent_tag.getElementsByTagName("location").item(0).getTextContent()); 60 s.setGrade(Double.parseDouble(stdent_tag.getElementsByTagName("grade").item(0).getTextContent())); 61 return s; 62 63 } 64 return null; 65 } 66 67 68 } catch (Exception e) { 69 throw new RuntimeException(); 70 } 71 return null; 72 } 73 public void delect(String name) throws StudentNotException 74 { 75 try { 76 Document document=xmlutils.getDocument(); 77 NodeList list=document.getElementsByTagName("name"); 78 for(int i=0;i<=list.getLength();i++) 79 { 80 if(list.item(i).getTextContent().equals(name)) 81 { 82 list.item(i).getParentNode().getParentNode().removeChild(list.item(i).getParentNode()); 83 xmlutils.writetoxml(document); 84 return; 85 } 86 } 87 88 throw new StudentNotException(name+"不存在!!!"); 89 90 91 }catch(StudentNotException e){ 92 throw e; 93 } 94 95 96 catch (Exception e) { 97 throw new RuntimeException(e); 98 } 99 100 } 101 102 103 104 }
1 package test_system.UI; 2 //和用户打交道的界面 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 7 import test_system.student; 8 import test_system.deo.studentdeo; 9 import test_system.exception.StudentNotException; 10 11 public class main { 12 13 public static void main(String[] args) { 14 15 try { 16 17 System.out.println("添加学生(a) 删除学生(b) 查找学生(c)"); 18 System.out.print("请输入操作类型:"); 19 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 20 String type=br.readLine(); 21 if("a".equals(type)) 22 { 23 System.out.print("请输入学生姓名:"); 24 String name=br.readLine(); 25 System.out.print("请输入学生准考证号:"); 26 String examid=br.readLine(); 27 System.out.print("请输入学生身份证号:"); 28 String idcard=br.readLine(); 29 System.out.print("请输入学生所在地:"); 30 String location=br.readLine(); 31 System.out.print("请输入学生成绩:"); 32 String grade=br.readLine(); 33 student s=new student(); 34 s.setExamid(examid); 35 s.setGrade(Double.parseDouble(grade)); 36 s.setIdcard(idcard); 37 s.setLocation(location); 38 s.setName(name); 39 studentdeo deo=new studentdeo(); 40 deo.add(s); 41 System.out.println("添加成功!!!"); 42 } 43 else if("b".equals(type)) 44 { 45 System.out.println("请输入要删除学生的姓名"); 46 String name=br.readLine(); 47 try { 48 49 studentdeo deo=new studentdeo(); 50 deo.delect(name); 51 System.out.println("删除成功!"); 52 } catch (StudentNotException e) { 53 System.out.println("你要删除的用户不存在!"); 54 } 55 56 57 } 58 else if("c".equals(type)) 59 { 60 System.out.println("请输入要查找学生的考号:"); 61 String examid=br.readLine(); 62 63 64 studentdeo deo=new studentdeo(); 65 student a=deo.find(examid); 66 System.out.print(a.getGrade());//这个地方该如何打印出学生的成绩 67 68 69 70 } 71 else 72 { 73 System.out.print("请输入正确的指令"); 74 } 75 } catch (IOException e) { 76 77 e.printStackTrace(); 78 System.out.print("运行出错!!"); 79 } 80 } 81 82 }
package test_system.utils;import java.io.FileOutputStream;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;public class xmlutils {private static String filename="src/exam.xml";public static Document getDocument() throws Exception{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();return builder.parse(filename);}//封装把修稿的内容更新到xml文档中的方法public static void writetoxml(Document document) throws Exception{TransformerFactory factory=TransformerFactory.newInstance();Transformer tf=factory.newTransformer();tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream(filename)));} }
1 package test_system.exception; 2 3 //自定义的一个表示学生不存在的异常类 4 public class StudentNotException extends Exception { 5 6 public StudentNotException() { 7 // TODO Auto-generated constructor stub 8 } 9 10 public StudentNotException(String message) { 11 super(message); 12 // TODO Auto-generated constructor stub 13 } 14 15 public StudentNotException(Throwable cause) { 16 super(cause); 17 // TODO Auto-generated constructor stub 18 } 19 20 public StudentNotException(String message, Throwable cause) { 21 super(message, cause); 22 // TODO Auto-generated constructor stub 23 } 24 25 public StudentNotException(String message, Throwable cause, 26 boolean enableSuppression, boolean writableStackTrace) { 27 super(message, cause, enableSuppression, writableStackTrace); 28 // TODO Auto-generated constructor stub 29 } 30 31 }
1 package test_system.test; 2 3 import org.junit.Test; 4 5 import test_system.student; 6 import test_system.deo.studentdeo; 7 import test_system.exception.StudentNotException; 8 9 //测试add方法、delect方法和find方法的测试类 10 11 public class student_test { 12 13 @Test 14 public void studenttest() { 15 student a=new student(); 16 studentdeo deo=new studentdeo(); 17 a.setExamid("1212"); 18 a.setGrade(98); 19 a.setIdcard("2324355"); 20 a.setLocation("山东"); 21 a.setName("山玩意"); 22 deo.add(a); 23 24 } 25 @Test 26 public void studenttest1() { 27 28 studentdeo deo=new studentdeo(); 29 deo.find("1212"); 30 31 32 } 33 @Test 34 public void studenttest2() throws StudentNotException { 35 36 studentdeo deo=new studentdeo(); 37 deo.delect("aa"); 38 39 40 } 41 42 43 44 45 46 }
转载于:https://www.cnblogs.com/jjlovemm/p/4264694.html
考试系统(未完成的小程序)相关推荐
- 微信小程序|考试系统|基于微信小程序和SpringBoot+VUE的智能在线考试系统毕业设计
作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路 关注作者有好处 ...
- 系统I/O小程序-文件拷贝
系统I/O小程序-文件拷贝 使用系统IO函数编写 ./syscopy src des #include <stdio.h> #include <string.h> #inclu ...
- 新版知识付费系统付费阅读小程序源码知识付费平台
介绍: 2021知识付费系统付费阅读小程序源码知识付费平台源码. 知识付费的小程序源码的作用我就不多说了,现在都是知识付费的年代,也是付费学习的时代. 知识付费阅读小程序,带有代理,分销,课程资源更新 ...
- 罗永浩:我今年四十八岁,还可以承受无数次的失败;iOS14 或将推出系统级「小程序」功能; PyCharm新版发布| 极客头条...
整理 | 屠敏 头图 | CSDN 下载自视觉中国 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦, ...
- 外卖优惠券返利分销系统外卖返利系统公众号小程序源码saas系统
外卖优惠券返利分销系统外卖返利系统公众号小程序源码saas系统 外卖优惠券返利分销系统外卖返利系统公众号小程序源码saas系统 我们都知道,目前两家巨头饿了么和美团点外卖都可以获得返现,其中饿了么是返 ...
- 软件开发、系统定制、小程序等怎么报价?
软件开发.系统定制.小程序等怎么报价? 我写这篇文章主要不是为了打什么广告,现在都2020年了,马上2021年,不管是哪个城市, 软件外包公司数不胜数,但是至今没有一家公司能把软件开发当做像一个一个产 ...
- 仿coco点餐系统的微信小程序
仿coco点餐系统的微信小程序 (后台部分本来用的egg.js,为了能让大家下载之后直接跑起来 就换成了easymock) 仅供交流学习使用,使用之前微信小程序调试工具前要设置不进行域名验证 (欢迎大 ...
- 罗永浩:还可以承受无数次的失败;iOS14 或将推出系统级「小程序」功能;华为加入 OIN 社区 | EA周报...
EA周报 2020年4月10日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 热点大事件 罗永浩:我今年四十八岁,还可以承受无数次的失败 罗永浩表示,"没太 ...
- Java开发多、单商户淘宝客+任务系统cps系统源码小程序app
Java开发的多商户淘宝客.任务cps系统源码淘宝客+美团外卖+饿了么外卖+多麦CPS+京东+拼多多+多商户自营+任务墙+本地生活模块+抖音+唯品会+文娱充值+话费充值小程序app主要包括用户端.商家 ...
- 基于微信小程序智能停车场系统(微信小程序毕业设计)
基于微信小程序智能停车场系统 基于微信小程序智能停车场系统,后台采用ssm框架,java编程语言,mysql数据库制作:本系统主要分为用户和管理员两个角色:用户的主要功能有,注册和登陆系统,查看系统公 ...
最新文章
- python决策树分类 导入数据集_python+sklearn实现决策树(分类树)
- Sql如何统计连续打卡天数
- yaml格式,给Java类绑定数据
- Spring Boot----Dubbo原理分析
- 【传智播客】Libevent学习笔记(三):事件循环
- 职称计算机excel2015年,【2015年职称计算机Excel重点精讲:创建数据透视表】- 环球网校...
- 2021会宁三中高考成绩查询,2020白银中考分数线
- JavaScript getBoundingClientRect()
- android jni示例_Android切换按钮,开关示例
- 【日本软件外包】设计书中常用到的文型
- linux笔记:shell编程-正则表达式
- 全国企业税收调查数据(2007-2016)共10年数据,均未脱敏。可通过纳税人识别号,识别具体企业名称和地区信息等,可匹配中国工业企业数据库,中国出口海关统计数据、中国企业污染排放数据库、中国海关数据
- 计算机英语新增词汇,GRE新增词汇汇总
- Swagger2+Apizza接口文档
- Linux学习笔记之 Btrfs文件系统简介及使用
- Linux学习整理-终端快捷键(常用)
- 关于微信公众号运营你要知道的24件小事
- 数学建模——相关系数(1)——皮尔逊相关系数(Person)
- 技能高考计算机专业考什么,2016年技能高考计算机专业考试总结
- 微信网页授权及使用微信jssdk
热门文章
- mysql查询活跃连接,mysql – 使用大量可能的连接进行查询的最佳方法
- java定义商品金额_老大说:谁要再用double定义商品金额,就自己收拾东西走
- lisp xy轴不等比缩放_不就是用Python做个动态图吗?看招
- JZOJ 5850. 【NOIP提高组模拟2018.8.25】e
- oracle100个常见问题,Oracle初学者必知的100个问题(三)
- java创建对象new后面为啥可以传入参数_来复习一下Java的对象知识
- java 状态机_Yarn的状态机机制
- TextVQA论文汇总
- java广告投放系统_[Spring cloud 一步步实现广告系统] 5. 投放系统配置+启动+实体类...
- python3链表_python3实现单向链表