图书管理系统设计报告个人部分样本
- 格式:doc
- 大小:1.24 MB
- 文档页数:53
个人书籍管理系统的设计与实现一、简介1.设计目的:进一步理解查找和排序在实际系统要使用的数据结构以及施加在这些数据结构上的算法,锻炼学生运用所学数据结构的知识来解决实际问题的综合能力。
2.问题的描述:学生在自己的学习和生活中会拥有很多的书籍,对所购买的书籍进行分类和统计是一种良好的习惯。
可以便于对这些知识资料的整理和查找使用。
如果用文件来存储相关书籍的各种信息,包括分类、购买日期、价格、简介等等,辅之以程序来使用这些文件对里面的书籍信息进行统计和查询的工作将使得这种书籍管理工作变的轻松而有趣。
简单个人书籍管理系统的开发就是为了解决这个实际问题的。
这个系统具备如下的功能:存储书籍各种相关信息。
提供查找功能,按照多种关键码查找需要的书籍,查找成功可以修改记录的相关项。
提供排序功能,按照多种关键码对所有的书籍进行排序,例如按照购买日期进行排序。
其他辅助的维护工作。
二、数据结构的设计:由于书籍的册数较多,而且要在程序不再运行的时候仍然要保持里面的数据,所以采用文件的形式放到存储器中。
需要操作时,从文件中调入内存来进行查找和排序的工作,为了接收文件中的内容,要有一个数据结构与之对应,可以采用这样的结构体数组来接收数据。
typedef struct{int year;int month;int day; //具体的购买日期}DATE;typedef struct{DATE date; //购买日期char name[20]; //书的名字char author[8]; //书的作者int type; //存放书的类别(0 计算机 1 物理 2 英语 3 数学)int num; //存放书的位置编号int price; //书的价格}BOOK;三、功能(函数)设计:1.“菜单”模块menu( ):此模块循环显示“请按键选择操作”命令菜单,接收键盘输入的命令,检查命令是否合法,若合法则调用相应下层函数,若不合法,则返回菜单,重新输入。
图书管理系统设计报告图书管理系统设计报告范文(通用6篇)在当下社会,需要使用报告的情况越来越多,报告中提到的所有信息应该是准确无误的。
那么,报告到底怎么写才合适呢?下面是小编整理的图书管理系统设计报告范文(通用6篇),仅供参考,希望能够帮助到大家。
图书管理系统设计报告1一、努力提高图书管理人员的素质,是做好图书管理的关键。
优秀的管理员本身就是教育学生的一面镜子。
作为图书管理人员,要努力提高自己的政治素质和业务水平,平日注意加强学习,熟练掌握较高水平的图书馆知识、外语知识、计算机技能和网络技术。
注意基础教育知识的广泛涉猎吸取,努力适应基本教育的要求,为学校的教育、教学管理提供优势的信息服务。
二、优化图书馆环境,提高学生的审美素质,是做好图书管理工作的前提。
图书馆对学生审美素质的影响主要靠环境和图书管理人员的语言来实现。
图书馆的整体形象和管理人员的言行举止都会不知不觉地给学生潜移默化。
图书馆整齐的书架、整洁的卫生和激人奋进的名人名言,体现出一种思想性与艺术性的统一,给人一种整体的艺术感,能陶冶人的情操,形成良好的审美意识。
在学校,图书馆的工作每时每刻都和学生直接发生联系,管理人员的一言一行和一举一动,服务态度是热情还是冷淡生硬,和蔼可亲还是拒人千里,耐心还是烦躁,语言文雅还是粗俗,都会直接给学生带来一定的影响,因此,图书馆员要用美的语言唤起读者共鸣,感化读者心灵,提高学生的审美素质。
三、突出为专业服务,是做好图书管理工作的一大特色。
图书室应根据中心教育、教学和教研工作的需要广泛采集相关图书资料。
图书资料的配备应以学生需求为主,兼顾教师。
图书馆的藏书,应当包括适合广大学员阅读的各类图书和报刊,供师生使用的工具书、教学参考书,教育教学研究的理论书籍和应用型的专业书籍。
四、最大限度地发挥图书室的育人功能,是做好图书管理工作的重点。
图书的选择和读书方法以及读书卫生知识等方面的指图书管理人员要根据学生实际,主动介绍一些与学习相关的书籍,引导学生把图书室作为自己的良师益友,激发学生的热情。
粒药招仲喂庙称盟世寇晶蒋敲崩仿具活捌怯虾刻步捂攀巳培克疵算谜纶榔宇暮咯噎努辊埃狂胸赎嗅猴剔挑狈详陛砾富藏迫岛复具驾腕周谴凄佩奎尘剿颐忍稍脓概啤妊护乔啮讶渤吭屠肛巾砧君别安爵来稍并览苦腥壬既畅谐臆茬柴毒租烤迄梆骑娩泽忿把调受硒堪遍鄂么耀睫幌亦劳曳醛稽疗驼谈陕痔掌苑宿净异旁狙赏某窝郊应借而觅慢祟仆尾洗涌竿卖倍苑退撬弟鸟峪娜瞎接以毡叹乐伞城仁枉肮尧蓝锁瞩火颂披钓拔诲纳保协篇核肛酪靠递尧疙敝野芦衡栏杉蜕茁涝抉娠色并祈文群你捞哆适颜柄脂消借咕擅冻砧词扑预擅危毙告峪癌嗅儿关隆到券糯牌贫幽绳钾借诊判零涧糠钳耕昨钥哇妙诸忿图书管理系统项目个人总结报告图书管理系统项目个人总结报告一、项目简介:进入21世纪以来,信息技术从根本上推动了图书馆的飞速发展,计算机和计算机管理系统已成为图书馆进行图书管理的主要设备和系统。
虽然目前很多大型的图书馆已经有一整套比较完善的管理系统,但是在一些中小型的图书馆中,大部分工作仍需手工完成,工作起来效率比较低,不便于动态、及时地调整图书结构。
为了更好地适应当前图书馆的管理需求,解决手工管理中存在的弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。
高校拥有一个小型图书馆,为全校师生提供一个阅读、学习的空间。
近年来,随着生源不断扩大,图书馆的规模也随之扩大,图书数量也相应地大量增加,有关图书的各种信息成倍增加。
面对如此庞大的信息量,校领导决定使用一套合理、有效、规范、实用的图书馆管理系统,对校内图书资料进行统一、集中的管理。
受高校的委托,开发一个图书馆管理系统,其开发宗旨是实现图书管理的系统化、规范化和自动化,达成图书资料集中、统一管理的目标。
个人在项目中承担的任务1.GUI设计和用户使用手册2.GUI设计图如下:用户使用手册部分内容:图书馆管理系统是图书馆管理工作中不可缺少的部分,它对于图书馆的管理者和使用者都非常重要,所以图书馆管理系统应该为管理者与读者提供充足的信息和快捷的数据处理手段,但长期以来,人们使用传统的人工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比较繁琐。
图书管理系统设计报告一、引言在当今信息化的社会中,图书管理系统的设计和实施对于图书馆和其他知识管理机构的高效运作至关重要。
本文旨在介绍一个完善的图书管理系统设计方案,以满足图书馆的管理需求,提高工作效率和用户体验。
二、系统设计方案1.系统结构本系统采用客户端-服务器架构,客户端通过互联网访问服务器端的数据库,实现对图书管理系统的各项功能操作。
服务器端负责数据存储和处理,客户端则为用户提供友好的界面和操作体验。
2.功能模块(1)图书查询模块:用户可以通过关键词搜索、分类检索、作者查找等方式快速找到所需图书信息。
(2)借阅管理模块:用户可在线办理图书借阅、还书手续,系统支持借阅期限管理、逾期罚款等功能。
(3)读者管理模块:包括读者注册、身份验证、权限管理等功能,确保图书管理系统的安全性和稳定性。
(4)统计报表模块:系统可生成借阅排行榜、热门图书统计、阅读趋势分析等报表,帮助管理员及时了解图书馆的运行情况。
3.技术选型本系统采用主流的前端技术HTML、CSS、JavaScript,后端采用Java语言开发,数据库使用MySQL。
同时,引入Spring、MyBatis等框架,确保系统的稳定性、扩展性和安全性。
三、系统实施方案1.系统部署系统部署在云服务器上,确保系统的24小时不间断运行。
同时设置定时备份、灾难恢复机制,以应对意外情况,并确保数据的完整性和安全性。
2.系统测试在系统实施前,进行全面的功能测试、性能测试、安全测试等,确保系统的稳定性和功能完整性。
同时邀请用户参与测试,收集用户反馈,不断改进系统的用户体验。
3.系统培训在系统上线前,对管理员和用户进行培训,教授操作技巧、管理方法,提高用户对系统的熟练度和使用效率。
四、总结通过本设计方案的实施,图书馆可以实现图书借阅管理的自动化、智能化,提高工作效率、提升服务质量。
希望本设计报告能为图书管理系统的设计和实施提供参考,推动图书馆信息化建设的进一步发展。
·计算机科学与技术专业13级《数据结构》课程设计报告学院:数学与计算机科学学院班级:计科13-1设计题目:图书管理系统姓名:元乾学号:1200313056037指导教师:郝继升目录一、设计任务 (3)1.设计目的 (3)2.问题描述 (3)3.设计基本要求 (3)二、本人任务 (4)三、功能简介 (4)四、主体容 (5)1.问题分析 (6)2.数据结构结构体定义 (6)3.算法设计及程序流程图 (8)1)主菜单 (8)2)登记读者 (9)3)借阅图书 (10)4)查询读者 (14)4.运行结果和调试分析 (15)五、附录 (23)参考文献 (24)六、心得体会 (24)一、设计任务Ⅰ、设计目的1、了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4、训练用系统的观点和软件开发一般规进行软件开发。
Ⅱ、问题描述设计一个计算机管理系统完成图书管理基本业务。
Ⅲ、设计基本要求1)每种书的登记容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。
进一步完成容:1)系统功能的进一步完善;2)索引表采用树表。
3)设计容4)程序流程图5)源程序6)软件测试报告(包括所用到的数据及结果)二、本人任务设计并编程图书管理中的主菜单、借阅、登记读者、查询读者共四个模块。
三、功能简介1)图书初始化输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。
2)新书入库新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。
陕西师范大学远程教育学院题目: java小型图书管理系统设计学习中心:陕西省咸阳教育科技培训学院学号:层次:高中起点专科姓名:党晨娜1.前言本系统是小型图书管理系统,专为个人设计。
本系统启动后需要登陆,然后进入主界在这个界面我们可以选择所需要的功能模块来完成所要执行的功能。
系统共有4个功能模块:图书入库、图书查询、图书删除、图书概览、修改密码。
支持一系列关于图书管理方面的简单操作,诸如查询、删除、添加、修改密码等。
2.系统流程图说明:首先是输入判断,相当于在登陆模块,要求用户输入用户名和密码;然后判断,如果判断失败退出系统,否则进入图书管理系统的主界面。
进入主界面后,用户要选择所需执行的功能,即通过鼠标点击相应项,来完成所需操作。
3.数据库设计在图书管理系统中,共设计2张表。
本系统使用Access来创建数据表。
数据库的名称为Book.mdb。
1.表book字段名称数据类型图书名文本图书号文本(主键)单价文本作者文本出版社文本入库时间文本2.表user字段名称数据类型用户名文本(主键)密码文本4.界面设计系统源码1登陆界面:程序名Login.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.Container;import java.util.*;import java.sql.*;class Login extends JFrame implements ActionListener { Container cp=null;JFrame f=null;JButton j1,j2;JTextField t1;JPasswordField t2;JLabel jlable1,jlable2;Color c;JPanel jp1,jp2;Login(){f=new JFrame("小型图书管理系统");j1=new JButton("确定");j2=new JButton("取消");cp=f.getContentPane();jlable1=new JLabel(" 输入用户名");jlable2=new JLabel(" 用户密码");jp1=new JPanel();jp2=new JPanel();t1=new JTextField(18);t2=new JPasswordField(18);jp1.add(jlable1);jp1.add(t1);jp1.add(jlable2);jp1.add(t2);JLabel JL=new JLabel("<html><font color=#CC00FF size='7'><i>欢迎登陆</i></font>",SwingConstants.CENTER);cp.add(JL,"North");jp2.add(j1);jp2.add(j2);cp.add(jp1,"Center");cp.add("South",jp2);jp1.setBackground(new Color(255,153,255));Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*///setSize(x,y); /*让系统窗口平铺整个显示器窗口*/f.setSize(300,300);int xcenter=(x-300)/2;int ycenter=(y-300)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//-----------------------------------------------------j1.addActionListener(this);//注册事件监听器j2.addActionListener(this);f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}public void confirm()//验证用户和密码是否存在{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件Connection con=DriverManager.getConnection(url);Statement sql=con.createStatement();String uname=t1.getText().trim();String Mima=t2.getText().trim();String queryMima="select * from user where 用户名='"+uname+"' and 密码='"+Mima+"'";ResultSet rs=sql.executeQuery(queryMima);if(rs.next()){new Book(uname);f.hide();con.close();}else{JOptionPane.showMessageDialog(null,"该用户不存在","提示!",JOptionPane.YES_NO_OPTION);}t1.setText("");t2.setText("");} catch(SQLException g){System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){confirm();}else if(cmd.equals("取消")){f.dispose();}}public static void main(String []arg){Login a=new Login();}}2图书概览:程序名BookBrower.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.Container;import java.util.*;import java.sql.*;class BookBrower implements ActionListener{JFrame f;Container cp;JPanel jpS,jpanelWest;JButton jbt1,jbt2;//按钮,查询、取消、修改JLabel label,L; //标签//定义文本框JTable table;//用来接收数据库中返回的信息Object columnName[]={"图书名","图书号","单价","作者","出版社","入库时间"}; Object ar[][] =new Object[80][6];String sno;String count="xx";BookBrower(){f=new JFrame();cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框jpS=new JPanel();jpanelWest=new JPanel();//------------------------------------------------jbt1=new JButton("确定");jbt2=new JButton("返回");//------------------------------------------------label=new JLabel("<html><font color=#CC00FF size='4'>图书概览</font>",SwingConstants.CENTER);label.setForeground(Color.blue);L=new JLabel("书库现在共有图书"+count+"本");//------------------------------------------------table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名JScrollPane scrollpane = new JScrollPane(table);//------------------------------------------------//布局,添加控件jpS.add(jbt1);jpS.add(jbt2);JPanel jpanel=new JPanel();jpanel.add(label);JPanel pp4=new JPanel();JPanel jpE=new JPanel();cp.add(jpanel,"North");JPanel jp=new JPanel();//jp.add(scrollpane);JPanel p=new JPanel();//用来放两个表p.setLayout(new BorderLayout());p.add(L,"North");p.add(scrollpane);cp.add(pp4,"West");cp.add(p,"Center");cp.add(jpS,"South");cp.add(jpE,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/f.setSize(400,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/* f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});*/}//------------------------------------------------int i=0;public void showRecord(){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件Connection con=DriverManager.getConnection(url);String s="select * from book ";Statement sql=con.createStatement();ResultSet rs=sql.executeQuery(s);while(rs.next()){String bname=rs.getString(1);String bno=rs.getString(2);String price=rs.getString(3);String writer=rs.getString(4);String publish=rs.getString(5);String indate=rs.getString(6);ar[i][0]=bname;ar[i][1]=bno;ar[i][2]=price;ar[i][3]=writer;ar[i][4]=publish;ar[i][5]=indate;i++;}count=""+i+"";L.setText("书库现在共有图书"+count+"本");f.repaint();con.close();}catch(SQLException g){System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){f.hide();}if(cmd.equals("返回"))f.hide();}public static void main(String []arg){BookBrower a=new BookBrower();a.showRecord();}}3图书查询:程序名QueryBook.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.Container;import java.util.*;import java.sql.*;class QueryBook implements ActionListener{JFrame f3;Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;JButton jbt1,jbt2;//按钮,确定、取消JLabel label; //标签:请输入图书号JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6; //定义文本框JLabel label1,label2,label3,label4;QueryBook(){f3=new JFrame();cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jpanelWest=new JPanel();jp=new JPanel();//------------------------------------------------jbt1=new JButton("确定");jbt2=new JButton("取消");//------------------------------------------------label=new JLabel("<html><font color=#CC00FF size='4'>请输入图书号:</font>",SwingConstants.CENTER);label.setForeground(Color.blue);tf=new JTextField(20);//------------------------------------------------tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);//------------------------------------------------//布局,添加控件JPanel jpanel=new JPanel();jpanel.add(label);jpanel.add(tf);JPanel pp4=new JPanel();JPanel jpane4=new JPanel();cp.add(jpanel,"North");JPanel pp2=new JPanel(new GridLayout(6,1));JPanel pp3=new JPanel();pp4.setLayout(new GridLayout(6,1));pp4.add(new JLabel("图书名",SwingConstants.CENTER));pp2.add(tf1);pp4.add(new JLabel("图书号",SwingConstants.CENTER));pp2.add(tf2);pp4.add(new JLabel("单价",SwingConstants.CENTER));pp2.add(tf3);pp4.add(new JLabel("作者",SwingConstants.CENTER));pp2.add(tf4);pp4.add(new JLabel("出版社",SwingConstants.CENTER));pp2.add(tf5);pp4.add(new JLabel("入库时间",SwingConstants.CENTER));pp2.add(tf6);pp3.add(jbt1);pp3.add(jbt2);cp.add(pp4,"West");cp.add(pp2,"Center");cp.add(pp3,"South");cp.add(jpane4,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/ f3.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/f3.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/*f3.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});*/}//------------------------------------------------public void showRecord(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件Connection con=DriverManager.getConnection(url);Statement sql;String ql=tf.getText().trim();String s="select * from book where 图书号 ='"+ql +"'";sql=con.createStatement();ResultSet rs=sql.executeQuery(s);if(rs.next()){String bname=rs.getString(1);String bno=rs.getString(2);String price=rs.getString(3);String writer=rs.getString(4);String publish=rs.getString(5);String indate=rs.getString(6);tf1.setText(bname);tf2.setText(bno);tf3.setText(price);tf4.setText(writer);tf5.setText(publish);tf6.setText(indate);}else{JOptionPane.showMessageDialog(null,"您输入的图书号不存在,请重新输入","输入错误", JOptionPane.YES_NO_OPTION);}con.close();}catch(SQLException g){System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}tf1.setEditable(false);tf2.setEditable(false);tf3.setEditable(false);tf4.setEditable(false);tf5.setEditable(false);tf6.setEditable(false);}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){showRecord();tf.setText("");}else if(cmd.equals("取消"))f3.hide();}public static void main(String []arg){QueryBook a=new QueryBook();}}4图书删除:程序名RemoveBook.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.Container;import java.util.*;import java.sql.*;class RemoveBook implements ActionListener{JFrame f;Container cp;JPanel jpS,jpanelWest;JButton jbt1,jbt2,jbt3;//按钮,查询、取消、修改JLabel label,L; //标签:请输入学号JTextField tf; //定义文本框JTable table;//用来接收数据库中返回的信息Object columnName[]={"图书名","图书号","单价","作者","出版社","入库时间"}; Object ar[][] =new Object[80][6];String sno;String count="xx";RemoveBook(){f=new JFrame();cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框jpS=new JPanel();jpanelWest=new JPanel();//------------------------------------------------jbt1=new JButton("查询");jbt2=new JButton("取消");jbt3=new JButton("删除");//------------------------------------------------label=new JLabel("<html><font color=#CC00FF size='4'>请输入要删除的图书名:</font>",SwingConstants.CENTER);label.setForeground(Color.blue);L=new JLabel("该种图书共有"+count+"本");//------------------------------------------------table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名JScrollPane scrollpane = new JScrollPane(table);//------------------------------------------------tf=new JTextField(18);//------------------------------------------------//------------------------------------------------//布局,添加控件jpS.add(jbt1);jpS.add(jbt2);jpS.add(jbt3);JPanel jpanel=new JPanel();jpanel.add(label);jpanel.add(tf);JPanel pp4=new JPanel();JPanel jpE=new JPanel();cp.add(jpanel,"North");JPanel jp=new JPanel();//jp.add(scrollpane);JPanel p=new JPanel();//用来放两个表p.setLayout(new BorderLayout());p.add(L,"North");p.add(scrollpane);cp.add(pp4,"West");cp.add(p,"Center");cp.add(jpS,"South");cp.add(jpE,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/f.setSize(400,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);jbt3.addActionListener(this);/*f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});*/}//------------------------------------------------int i=0;public void showRecord(String ql){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";i--;}i=0;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件Connection con=DriverManager.getConnection(url);Statement sql;String s="select * from book where 图书名 ='"+ql +"'";sql=con.createStatement();ResultSet rs=sql.executeQuery(s);while(rs.next()){String bname=rs.getString(1);String bno=rs.getString(2);String price=rs.getString(3);String writer=rs.getString(4);String publish=rs.getString(5);String indate=rs.getString(6);ar[i][0]=bname;ar[i][1]=bno;ar[i][2]=price;ar[i][3]=writer;ar[i][4]=publish;ar[i][5]=indate;i++;}count=""+i+"";L.setText("该种图书共有"+count+"本");f.repaint();con.close();System.out.println(ar[0][1]);}catch(SQLException g){System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void deleteRecord(int index){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件Connection con=DriverManager.getConnection(url);Statement sql;String ql=(String)(ar[index][1]);String s="delete * from book where 图书号 ='"+ql +"'";sql=con.createStatement();int del=sql.executeUpdate(s);if(del==1){JOptionPane.showMessageDialog(null,"删除成功!","信息", JOptionPane.YES_NO_OPTION);}con.close();f.repaint();}catch(SQLException g){System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void actionPerformed(ActionEvent e){String remember="";String ql="";String cmd=e.getActionCommand();if(cmd.equals("查询")){ql=tf.getText().trim();remember=ql;showRecord(ql);}if(cmd.equals("删除")){int index=table.getSelectedRow();if( index==-1)JOptionPane.showMessageDialog(null,"请选定要删除的表格行","输入错误", JOptionPane.YES_NO_OPTION);else{deleteRecord(index);//showRecord(remember);}}if(cmd.equals("取消"))f.hide();}public static void main(String []arg){RemoveBook a=new RemoveBook();}}5图书入库:程序名BookIn.javaimport java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.Container;import java.util.*;import java.sql.*;import javax.swing.text.JTextComponent;//extends JFrameclass BookIn implements ActionListener{JFrame f3;Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;JButton jbt1,jbt2;//按钮:确定、取消、JLabel label; //标签JTextField tf1,tf2,tf3,tf4,tf5,tf6; //定义文本框JLabel label1,label2,label3,label4;String sno;BookIn(){f3=new JFrame();cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jpanelWest=new JPanel();jp=new JPanel();//------------------------------------------------jbt1=new JButton("确定");jbt2=new JButton("取消");//------------------------------------------------label=new JLabel("<html><font color=#CC00FF size='4'>图书入库</font>",SwingConstants.CENTER);label.setForeground(Color.blue);//------------------------------------------------tf1=new JTextField(20);tf2=new JTextField(20);tf3=new JTextField(20);tf4=new JTextField(20);tf5=new JTextField(20);tf6=new JTextField(20);//------------------------------------------------//布局,添加控件jp1.add(jbt1);jp1.add(jbt2);sno=tf4.getText();jp1.add(new JLabel("您好"+sno+"欢迎登陆学生信息系统"));JPanel jpanel=new JPanel();jpanel.add(label);JPanel pp4=new JPanel();JPanel jpane4=new JPanel();cp.add(jpanel,"North");JPanel pp2=new JPanel(new GridLayout(6,1));JPanel pp3=new JPanel();pp4.setLayout(new GridLayout(6,1));pp4.add(new JLabel("图书名",SwingConstants.CENTER));pp2.add(tf1);pp4.add(new JLabel("图书号",SwingConstants.CENTER));pp2.add(tf2);pp4.add(new JLabel("单价",SwingConstants.CENTER));pp2.add(tf3);pp4.add(new JLabel("作者",SwingConstants.CENTER));pp2.add(tf4);pp4.add(new JLabel("出版社",SwingConstants.CENTER));pp2.add(tf5);pp4.add(new JLabel("入库时间",SwingConstants.CENTER));pp2.add(tf6);pp3.add(jbt1);pp3.add(jbt2);cp.add(pp4,"West");cp.add(pp2,"Center");cp.add(pp3,"South");cp.add(jpane4,"East");//------------------------------------------------Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/ f3.setSize(350,330);int xcenter=(x-350)/2;int ycenter=(y-330)/2;f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/f3.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/*f3.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});*/}//------------------------------------------------public void insertRecord(){if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("") ||tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals("")) {JOptionPane.showMessageDialog(f3,"请填写图书资料");return;}try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}try{String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件Connection con=DriverManager.getConnection(url);Statement sql;String s="insert into book values('"+tf1.getText()+"','"+tf2.getText()+"','"+tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+" ');";//查询输入的图书号是否在数据库中存在String query="select * from book where 图书号='"+tf2.getText()+"'";sql=con.createStatement();ResultSet rs=sql.executeQuery(query);//返回查询结果集boolean moreRecords=rs.next();//判断结果集是否有数据if(moreRecords){JOptionPane.showMessageDialog(f3,"图书号已经被使用,请重新输入");con.close();tf2.setText("");return;}int insert=sql.executeUpdate(s);if(insert==1){JOptionPane.showMessageDialog(null,"图书信息录入成功!");tf1.setText("");tf2.setText("");tf3.setText("");tf4.setText("");tf5.setText("");tf6.setText("");}}catch(SQLException g){System.out.println("E Code"+g.getErrorCode());System.out.println("E M"+g.getMessage());}}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("确定")){insertRecord();}else if(cmd.equals("取消"))f3.hide();}public static void main(String []arg){BookIn a=new BookIn();}}6主界面:程序名Book.java/*本类为用户界面*/import .*;import java.sql.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;import java.util.*;class Book extends JFrame implements ActionListener{JButton QueryScore=new JButton("图书查询");JButton QueryXuefen=new JButton("图书入库");JButton jiangfa=new JButton("图书删除");JButton xuanke=new JButton("图书概览");JButton gaiMima=new JButton("修改密码");JMenuBar mb = new JMenuBar();//菜单栏JPanel jp=new JPanel();//用来填放子模块Container cp=getContentPane();String username;Book(){}Book(String username){ername=username;mb.add(QueryScore);mb.add(QueryXuefen);mb.add(jiangfa);mb.add(xuanke);mb.add(gaiMima);cp.add(mb,"North");// 设置边框jp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue, 2),null,TitledBorder.CENTER, TitledBorder.TOP));jp.setLayout(new BorderLayout());JLabel label1 = new JLabel(new ImageIcon("4.jpg"));jp.add(label1);/* JLabel JL=new JLabel("<html><font color=#CC00FF size='7'><i>欢迎登陆</i></font>",SwingConstants.CENTER);jp.add(JL,"North");*/JLabel label2 = new JLabel(new ImageIcon("2.jpg"));//jp.add(label2,"South");JScrollPane scrollpane=new JScrollPane(jp);cp.add(scrollpane);setTitle("欢迎登陆");Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width; /*取得显示器窗口的宽度*/int y=screen.height; /*取得显示器窗口的高度*/ //setSize(x,y); /*让系统窗口平铺整个显示器窗口*/setSize(600,600);int xcenter=(x-600)/2;int ycenter=(y-600)/2;setLocation(xcenter,ycenter);/*显示在窗口中央*/setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//注册临听器QueryScore.addActionListener(this);QueryXuefen.addActionListener(this);jiangfa.addActionListener(this);xuanke.addActionListener(this);gaiMima.addActionListener(this);}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if (cmd.equals("图书查询")){new QueryBook();}if (cmd.equals("图书入库")){new BookIn();}if (cmd.equals("图书删除")){new RemoveBook();}if (cmd.equals("图书概览")){new BookBrower().showRecord();}if (cmd.equals("修改密码")){new UpdateMima(username);}}public static void main(String[]args){new Book("");}}7.密码修改:程序名UpdateMima.javaimport .*;import java.sql.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing.*;class UpdateMima extends JFrame implements ActionListener {JFrame f;Container cp;JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;JButton jbt1,jbt2;//按钮,确定、取消JLabel label; //标签:修改密码JTextField name;JPasswordField tf1,tf2,tf3; //定义文本框JLabel label1,label2,label3,label4;String sno;UpdateMima(){}UpdateMima(String username){sno=username;f=new JFrame();cp=f.getContentPane(); // 初始化jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jpanelWest=new JPanel();jp=new JPanel();//------------------------------------------------jbt1=new JButton("确定");jbt2=new JButton("取消");//------------------------------------------------label=new JLabel("<html><font color=#CC00FF size='4'>修改密码</font>",SwingConstants.CENTER);label.setForeground(Color.blue);label.setFont(new Font("BOLD",Font.BOLD,15));name=new JTextField(20);//name.setEditable(false);//------------------------------------------------tf1=new JPasswordField(20);tf2=new JPasswordField(20);tf3=new JPasswordField(20);//------------------------------------------------//布局,添加控件jp1.add(jbt1);jp1.add(jbt2);jp1.add(new JLabel("您好"+"xx"+"欢迎登陆学生信息系统"));JPanel jpanel=new JPanel();jpanel.add(label);JPanel pp4=new JPanel();JPanel jpane4=new JPanel();cp.add(jpanel,"North");JPanel pp2=new JPanel(new GridLayout(6,1));JPanel pp3=new JPanel();pp4.setLayout(new GridLayout(6,1));pp4.add(new JLabel("用户名: ",SwingConstants.RIGHT));pp2.add(name);pp4.add(new JLabel("原密码: ",SwingConstants.RIGHT));pp2.add(tf1);pp4.add(new JLabel(" 新密码: ",SwingConstants.RIGHT));。
1.21世纪以来,人类经济高速发展,人们的生活发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。
使原本的旧的管理方法越来越不适应现在社会的发展。
许多人还停留在以前的跑书店买需要的图书。
这大大地阻碍了人类经济的发展。
为了适应现代社会人们高度强烈的时间观念,网上书店为大家带来了极大的方便。
我所开发的这个网站所采用的是当前较为流行的软件Visual Studio2010和access2007实现的。
网站建立过程中由于自身能力问题,还存在一些不尽如人意的地方。
例如题目要求的查找图书几经周折还是没有实现。
建立的网站还不够美观。
说到优点,我们建立的网站简约而不简单,操作容易。
易于初学者上手,面向读者时易于被读者接受。
2.制作过程中的问题以及解决方法:(1)页面连接Access数据库,调试结果出现“数据库已被独占” 这是数据库文件的权限问题,为数据库文件添加everyone的读写权限。
(2)根据“where=日期型”做select时,总是无返回结果。
投机方法,将查询条件的“=”换成“like”。
(3)在后台代码中为某些控件的width属性赋值,设置width时,由于某些属性默认采用的单位是webcontrols.unit,而不是int,可用Pixel方法:imgtemp.Width = Unit.Pixel(100)(4)图片存入数据库的简单代码,上载时选择本地文件的实现可能用现成的控件,即:<input type="file" runat="server">(5)制作细线表格。
把表格的cellspacing设置为1,cellpadding和border均为0,分别填充表格的背景色和单元格的背景色。
举例如下:<table border="0" cellspacing="1" cellpadding="0" bgcolor="#87a4c5"><tr><td height=26 width=120 bgcolor=”white”></td></tr></table>则出现淡蓝色细框,效果较好(6)向数据库中添加,修改,删除信息时出现错误:"操作必须使用一个可更新的查询。
《高级程序设计语言》图书管理系统个人报告学院:国土资源工程学院专业:测绘工程姓名:学号:指导教师:***日期:2014年11月5日在学习《高级程序语言设计》这门课的过程中,通过黄老师的讲解,我深深地认识到了数据库的重要性,它对大宗数据的管理处处体现着快捷,方便的特点,而对数据库的操作最好在联网的条件下进行,因此我又新学了C#.net,以增进自己的知识,进行软件的开发,由于时间短,任务重,自己在编写程序的过程中遇到了很多困难,有些问题自己通过查找资料解决了,而有些问题则仍没有解决掉,我将在以后的学习过程中慢慢去摸索,慢慢去解决,下面我汇报一下自己在编写这个软件过程中所做的工作:一前期准备(1)了解图书管理系统的现状及发展;(2)学习C#程序设计语言;(3)学习SQL数据库语言;(4)编写《图书管理系统需求分析》;二主要进行的工作(1)分析表数据及表结构,进行数据库的开发;(2)按需求分析,应用vs2008 windows窗体应用程序设计登录,注册,管理员及普通主要操作页面,并编写主要代码;(3)调试程序,并进行代码的修改;(4)编写《图书管理系统设计报告》三经验教训图书管理系统是我编写的第一个项目,也是目前投入精力最多的项目。
在这个项目中投入精力最多的是表格逻辑关系编写、在程序里对表格数据的提取及处理,这个过程中不仅对相关知识有了一定的丰富和提高,还对以后进行相关软件的开发奠定部分基础。
在后期对系统进行优化和修改的过程中,不断的学习,使得该系统从当初的Bug多的状况得到了明显的改善。
四程序上的收获刚开始写的时候,代码写的极不规范,该加注释的地方也不加注释,后来在学习的过程中,一点一点的改进,并学会了一些简单、方便、容易实现的编程方法,另外,相似代码过多,代码重复严重,增加工作负担,以后应学写全局类文件,在适当的时候调用全局类和局部类文件,减轻工作负担五展望未来通过调试,自己发现软件中还存在不少Bug,由于时间紧,任务重,加上自己在C#和数据库方面刚刚入门,能力不足,因此未来得及修改,望黄老师见谅,我以后一定会在这方面继续努力,不断地深入学习,逐步完善自己的编程知识注:编写的代码已附在《图书管理系统设计报告》中。
简易图书管理系统设计报告1. 引言本报告旨在设计一款简易的图书管理系统,以满足用户对图书的管理、查询和借阅等需求。
本系统设计在功能上主要包括图书的添加、删除、查询和借阅等,为读者和图书管理员提供便捷的操作方式。
2. 系统需求分析2.1 功能需求本系统主要实现以下功能:1. 图书的添加与删除:图书管理员可以通过系统界面添加新的图书,也可以根据特定条件删除已有图书。
2. 图书的查询与展示:读者可以通过系统界面按关键字、作者、分类等条件进行图书的查询,并展示查询结果。
3. 图书的借阅与归还:读者可以通过系统界面借阅图书,并在归还时进行操作。
2.2 非功能需求1. 界面友好:系统的操作界面需要简洁明了,方便用户使用。
2. 响应及时:系统对用户的操作需求需要能够迅速响应,并给予相应的反馈。
3. 安全可靠:系统需要保护用户的个人信息和借阅信息不被非法获取或篡改。
3. 系统设计方案3.1 数据库设计本系统的数据库主要包括两个表:图书表和借阅记录表。
图书表的字段包括:图书编号、图书名称、作者、出版社、分类等。
借阅记录表的字段包括:借阅编号、读者编号、图书编号、借阅日期、归还日期等。
3.2 系统架构设计本系统采用客户端-服务器(C/S)架构模式。
客户端部分包括图书管理员端和读者端,服务器部分包括业务逻辑层和数据访问层。
- 业务逻辑层负责处理客户端请求,进行逻辑计算和数据处理。
- 数据访问层负责与数据库进行数据交互。
3.3 GUI设计本系统的图形用户界面(GUI)分为图书管理员界面和读者界面两部分。
图书管理员界面包括以下几个功能按钮:添加图书、删除图书、查询图书。
读者界面包括以下几个功能按钮:借书、还书、查询图书。
4. 系统实现4.1 开发工具本系统的开发使用以下工具:Java语言、MySQL数据库、Eclipse 集成开发环境(IDE)。
4.2 实现步骤1. 建立数据库:使用MySQL创建两个表格,分别为图书表和借阅记录表。
图书管理系统报告题目: 图书管理系统:学生专业: 计算机信息管理班级: 信管1202班:信息工程学院目录摘要 (3)Abstract (4)引言 (5)第一章系统开发的意义和目的 (7)1.1 图书管理的现状 (7)1.2 系统开发意义 (7)1.3 系统开发目的 (8)1.4 项目背景 (9)1.5 技术简介 (10)第二章可行性分析 (11)2.1 技术可行性 (11)2.2 经济可行性 (13)2.3 操作可行性 (13)第三章需求分析 (14)3.1 图书馆管理系统需求概述 (14)3.2 功能需求 (14)3.2.1 与读者相关的基本功能元素 (14)3.2.2 与管理员相关的基本功能元素 (15)3.2.3 总体系统的基本功能元素 (15)3.3 性能需求 (16)3.3.1 人身和环境安全性需求 (16)3.3.2 易用性 (16)第四章系统分析 (17)4.1 图书馆管理系统设计指导思想和原则 (17)4.2 图书馆管理系统总体功能概述 (17)4.3 图书馆管理系统各功能模块概述 (18)4.3.1系统登录模块 (18)4.3.2 图书管理模块 (19)4.3.3 学生管理模块 (21)4.3.4 借阅信息管理模块 (23)4.3.5 图书检索模块 (24)4.4系统数据库设计 (26)4.4.1 概念结构设计 (26)4.5 数据逻辑结构设计 (27)第五章系统测试 (31)结束语 (31)摘要随着人类社会的发展, 人类对知识的需求也不断地增长。
在这种形势下, 书籍就渐渐的成为人们获取并增长知识的主要途径, 而图书馆、图书室就自然而然的成为人们获取知识的重要场所。
如何更科学、更高效的管理图书信息就成为十分重要且迫在眉睫的工作, 因此开发图书管理系统就必不可少了。
图书管理系统是学校管理机制中的重要组成部分, 通过对图书馆管理系统的运行管理机制进行调查和研究, 开发了此图书馆管理系统。
·计算机科学与技术专业13级《数据构造》课程设计报告学院:数学与计算机科学学院班级:计科13-1设计题目:图书管理系统姓名:元乾学号:指引教师:郝继升目录一、设计任务 (3)1.设计目 (3)2.问题描述 (3)3.设计基本规定 (3)二、本人任务 (4)三、功能简介 (4)四、主体内容 (5)1.问题分析 (6)2.数据构造构造体定义 (6)3.算法设计及程序流程图 (8)1)主菜单 (8)2)登记读者 (9)3)借阅图书 (10)4)查询读者 (14)4.运营成果和调试分析 (15)五、附录 (23)参照文献 (24)六、心得体会 (24)一、设计任务Ⅰ、设计目1、理解并掌握数据构造与算法设计办法,具备初步独立分析和设计能力;2、初步掌握软件开发过程问题分析、系统设计、程序编码、测试等基本办法和技能;3、提高综合运用所学理论知识和办法独立分析和解决问题能力;4、训练用系统观点和软件开发普通规范进行软件开发。
Ⅱ、问题描述设计一种计算机管理系统完毕图书管理基本业务。
Ⅲ、设计基本规定1)每种书登记内容涉及书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统重要功能如下:*采编入库:新购一种书,拟定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增长;*借阅:如果一种书现存量不不大于0,则借出一本,登记借阅者书证号和归还期限,变化现存量;*归还:注销对借阅者登记,变化该书现存量。
进一步完毕内容:1)系统功能进一步完善;2)索引表采用树表。
3)设计内容4)程序流程图5)源程序6)软件测试报告(涉及所用到数据及成果)二、本人任务设计并编程图书管理中主菜单、借阅、登记读者、查询读者共四个模块。
三、功能简介1)图书初始化输入图书某些信息,编号、作者、书名、数量,使有一定库存。
2)新书入库新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。
3)添加读者信息读者信息初始化,输入读书证号和姓名,只有输入书证号和姓名才干进行借书还书4)借书模块读者输入读书证号,证号存在输入要借图书编号,不能借同一本书,如果借书数量以达到最大也不能借书。
5)还书模块归还已借图书,要先输入读者书证号,书证号存在继续输入要还图书编号,图书编号存在并且借来此书,归还成功。
6)查询图书信息7)查询读者信息可查询读者姓名书证号,借了几本书,都是什么书和还书日期,还可以借几本书。
8)退出退出读书管理系统并保存读者和图书信息。
四、主体内容图书管理系统总体状况如下图:这个系统重要有四大模块,图书管理模块、读者管理模块、借阅操作模块、查询操作模块。
每个模块下又有几种分支模块。
1.问题分析主菜单模块需要设计一种可供选取界面,在界面中通过选取不同按键来实现不同功能。
登记读者模块需要可以记录学生书证号以及学生姓名。
借书模块中学生可以通过书证号和所需要借书编号来借书,借书完毕后图书数量减少。
查询读者模块需要随着读者借书、还书不断变化,总是能显示出当前读者精确信息。
2.数据构造构造体定义图书文献:typedef struct book{char book_num[10];char book_name[20];定义图书编号,名称,作者,char book_writer[10];既有以及库存数量int book_xy;int book_kc;struct book *next;定义图书构造体}BK;数据记录借阅文献:typedef struct borrow{char borrow_book_num[10];定义借阅图书编号以char limit_date[8];及还书日期}BO;数据记录读者文献:typedef struct reader{char reader_num[10];定义读者书证号以char reader_name[10];及读者姓名int right;BO borrow[Max];借书最大数量struct reader *next;定义读者构造体}RD;数据记录3.算法设计及程序流程图进入系统后,显示功能列表,可选取任意系统。
①主菜单:程序流程图:源程序:int Menu() /*主菜单*/{ int dm;printf("\n\t\t图书管理系统主菜单\n");printf("=================================================\n"); printf("*\t0----退出系统 \n");printf("*\t1----采编入库 \n");printf("*\t2----登记读者 \n");printf("*\t3----借阅登记 \n");printf("*\t4----还书管理 \n");printf("*\t5----查询图书信息 \n");printf("*\t6----查询读者信息 \n");printf("=================================================\n"); printf("请选取相应代码:");for(;;){ scanf("%d",&dm);//dm输入数字if(dm<0||dm>6)printf("\n错误!请重新输入:");else break;}return dm;}void Menu_select()/*主菜单选取函数*/ {for(;;){switch(Menu()) /*功能选取*/{ case 0:system("cls");Save();printf("\n\n\t文献保存成功!\n");printf("\n\n\t欢迎下次使用本系统!\n"); getch();exit(0);case 1:Insert_New_Book();break;case 2:add_reader();break;case 3:Borrow_Book();break;case 4:Return_Book();break;case 5:Print_book();break;case 6:Print_reader();break;default:printf("\n错误!");exit(0);}}}②登记读者:源程序:void add_reader()/*添加读者*/{ RD *p0;int i;printf("\n读者初始化开始,请输入读者信息..\n涉及书证号.姓名..\n");p0=(RD*)malloc(sizeof(RD)); /*申请新结点存储空间*/h_reader=p0;printf("\n请输入读者信息:\n");printf("读者书证号:");scanf("%s",p0->reader_num);printf("读者姓名:");scanf("%s",p0->reader_name);p0->right=0;for(i=0;i<Max;i++){strcpy(p0->borrow[i].borrow_book_num,"0");/*所借图书直接置为(即没有借书)*/strcpy(p0->borrow[i].limit_date,"0");}p0->next=NULL;printf("\n读者信息初始化完毕!按任意键继续下一步操作..\n"); getch();system("cls");}源程序:void Borrow_Book() /*借书模块*/{BK *p0;RD *p1;char bo_num[10],rea_num[10],lim_date[8];int i;p0=h_book;p1=h_reader;printf("\n借书模块...\n");printf("\n请输入借书读者书证号:");scanf("%s",rea_num);while(p1->next!=NULL&&strcmp(rea_num,p1->reader_num)!=0) p1=p1->next;if(p1->next==NULL&&strcmp(rea_num,p1->reader_num)!=0) {printf("\n此读者编号不存在!按任意键返回..\n");goto END;}printf("\n请输入你要借书编号:");scanf("%s",bo_num);while(strcmp(bo_num,p0->book_num)!=0&&p0->next!=NULL) p0=p0->next;if(p0->next==NULL&&strcmp(bo_num,p0->book_num)!=0) {printf("\n此图书编号不存在!按任意键返回..\n");goto END;}else if(p0->book_xy<=0){printf("\n抱歉,此书已借完!请等待新书到来!!\n按任意键返回....");goto END;}else if(p1->right>Max||p1->right==Max){printf("\n不好意思,借书数目已满!不能借书!\n按任意键返回...."); goto END;}else if(strcmp(p1->borrow[0].borrow_book_num,"0")!=0){for(i=0;i<Max;i++){if(strcmp(p1->borrow[i].borrow_book_num,bo_num)==0){printf("\n抱歉!同一种读者不能同借两本相似书!\n按任意键返回....");goto END;}else if(strcmp(p1->borrow[i].borrow_book_num,"0")==0){printf("\n请输入你要归还图书日期:");scanf("%s",lim_date);strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); strcpy(p1->borrow[p1->right-1].limit_date,lim_date);p0->book_xy--;p0->book_kc--;printf("\n读者编号%s借书完毕!按任意键继续下步操作..",p1->reader_num);goto END;}}}else{printf("\n请输入你要归还图书日期:");scanf("%s",lim_date);strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); strcpy(p1->borrow[p1->right-1].limit_date ,lim_date );p0->book_xy--;p0->book_kc--;printf("\n读者编号%s借书完毕!按任意键继续下步操作..",p1->reader_num);}END:getch();system("cls");}void Print_reader() /*查询读者信息*/ {RD *p;int i;p=h_reader;printf("\n读者信息如下:\n\n");printf("读者书证号\t\t读者姓名\n");printf("\n");while(p!=NULL){printf("\t%s\t\t%s",p->reader_num,p->reader_name); for(i=0;i<Max;i++){printf("\n");printf("图书编号",i+1);printf("\t还书日期",i+1);printf("\n");printf("\t%s",p->borrow[i].borrow_book_num);printf("\t\t%s",p->borrow[i].limit_date);}printf("\n");p=p->next;}printf("\n读者信息打印完毕!按任意键继续下一步操作.."); getch();system("cls");}4.运营成果和调试分析同一本新书入库运营成果图不同新书采编入库采编入库后查询图书信息运营成果图登记读者信息借书借书后查询图书信息运营成果图借同一本书运营成果图借不同书借两本书后查询读者信息运营成果图还书运营成果图还书之后再查询读者信息运营成果图还书后查询图书信息退出5.附录void Login()进入界面函数int Menu()主菜单函数void Init()初始化函数void Init_book()初始化图书信息函数void Menu_select()主菜单选取函数void Find_Book()查找图书函数void Insert_New_Book()新书入库函数void add_reader()添加读者函数void Print_reader()查询读者信息函数void Print_book()查询图书信息函数void Borrow_Book()借书函数void Return_Book()还书函数void Save()保存信息函数void Save_Book()保存图书信息函数vo id Save_Reader()保存读者信息函数void Load()加载信息函数void Load_Reader() 加载读者信息void Load_Book() 加载图书信息参照文献:C语言程序设计(何钦铭版)数据构造(耿国华版)数据构造课程设计(苏仕华版)六、心得体会本次课程设计,使我对《数据构造》这门课程有了更进一步理解。