想做一个学生管理系统,把信息放入一个文件中,实现增删改查,不会修改和删除

xlhb 2012-03-21 11:47:45
请问哪位高手知道在java输入输出流中,有没有一种方法,可以实现从一个文件中逐行读入数据,然后再删除掉这行或者修改此行,然后再保存。(想做一个学生管理系统,把信息放入一个文件中,实现增删改查)
...全文
780 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyp907093825 2012-03-22
  • 打赏
  • 举报
回复
还是数据库方便点,文件的话,好难管理
24K純帥 2012-03-22
  • 打赏
  • 举报
回复
参考
可以是可以,不过还是每次得读文件
zhoujiaolongde 2012-03-22
  • 打赏
  • 举报
回复
为什么不用数据库呢 比这个方便多了 而且效率也高啊
xiaohuanjie 2012-03-22
  • 打赏
  • 举报
回复
当然是可以的;

LZ可以使用key=value的思想,key就相当于主键,用作唯一标示;value则是信息的具体内容;

建议使用.properties文件存放信息
dryZeng 2012-03-21
  • 打赏
  • 举报
回复
好像不行。

一般是读出来把不删除的保存在临时文件中,然后覆盖原文件。
简单多用户文件系统 1.课程设计的目的 操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑 ,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机。为 进一步巩固和复习操作系统的基础知识,培养学生结构化程序、模块化程序设计的方法 和能力,提高学生调试程序的技巧和软件设计的能力,提高学生分析问题、解决问题以 及综合利用 C 语言进行程序设计的能力。 本课程设计设计一个简单多用户文件系统,通过具体的文件存储空间的管理文件的 物理结构、目录结构和文件操作的实现,加深理解文件系统的内部功能及内部实现,掌 握文件存储空间的管理,理解文件的物理结构,掌握目录结构的实现,掌握文件操作的 实现。 2. 课程设计的开发语言 Microsoft Visual C++ 6.0下的Win32控制台程序,C语言。VC++是Microsoft公司的C++开发工具,具有集成开发 环境,可提供编辑C语言,C++以及C++/CLI等编程语言。本课程设计的文件系统利用VC+ +软件的编辑C语言功能,在Win32控制台程序下操作,在DOS环境下运行。 3. 功能描述 在内存开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单多用户的文件 系统文件物理结构可采用显式链接或其他方法。磁盘空闲空间的管理可选择位示图或 其他方法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将 位示图合并到FAT。 一个较实用的用户界面,方便用户使用。可提供以下相关文件操作: 具有login (用户登录) 系统初始化(建文件卷、提供登录模块) 列出文件目录:dir 文件内容的看:view 新建文件:create 删除文件:delete 修文件:modify 锁定状态转换:lock 注销退出:logout 文件目录结构采用多用户目录结构,每个目录项包含文件名、大小、是否锁定、物理 地址等信息,可以通过目录项实现文件的读和写的保护。 4. 方案论证 4.1概要设计 本系统为二级文件系统,既要实现文件增删,同时又具备登陆系统、注册用 户的功能,各个用户之间的文件系统互不干扰。采用两级目录,其第一级对应于用户 账号,第二级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文 件系统安全以及管道文件与设备文件等特殊内容。 系统采用结构体来存储用户、文件目录、文件数据内容: 0 48*5 48*5+44*50 48*5+44*50+264*200 每个分区都是由结构体组成,每个分区的结构体的个数由格式化系统时决定。 为系统设计一个简单的二级文件系统,可以实现下列几条命令:login(用户登陆) 、dir(列文件目录)、view(文件内容)、create(新建文件)、delete(删除文 件)、modify(修文件)、lock(锁定转换)、logout(注销)。列目录时列出文件 名、文件长度、是否锁定、物理地址,源文件可以进行读写保护。主函数所有功能流程 图如图1所示。 图1 主函数功能流程图 4.2详细设计 4.2.1用户登录(login)模块 首次进系统时,还没有文件系统,则提示格式化文件系统,创建分区,并初始化 分区,系统的初始化要完成文件系统的建立,包括以下几部分:请求内存、设置位示图 、初始化文件索引、初始化文本块链表、初始化系统的当前状态、创建一个根目录系统的根。验证登录用户的身份,用户登录成功后初始化当前用户等一系列的系统当 前信息,默认用户的类型为普通用户,如果用户未能通过身份验证,提示用户登录失败 ,退出系统。用户登录模块的算法流程图如图2所示。 图2 用户登录流程图 4.2.2文件内容(view)模块 图3 文件内容流程图 只支持在当前用户当前目录下进行操作,前提是用户已创建文件,通过用户给定的文 件名在文件索引搜索到文件的物理文件块ID,找到该文件元素后,将文件当前状态置 为打开,通过类似的找方式,找到文件的数据部分,将数据显示到界面,默认创建的 时候用0填充文件内容。文件内容模块的算法流程图如图3所示。 4.2.3新建文件(create)模块 图4 新建文件模块流程图 只支持在当前用户目录下创建文件,根据位示图找到一个未使用的文件块用来存用 户的文件信息,根据系统当前状态来构建一个文件系统元素到找到的文件,新 创建的文件状态为关闭,同时更新位示图和文件索引。新建文件时要求输文件名称, 当文件名称不存在,即与当前用户文件目录下的文件不发生冲突时,继续接收用户提供 的文件长度,当文件不发生越界则接受锁定状态,文件新建成功。新建文件模块算法流 程图如上图4所示。 4.2.4删除文件(delete)模块 删除文件并不真正清理文件的物理存储内容,只
目 录 1 设计题目.........................................................1 2 设计目的........................................................2 3设计分析 3 4 概念结构设计 6 5 逻辑结构设计 11 6 表结构设计 13 7 具体功能实现 .15 8 总结...........................................................26 9 附录 ......................................................... 27 1. 设计题目 学生成绩管理系统 2.设计目的 本学生成绩管理系统模块是为了实现学校人力资源的优化和学生成绩管理的科学管 理而设计的,通过试用本系统,可以更加有效的管理学生成绩信息, 用数据库对大量数据的复杂操作进行保存,其包括学生的基本信息,成绩信息和班级 成绩信息并且具有信息的增加,询,修和修等功能。 3. 设计分析 3.1 可行性研究 (1)利用面向对象的JAVA语言来进行系统开发,可以很方便的根据实际定义各个所需 要的对象,并对这些对象进行操作。同时由于本系统是在用戶图形界面进行各种用户操 作,可以使界面多样化满足人们的对美观的要求,更易懂、更方便操,能够更方便验证 用户的输是否正确,并进行相应的提示,这些需求和功能在目前情况下利用所学知识 完全可以实现。并且本系统采用文件来存储数据,操作比较简单,方便学生成绩的导出 与打印,省去了人力的大量抄写,但是在一定程度上限制数据量和系统的运行速度。 该学生成绩管理系统可以在Microsoft Windows XP 和 Windows 7系统下进行开发和运行的,这些系统目前已经比较普及,用户在该系统可以方便的进 行各种操作,实现预期的目的。该系统的开发成本比较低,符合了人们对低资源高效率 的追求,利用较低的成本换取更高的回报。 (2)具体的定义问题: 此次开发的项目是一个学生成绩管理系统,进行学生信息增删学生成绩的管 理和班级成绩的管理,在进系统之前需要登陆,登陆成功后即可进系统的相应的用 户界面。 本系统的身份主要分为教务处、老师和学生。 若是教务处登录可以进行多条件学生信息,也可以增加、删除、修学生信息,并可多条件学生成绩的信息,以及成绩的增加和修询班级成绩,可 按班级询或按日期询。 若是老师登录,则可以询所有的学生信息学生成绩和班级成绩。 若是学生登录,则只可以询自己的信息和成绩,不可进行对任何信息的任何修。 在登录界面有注册功能,并以学号为线索贯穿整个系统系统的基本流程图,如图3.1所示: 图3.1 系统流程图 3.2 需求分析 (1) 用户需求:学生成绩管理系统的用户类,其属性有用户名密码以及身份,用户必须登录 成功后才可进主界面,用户再实现学生信息询、添加删除、修,以及学生成绩 的管理等功能,管理好这些用户对系统安全有十分重要的影响。 (2) 功能需求: 登录模块:主要登录,系统自动根据用户的身份权限进行判断再弹出不同的用户界面。 注册模块:此模块用于添加用户并设定登录密码。 学生信息管理模块:使教务处实现学生信息的添加、删除、修找,以及对外键 密码的询;教师和学生则只可以看。 学生成绩管理模块:教务处可以实现学生成绩添加、修学生成绩可以进行学 生成绩的操作;教师和学生只可以看。 班级成绩管理模块:此模块主要是按条件询功能,不能手动添加记录,只能在添加学 生成绩时,有系统自动调用方法对此表进行按班级并继承此班级的成绩添加记录,如没 有此班级的记录则不用继承任何数据此学生的总成绩和平均成绩就是此条记录的总成绩 和平均成绩。 4. 概念结构设计 学生成绩管理系统的设计,主要解决的是对系统学生的基本信息学生成绩的 基本信息,以及班级成绩管理工作。首先,需要定义各个所需要的数据对象,然后在这 些对象上进行操作;其次,实现功能模块时,采用先模块化,后集成化,即对系统各个 功能模块分别独立设计和调试,在创建系统主登录界面时再将各个功能模块通过主菜单 对各个模块的调用集成到一起,最后进行系统整体设计调试。在数据存储和操作方面, 采用文件的读写导出数据库,并在读出数据之后链表进行操作;并在数据更新之后 将数据存到数据库,这样可以减少对磁盘的直接操作次数,从而提高系统设计的效率 。 4.1 概念模型(系统E-R图) (1)局部E-R图 1. 学生实体E-R图,如图4.1所示: 图4.1 学生实体图 2. 登录用户(此实体图包括教务处、老师和学生)
<项目介绍> 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,心下载使用! 该资源适合计算机相关专业(如人工智能、通信工程、自动化、软件工程等)的在校学生、老师或者企业员工下载,适合小白学习或者实际项目借鉴参考! 当然也可作为毕业设计、课程设计、课程作业、项目初期立项演示等。如果基础还行,可以在此代码基础之上动以实现更多功能。 使用教程 本项目为Qt project, 所以推荐使用Qt Creator工具进行构建。 为了使读者更好的在自己的环境上跑通本项目,这里提供我的Qt以及Qt Creator 版本: 如果出现找不到libopencv_XXX450.dll的错误,本项目所有依赖的dll都在TeleMedicine/debug/目录下,需要将所有dll拷贝到exe文件所在目录: 医生可使用该软件看患者的电子档案,通过看CT相片和化验单等数据,为患者写诊断结果, 同时CT相片经过特定的图像处理算法处理后可以更加凸显病灶,提高医生的诊断效率。 使用Qt搭建用户界面,操作数据库以及处理CT相片等图像数据。 通过Qt的Model/View架构完成表单与数据库的联动。 使用MySQL数据库存储患者的病历档案等信息。 使用OpenCV 的图像处理算法完成病灶检测和细胞计数等功能,对CT照片有很好的处理效果。 技术一:OpenCV 病灶检测功能 检测CT相片的异物,比如肿瘤,将圈出标记。 使用到的技术:opencv的霍夫圆检测算法 检测流程: 读取图像 灰度化 高斯滤波,除噪,平滑处理 设置霍夫圆检测算法的参数 调用HoughCircles进行圆检测 将检测到的圆在原图标记显示 细胞计数功能 读取细胞图片 二值化 值滤波,除噪 Canny边缘检测 漫水填充算法,颜色填充 腐蚀膨胀,进一步除噪 使用findContours函数找寻轮廓 轮廓数就是细胞个数 minEnclosingCircle函数寻找包裹轮廓的最小圆 将圆在原图画出显示 细胞计数和病灶检测功能的检测效果依赖于参数的设置,因此设置了参数调节窗口。 CT相片处理 对比度和亮度(convertTo函数) 旋转缩射变化,先生成仿射变换矩阵(getRotationMatrix2D),再对图像进行仿射变换(warpAffine)) 滤波除噪(高斯滤波,双边滤波,值滤波,均值滤波,方框滤波) 阈值处理(threshold函数) 技术二:MySQL数据库 在 5.12 及之前的版本,Qt 的安装包自带 MySql 驱动,在 plugins/sqldrivers 目录下可以找到,但到了 5.13 之后,MySql 驱动便没有了,这时我们可以选择手动编译。 下载5.13的源码,手动编译生成dll动态链接库文件,将该文件Qt5.13的数据库驱动文件。 Mysql安装流程: 下载压缩包,zip文件 解压之后设置环境变量,将bin文件夹的路径 在安装目录新建一个ini文件,配置端口(3306)、连接数等等 在bin目录下以管理员的身份打开控制窗口,cmd。输:mysqld --initialize --console, 初始化,初始化之后,显示本地主机localhost,管理员root,初始化的随机密码。 启动服务:net start mysql 登录数据库:mysql -u root -p,输初始化的密码, 修密码语句:ALTER USER root@localhost INDENTIFIED BY ’123456’ 删除数据库:musqld --remove mysql 在Qt使用mysql数据库: 使用QSQLDatabase的方法addDataBase(“QMYSQL”)添加一个mysql数据库,设置主机名,管理员和密码,数据库名称之后,打开数据库 使用QSqlQuery类(exec,prepare,addBindValue)对数据库增删,在exec函数sql语句字符串即可操作数据库。 读图片:使用QFile类将图片读,保存为QByteArray字节数组,然后将照片数据封装成QVariant变量,在字符串语句以问号代替数据,然后使用prepare和addBindValue函数,最后执行插语句exec 使用QSQLTableModel类和QTableView类,模型视图架构。Model加载数据库的表格或视图(setTable),然后QTableView设置模型(setModel),即可实现

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧