高校实验室设备管理系统_课程设计
实验室设备管理系统_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.系统界面设计:设计符合用户习惯的用户界面,界面简洁明了,易于操作。
实验室管理系统课程设计

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

鉴于高校设备管理的现状以及设备管理信息化的要求,开展计算机辅助设备管理,并在此基础上为上级部门进行决策分析提供帮助,极大地提高了设备管理的工作水平和信息化水平。
2.1
系统分析阶段开展的主要工作包括:收集和分析系统需求、提供系统说明书等。系统需求分析就是通过系统调查,了解用户实际需求,进行系统分析,提炼出系统需求。业务流程是系统设计的关键,要开发一个系统,必须确定系统的功能需求,这就必须先了解实际的业务流程,从业务流程中分析系统的需求。设备信息是系统进行管理的主线,它描述了设备的基本情况,主要包括:设备名称、设备编号、分类号、型号、规格等;编码设计应完全符合国家信息标准。系统工作流程主要是用户进行设备信息的入库以及维护处理。不同权限的用户进行不同的工作操作,具有不同的工作流程。
3.4
采购员(工号,姓名,年龄,性别,联系方式,入厂日期)
设备(设备编号,型号,设备名称,生产日期,购买日期,设备处号)
设备管理员(工号,姓名,年龄,性别,联系方式,工作日期)
员工(工号,姓名,年龄,性别,联系方式,工作日期)
部门(部门号,名称,联系方式,设备处号)
维修人员(工号,姓名,年龄,性别,联系方式,工作日期)
随着高等教育改革的不断发展,素质教育与创新人才的培养对高校实验室提出了越来越高的要求,特别是对高校实验室的管理水平提出了较高的要求。由于历史和客观的原因,实验设备维修的信息传送的渠道不畅。这些问题的存在严重制约了实验室的利用率,成为制约素质教育与创新人才培养的瓶颈问题。这一问题若得不到及时有效的解决,素质教育、创新人才培养就难以落到实处。
(4)设备的损坏管理:对设置的使用过程中遇到的设备损坏进行记录,并且修改相关联的数据信息。
(5)设备损坏信息浏览查询:实现对损坏设备信息的准确查询。查询可以是不同字段的联合查询。
实验设备管理系统设计—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(">>>>>>>>>>提示:已经完成一条记录的添加。
实验室设备管理系统学校端详细设计

实验室设备管理系统学校端详细设计目录引言 (3)1.1编写目的 (3)1.2项目背景 (3)总体设计 (3)2.1需求概述 (3)程序描述 (4)3.1系统功能 (4)3.2系统性能........................................................................................... 错误!未定义书签。
3.3输入输出项....................................................................................... 错误!未定义书签。
3.4算法................................................................................................... 错误!未定义书签。
3.5储存分配........................................................................................... 错误!未定义书签。
3.5注释................................................................................................... 错误!未定义书签。
3.6限制条件........................................................................................... 错误!未定义书签。
3.7系统接口........................................................................................... 错误!未定义书签。
数据库课程设计实验室设备管理系统

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

目录前言 .................................................................................................................................................... 正文 ....................................................................................................................................................2.1选题的目的和意义 ......................................................................................................................2.2设备管理系统数据库总体方案设计 ..........................................................................................2.3设备管理系统数据库需求分析 ..................................................................................................2.4系统功能设计 ..............................................................................................................................2.5 概念结构设计 .............................................................................................................................2.5.1全局E-R设计..........................................................................................................................2.5.2概念结构的实现......................................................................................................................2.5.3物理结构的实现......................................................................................................................2.6数据库的实施与测试 ..................................................................................................................2.6.1 数据库添加数据.....................................................................................................................2.6.2测试 (9)2.7小结.............................................................................................................................................. 参考文献 ............................................................................................................................................前言一个现代化的实验室设备系统在正常运行中总是面对大量的使用者,仪器以及两者相互作用产生的借用仪器。
实验设备管理系统设计

实验设备管理系统设计系统需求:1.设备信息管理:记录设备的基本信息,包括设备名称、型号、生产厂家、购买日期、价格等信息。
2.设备借用管理:实验室成员可以通过系统进行设备的借用申请,包括借用的设备、借用时间等信息。
管理员可以审核借用申请并批准或拒绝。
3.设备归还管理:记录设备的归还情况,包括归还时间、归还状态等信息。
管理员可以验证设备的归还状态并更新设备的可用性。
4.设备维护管理:实验室成员可以通过系统报告设备的故障或需要维护的情况。
管理员可以记录维修情况并安排维修人员进行维护。
5.设备统计与分析:系统可以提供设备使用情况的统计报表,包括设备的借用次数、借用时长等信息。
管理员可以根据统计数据对设备的使用情况进行分析,以便于调整设备的配备和使用策略。
系统设计:1.数据库设计:设计一个设备信息表来存储设备的基本信息,包括设备名称、型号、生产厂家、购买日期、价格等数据。
同时设计一个设备借用表来记录设备的借用信息,包括借用设备、借用人、借用时间等。
还可以设计一个设备归还表和设备维护表来记录设备的归还和维护情况。
3.设备借用管理:实验室成员可以通过登录系统并填写借用申请来借用设备。
管理员可以查看借用申请并批准或拒绝。
一旦批准,系统会将该设备的可用状态更新为不可用,并生成借用记录。
4.设备归还管理:实验室成员归还设备时,可以通过系统进行归还操作。
管理员可以查看设备的归还状态并更新设备的可用性和归还时间。
如果设备有损坏或遗失,管理员可以记录相关信息。
5.设备维护管理:实验室成员可以通过系统报告设备的故障或需要维护的情况。
管理员可以记录维修情况并安排维修人员进行维护。
一旦设备维修完成,管理员可以将设备的可用状态更新为可用。
6.设备统计与分析:系统可以根据设备借用记录生成统计报表,包括设备的借用次数、借用时长等信息。
管理员可以根据统计数据对设备的使用情况进行分析,以便于调整设备的配备和使用策略。
总结:实验设备管理系统可以极大地提高实验室设备的利用率和管理效果,减少设备的损坏和漏用。
软件工程课程设计——实验室设备管理系统

目录一、设计所完成的任务要求 (1)1、设计所完成的任务 (1)2、设计所完成的技术要求 (1)二、系统环境配置和使用工具简单介绍 (1)1、系统环境配置 (1)2、使用工具简单介绍 (1)三、可行性分析 (2)1、决定可行性的主要因素 (2)2、技术可行性 (2)2.1、对系统的简要描述 (2)2.2、待开发系统可能带来的影响 (2)2.3、技术上的可行性 (2)3、经济可行性 (2)3.1、支出 (2)3.1.1、基建支出 (2)3.1.2、其他一次性支出 (2)3.1.3、经常性支出 (3)3.2、收益 (3)3.2.1一次性收益 (3)3.2.2、经常性收益 (3)3.2.3、不可定量收益 (3)3.3、收益/投资比 (3)3.4、投资回收周期 (3)3.5、经济可行性总结 (3)4、社会因素可行性分析 (3)4.1、法律因素可行性 (3)4.2、用户使用可行性 (4)四、系统需求分析 (4)1、系统所要达到的功能 (4)2、分层数据流图 (4)3、数据字典 (6)4、数据加工处理描述 (7)五、系统设计 (7)1、系统结构图设计 (7)2、输出设计 (9)3、存储文件格式设计 (10)4、用户界面设计 (10)5、关键模块详细设计 (13)5.1、输入项目 (13)5.2、输出项目 (13)5.3、程序流程图 (14)5.4、测试要点 (14)六、课程设计总结 (15)七、附系统相应程序代码(部分) (16)八、参考文献 (22)九、小组小结 (22)题目五、“实验室设备管理系统”一、设计所完成的任务要求1、设计所完成的任务本设计是针对于实验室设备管理而开发的一个用于实验室设备日常管理的软件,该软件每学年要对实验室设备使用情况进行统计、更新,其中:(1)对于已彻底损坏的作报废处理,同时详细记录有关信息。
(2)对于有严重问题(故障)的要即使修理,并记录修理日期、设备名、修理厂家、修理费、责任人等。
实验室设备管理系统设计[]
![实验室设备管理系统设计[]](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(文件指针,格式字符串,输出列表)。
高校实验室设备管理系统_课程设计

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
实验室设备管理系统课程设计

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

目录1 课程设计的目的 (2)2 课程设计名称及内容 (2)3 任务要求 (2)4 课程设计报告内容 (3)4.1流程图显示 (3)4.2程序实现思路 (6)5 程序演示 (9)6 总结 (14)参考文献 (14)附录(源代码) (15)实验室设备管理系统1、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C++程序设计语言》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。
(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序和修改程序。
2、课程设计名称及内容课程设计名称:实验室设备管理系统设计内容:编写一个简单的实验室设备管理程序,帮助管理实验室设备信息。
要求具有设备信息管理的功能。
其中包括设备信息的录入、删除、查询和修改等功能。
还应包括对实验室信息管理的功能。
其中包括对实验室信息的录入、删除、修改和查询等功能。
3、任务和要求运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
本题程序应提供的基本管理功能有:1)添加:即增加一条信息到设备信息中,或增加一条信息到实验室信息中;2)显示:即在屏幕上显示所有设备或实验室信息;3)存储:即将设备信息和实验室信息分别保存在文件中;4)装入:即将文件中的信息读入程序;5)查询:可根据设备名称查找具体情况,若找到,显示在屏幕上;6)修改:可修改设备信息,或对实验室信息进行修改。
实验室设备管理系统设计方案

实验室设备管理系统设计方案实验室设备治理系统设计信息学院名目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的实验室设备治理系统能够在几乎不增加额外劳动量的前提下,对实验室设备的治理工作起到大大的改善成效,更合理地分配及使用实验室设备。
实验室设备管理系统培训课程

实验室设备管理系统培训课程一、课程介绍实验室设备管理系统是一款用于实验室设备管理和维护的软件系统。
本课程将向您介绍如何使用实验室设备管理系统,包括系统的功能、操作流程以及使用技巧。
二、课程目标通过本课程的学习,您将能够掌握以下技能: 1. 熟悉实验室设备管理系统的基本功能; 2. 能够进行设备信息录入、查询和修改; 3. 能够进行设备维修申请和维修记录管理; 4. 能够生成设备维护报告和统计分析。
三、课程大纲本课程共分为三个模块,分别是系统概述、设备管理和维修管理。
3.1 系统概述本模块将向您介绍实验室设备管理系统的基本概念和功能。
3.1.1 系统简介在本节课中,我们将介绍实验室设备管理系统的概念和作用,以及该系统在实验室设备管理中的优势和重要性。
3.1.2 系统界面在本节课中,我们将介绍实验室设备管理系统的主要界面,包括登录界面、主界面和功能菜单。
3.2 设备管理本模块将向您介绍如何进行设备的录入、查询和修改。
3.2.1 设备录入在本节课中,我们将教您如何录入设备信息,包括设备名称、型号、数量等基本信息的录入。
3.2.2 设备查询在本节课中,我们将教您如何进行设备的查询操作,包括按照设备名称、型号等条件进行高级查询。
3.2.3 设备修改在本节课中,我们将教您如何对设备信息进行修改操作,包括设备名称、型号以及其他基本信息的修改。
3.3 维修管理本模块将向您介绍如何进行设备维修申请和维修记录管理。
3.3.1 维修申请在本节课中,我们将教您如何进行设备维修申请,包括填写维修申请表、提交维修申请等步骤。
3.3.2 维修记录管理在本节课中,我们将教您如何管理设备维修记录,包括查看维修记录、更新维修进度等操作。
3.4 统计分析本模块将向您介绍如何生成设备维护报告和进行统计分析。
3.4.1 设备维护报告在本节课中,我们将教您如何生成设备维护报告,包括设备维修记录、维修费用等内容的统计汇总。
3.4.2 统计分析在本节课中,我们将教您如何进行设备维修情况的统计分析,包括设备故障率、维修时间等指标的计算和分析。
实验室设备管理系统

任务书1、课程设计题目实验室设备管理系统2、设计任务和内容一个小型的实验室设备管理系统的主要目的是方便实验室管理人员进行有效的设备管理工作,该小型应用系统应能让实验室管理人员进行登记设备的新进、修理、报废借用、归还等信息。
并就对这些信息,进行相应的查询统计处理。
能够保证对实验室设备情况进行实时的反映。
本课题任务是开发一个小型的实验室设备管理系统,并撰写符合规范的课程设计说明书以体现设计过程和设计结果。
3、设计步骤和要求设计步骤:首先进行相关资料查阅和学习,了解基本的业务流程和系统数据功能要求。
然后结合软件工程的理论和教材中数据库设计的六个阶段(重点是前三个阶段)完成设计任务,即系统结构设计(需求分析、概念结构设计、逻辑结构设计、物理结构设计)和系统功能设计。
设计要求:1、撰写课程设计说明书。
其要求如下:(1)基本要求:①能反映完成了上述设计内容要求。
②要求撰写不少于5000个文字(20页)的文档。
③文档中至少要包括:数据流图、数据字典、E-R图、数据库表的详细说明、系统功能结构图、主要功能模块说明。
④课程设计说明书一律用碳素墨水书写,其中用户界面设计可以附界面的计算机截图或手工绘图。
(2)文档格式要求(遵循数据库原理及应用课程设计大纲上的要求)其中,正文部分:①分章、层次等,每一章从新一页开始。
②章节安排可如下安排.概述:包括项目背景、编写目的、软件定义、开发环境等内容。
.需求分析:问题陈述、需完成的功能。
以数据流图和数据字典表达。
.概念结构设计:将上述需求分析的成果抽象为ER模型图。
.逻辑结构设计:把ER模型图转换为关系表;描述每一个基本表关系。
并进行规范化;定义视图、定义索引、主关键字、定义权限。
.软件功能设计:画出系统功能结构图,描述每个功能所完成的任务。
.代码设计和界面设计:给出主要功能的代码并有适当的说明;界面设计要合理,给出主要界面。
2、一个可运行的实验室设备管理系统原型。
(根据学分制的实际情况该要求为部分专业学生的要求,其他专业学生为可选要求)教师签名:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理实训报告题目 _ 高校实验室设备管理系统__ 姓名王永强专业计算机科学与技术学号 ********* 指导教师郑睿信息工程学院二○一四年十二月目录1 前言 (1)1.1选题理由和实际意义 (1)1.2国内外关于该课题的研究现状及趋势 (1)2 需求分析 (3)2.1系统分析 (3)2.2系统需求 (3)2.2功能介绍 (4)3 系统设计 (5)3.1定义 (5)3.2系统模块图 (5)3.3 E-R图 (6)3.4数据表的设计 (6)3.5用例列举 (9)3.5.1数据表 (9)3.5.2视图 (10)3.5.3索引 (11)3.5.4存储过程 (12)3.5.5 触发器 (13)4总结 (14)5 参考文献 (16)6附录:读书笔记 (17)高校实验室设备管理系统分析报告1 前言1.1选题理由和实际意义实验室工作是高等教学工作中不可分割的一部分,也是培养学生工程创新能力的重要途径。
实验室管理的最终目的就是充分挖掘实验资源(设备、用房)的潜能,提高实验室设备的使用率和运行水平,激发实验人员的工作积极性,提高教学质量。
随着高等教育改革的不断发展,素质教育与创新人才的培养对高校实验室提出了越来越高的要求,特别是对高校实验室的管理水平提出了较高的要求。
由于历史和客观的原因,实验室结构单一,管理方式落后,查询设备信息复杂,资源利用率低,设备维修的信息传送的渠道不畅。
这些问题的存在严重制约了实验室的利用率,成为制约素质教育与创新人才培养的瓶颈问题。
这一问题若得不到及时有效的解决,素质教育、创新人才培养就难以落到实处。
计算机的出现为高校实验室仪器设备管理带来了全新的技术手段和方便、快捷的管理方法。
虽然目前市场上也有一些实验室仪器设备管理数据库软件,但这些软件不完全适合本校具体情况。
基于此,设计开发了符合我们自己高校实验室数据库设备管理系统。
1.2国内外关于该课题的研究现状及趋势近十几年来,我国各高校规模不断扩大,管理方式不断改变,同时在仪器设备管理方面取得了很大的进步。
许多高校已经开发出自己的设备信息管理系统,但仍然存在不足之处,不能适应新形势发展要求,主要体现在以下方面:(1)部分设备管理系统处于单机运行的阶段,无法适应信息时代信息充分共享和协同办公的需要。
各高校设备管理部门虽然都采用计算机进行管理,但大多是单机版,各部门之间的信息交流依然靠手工,管理人员要花费大量的时间用于处理用户查询等工作,这与高校的信息化进程快速发展不相适应。
设备资源信息封闭,不能实现设备信息公开、共享程度低。
(2)高校设备的管理存在着轻视管理和维护的弊端。
长期以来由于管理不善,大量的设备长期闲置,设备故障无人修理,直接影响仪器设备使用的效率,造成教育资源的严重浪费。
(3)一些设备管理系统虽然能够实现联网工作,但是功能单一,缺少信息互动和网络优化办公的优势。
虽然能实现联网工作,但是涉及面很小,管理效率低,缺乏系统性、广泛性和协同性的管理。
2 需求分析鉴于高校设备管理的现状以及设备管理信息化的要求,开展计算机辅助设备管理,并在此基础上为上级部门进行决策分析提供帮助,极大地提高了设备管理的工作水平和信息化水平。
2.1系统分析系统分析阶段开展的主要工作包括:收集和分析系统需求、提供系统说明书等。
系统需求分析就是通过系统调查,了解用户实际需求,进行系统分析,提炼出系统需求。
业务流程是系统设计的关键,要开发一个系统,必须确定系统的功能需求,这就必须先了解实际的业务流程,从业务流程中分析系统的需求。
设备信息是系统进行管理的主线,它描述了设备的基本情况,主要包括:设备名称、设备编号、分类号、型号、规格等;编码设计应完全符合国家信息标准。
系统工作流程主要是用户进行设备信息的入库以及维护处理。
不同权限的用户进行不同的工作操作,具有不同的工作流程。
2.2系统需求通常信息管理系统按照对信息的操作,将系统划分为:数据采集、数据处理、数据传输以及系统维护等功能组成部分。
所以,通过综合分析,本系统主要需求有:(1)设备基本信息的收集与处理;(2)设备基本信息的存储与维护;(3)能方便、快捷地上报设备信息;(4)能进行查询统计并形成各种有价值的信息;(5)具有一定的报表处理功能;(6)将共享的设备信息对外发布,实现浏览查询;(7)有辅助系统进行系统的管理与维护。
2.3功能介绍本系统的功能及特点:(1)实验室设备信息的管理:包括设备的记录的增加,修改,删除,查询。
(2)实验室设备信息的浏览查询:分为对设备信息的浏览和对设备信息的准确查询。
查询可以是不同字段的联合查询。
(3)设备事故记录:分为对设备事故的增加、设备事故的删除、设备事故的修改。
(4)设备的损坏管理:对设置的使用过程中遇到的设备损坏进行记录,并且修改相关联的数据信息。
(5)设备损坏信息浏览查询:实现对损坏设备信息的准确查询。
查询可以是不同字段的联合查询。
(6)设备类别设置:实验室的仪器分门别类,包括类别名称,类别数量,最低数量的设置。
(7)系统用户的管理:使用该系统的包括:管理员和实验课指导教师以及学生,管理员具有对实验课指导教师记录进行添加,修改,删除等操作权限。
3 系统设计3.1定义1、系统名称:实验室设备管理系统2、数据库管理软件:Microsoft SQL Server3、数据库设计采用软件:Microsoft Office Visio 20104、系统采用C/S体系结构:Client (客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server (服务器)端用于提供数据服务。
5、运行平台:windows 2000/xp/linux及以上操作系统6、数据库的安全性设计:数据库内设置不同的用户分别拥有不同的权限,登录用户可以对实验设备信息的浏览无权限修改、数据库用户设置不同的级别对应不同设备管理的权限、数据库角色分别设置不同的角色对各个级别用户的管理,以及权限的分配等.3.2系统模块图3.3 E-R图3.4数据表的设计采购员(工号,姓名,年龄,性别,联系方式,入厂日期)设备(设备编号,型号,设备名称,生产日期,购买日期,设备处号)设备管理员(工号,姓名,年龄,性别,联系方式,工作日期)员工(工号,姓名,年龄,性别,联系方式,工作日期)部门(部门号,名称,联系方式,设备处号)维修人员(工号,姓名,年龄,性别,联系方式,工作日期)申报(部门号,申报日期,设备型号,设备处号)采购(采购员员工号,数量,递交日期,清单编号)递交(设备处,数量,清单编号,递交日期)供应(供应商号,数量,供应日期,设备编号)分配(设备管理员工号,数量,分配日期,设备编号,部门号)报修(维修员工号,数量,报修日期,设备编号,部门号)分发(部门号,数量,分发日期,员工工号)报废(部门号,数量,报废日期,设备处号)3.5用例列举3.5.1数据表(1)采购员信息(purchase)Create table采购员信息(Pu.no char(20) not null primary key, char(20) not null,Pu.sex char(2) null,Pu.age smallint(4) null,Pu.tel char(11) null,Pu.date datetime not null)(2) 设备信息(device)Create table设备信息(De.no char(20),F.no char(20),primary key(De.no, F.no),De.type char(20) not null, char(20) not null,De.date Datetime,De.bdate Datetime)(3)设备管理员信息(tool keeper)Create table 设备管理员(To.no char(20) not null primary key, char(20) not null,To.sex char(2) null,To.age Smallint(4)null,To.tel char(11) null,To.date Datetime not null)(4) 报修关系(repair)Create table设备报修(M.no char(20) not null primary key,R.num char(10) not null,De.no char(20) not null,,D.no char(11) not null,R.date datetime not null)(5) 分配关系(allot)Create table 设备分配(D.no char(20) not null primary key,A.num char(10) not null,De.no char(20) not null,,To.no char(20) not null,A.date datetime not null)3.5.2视图(1)建立设备管理报修数量大于20视图描述:报修数量大于20的设备视图(数量,报修日期,设备编号,部门号)从报修表导出Create view 设备报修关系表AsSelect R.num, R.date, De.no, D.noFrom 报修表Where R.num>20;(2)建立设备名称为联想计算机的视图描述:设备名称为联想计算机视图(设备编号,型号,生产日期,购买日期)从设备信息表导出Create view 联想计算机信息表AsSelect De.no ,De.type, De.Date, De.bdateFrom 设备信息表Where =’联想计算机’;(3)建立通信部门分发设备视图描述:通信部门分发设备(数量,分发日期,员工工号)从分发关系表导出Create view 通信部门分发设备表AsSelect H.num, H.date, St.no,From 分发关系表Where D.no=’通信部门’;(4)建立女设备管理人员信息视图描述:女设备管理人员信息视图(工号,姓名,联系方式)从设备管理人员信息表导出Create view 女设备管理人员信息表AsSelect To.no, , To.telFrom 设备管理人员信息表Where To.sex =’女’;(5)建立信息部门报废设备视图描述:信息部门报废设备视图(数量,报废日期,设备处号)从报废关系表导出Create view 信息部门报废设备表AsSelect H.num, H.date, F.no,From 分发关系表Where D.no=’信息部门’3.5.3索引create unique index 设备管理_工号on设备管理人员信息(To.no);create unique index 设备型号_设备名称on设备信息表(De.type, );create cluster index 部门_名称on部门信息表();create unique index 分配部门_数量on分配关系表(H.num,D.no);create unique index 报废设备处_数量on报废关系表(F.no,H.num);3.5.4存储过程(1)查询设备管理人员create procedure proc1(@To.no char(20) )asdeclare @ char(20)select @ = from classywhere To.no =@ To.noif (@ is not null) print @ elseprint'查无此人' goexec proc1 '201101'select * from classy(2)设备添加create procedure proc2(@De.type char (10) ,@ De.no char (10) ,@ char (10) ,@ De.date Datetime,@ De.bdate Datetime ,@ F.no char(10))asinsert into 设备信息 values(@De.type, @ De.no,@ ,@ De.date,@ De.bdate, @ F.no) goexec proc2 '8086', '21','实验箱','20130202', '20130608','30'select * from 设备信息(3)对于报废关系表,报废数量增加10%的存储过程:create or replace procedure update 报废关系(E_ D.no E. D.no%type)isbeginupdate报废关系set H.num = H.num * 1.1where D.no=@ D.no;commitEnd update报废关系;(4)根据指定的员工工号删除员工信息表中相应的工作日期信息create or replace procedure del员工信息(St.no ES. St.no %type)isbegindelete from 员工信息where St.no=St.date;commit;end del员工信息3.5.5 触发器(1)不允许删除超级管理员信息create trigger tr1on 设备管理人员信息after deleteasdeclare @ char(20)select @ = from deletedif @ ='root'rollback(2)对设备信息表中插入一条记录时,自动显示记录内容create trigger tr2on 设备信息for insertasselect *from 设备信息4总结通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能算是学以致用,从而提高自己的实际动手能力和独立思考的能力。