package services;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStreamWriter;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import javabeans.Course;
public class CourseService {
private final List list = new LinkedList();
private int newID = 0;
private String filename = "";
public CourseService(String filename) {
this.filename = filename;
synchronized (list) {
if (list.isEmpty()) {
cacheCourses();
}
}
}
public List getList() {
return list;
}
protected void cacheCourses() {
try {
int maxID = 0;
BufferedReader br = new BufferedReader(new FileReader(filename));
String line = "";
while (true) {
line = br.readLine();
if (line == null || line.equals(""))
break;
String[] data = line.split("\t");
int id = Integer.parseInt(data[0]);
String title = data[1];
Course course = new Course(id, title);
list.add(course);
if (maxID < id)
maxID = id;
}
newID = maxID;
br.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public Course createCourse(String title) {
Iterator items = list.iterator();
while (items.hasNext()) {
Course course = (Course) items.next();
if (course.getTitle().equals(title)) {
return null;
}
}
int id = newID + 1;
Course newCourse = new Course(id, title);
storeCourse(newCourse);
list.add(newCourse);
return newCourse;
}
protected void storeCourse(Course course) {
try {
FileOutputStream fos = new FileOutputStream(filename, true);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
bw.write(course.getID() + "\t" + course.getTitle() + "\n");
bw.flush();
fos.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
protected void storeAllCourses() {
try {
FileOutputStream os = new FileOutputStream(filename, false);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
Iterator items = list.iterator();
while (items.hasNext()) {
Course course = (Course) items.next();
bw.write(course.getID() + "\t" + course.getTitle() + "\n");
}
bw.flush();
os.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public void deleteCourse(Course course) {
if (list.contains(course)) {
list.remove(course);
storeAllCourses();
}
}
public Course getCourse(String title) {
Iterator items = list.iterator();
while (items.hasNext()) {
Course course = (Course) items.next();
if (course.getTitle().equals(title)) {
return course;
}
}
return null;
}
// for SelectionService
public Course getCourse(int id) {
Iterator items = list.iterator();
while (items.hasNext()) {
Course course = (Course) items.next();
if (course.getID() == id) {
return course;
}
}
return null;
}
public boolean updateCourse(Course course) {
Iterator items = list.iterator();
boolean updatable = false;
while (items.hasNext()) {
Course tempCourse = (Course) items.next();
if (tempCourse.getID() == course.getID()) {
tempCourse.setTitle(course.getTitle());
updatable = true;
break;
}
}
if (updatable)
storeAllCourses();
return updatable;
}
public static void main(String[] args) {
File file = new File("");
String currentDir = file.getAbsolutePath();
CourseService cs = new CourseService(currentDir
+ "\\WebContent\\data\\courses.dat");
// cs.createCourse("OOAD");
// Course course1 = new Course(106, "OOAD");
// cs.deleteCourse(course1);
// Course course1 = cs.getCourse("信息检索");
// System.out.println(course1.getID());
// Course course1 = new Course(103, "数据库系统原理");
// System.out.println(cs.updateCourse(course1));
Iterator items = cs.getList().iterator();
while (items.hasNext()) {
Course course = (Course) items.next();
System.out.println(course.getID() + ":" + course.getTitle());
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
myweb.rar_java MVC_mvc_mvc.zip_mvc选课_选课系统 java
共82个文件
jsp:29个
class:19个
java:19个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 167 浏览量
2022-09-22
20:15:14
上传
评论
收藏 320KB RAR 举报
温馨提示
jsp 实现 mvc 三层框架 学生选课系统 可以运行
资源推荐
资源详情
资源评论
收起资源包目录
myweb.rar (82个子文件)
myweb
WebContent
admin_updateuserinfo.jsp 1KB
loginfail.jsp 265B
admin_browsecourseinfo.jsp 804B
admin_browseuserinfo.jsp 852B
admin
selectcoursefail.jsp 261B
img
2.jpg 69KB
1.jpg 192KB
哭脸.gif 3KB
META-INF
MANIFEST.MF 39B
updatecoursefail.jsp 262B
admin_deletecoursesuccess.jsp 274B
WEB-INF
web.xml 5KB
lib
data
administrators.dat 19B
selection.dat 30B
students.dat 32B
courses.dat 52B
browseselectedcourse.jsp 663B
userindex.jsp 559B
updatecoursesuccess.jsp 262B
selectcourse.jsp 950B
deleteusersuccess.jsp 272B
admin_updatecourseinfo.jsp 2KB
deleteselectedcourse.jsp 945B
random.jsp 684B
updatesuccess.jsp 261B
updateuserinfo.jsp 894B
randomImage.jsp 2KB
updatefail.jsp 261B
adminindex.jsp 677B
login.jsp 1KB
deleteselectedcoursefail.jsp 265B
index.jsp 445B
admin_deletecourseinfo.jsp 2KB
browseuserinfo.jsp 368B
admin_deleteuserinfo.jsp 1KB
registerfail.jsp 268B
register.jsp 942B
logout.jsp 285B
.settings
org.eclipse.wst.common.project.facet.core.xml 269B
org.eclipse.wst.common.component 398B
org.eclipse.jst.common.project.facet.core.prefs 288B
org.eclipse.jdt.core.prefs 330B
src
servlets
Admin_DeleteUserServlet.java 2KB
DeleteCourseServlet.java 2KB
Admin_UpdateCourseServlet.java 2KB
UpdateUserServlet.java 2KB
SelectCourseServlet.java 2KB
Admin_UpdateAllUsersServlet.java 2KB
RegisterServlet.java 2KB
LoginServlet.java 3KB
Admin_DeleteCourseServlet.java 2KB
javabeans
User.java 869B
Course.java 641B
Student.java 486B
Administrator.java 240B
services
SelectionService.java 3KB
CourseService.java 4KB
UserService.java 2KB
AdministratorService.java 3KB
StudentService.java 2KB
util
InitParameters.java 1KB
.project 850B
.classpath 463B
build
classes
servlets
Admin_DeleteUserServlet.class 2KB
SelectCourseServlet.class 3KB
LoginServlet.class 3KB
Admin_DeleteCourseServlet.class 2KB
RegisterServlet.class 3KB
Admin_UpdateAllUsersServlet.class 3KB
Admin_UpdateCourseServlet.class 3KB
UpdateUserServlet.class 3KB
DeleteCourseServlet.class 3KB
javabeans
User.class 1KB
Administrator.class 600B
Student.class 1017B
Course.class 1KB
services
UserService.class 3KB
CourseService.class 5KB
AdministratorService.class 3KB
StudentService.class 3KB
SelectionService.class 4KB
util
InitParameters.class 2KB
共 82 条
- 1
资源评论
四散
- 粉丝: 49
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 电子万年历软件仿真(经过多次修改,保证正确性)
- Unity XR 手势射击控制脚本(适用于任何可手势识别的设备)
- 机械设计全自动电表(NB和IC卡表)控制和上壳装配线sw16可编辑非常好的设计图纸100%好用.zip
- 基于matlab的EAN-13条形码识别系统GUI界面.zip代码53
- matlab基于bp神经网络交通信号标志识别GUI界面13个标志.zip代码54
- 电子万年历答辩实物展示视频mp4格式
- 基于python实现的程序,包括哈希感知算法cvHash,图像切割cvsplit,固定目标检测cvRec(附文档ppt)等
- 计算0-10000之间所有偶数的和
- multiled.zip
- 基于php实现的哈希算法的人脸检索
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功