高校实验室设备管理系统_课程设计
实验室设备管理系统设计方案

实验室设备管理系统设计方案实验室设备治理系统设计信息学院名目1 课程设计目的及要求 (2)1.1 课程设计的目的 (2)1.2 课程设计的要求 (2)2 开发环境及详细说明 (3)3 课程的总体设计 (3)3.1 可行性研究 (3)3.2 需求分析 (3)3.3 软件设计 (4)4 数据库设计 (7)5 系统模块设计 (10)5.1 主界面模块设计 (10)5.2 查询设备的模块设计 (12)5.3 添加设备的模块设计 (13)5.4 设备的修理模块设计 (15)5. 5设备的报废模块设计 (16)5.6 关心的模块设计 (17)6 系统测试 (18)6.1 主界面测试 (18)6.2 查询设备的测试 (19)6.3 添加设备的测试 (20)6.4 设备的修理测试 (22)6.5设备的报废测试 (25)6.6 关心的测试 (28)7小结 (29)参考文献 (30)附录 (31)附录1 源程序清单 (31)1 课程设计目的及要求1.1 课程设计的目的软件开发综合技能训练是一门结合了软件设计方法学、数据库原理和高级语言程序设计的综合训练课程,是一个重要的、不可或缺的实践环节。
其目的是通过综合训练使学生能够(1)熟练把握软件开发的差不多知识和技能;(2)差不多把握面向对象程序开发的差不多思路和方法;(3)把握数据库应用程序开发的差不多知识;(4)能够利用所学的差不多知识和技能,进行简单应用程序设计;(5)培养学生对技术文档的编写能力,从而使提高学生软件开发的综合应用能力。
1.2 课程设计的要求1〕差不多要求该综合训练要求学生依据一人一题独立完成训练内容,在选题相同时采取不同的开发方法,按照综合训练的差不多要求实现差不多的软件开发任务。
随着网络信息化的高度进展,学校实验室设备治理系统显得越来越必要。
使用基于WEB的实验室设备治理系统能够在几乎不增加额外劳动量的前提下,对实验室设备的治理工作起到大大的改善成效,更合理地分配及使用实验室设备。
实验室设备管理系统_C程序设计课程设计

*******************实践教案*******************兰州理工大学计算机与通信学院2013年春季学期C程序设计课程设计题目:实验设备管理系统专业班级:通信4班目录目录 (1)中文摘要 (2)1.课程设计目地 (3)2.程序设计思路 (3)3.功能模块图 (4)4.主函数模块流程 (4)5.详细设计 (5)6.程序运行结果 (11)7.总结 (15)8.致谢 (19)9.附录 (20)实验设备管理系统摘要实验室设备管理系统是典型地设备信息管理系统,要求能为学校实验室管理提供信息化动态化地管理,方便实验室设备管理工作,提高设备管理质量和使用效率.而且系统应符合设备管理地有关规定,包括新设备地申请,购买确认,新设备信息录入,旧设备维修和报废及用户管理等.能满足日常工作地基本需要,并达到操作过程中地直观,方便,实用,安全等有关要求.实验室设备管理系统是一个典型地信息管理系统,采用面向对象地分析方法,给出系统地基本结构、设计特色、设计模型及实现途径,并且对系统地开发技术进行研究。本系统是一个为适应对学校实验室设备管理地迫切需求而设计开发地软件系统.关键词:实验室设备、管理系统、结构体、文件、数组、函数1.题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等.2.需求分析实验室设备信息用文件存储,提供文件地输入输出操作;要能够完成设备地录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备地查询可根据设备编号设备种类设备购入日期正常设备(未报废地)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择.整个系统可设计为实验设备信息输入模块实验设备信息修改模块实验设备分类统计模块实验设备查询模块和实验设备报废信息模块.建立实验设备信息结构体,结构体成员包括设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期.3.功能模块图主要功能:录入设备信息、修改设备信息、查询设备信息、按设备编号查询、按设备名称查询、对设备按种类进行分类统计、报废设备登记、报废设备统计.图1 实验室设备管理系统设计4.主函数模块流程模块流程图5.详细设计5.1声明函数int menu()。
软件工程课程设计实验室设备管理系统

实验室设备管理系统目录一、系统的开发背景与目标…………………………………………………1、开发背景…………………………………………………………………2、开发目标…………………………………………………………………二、可行性分析与初步开发计划……………………………………………1、技术可行性………………………………………………………………2、经济可行性………………………………………………………………3、法律可行性………………………………………………………………4、初步开发计划……………………………………………………………三、需求分析……………………………………………………………………1、系统功能列表……………………………………………………………2、数据流图…………………………………………………………………3、数据字典…………………………………………………………………4、数据加工的描述…………………………………………………………5、性能需求…………………………………………………………………四、系统设计……………………………………………………………………1、系统结构图………………………………………………………………2、输出设计…………………………………………………………………3、数据库结构设计…………………………………………………………4、模块详细设计……………………………………………………………五、课程设计总结………………………………………………………………六、代码…………………………………………………………………………七、参考文献……………………………………………………………………一、系统的开发背景与开发目标1、系统的开发背景现代社会的校园网络环境,已经大大发生了变化,除了个人笔记本电脑,各种计算机、语音实验室机房也成为了使用频率颇高的场所,我们不能仅仅把它理解为提供上机的环境,而是应该完善此处的各种相关工作,如考勤,收费等,同时最大限度的降低机房的运营成本,提高使用率;通过建设“实验室设备管理系统”,运用先进的技术手段和设备,满足以上应用需求;实验室设备管理系统是一个功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点,具有很好的可移植性,可在WINDOWS系列等操作系统上使用;2、系统的开发目标a 提高人员的工作效率,提高设备的利用率b实验室的设备管理更加便捷有效c减少设备管理的费用,节省开支d提高决策效率e能够准确的控制生产二、可行性分析与初步开发计划1技术可行性对系统的简要描述在原来的手工系统之上创建,利用计算机实现对实验室设备的管理,包括借出、购入、修理仪器、归还仪器等各种功能采用建议系统可能带来的影响在建立所建议系统时,预期会带来的影响包括以下几个方面;1对设备的影响由于所建议系统是基于WINDOWS操作系统和互联网的,所以需要配备足够符合以上列出的各种软硬件条件的计算机和通信线路;系统失效后,服务器端需要利用备份的数据库恢复数据信息,要求要有足够的数据备份空间;2对软件的影响需要落实是否有符合本报告所列出的正版的软件环境,如果没有则需要购买;3对用户单位机构的影响投入使用前还需改进现有的管理模式;4对开发的影响管理员只要输入简单的数据就可以完成设备管理;5对经费开支的影响除了需要支付开发单位的有关费用外,每年还需要一定的运行维护费用见经济可行性分析;技术可行性评价本系统是一个基于局域网、互联网和WINDOWS操作的系统,现有技术已较为成熟,利用现有技术完全可以实现系统开发目标;同时,开发期限较为宽裕,预计可以在规定期限内完成开发任务;2经济可行性支出1一次性支出1系统开发、建立费用万元;其中:本系统开发期为3个月,需要开发人员3人不一定都是参加满3个月;根据软件系统的规模估算,开发工作量月为3人2个月即6人月,每人月的人工费按5000员计算,开发费用为3万元;实验室设备等基本信息建立需要2人1个月即2人月,每人月的人工费用按2000员计算,需万元;2硬件设备费共万元,其中:微机1台约万元;服务器1台及网络等设备费4万元;3外购开发工具、软件环境费用共4万元;4其他费用共2万元;一次性支出总费用:14万元;2经常性费用主要是系统的运行费用,假设本系统运行期10年,每年的运行费用包括系统维修、设备维护等5万元,按年利率5%计算运行费用见表A-1系统投资成本总额为:14+= 万元效益假设投入本系统,效率可以提高50%,以现有的工作人员10人计算,可减少5人,每人每月平均工资按2500元计算,每年节约人员工资5×12×=15万元/年;按年利率5%计算,效益计算如下表;系统收益总额为:万元;收益/投资比在10年期内,系统总成本万元,系统总收益万元;投资回报率:×%即为=15 /1+j+15/1+j2+…+15/1+j10的方程解i×100纯收益:-=万元从经济上考虑,开发本系统完全可行的;投资回收周期投资回收期:3+-/=年敏感性分析生命周期为10年,需要30人左右;3法律可行性法律因素侵犯专利权:有侵犯版权:有为了能够解决在使用实验设备出现的一些问题,需要建立一个安全完善的管理平台,能够使设备信息能够快速完整地自动记录在案,并自动更新用户使用可行性适用于实验室设备管理,系统操作简单,便于管理人员使用;4初步开发计划三、需求分析1、系统功能列表Function List2、数据流图0层数据流图:1层数据流图:2层数据流图:3、数据字典1.数据流条目登陆信息输入:设备管理员输出:身份验证描述:登陆信息=用户名+密码+登陆权限查询信息输入:合法人员对设备的查询操作输出:设备信息表描述:查询信息=设备名|型号|类别|购置日期维修信息输入:所需维修设备的信息输出:确定维修设备的记录描述:维修信息=修理日期+设备名+编号+修理厂家+修理费用+责任人购买设备输入:购买设备的信息输出:确定购买的新设备的记录描述:新设备=类别+设备名+编号+型号+规格+单价+数量+购置日期+生产厂家+保质期+经办人等报废设备输入:所需报废的设备的信息输出:报废的设备记录描述:报废设备=类别+设备+型号等审核信息输入:审核输出:上级领导描述:审核信息=报废设备信息/新设备购买信息2.加工条目身份验证,统计查询,维修,购买,报废,生产报表,审核;3.文件条目登陆表输入:身份验证输出:身份验证数据结构:用户名+密码+登陆权限设备基本信息表输入:统计查询数据结构:类别+设备名+型号+规格等维修记录表输入:统计查询,维修输出:统计查询数据结构:修理日期+设备名+编号+修理厂家+修理费用+责任人购买设备表输入:统计查询,购买输出:统计查询数据结构:类别+设备名+编号+型号+规格+单价+数量+购置日期+生产厂家+保质期+经办人等报废记录表输入:报废,统计查询,生产报表输出:统计查询,生产报表数据结构:类别+设备名+型号等申请表输入:统计查询,生产报表输出:统计查询,生产报表,购买数据结构:类别+设备名+型号+规格+数量4.数据加工处理的描述登陆用例简要说明:本用例说明用户如何登录到系统;角色:管理员、实验员、学生前置条件:启动程序,进入登录界面基本事件流:1.用户输入基本信息登录名和密码,点击确定按钮2.系统查找数据库,看该用户是否在数据库中;若存在则进入主页面;备选事件流:1.输入无效的用户名或密码,提示用户名或密码不能为空或者提示用户名或密码不正确;后置条件:登录成功特殊需求:没有和本用例有关的特殊需求;扩展点:没有和本用例有关的扩展点;购买设备用例简要说明:本用例说明管理员如何购买设备并记录进入系统;角色:管理员前置条件:已经成功登陆到系统;基本事件流:1.管理员填写设备各种信息,确定添加;2.系统把对应信息写入数据库,更新数据库;备选事件流:输入了已存在的设备编号,系统提示编号中已存在;后置条件:购买成功;特殊需求:没有和本用例有关的特殊需求;扩展点:没有和本用例有关的扩展点;报废设备用例简要说明:本用例说明管理员如何从入系统中删除报废的设备记录;角色:管理员前置条件:已经成功登陆到系统;基本事件流:1.管理员根据设备编号,找到需要删除的设备记录,确定删除;2.系统把从数据库中删除对应信息,更新数据库;备选事件流:输入了不存在的设备编号,系统提示未找到记录;后置条件:删除成功;特殊需求:没有和本用例有关的特殊需求;扩展点:没有和本用例有关的扩展点;设备查询用例简要说明:本用例说明管理员如何查询系统中已记录的实验设备;角色:管理员前置条件:已经成功登陆到系统;基本事件流:1.管理员选择设备查询功能,根据名称、编号、添加时间等方式,填写信息并查询;2.系统查找数据库,找到符合条件的信息;3.返回找到的信息;备选事件流:输入不存在的设备信息,系统提示未找到该设备信息;后置条件:查询成功;特殊需求:没有和本用例有关的特殊需求;扩展点:没有和本用例有关的扩展点;5.性能需求数据精确度该软件计算设备时以“台”、“件”等为实物计件单位,报表输出中的金额保证到的精度;时间特性查询在3秒内完成,表项输出在8秒内完成适应性考虑到工作人员有时候办公地点的移动性,在设计时应该注意软件的适应性,对于查询功能应尽可能独立方便地将其移植到笔记本、掌上电脑等硬件平台6.运行需求用户界面采用Windows的通用图形界,对用户友好,且必须对鼠标和键盘提供支持;硬件接口支持一般x86系列微机和Windows CE,即一般的PC机;四、系统设计1.状态图2.输出设计输入:a.输入数据数字信息符合输入精度要求b.输入可选信息完全使用下拉框完成输出:a.输出数据符合输出精度要求输出数据格式字体大小统一3.数据库结构设计(1)实体表4.模块详细设计设备管理员操作模块设备管理员五、课程设计总结六、代码1、用户登录界面:packageimportimport .;importimport .;public class Login extends JFrame {//private static final long serialVersionUID = 1L;dd lPosition;pCon0.add cbPosition;pCon1.add lName;pCon1.add cbName;pCon2.add lPasswd;pCon2.add pfPasswd;pCon3.add bConfirm;pCon3.add bCancel;pCon4.add lTitle;add pCon4;for int i = 0; i < - 1; i++pCon i;oString;new String;.toString;if info {new Main unch;setVisible false;null;} else {new Login, "用户名,密码或身份错误";null;}} else if == cbPosition {;importimportpublic class Main extends JFrame {//private static final long serialVersionUID = 1L;private JTabbedPane tp;private JPanel p;private User info;public Main {super"实验室设备管理系统";tp = new JTabbedPane;p = new JPanel8;}public MainUser info{this;=info;p0 = new UserManage;p1 = new EquipIn;p2 = new EquipOut;p3 = new Registerinfo;p4 = new Applyinfo;p5 = new Checksinfo;p6= new Search;p7=new PasswdModyfyinfo;}public void launch {"用户管理", p0;"设备入库", p1;"设备出库", p2;"设备登记", p3;"设备申请", p4;"审核申请", p5;"统计查询", p6;"个人信息维护", p7;if info instanceof Administration{1, false;2, false;3, false;4, false;5, false;6, false;}else if info instanceof StoreManager{ 0, false;3, false;5, false;1;}else if info instanceof LabManager{0, false;1, false;2, false;5, false;3;}else if info instanceof BuyManager{0, false;1, false;2, false;4, false;5, false;3;}else if info instanceof OverLeader{0, false;1, false;2, false;3, false;4, false;5;}getContentPane.add tp;setSize1280, 780;setVisible true;addWindowListener new WindowAdapter{public void windowClosingWindowEvent e{0;}};}}3、购买设备:packageimport .;importimport .;importimportimport .;public class MaintainApply extends JPanel {//private static final long serialVersionUID = 1L;private JLabel lpId;private JTextField tf;private JButton bApply, bAgain, bDelete;private JPanel pUp, pDown;private JTable t;private JScrollPane jsp;private User user;private LabManager lm;private MaintainApplyData maInfo;public MaintainApplyUser user {supernew BorderLayout;= user;lpId = new JLabel"固定资产编号";tf = new JTextField;15;bApply = new JButton"申请";bAgain = new JButton"重置";bDelete = new JButton"取消申请";pUp = new JPanel;pDown = new JPanel;lm = new LabManager;maInfo = new MaintainApplyData;String head = new String { "序列号", "固定资产编号", "申请人", "申请时间" };Object data = ;t = new JTabledata, head;25;jsp = new JScrollPane t;lpId;tf;bApply;bAgain;bDelete;add pUp, ;add jsp, ;add pDown, ;oString;maInfo;}}};import .;importimportimportimportpublic class EquipIn extends JPanel {//private static final long serialVersionUID = 1L;private JLabel leId, lsId, liNum, lPara;private JTextField tfiNum;private JComboBox cbeId, cbsId;private JButton bIn, bAgain, bDelete;private JPanel pUp, pDown;private JScrollPane jsp;private JTable t;private StoreManager sma;private InData inInfo;public EquipIn {supernew BorderLayout;oString;.toString;new Date;new Integer;inInfo;;} else if == bAgain {;import .;importpublic class UserManage extends JPanel {//private static final long serialVersionUID = 1L;private JLabel lArray = new JLabel7;private JButton bArray = new JButton3;private JTextField tfArray = new JTextField2;private JPasswordField pfArray = new JPasswordField2;private JPanel pArray = new JPanel4;private JComboBox cbPosition, cbSL;private JScrollPane jsp;private JTable t;private Administration Admin;private StoreManager sma;private LabManager lm;public UserManage {supernew BorderLayout;etColumns10;pfArray i = new JPasswordField;pfArray i.setColumns10;pArray i = new JPanel;}pArray2 = new JPanel;pArray3 = new JPanel new GridLayout2, 1;String position = new String { "系统管理员", "仓库管理员", "实验室管理员", "购买登记员","上级领导" };cbPosition = new JComboBoxposition;cbSL = new JComboBox;Admin = new Administration;sma = new StoreManager;lm = new LabManager;String head = new String { "用户名", "姓名", "身份" };Object data = ;t = new JTabledata, head;25;jsp = new JScrollPane t;etVisible false;false;lArray6.setForeground;dd lArray0;pArray0.add cbPosition;pArray0.add lArray1;pArray0.add tfArray0;pArray0.add lArray2;pArray0.add tfArray1;pArray1.add lArray3;pArray1.add pfArray0;pArray1.add lArray4;pArray1.add pfArray1;pArray1.add lArray5;pArray1.add cbSL;pArray1.add bArray0;pArray1.add bArray1;pArray1.add lArray6;pArray2.add bArray2;pArray3.add pArray0;pArray3.add pArray1;add pArray3, ;add jsp, ;add pArray2, ;ddActionListener new ListenAction;bArray1.addActionListener new ListenAction;bArray2.addActionListener new ListenAction;new ListenAction;lArray6.addMouseListener new ListenMouse;}etText;tfArray1.getText;new String pfArray0.getPassword;.toString;if == bArray0 {etText.equals""|| new String pfArray0.getPassword.toString.equals"" {null, "用户名或密码不可为空";bArray1.doClick;return;}String strKey = new String { ,};if .containsstrKey {null, "用户已存在";bArray1.doClick;return;}if new String pfArray0.getPassword.equals new String pfArray1.getPassword {null, "密码不一致";bArray1.doClick;return;}Admin;if .equals"仓库管理员" {tfArray0.getText;.toString;sma;} else if .equals"实验室管理员" {tfArray0.getText;.toString;lm;}bArray1.doClick;} else if == bArray1 {etText null;tfArray1.setText null;pfArray0.setText null;pfArray1.setText null;} else if == bArray2 {quals"仓库管理员" {lArray5.setText"仓库编号";lArray5.setVisible true;true;;String sId = ;for int i = 0; i < ; i++sIdi;} else if .equals"实验室管理员" {lArray5.setText"实验室编号";lArray5.setVisible true;true;;String sId = ;for int i = 0; i < ; i++sIdi;} else {lArray5.setVisible false;false;}}etCursor new Cursor;}public void mousePressedMouseEvent e {new ParameterSet;}}}6、设备统计查询:packageimport .;importimportimport .;importimportimportimportpublic class Search extends JPanel {//private static final long serialVersionUID = 1L;private JRadioButton rbStore, rbLab, rbeId, rbSingleeId;private JComboBox cbStore, cbLab, cbeId;private JLabel lStore, lLab, leId;private JTable t;private JScrollPane jsp;private JPanel pUp, pDown, p;private StoreManager sma;private InData inInfo;public Search {supernew BorderLayout;rbStore = new JRadioButton"仓库库存统计", true;rbLab = new JRadioButton"实验室库存统计";rbeId = new JRadioButton"所有设备", true;rbSingleeId = new JRadioButton"单个设备";sma = new StoreManager;inInfo = new InData;cbStore = new JComboBox;cbLab = new JComboBox;cbeId = new JComboBox;lStore = new JLabel"仓库编号";lLab = new JLabel"实验室编号";leId = new JLabel"设备编号";false;false;false;false;pUp = new JPanel;pDown = new JPanel;p = new JPanel;rbStore;lStore;cbStore;rbLab;lLab;cbLab;rbeId;rbSingleeId;leId;cbeId;new GridLayout2, 1;pUp;pDown;.toString;String head = new String { "设备编号", "仓库编号", "库存量" }; Object data = inInfo;t = new JTabledata, head;25;jsp = new JScrollPane t;add p, ;add jsp, ;oString;.toString;.toString;.toString;if {true;true;false;false;false;head = new String { "设备编号", "仓库编号", "库存量" };if {false;false;false;data = idInfo;} else {true;true;false;data = idInfo;}} else {false;false;true;true;false;head = new String { "设备编号", "实验室编号", "库存量" };if {false;false;false;data = odInfo;} else {true;true;false;data = odInfo;}};import .;import .;import .;import .;import .;importimport .;importimportpublic class Frame6 extends JFrame {JPanel contentPane;JLabel jLabel1 = new JLabel;XYLayout xYLayout1 = new XYLayout;JLabel jLabel2 = new JLabel;JLabel jLabel3 = new JLabel;JTextField jTextField1 = new JTextField;JLabel jLabel4 = new JLabel;JTextField jTextField2 = new JTextField;JPanel jPanel1 = new JPanel;XYLayout xYLayout2 = new XYLayout;JScrollPane jScrollPane1 = new JScrollPane;JLabel jLabel5 = new JLabel;JTextField jTextField3 = new JTextField;public Frame6 {enableEvents;try {jbInit;}catch Exception e {;}}private void jbInit throws Exception {contentPane = JPanel ;xYLayout1;new Dimension600, 500;"实验室设备管理系统";new Frame6_this_hierarchyBoundsAdapter this;new"SansSerif", 0, 25;;"实验室设备管理系统";;new"SansSerif", 0, 30;"设备报废记录查询";new"SansSerif", 0, 20;"设备名称";"";true;new"SansSerif", 0, 20;"设备型号";"";new Frame6_jTextField2_actionAdapter this;xYLayout2;new"SansSerif", 0, 25;;"该报废设备详细信息";"";jLabel1, new XYConstraints200, 0, 300,50;jLabel2, new XYConstraints200, 47, 300, 58;jLabel3, new XYConstraints47, 102, 101, 42;jTextField1, new XYConstraints128, 108, 112, 34;jTextField2, new XYConstraints361, 107, 109, 36;jPanel1, new XYConstraints75, 166, 453, 277;jScrollPane1, new XYConstraints14, 8, 433, 221; .add jTextField3, null;jLabel5, new XYConstraints112, 240, -1, -1;jLabel4, new XYConstraints278, 111, -1, -1;}protected void processWindowEventWindowEvent e {e;if == {0;}}void Select {try {String str1, str2;str1 = ;str2 = ;Connection con = null;String url = "jdbc:odbc:shebeiguanli";String user = "";String password = "";;con = url,user,password;Statement stmt =;PreparedStatement pstmt ="use shebeiguanli select from 报废记录 where 设备型号= and 设备名= ";2, str1;1, str2;ResultSet res = ;String id;String name;String guige,danjia,day,changjia,peo,num;String outputarea=" 设备型号 " +" 设备名称 "+" 报废记录 "+" 责任人"+'\n';if{do{id = 1;name = 2;day=5;peo=7;outputarea+=" "+id+" "+name+" "+day+" "+peo+" "+"\n";outputarea;}while;}else{"不存在";}}catch ClassNotFoundException e {}catch SQLException edd {;}}void this_ancestorMovedHierarchyEvent e {}void jTextField2_actionPerformedActionEvent e {Select;}}class Frame6_this_hierarchyBoundsAdapter extendsFrame6 adaptee;Frame6_this_hierarchyBoundsAdapterFrame6 adaptee { = adaptee;}public void ancestorMovedHierarchyEvent e {e;}}class Frame6_jTextField2_actionAdapter implementsFrame6 adaptee;Frame6_jTextField2_actionAdapterFrame6 adaptee {= adaptee;}public void actionPerformedActionEvent e {e;}}7、报废设备:packageimport .;importimport .;importimportimportpublic class BuyApply extends JPanel {//private static final long serialVersionUID = 1L;private JLabel leId, lNum;private JPanel pUp, pDown;private JButton bApply, bAgain, bDelete;private JTable t;private JScrollPane jsp;private JComboBox cbeId;private JTextField tfNum;private User user;private StoreManager sma;private BuyApplyData baInfo;public BuyApplyUser user {supernew BorderLayout;oString;;new Date;new Integer;baInfo;;} else if == bAgain {oString;baInfo;}}};importimportimport .;importimportclass MaintainCheck extends JPanel{//private static final long serialVersionUID = 1L;private JLabel lLeft,lRight;private JPanel pLeft,pRight,pCenter,pCUp,pCDown;private JButton bUp,bDown;private JTable tLeft,tRight;private JScrollPane jspLeft,jspRight;private User user;public MaintainCheckUser user{=user;l Left=new JLabel"未审核列表";l Right=new JLabel"已审核列表";b Up=new JButton"通过";b Down=new JButton"不通过";p Left=new JPanel;p Right=new JPanel;p Center=new JPanel;p CUp=new JPanel;b Up;p CDown=new JPanel;bDown;new GridLayout2,1;pCUp;pCDown;OverLeader ol=new OverLeader;String headRight=new String{"审核表序列号","申请表序列号","审核人","审核时间","审核结果"};Object dataRight=;tRight=new JTabledataRight,headRight;25;jspRight=new JScrollPane tRight;String headLeft=new String{"序列号","固定资产编号","申请人","申请时间"};Object dataLeft=;tLeft=new JTabledataLeft,headLeft;25;jspLeft=new JScrollPane tLeft;new BorderLayout;new BorderLayout;lLeft,;jspLeft,;lRight,;jspRight,;setLayout new GridLayout1,3;add pLeft;add pCenter;add pRight;new ListenButton;new ListenButton;}class ListenButton implements ActionListener{p ublic void actionPerformedActionEvent e{int selectedIndex = -1;for int i = 0; i < ; i++ {if i == trueselectedIndex = i;}if selectedIndex == -1 {null, "请先选择某一项";return;} else {int option = null,"是否确定审核此申请", "提示", ;if option == {MaintainCheckData info = new MaintainCheckData;new IntegerselectedIndex, 0.toString;;new Date;if==bUp{"通过";}else if==bDown{"不通过";}OverLeader ol=new OverLeader;info;}}//刷新remove jspLeft;remove jspRight;OverLeader ol=new OverLeader;String headRight=new String{"审核表序列号","申请表序列号","审核人","审核时间","审核结果"};Object dataRight=;tRight=new JTabledataRight,headRight;25;;jspRight=new JScrollPane tRight;String headLeft=new String{"序列号","固定资产编号","申请人","申请时间"};Object dataLeft=;tLeft=new JTabledataLeft,headLeft;25;;jspLeft=new JScrollPane tLeft;new BorderLayout;new BorderLayout;lLeft,;jspLeft,;lRight,;jspRight,;setLayout new GridLayout1,3;validate;}}}七、参考文献软件工程王忠群中国科学技术大学出版社Java程序设计胡平电子科技大学出版社。
实验室设备管理系统设计

实验室设备管理系统设计实验室设备管理系统是一种用于帮助实验室管理人员有效管理和监控实验室设备的软件系统。
它可以提供设备的登记、借还、维修、报废等功能,从而提高实验室设备的利用率和管理效率。
下面是一个关于实验室设备管理系统的设计,总共超过1200字。
一、系统需求分析1.系统目标:设计一个实验室设备管理系统,实现设备的登记、借还、维修和报废等功能,提高设备的利用率和管理效率。
2.功能需求:b)设备借还功能:实验室人员可以通过系统进行设备的借还操作,管理人员可以查看设备的借出情况和借用人员。
c)设备维修功能:实验室人员可以通过系统进行设备的维修申请,并记录维修的过程和结果。
d)设备报废功能:实验室人员可以通过系统申请设备报废,并记录报废的原因和日期。
e)设备查询功能:实验室管理人员可以通过系统查询设备的基本信息、借还情况、维修记录和报废记录等。
3.性能需求:a)系统响应时间:系统应能在合理的时间内响应用户的请求,并保持系统的稳定性。
b)数据安全性:系统应具备数据加密和访问控制的功能,保障数据的安全性。
c)系统容错性:系统应具备容错和故障恢复功能,确保系统的正常运行和数据的完整性。
二、系统设计1.技术选型:选择使用Web开发框架进行系统的开发,如Python的Django框架或Ruby的Ruby on Rails框架,以便快速构建系统。
数据库可选用关系型数据库,如MySQL或PostgreSQL。
2.系统模块设计:a)用户模块:负责用户的注册、登录、权限管理等功能。
b)设备管理模块:负责设备的登记、借还、维修和报废等功能。
c)设备查询模块:负责设备的查询功能。
d)报表统计模块:负责生成设备的统计报表,如设备的借还记录、维修记录和报废记录等。
3.数据库设计:设计设备、用户、设备借还记录、设备维修记录和设备报废记录等表,使用外键关联各表。
4.系统界面设计:设计符合用户习惯的用户界面,界面简洁明了,易于操作。
c语言程序课程设计-实验设备管理系统

课程设计报告书实验设备管理系统班级:学号: 9姓名:指导教师:二零一零年七月十五号课程设计报告内容1.选择题目题目:实验设备管理系统2.内容摘要摘要:实验室设备管理系统是典型的设备信息管理系统,要求能为学校实验室管理提供信息化动态化的管理,方便实验室设备管理工作,提高设备管理质量和使用效率。
而且系统应符合设备管理的有关规定,包括新设备的申请、购买确认、新设备信息录入、旧设备维修和报废及用户管理等。
能满足日常工作的基本需要,并达到操作过程中的直观、方便、实用、安全等有关要求。
实验室设备管理系统是一个典型的信息管理系统,采用面向对象的分析方法,给出系统的基本结构、设计特色、设计模型及实现途径,并且对系统的开发技术进行研究。本系统是一个为适应对学校实验室设备管理的迫切需求而设计开发的软件系统。
3.索引关键词关键词:结构体、文件、数组、函数4.目录●目录……………………………………………………………●题目要求 (3)●设计思想............................................................3-4 ●系统完成及功能 (4)●界面设计……………………………………………………4-5●核心算法及说明………………………………………….5-11●结论 (11)●考资料 (12)●后记 (12)●附录………………………………………………………12-135. 正文包括课程设计的要求,设计思想,系统完成的功能,及界面设计,核心算法及说明,和结论几部分,正文必须从页首开始。
课程设计题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
主要功能:1、能够完成对设备的录入和修改2、对设备进行分类统计3、设备的破损耗费和遗损处理4、设备的查询要求:使用二进制文件方式存储数据,系统以菜单方式工作设计思想第一,应该具有自动初始化的功能。
高校实验室设备管理系统_课程设计

To.nochar(20) not null,
A.datedatetime not null
)
3.5.2
随着高等教育改革的不断发展,素质教育与创新人才的培养对高校实验室提出了越来越高的要求,特别是对高校实验室的管理水平提出了较高的要求。由于历史和客观的原因,实验室结构单一,管理方式落后,查询设备信息复杂,资源利用率低,设备维修的信息传送的渠道不畅。这些问题的存在严重制约了实验室的利用率,成为制约素质教育与创新人才培养的瓶颈问题。这一问题若得不到及时有效的解决,素质教育、创新人才培养就难以落到实处。
(2)高校设备的管理存在着轻视管理和维护的弊端。长期以来由于管理不善,大量的设备长期闲置,设备故障无人修理,直接影响仪器设备使用的效率,造成教育资源的严重浪费。
(3)一些设备管理系统虽然能够实现联网工作,但是功能单一,缺少信息互动和网络优化办公的优势。虽然能实现联网工作,但是涉及面很小,管理效率低,缺乏系统性、广泛性和协同性的管理。
M.no
Char
20
不能为空,不能重复
维修人员工号
R.num
Char
10
不能为空,不能重复
数量
R.date
Datetime
报修日期
De.no
Char
20
不能为空,不能重复
设备编号
D.no
Char
20
不能为空,不能重复
部门号
11.分发关系(hand out)
属性名
字符类型
长度
约束
说明
D.no
Char
20
生产日期
De.bdate
Datetime
实验设备管理系统c语言版

printf("**********************************************************\n");
printf("请输入要修改的设备编号:\n");
scanf("%s",code); /*输入要修改的设备编号*/
printf("------------------------------------\n");
}
fclose(fp);
printf("\n-----------------------\n");
printf("返回主菜单 \n");
printf("1.是\n");
printf("2.不,退出\n");
scanf("%d",&c);
if(c==1)return(-1);
if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/
实验室设备信息用文件存储,故要提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的查询需要提供查找操作;另外还要提供键盘式选择菜单以实现功能选择总体设计
整个系统被设计为实验设备信息输入模块、实验设备信息添加模块、实验设备信息修改模块、实验设备分类统计模块和实验设备查询模块。
{
if((fp=fopen("","r"))==NULL)
{printf("\n不能打开文件!\n");}
设备管理系统课程设计

设备管理系统课程设计一、教学目标本课程旨在通过学习设备管理系统,使学生掌握设备管理的基本概念、原理和方法,培养学生对设备管理系统的兴趣和主动性,提高学生在实际工作中运用设备管理系统的能力。
1.了解设备管理系统的定义、功能和作用;2.掌握设备管理的基本原理和方法;3.熟悉设备管理系统的常用技术和工具。
4.能够运用设备管理系统进行设备的管理和维护;5.能够根据实际情况设计和优化设备管理方案;6.能够分析和解决设备管理过程中出现的问题。
情感态度价值观目标:1.培养学生对设备管理工作的重视和责任感;2.培养学生团队协作和沟通交流的能力;3.培养学生持续学习和自我提升的意识。
二、教学内容本课程的教学内容主要包括设备管理系统的概念、原理、方法和应用。
1.设备管理系统的概念:介绍设备管理系统的定义、功能和作用,使学生了解设备管理系统的基本概念。
2.设备管理原理:讲解设备管理的基本原理,包括设备的选择、设备的布局、设备的维护等。
3.设备管理方法:介绍设备管理的方法,包括设备管理的计划、、指挥、协调和控制等。
4.设备管理系统的应用:讲解设备管理系统在实际工作中的应用,包括设备的使用、设备的维护、设备的更新等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解,使学生了解和掌握设备管理系统的概念、原理和方法。
2.讨论法:通过分组讨论,培养学生的团队协作和沟通交流能力,提高学生分析问题和解决问题的能力。
3.案例分析法:通过分析实际案例,使学生了解设备管理系统在实际工作中的应用,提高学生运用设备管理系统的能力。
4.实验法:通过实验操作,使学生熟悉设备管理系统的使用和操作,提高学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选择一本与设备管理系统相关的教材,作为学生学习的主要参考资料。
实验室管理系统课程设计

实验室管理系统课程设计一、教学目标本课程旨在通过学习实验室管理系统,使学生掌握实验室管理的基本知识和技能,能够熟练使用实验室管理系统,进行实验室的日常管理工作。
在知识目标方面,要求学生掌握实验室管理系统的功能、操作方法和维护技巧。
在技能目标方面,要求学生能够独立完成实验室管理系统的安装、配置和维护工作,能够编写简单的实验室管理程序。
在情感态度价值观目标方面,要求学生认识到实验室管理的重要性,培养学生的责任感和使命感。
二、教学内容本课程的教学内容主要包括实验室管理系统的功能、操作方法、维护技巧以及实验室管理的相关理论知识。
具体包括:实验室管理系统的概述,实验室管理系统的安装与配置,实验室管理系统的使用与维护,实验室管理的相关理论知识。
三、教学方法本课程将采用讲授法、操作演示法、实验法等多种教学方法。
在讲授基本理论知识时,将结合操作演示,使学生能够直观地理解理论知识。
在实际操作环节,将安排实验室管理系统的安装与维护实验,使学生能够亲手操作,提高实际操作能力。
四、教学资源教学资源包括教材、实验设备、多媒体资料等。
教材将选用权威、实用的实验室管理系统教材,为学生提供全面、系统的理论知识学习。
实验设备包括实验室管理系统软件和相应的硬件设备,以供学生进行实际操作。
多媒体资料包括教学PPT、视频教程等,以丰富教学手段,提高学生的学习兴趣。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多种形式,以全面客观地评估学生的学习成果。
平时表现主要评估学生在课堂上的参与程度、提问回答等情况,占总评的20%。
作业主要包括课堂练习和课后作业,占总评的30%。
考试包括期中和期末考试,占总评的50%。
此外,还将定期进行实验室管理实践操作评估,以检验学生的实际操作能力。
六、教学安排本课程的教学安排将根据课程内容和学生的实际情况进行合理规划。
教学进度将按照教材的章节顺序进行,确保在有限的时间内完成教学任务。
教学时间将分配在每周的固定课时,地点将在教室和实验室进行。
实验设备管理系统设计—C语言课程设计

实验设备管理系统设计1.题目与要求:1.1问题提出与要求:题目:实验设备管理系统设计要求:实验设备信息包括:设备编号,设备种类(如微机,打印机,扫描仪等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改。
(2)对设备进行分类统计。
(3)设备的查询2.功能实现设计:2.1总体设计:图1:系统功能模块图2.2详细设计:1:主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2:主函数流程图void main(){Node *equip;FILE *fp;int flag;Node *p,*q;printf("\t\t\t\t设备管理系统\n");equip=(Node*)malloc(sizeof(Node));equip->next=NULL;p=equip;fp=fopen("设备管理系统","wb+");q=(Node*)malloc(sizeof(Node));if(fread(q,sizeof(Node),1,fp)) //将文件的内容放入接点中{q->next=NULL;p->next=q;p=q; //将该接点挂入链表中}fclose(fp); //关闭文件while(1){printf("**************************************目录**************************************");printf("\n1添加记录\n");printf("\n2修改记录\n");printf("\n3显示记录\n");printf("\n4统计分类记录\n");printf("\n0*-EXIT-*\n");printf("请输入你要操作的序号:");scanf("%d",&flag);switch(flag){case 0: printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;case 1: Add(equip); break; //增加记录case 2: Modify(equip); break;//修改记录case 3: Disp(equip); break;//显示记录信息case 4: Tongji(equip); break;//统计记录default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break;}}}一:以下为添加记录的程序:while(1){printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break;p=(Node *)malloc(sizeof(Node)); //申请空间strcpy(p->data.ID,id);printf("\n请输入设备名称:");scanf("%s",p->);printf("\n请输入设备种类:");scanf("%s",p->data.kind);printf("\n请输入报废日期:");scanf("%s",&p->data.over);printf("\n请输入设备是否报废:");scanf("%s",&p->data.yesno);printf("\n请输入设备购买时间:");scanf("%s",&p->data.time);printf("\n请输入设备价格:");scanf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。
数据库课程设计实验室设备管理系统

数据库课程设计--实验室设备管理系统一、引言随着实验室设备数量的增加和设备种类的多样化,实验室设备的管理变得日益复杂。
为了提高实验室设备的管理效率,我们设计了一个数据库管理系统——实验室设备管理系统。
该系统将提供一个用户友好的界面,使用户能够方便地完成设备的新增、修改、删除、查询等操作,同时还能生成各类报表,以便于数据的分析和决策。
二、系统需求分析1.用户需求:系统需要满足实验室管理人员、设备使用者以及其他相关人员的需求,使其能够快速、准确地获取设备的相关信息,并能够方便地进行各类操作。
2.功能需求:系统需要实现以下功能:•设备的增加、修改、删除:能够对设备信息进行基本的增、删、改操作。
•设备查询:能够根据设备名称、型号、编号等信息进行快速查询,并能显示详细信息。
•报表生成:能够根据不同的需求生成各类报表,如设备使用情况报表、设备故障维修报表等。
•权限管理:能够对不同用户设置不同的权限,保证系统的安全性。
三、数据库设计1.实体设计:根据需求分析,我们可以设计以下实体:•用户实体:包括用户名、密码、权限等级等属性。
•设备实体:包括设备编号、设备名称、型号、分类、供应商、购买日期、价格等属性。
•维修记录实体:包括维修编号、设备编号、维修日期、维修原因、维修人员、维修费用等属性。
2.数据库表设计:根据实体设计,我们可以创建以下数据库表:•用户表:用于存储用户信息,包括用户名、密码和权限等级等字段。
•设备表:用于存储设备信息,包括设备编号、设备名称、型号、分类、供应商、购买日期、价格等字段。
•维修记录表:用于存储维修记录信息,包括维修编号、设备编号、维修日期、维修原因、维修人员和维修费用等字段。
四、系统实现技术1.开发语言:本系统采用Python语言进行开发,Python具有简单易学、代码可读性高、跨平台性强等特点,非常适合用于数据库管理系统的开发。
2.数据库管理系统:本系统采用MySQL作为数据库管理系统,MySQL是一种开源的关系型数据库管理系统,具有强大的性能和丰富的功能,能够满足本系统的需求。
实验室设备管理系统课程设计

个人襦程殺计报告院系计算机与通信工程学院专业计算机(中加)学号姓名角色_________ D日期20 1 3/6/ 2 0个人裸程筱计报告一•项目概述1、1编写目得因为现在各个高校内教学设备众多但自动管理水平相比过低,很多高校管理设备都采用在设备购进以后将设备得基本情况与相关信息登记存档。
存档以后,档案基木就没人记录与维护,至于以后设备得变迁或损坏都不会记录在设备档案中,即不能体现设备得即时状态。
而有些即使有设备管理系统得单位,就算就是能把设备得即时信息体现在设备档案上,但设备得缺陷处理及设备缺陷等功能没有实施,设备检修得备品备件情况与检修成木核算没有实现,整个学校教学设备管理信息化仍处于较低水平。
将管理任务分成小块,落实到个人并能随时查询设备当前情况与历史情况,对设备得可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。
同时基于实验室管理者对设备得得使用情况进行统计与更新提供轻松快捷得管理方式,利用计算机管理系统管理我校得实验设备势在必行,也方便广大用户可以随时随地得借用实验设备进行学习与研究。
该报告得读者对象为研发该软件者。
1、2任务每学年要对实验室设备使用情况进行统计、更新。
其中:(1)对于己彻底损坏得做报废处理,同时详细记录有关信息。
(2)对于由严重问题做障)得要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。
(3)对于急需修改但又缺少得设备,需以“申请表〃得形式送交上级领导请求批准购买。
新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期与经办人等信息),同时更新中请表得内容。
(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别与时间段等查询。
1、3开发环境系统开发环境得选择对于系统得建立来说至关重要,它将决定着系统开发工作量得大小,系统得性能特点以及系统今后得维护工作难易等。
因此在开发系统之前,根据对系统所采用得技术、实现功能得评估,在选择开发环境时,主要考虑以下几个因素:扩展性,总成本,功能, 就是否容易开发与管理,另外开放性与互操作性也就是需要考虑得一个重要方面,因为该系统就是运行在Internet上得,用户平台得差异决定了与其它系统得互操作性就是不可避免得。
实验室设备管理系统(优秀范文5篇)

实验室设备管理系统(优秀范文5篇)第一篇:实验室设备管理系统任务书1、课程设计题目实验室设备管理系统2、设计任务和内容一个小型的实验室设备管理系统的主要目的是方便实验室管理人员进行有效的设备管理工作,该小型应用系统应能让实验室管理人员进行登记设备的新进、修理、报废借用、归还等信息。
并就对这些信息,进行相应的查询统计处理。
能够保证对实验室设备情况进行实时的反映。
本课题任务是开发一个小型的实验室设备管理系统,并撰写符合规范的课程设计说明书以体现设计过程和设计结果。
3、设计步骤和要求设计步骤:首先进行相关资料查阅和学习,了解基本的业务流程和系统数据功能要求。
然后结合软件工程的理论和教材中数据库设计的六个阶段(重点是前三个阶段)完成设计任务,即系统结构设计(需求分析、概念结构设计、逻辑结构设计、物理结构设计)和系统功能设计。
设计要求:1、撰写课程设计说明书。
其要求如下:(1)基本要求:① 能反映完成了上述设计内容要求。
② 要求撰写不少于5000个文字(20页)的文档。
③ 文档中至少要包括:数据流图、数据字典、E-R图、数据库表的详细说明、系统功能结构图、主要功能模块说明。
④ 课程设计说明书一律用碳素墨水书写,其中用户界面设计可以附界面的计算机截图或手工绘图。
(2)文档格式要求(遵循数据库原理及应用课程设计大纲上的要求)其中,正文部分:①分章、层次等,每一章从新一页开始。
②章节安排可如下安排.概述:包括项目背景、编写目的、软件定义、开发环境等内容。
.需求分析:问题陈述、需完成的功能。
以数据流图和数据字典表达。
.概念结构设计:将上述需求分析的成果抽象为ER模型图。
.逻辑结构设计:把ER模型图转换为关系表;描述每一个基本表关系。
并进行规范化;定义视图、定义索引、主关键字、定义权限。
.软件功能设计:画出系统功能结构图,描述每个功能所完成的任务。
.代码设计和界面设计:给出主要功能的代码并有适当的说明;界面设计要合理,给出主要界面。
实验室设备管理系统设计[]
![实验室设备管理系统设计[]](https://img.taocdn.com/s3/m/54376c577fd5360cba1adbb8.png)
1. 设计课题内容实验设备管理系统设计实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等.主要功能:1、能够完成对设备地录入和修改.2、对设备进行分类统计.3、设备地破损耗费和遗损处理.4、设备地查询.2. 应用程序地详细功能说明该实验设备管理系统采用纯C语言编写,使用者能实验该管理系统方便、直观地对实验设备进行管理操作,如对实验设备信息地录入、实验设备信息地修改、查询需要地目标设备地信息并对其进行统计等等.程序分两大系统,一是管理系统,二是查询系统.在管理系统中1. 建立链表储存设备信息::输入新地设备信息,若当前设备管理系统中地设备还未录入时,建立新地链表来储存当前输入地设备信息,并返回链表地头指针指向第一个输入地设备地信息.2. 插入新地设备信息:输入新地设备信息,且当前设备管理系统中地链表非空,则将新地设备信息插入链表,并返回链表头指针.3. 修改设备信息:若对已有地设备地信息需要修改,则按设备编号进行查找,在成功找到该设备时,并选择需要修改地信息进行修改.4. 删除设备信息:若已有设备地信息错误或该设备不可用即已经报废,则要对该条信息进行删除处理.5. 对设备进行遗损处理:当设备将要报废或已报废时则删除该设备地相关信息,并通知.在查询系统中1. 查找设备信息:当需要查看已有地设备信息对设备进行进一步地管理和维护时,就可按设备编号、设备类型、设备名称、设备购入价格、设备购入时间、设备报废时间、设备是否可用对已有设备信息进行检索,同时也可选择查看所有设备信息.并且能在程序地根目录下地result.txt文件中查看信息.3. 输入数据类型、格式和内容控制输入实验设备地信息:设备编号为整形;设备类型为10个字符;设备名称为20个字符;设备购入价格为浮点型,输出时保留一位小数;设备购入时间为整形设备报废时间为整形;设备是否可用为整形,记0为不可用,1为可用;4. 主要模块地算法描述4.1 简单算法描述1.新地设备信息添加到链表2.删除错误和无用地设备信息3.查找所需相关类型信息地设备信息4.修改设备信息4.2 流程图显示建立带头节点地链表将新的设备信息插入链表删除节点操作的算法流程图5.结束语在课程设计中,我体会颇多,学到很多东西.我加强了对C地认识,复习了自己以前地知识,自己地逻辑思考能力也提高不少.从而对Microsoft Visual C++ 6.0开发环境又有了更深入地认识!在这次课程设计中,我还总结了程序开发地一些比较重要地步骤,比如需求分析、总体设计、数据库设计(含概念设计、逻辑设计、物理设计)、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、运行结果)、系统使用说明等.这次课程设计激发了我对编程地兴趣和热情,让我从一个只懂理论变成了能做一些小型程序地人,使我对编程更加热爱了.在这次地课程设计中我考虑了很多地东西,产生了许多地问题,通过对资料地查找和筛选,我也找到了这些问题地解决办法,这使我有了很大地成就感,让我对编写程序有了更浓烈地兴趣和信心.相信在以后地设计中我会提交出更加优秀地作品!6.课程设计源程序清单#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#include <windows.h>#define SIZE sizeof(struct ShiyanEquip)struct ShiyanEquip{int num;char type[10],name[20];double price;int btime;int otime;int able;struct ShiyanEquip * next;};//============================================================函数声明struct ShiyanEquip * NewList();struct ShiyanEquip * InsertNode( struct ShiyanEquip *head, struct ShiyanEquip *newin); void SearchNode( struct ShiyanEquip *head);void SearchNode_num( struct ShiyanEquip *head, int num);void SearchNode_type( struct ShiyanEquip *head, char type[]);void SearchNode_name( struct ShiyanEquip *head, char name[]);void SearchNode_price( struct ShiyanEquip *head, double price);void SearchNode_btime( struct ShiyanEquip *head, int btime);void SearchNode_otime( struct ShiyanEquip *head, int otime);void SearchNode_able( struct ShiyanEquip *head, int able);struct ShiyanEquip * Delete_num( struct ShiyanEquip *head, int num);void ChangeNode(struct ShiyanEquip *head,int num);void Dealwithpass( struct ShiyanEquip * head , int nowtime);struct ShiyanEquip * manage();void search(struct ShiyanEquip * head);static count=0;int main(void){struct ShiyanEquip * head=NULL;char chose;do{printf("********Wlecome to use my program ~********\n\n");printf("**********Here is the Menu **********\n");printf("*No.1:管理系统*\n");printf("*No.2:查询系统*\n");printf("*No.#:退出系统*\n");printf("*******************************************\n");scanf("%s",&chose);switch(chose){case '1':head=manage();break;case '2':search(head);break;case '#':system("cls");printf("********Thankyou for using my program ~********\n\n");exit(0);}}while (1);return 0;}//====================================================管理系统struct ShiyanEquip * manage(){char chose2;int num,nowtime;char type[10],name[20];double price;int btime;int otime;int able;struct ShiyanEquip * pcurr,* head;system("cls");do{system("cls");printf("********** 管理系统**********\n");printf("**No.1:建立新实验器材管理清单**\n");printf("**No.2:插入新地实验器材**\n");printf("**No.3:删除目标器材信息**\n");printf("**No.4:修改目标器材信息**\n");printf("**No.5:遗损处理**\n");printf("**No.#:返回上级菜单**\n");printf("********************************\n");scanf("%s",&chose2);switch(chose2){case '1':head=NewList();break;case '2':pcurr=(struct ShiyanEquip *)malloc(SIZE);printf("=输入实验器材地编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n");scanf("%d%s%s%lf%d%d%d",&num,type,name,&price,&btime,&otime,&able);pcurr->num=num;strcpy(pcurr->type,type);strcpy(pcurr->name,name);pcurr->price=price;pcurr->btime=btime;pcurr->otime=otime;pcurr->able=able;head=InsertNode(head,pcurr);break;case '3':printf("=请输入要删除地实验器材地编号=:");scanf("%d",&num);head=Delete_num(head,num);break;case '4':printf("=请输入要修改地实验器材地编号=:");scanf("%d",&num);ChangeNode(head,num);break;case '5':printf("=请输入现在地日期=");scanf("%d",nowtime);Dealwithpass(head,nowtime);break;case '#':system("cls");return head;}}while ( 1);return head;}struct ShiyanEquip * NewList()//=====================================新建链表{int num;char type[10],name[20];double price;int btime;int otime;int able;struct ShiyanEquip * p,* head,* tail;head=tail=NULL;printf("录入实验器材地信息.....\n");printf("=输入实验器材地编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n");scanf("%d%s%s%lf%d%d%d",&num,type,name,&price,&btime,&otime,&able);while ( num != 0){p=(struct ShiyanEquip *)malloc(SIZE);p->num=num;strcpy(p->type,type);strcpy(p->name,name);p->price=price;p->btime=btime;p->otime=otime;p->able=able;p->next = NULL;if (head == NULL)head = p;elsetail->next = p;tail = p;printf("=输入实验器材地编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n");scanf("%d%s%s%lf%d%d%d",&num,type,name,&price,&btime,&otime,&able);}return head;}struct ShiyanEquip * InsertNode (struct ShiyanEquip * head,struct ShiyanEquip *newin) //插入节点{struct ShiyanEquip * pt1,* pt2;pt1=head;pt2=newin;if (head == NULL){head = pt2;head ->next = NULL;count++;}else{pt2 ->next = pt1 ->next;pt1 ->next = pt2;count++;}return head;}struct ShiyanEquip * Delete_num( struct ShiyanEquip * head,int num)//======删除节点{struct ShiyanEquip * pt1,* pt2;if ( head == NULL )return NULL;else{if ( head -> num == num){pt2 = head;head = head -> next;free(pt2);count--;return head;}else{pt1 = head;pt2 = head -> next;if (pt2 != NULL){if (pt2 -> num == num){pt1 -> next = pt2 -> next;free(pt2);count--;}else{pt1 = pt2;pt2 = pt1 -> next;}}}}return head;}void ChangeNode(struct ShiyanEquip *head,int num)//===================更改节点{char type[10],name[20];double price;int btime;int otime;int able;int flag=0,chose4;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");return;}for( pt = head; pt ; pt = pt -> next)if(pt->num == num){printf("====选择要修改地信息====\n");printf("=1.编号=\n");printf("=2.类型=\n");printf("=3.名称=\n");printf("=4.价格=\n");printf("=5.购入时间=\n");printf("=6.报废时间=\n");printf("=7.是否可用=\n");switch(chose4){case 1:printf("=请输入新地信息=");scanf("%d",&num);pt->num=num;break;case 2:printf("=请输入新地信息=");scanf("%s",&type);strcpy(pt->type,type);break;case 3:printf("=请输入新地信息=");scanf("%s",&name);strcpy(pt->name,name);break;case 4:printf("=请输入新地信息=");scanf("%lf",&price);pt->price=price;break;case 5:printf("=请输入新地信息=");scanf("%d",&btime);pt->btime=btime;break;case 6:printf("=请输入新地信息=");scanf("%d",&otime);pt->otime=otime;break;case 7:printf("=请输入新地信息=");scanf("%d",&able);pt->able=able;break;}}}//===========================================================查询系统void search(struct ShiyanEquip * head){int num;char type[10],name[20];double price;int btime;int otime;int able;char chose3;system("cls");do{system("cls");printf("********** 查询系统**********\n");printf("**No.1:按编号查找**\n");printf("**No.2:查找统一价格**\n");printf("**No.3:查找同一类型**\n");printf("**No.4:查找同一名称**\n");printf("**No.5:查找按购入日期**\n");printf("**No.6:查找按报废日期**\n");printf("**No.7:查找按是否可用**\n");printf("**No.8:显示全部器材信息**\n");printf("**No.#:返回上一级菜单**\n");printf("********************************\n");scanf("%s",&chose3);switch(chose3){case '1':printf("=请输入要查找地编号=");scanf("%d",&num);SearchNode_num(head,num);break;case '2':printf("=请输入想要查看地价格=");scanf("%lf",&price);SearchNode_price(head,price);break;case '3':printf("=请输入想要查找地类型=");scanf("%s",type);SearchNode_type(head,type);break;case '4':printf("=请输入想要查看地名称=");scanf("%s",name);SearchNode_name(head,name);break;case '5':printf("=请输入想要查看地购入时间=");scanf("%d",&btime);SearchNode_btime(head,btime);break;case '6':printf("=请输入想要查看地报废时间=");scanf("%d",&otime);SearchNode_otime(head,otime);break;case '7':printf("=请输入要查看是否可用地器材(0:报废;1:可用)=");scanf("%d",&able);SearchNode_able(head,able);break;case '8':SearchNode(head);break;case '#':system("cls");return;}}while ( 1);}void SearchNode_num( struct ShiyanEquip *head, int num)//按编号查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int flag=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt->num == num){flag=1;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}printf("=可以在文件result.txt中查看更多=\n");}if ( flag == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_type( struct ShiyanEquip *head, char type[])//按类型查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if (strcmp(pt->type,type) == 0){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_name( struct ShiyanEquip *head, char name[])//按名称查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if (strcmp(pt -> name,name) == 0){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_price( struct ShiyanEquip *head, double price)//按价格查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt -> price == price){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_btime( struct ShiyanEquip *head, int btime)//按购入时间查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt -> btime == btime){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_able( struct ShiyanEquip *head, int able)//按是否可用查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt -> able == able){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode_otime( struct ShiyanEquip *head, int otime)//按报废时间查找{FILE *fp;if (( fp = fopen("result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next)if(pt -> otime == otime){countS++;printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}void SearchNode( struct ShiyanEquip *head)//====================查看所有设备信息{FILE *fp;if (( fp = fopen("all_result.txt","w")) == NULL){printf("===文件打开错误!===\n");exit(0);}int countS=0;struct ShiyanEquip *pt;if (head == NULL){printf("=抱歉,没有任何信息!=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}return;}for( pt = head; pt ; pt = pt -> next){printf("=============================\n");printf("=编号%d \n",pt->num);printf("=类型%s \n",pt->type);printf("=名称%s \n",pt->name);printf("=价格%.1lf \n",pt->price);printf("=购入时间%d \n",pt->btime);printf("=报废时间%d \n",pt->otime);printf("=是否可用%d \n",pt->able);printf("=============================\n");fprintf(fp,"=============================\n");fprintf(fp,"=编号%d \n",pt->num);fprintf(fp,"=类型%s \n",pt->type);fprintf(fp,"=名称%s \n",pt->name);fprintf(fp,"=价格%.1lf \n",pt->price);fprintf(fp,"=购入时间%d \n",pt->btime);fprintf(fp,"=报废时间%d \n",pt->otime);fprintf(fp,"=是否可用%d \n",pt->able);fprintf(fp,"=============================\n");for( int i=10;i>0;i--){Sleep(1000);}}if ( countS == 0){printf("=抱歉没有找到您所要查找地器材~=\n");for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}else{printf("=共查找到%d条信息=\n",countS);printf("=可以在文件all_result.txt中查看更多=\n");fprintf(fp,"=共查找到%d条信息=\n",countS);for( int i=5;i>0;i--){printf("%d秒后请重新操作\n",i);Sleep(1000);}}if ( fclose(fp) ){printf("===文件关闭错误===\n");exit(0);}}//====================================================================void Dealwithpass( struct ShiyanEquip * head , int nowtime){struct ShiyanEquip *pt;for ( pt = head; pt ; pt = pt -> next)if ((pt->otime) < nowtime) {Delete_num(head,pt -> num);};}。
实验设备管理系统设计C语言课程设计报告(模版)

目录一、课程设计题目:实验设备管理系统设计 (2)二、程序设计思路 (2)三、功能模块图 (3)四、数据结构设计 (5)(1)功能模块设计 (5)6. 程序代码 (7)7. 程序运行结果 (15)8. 课程设计中遇到的困难及解决方法 (21)9. 总结心得 (21)10. 致谢 (21)11. 参考文献 (22)1.课程设计题目:实验设备管理系统设计【要求】实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改。
(2)对设备进行分类统计。
(3)设备的查询。
【提示】需求分析:实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。
2.程序设计思路根据需求分析,可将系统的设计分为四个模块:输入模块,修改模块,统计模块,查询模块;实验室设备信息用文件存储,提供文件的输入输出;建立实验设备信息结构体,结构体成员包括:设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期。
(1)主函数设计主函数提供输入,处理,输出部分的函数调用,其中各功能模块用菜单方式选择,即主函数里显示一系列功能选项,判断后,是否调用个功能模块用了switch()选择功能。
(2)各功能模块设计输入模块:定义了文件型指针变量,打开文件输入用户要输入设备的个数,输入设备的各项详细信息,将输入的信息存储到文件的中;用到fopen(文件名,使用文件方式);fclose(文件指针);fprintf(文件指针,格式字符串,输出列表)。
实验室设备管理系统(课程设计报告)

西安文理学院软件学院课程设计报告设计名称:实验设备管理系统设计题目:实验设备管理系统专业班级:软件工程一班学生姓名:学生成绩:指导教师(职称):课题工作时间:2013年12月20日至2014年1月8日软件学院课程设计任务书指导教师:院主任:日期:2014年01月06日课程设计:实验室设备管理系统一、项目管理:二、软件需求分析1.引言1.1编写目的此需求说明书详细陈述了“实验设备管理系统”的所提供各项功能。
其中包括用户的功能性需求以及非功能性需求,为用户提供完整且较详尽的系统功能运作蓝图。
同时为设计人员提供一个完整的、可靠的设计约束,以便高质量地设计、编写代码,完成系项目预期目标。
还给开发人员提供了参考。
此需求说明书的预期读者为项目经理、设计人员、开发人员、用户等。
1.2背景说明:a.待开发的软件系统的名称:实验设备管理系统;b.本项目的任务提出者:西安文理学院;c.本项目的开发者:d.本项目的用户:西安文理学院相关管理人员;e.该软件系统同其他系统或其他机构的基本的相互来往关系:与西安文理学院财务管理软件系统有相应接口。
1.3定义LEM:实验室设备管理系统(Laboratory Equipment Management);2.任务概述2.1目标随着高校规模的扩大,实验室及仓库的增多,人工管理实验设备已变得过于低效,为了解决这一问题,高校实验室设备管理系统将实现设备管理的自动化。
实验室设备管理系统将贯穿于设备从购进到报废的整个流程的管理过程,帮助管理员高效地管理整个高校的所有设备,并给上级领导提供一个审核监督管理的平台。
2.2用户的特点此软件的使用用户为:西安文理学院相关管理人员。
因此,我们通常可以认为:用户具有较高的文化水平和学习能力,并且具有一定的计算机使用水平和经验,可以了解整个LEM系统的工作流程及注意事项,与此同时对于LEM系统的基本操作,可以无困难执行。
在参考用户手册的情况下可以无需进行专业培训,即可顺利使用本系统。
实验室设备管理系统数据库课程设计

实验室设备管理系统数据库课程设计目录前言............................................................................ ..................................................... 1 正文............................................................................ ..................................................... 1 2.1选题的目的和意义 ........................................................................... .......................... 1 2.2设备管理系统数据库总体方案设计 ........................................................................... .. 2 2.3设备管理系统数据库需求分析 ........................................................................... ......... 2 2.4系统功能设计 ........................................................................... ................................. 3 2.5 概念结构设计............................................................................ ................................ 6 2.5.1全局E-R设计 ........................................................................... .............................. 9 2.5.2概念结构的实现 ........................................................................... ........................ 10 2.5.3物理结构的实现 ........................................................................... ........................ 10 2.6数据库的实施与测试 ........................................................................... ......................11 2.6.1 数据库添加数据............................................................................ ....................... 12 2.6.2测试 ........................................................................... .......................................... 14 2.7小结 ........................................................................... ............................................. 16 参考文献............................................................................ .. (18)塔里木大学信息工程学院课程设计前言一个现代化的实验室设备系统在正常运行中总是面对大量的使用者,仪器以及两者相互作用产生的借用仪器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
鉴于高校设备管理的现状以及设备管理信息化的要求,开展计算机辅助设备管理,并在此基础上为上级部门进行决策分析提供帮助,极大地提高了设备管理的工作水平和信息化水平。
2.1
系统分析阶段开展的主要工作包括:收集和分析系统需求、提供系统说明书等。系统需求分析就是通过系统调查,了解用户实际需求,进行系统分析,提炼出系统需求。业务流程是系统设计的关键,要开发一个系统,必须确定系统的功能需求,这就必须先了解实际的业务流程,从业务流程中分析系统的需求。设备信息是系统进行管理的主线,它描述了设备的基本情况,主要包括:设备名称、设备编号、分类号、型号、规格等;编码设计应完全符合国家信息标准。系统工作流程主要是用户进行设备信息的入库以及维护处理。不同权限的用户进行不同的工作操作,具有不同的工作流程。
3.4
采购员(工号,姓名,年龄,性别,联系方式,入厂日期)
设备(设备编号,型号,设备名称,生产日期,购买日期,设备处号)
设备管理员(工号,姓名,年龄,性别,联系方式,工作日期)
员工(工号,姓名,年龄,性别,联系方式,工作日期)
部门(部门号,名称,联系方式,设备处号)
维修人员(工号,姓名,年龄,性别,联系方式,工作日期)
随着高等教育改革的不断发展,素质教育与创新人才的培养对高校实验室提出了越来越高的要求,特别是对高校实验室的管理水平提出了较高的要求。由于历史和客观的原因,实验设备维修的信息传送的渠道不畅。这些问题的存在严重制约了实验室的利用率,成为制约素质教育与创新人才培养的瓶颈问题。这一问题若得不到及时有效的解决,素质教育、创新人才培养就难以落到实处。
(4)设备的损坏管理:对设置的使用过程中遇到的设备损坏进行记录,并且修改相关联的数据信息。
(5)设备损坏信息浏览查询:实现对损坏设备信息的准确查询。查询可以是不同字段的联合查询。
(6)设备类别设置:实验室的仪器分门别类,包括类别名称,类别数量,最低数量的设置。
(7)系统用户的管理:使用该系统的包括:管理员和实验课指导教师以及学生,管理员具有对实验课指导教师记录进行添加,修改,删除等操作权限。
3
3
1、系统名称:实验室设备管理系统
2、数据库管理软件:Microsoft SQL Server
3、数据库设计采用软件:Microsoft Office Visio 2010
4、系统采用C/S体系结构:Client (客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server (服务器)端用于提供数据服务。
2.
通常信息管理系统按照对信息的操作,将系统划分为:数据采集、数据处理、数据传输以及系统维护等功能组成部分。所以,通过综合分析,本系统主要需求有:
(1)设备基本信息的收集与处理;
(2)设备基本信息的存储与维护;
(3)能方便、快捷地上报设备信息;
(4)能进行查询统计并形成各种有价值的信息;
(5)具有一定的报表处理功能;
(1)部分设备管理系统处于单机运行的阶段,无法适应信息时代信息充分共享和协同办公的需要。各高校设备管理部门虽然都采用计算机进行管理,但大多是单机版,各部门之间的信息交流依然靠手工,管理人员要花费大量的时间用于处理用户查询等工作,这与高校的信息化进程快速发展不相适应。设备资源信息封闭,不能实现设备信息公开、共享程度低。
(2)高校设备的管理存在着轻视管理和维护的弊端。长期以来由于管理不善,大量的设备长期闲置,设备故障无人修理,直接影响仪器设备使用的效率,造成教育资源的严重浪费。
(3)一些设备管理系统虽然能够实现联网工作,但是功能单一,缺少信息互动和网络优化办公的优势。虽然能实现联网工作,但是涉及面很小,管理效率低,缺乏系统性、广泛性和协同性的管理。
(6)将共享的设备信息对外发布,实现浏览查询;
(7)有辅助系统进行系统的管理与维护。
2.
本系统的功能及特点:
(1)实验室设备信息的管理:包括设备的记录的增加,修改,删除,查询。
(2)实验室设备信息的浏览查询:分为对设备信息的浏览和对设备信息的准确查询。查询可以是不同字段的联合查询。
(3)设备事故记录:分为对设备事故的增加、设备事故的删除、设备事故的修改。
报废(部门号,数量,报废日期,设备处号)
1.采购信息(purchase)
属性名
字符类型
长度
约束
说明
申报(部门号,申报日期,设备型号,设备处号)
采购(采购员员工号,数量,递交日期,清单编号)
递交(设备处,数量,清单编号,递交日期)
供应(供应商号,数量,供应日期,设备编号)
分配(设备管理员工号,数量,分配日期,设备编号,部门号)
报修(维修员工号,数量,报修日期,设备编号,部门号)
分发(部门号,数量,分发日期,员工工号)
计算机的出现为高校实验室仪器设备管理带来了全新的技术手段和方便、快捷的管理方法。虽然目前市场上也有一些实验室仪器设备管理数据库软件,但这些软件不完全适合本校具体情况。基于此,设计开发了符合我们自己高校实验室数据库设备管理系统。
1.
近十几年来,我国各高校规模不断扩大,管理方式不断改变,同时在仪器设备管理方面取得了很大的进步。许多高校已经开发出自己的设备信息管理系统,但仍然存在不足之处,不能适应新形势发展要求,主要体现在以下方面:
5、运行平台:windows 2000/xp/linux及以上操作系统
6、数据库的安全性设计:数据库内设置不同的用户分别拥有不同的权限,登录用户可以对实验设备信息的浏览无权限修改、数据库用户设置不同的级别对应不同设备管理的权限、数据库角色分别设置不同的角色对各个级别用户的管理,以及权限的分配等.
3
3
数据库原理实训报告
题目_高校实验室设备管理系统__
姓名王永强
专业计算机科学与技术
学号201215054
指导教师郑睿
信息工程学院
二○一四年十二月
高校实验室设备管理系统
分析报告
1
1.1
实验室工作是高等教学工作中不可分割的一部分,也是培养学生工程创新能力的重要途径。实验室管理的最终目的就是充分挖掘实验资源(设备、用房)的潜能,提高实验室设备的使用率和运行水平,激发实验人员的工作积极性,提高教学质量。