c++图书管理系统实验报告+源代码

c++图书管理系统实验报告+源代码
c++图书管理系统实验报告+源代码

1 设计任务

1.1 设计目的

运用所学知识,完成图书馆管理系统,通过实践加强对所学知识的理解和巩固

1.2设计内容

建立图书馆管理系统,用户分为图书管理人员,读者。管理人员可以增加删除查看图书、读者。读者只能查看自身信息,和借还书

1.3设计指标或者要求

管理人员可以访问任意图书和读者,而读者只能借还图书馆存在的图书和查看自己的信息。

2 设计过程

分析:由于管理系统用户有图书管理员和读者,但两者的权限不同,管理员有权访问所有图书信息和管理员信息,而读者只能访问所有图书信息和自身的信息。所以他们的相同点:都能访问所有图书信息

不同点:管理员能访问所有读者信息而管理员只能访问自身信息而不能访问其它读者信息;故此设计了三个类

程序包含三个类:图书类(books),管理员类(manager),读者类reader,books类为抽象类,manager,和reader类为books类的派生类。为了能让管理员和读者访问所有图书信息,所有都继承了books类;而为了分出两者的权限的不同,所以把所有读者的信息做为一个链表作为管理员的一个私有成员,而读者却只能放一个自身节点作为读者的私有成员,然后分别设计各个类的成员函数。

2.1 程序功能

Class books ///虚基类

protected:

books_node *broot;

public:

books();//构造函数

savebooks();//保存修改的内容

search_book();//查找某一本书

print_books();//输出所有书的信息

virtual add_book()=0;//对于读者是还书,对于管理员添加书

virtual delet_book()=0;//对于读者是借书,对于管理员是去掉某一本书};

Class manager:public books //管理员类

{

protected:

readers_node *rroot;

public:

manager(readers_node*);

savereaders();

add_book();//添加图书信息

delet_book();//删除图书

search_reader();//查找读者信息

add_reader();//添加读者

delet_reader();//删除读者

print_readers();//输出所有读者

};

class reader:public books{//读者类

private:readers_node* personnel;//存放读者自身信息

public:

reader(readers_node*);

add_book();//还书

reader_borrow();

delet_book();

reader_return();//借书

print_me();//查看自己借书情况

save_readers(readers_node*);

};

2.2程序流程图

3软件运行或者测试结果(1)管理员身份登录:

(2)读者身份登录:

4 软件设计过程中遇到的问题以及解决办法

由于编写前期做了大量的设计工作,在编写过程中基本没有遇到难解决的问题提,倒是在设计类时有些茫然,经过反复斟酌还是做了一些取舍,比如把读取读者文件放在了类的外面等。。

5 总结

通过本次课程设计学到了很多东西,对于c++对象的含义有了进一步的认识,从而对类的封装和设计有了一种新的认识,不只是停留在表面,为以后的学习积累了经验,设计不比编写容易,类设计好是整个程序写好的前提,只有一个好的规划才能写出好的程序。不过也通过本次发现了自己的不足之处。总是:本次课程设计受益匪浅,动手能力大大增强;

附录(程序源代码)

#include

#include

#include

#include

#include

#include

#define max 3

typedef struct Books{

char book_name[15];

int total_num;

int borrow_num;

char book_num[15];

Books *next;

}books_node;

typedef struct Readers{

char reader_name[15];

char reader_no[15];

int reader_borrow_num;

struct Reader_borrow_books{

char borrow_books_name[15];

char borrow_books_no[15];

}reader_borrow_book[max];

Readers *next;

}readers_node;

class books {

protected:

books_node *broot;

books();

savebooks();

search_book();

print_books();

virtual add_book()=0;

virtual delet_book()=0;

};

class manager:public books

{

protected:

readers_node *rroot;

public:

manager(readers_node*);

savereaders();

add_book();

delet_book();

search_reader();

add_reader();

delet_reader();

print_readers();

};

class reader:public books{

private:readers_node* personnel;

public:

reader(readers_node*);

add_book();

reader_borrow();

delet_book();

reader_return();

print_me();

save_readers(readers_node*);

};

books::books()

{

books_node *r;

broot=new books_node;

r=new books_node;

r->next=NULL;

broot=r;

ifstream inFile;

inFile.open("c:\\books.dat",ios::binary);

if(inFile.is_open()==-1)cout<<"con't open books.dat"<

else

int i=0;

while(1)

{

i++;

books_node *node;

node=new books_node;

inFile.read( (char*)node,sizeof(books_node));

if(inFile.eof()) break;

node->next=r->next;

r->next=node;

}

inFile.close();

if(i<2)cout<<"暂时没有图书数据"<

}

}

books::savebooks()

{

books_node *L;

L=new books_node;

L=broot->next;

ofstream outFile;

outFile.open("c:\\books.dat",ios::binary);

while(L)

{

outFile.write((char*)L,sizeof(books_node));

L=L->next;

}

outFile.close();

}

books::search_book()

{

char searchedbook[15];

cout<<"输入要查找的书的名子:";

cin>>searchedbook;

books_node *r;

r=new books_node;

r=broot->next;

while(r)

{

if((strcmp(searchedbook,r->book_name))==0)

{

cout<<"书名:"<book_name<<" 书的总量:"<total_num<<" 借出:"<borrow_num<<" 书的编号:"<book_num<

}

r=r->next;

}

if(r==NULL)cout<<"对不起,没有此书"<

}

books::print_books()

{

books_node *r;

r=new books_node;

r=broot->next;

while(r)

{

cout<<"书名:" <book_name<<" 书的总量:"<total_num<<" 借出:"<< r->borrow_num <<" 书的编号:"<book_num<

r=r->next;

}

delete r;

}

manager::add_book()

{

books_node *L;

L=new books_node;

L=broot;

while(1)

{

books_node *r;

r=new books_node;

r->next=NULL;

cout<<"输入书名:";

cin>>r->book_name;

cout<<"输入书的编号:";

cin>>r->book_num;

r->borrow_num=0;

cout<<"输入总数:";

cin>>r->total_num;

r->next=L->next;

L->next=r;

cout<<"add more?(n终止,其它键继续)";

cin>>sign;

if(sign=='n'||sign=='N')

break;

}

broot=L;

savebooks();

}

manager::delet_book()

{

char deleted[15];

cout<<"输入要删除的图书名字:";

cin>>deleted;

books_node *node,*L;

node=new books_node;

L=new books_node;

node=broot;

while(node->next)

{

if((strcmp(deleted,node->next->book_name))==0)break;

node=node->next;

}

if(node->next==NULL)

{

cout<<"sorry!There is no the book!"<

}

else

{

if(node->next->borrow_num==0)

{

node->next=node->next->next;

savebooks();

}

else

cout<<"对不起,暂时不能删除,因为还有没有归还的书"<

}

}

manager::manager(readers_node*node)

{

rroot=new readers_node;

rroot=node;

}

manager::savereaders()

{

readers_node *L;

L=rroot->next;

ofstream outFile;

outFile.open("c:\\Readers.dat",ios::binary);

while(L)

{

outFile.write((char*)L,sizeof(readers_node));

L=L->next;

}

outFile.close();

}

manager::add_reader()

{

readers_node *L;

L=new readers_node;

L=rroot;

int sign=0;

while(1)

{

readers_node *r;

r=new readers_node;

r->next=NULL;

cout<<"输入姓名:";

cin>>r->reader_name;

cout<<"输入读者的编号:";

cin>>r->reader_no;

r->reader_borrow_num=0;

r->next=L->next;

L->next=r;

cout<<"add more?(n终止,其它键继续)";

char sign;

cin>>sign;

if(sign=='n'||sign=='N')

break;

}

rroot=L;

savereaders();

manager::delet_reader()

{

char deleted[15];

cout<<"输入要删除读者的名字:";

cin>>deleted;

readers_node *node,*L;

node=new readers_node;

L=new readers_node;

node=rroot;

while(node->next)

{

if((strcmp(deleted,node->next->reader_name))==0)break;

node=node->next;

}

if(node->next==NULL)

{

cout<<"sorry!There is no the reader!"<

}

else

{

node->next=node->next->next;

savereaders();

}

}

manager::search_reader()

{

readers_node *r;

r=new readers_node;

r=rroot->next;

char reader[15];

cout<<"输入要查找读者的姓名:";

cin>>reader;

while(r)

{

if((strcmp(reader,r->reader_name))==0)

{

cout<<"姓名:"<reader_name<<" 编号:"<reader_no<<" 借书总数:"<reader_borrow_num<

for(int i=0;ireader_borrow_num;i++)

{

cout<<"书名:"<reader_borrow_book[i].borrow_books_name<<" "<<"书的编号:"<reader_borrow_book[i].borrow_books_no;

}

}

else r=r->next;

}

if(!r)cout<<"没有此人"<

}

manager::print_readers()

{

readers_node *printL;

printL=new readers_node;

printL=rroot->next;

while(printL)

{

cout<<"姓名编号借书总数"<

cout<reader_name<<" "<reader_no<<" "<reader_borrow_num<

for(int i=0;ireader_borrow_num;i++)

{

cout<<"书名:"<reader_borrow_book[i].borrow_books_name<<" "<<"书的编号:"<reader_borrow_book[i].borrow_books_no;

}

printL=printL->next;

}

delete printL;

}

reader::reader(readers_node*node)

{

(personnel)=new readers_node;

personnel=node;

}

reader::add_book()

{

books_node*node;

node=new books_node;

node=broot->next;

char returned[15];

cout<<"输入要还书的名子:";

cin>>returned;

for(int i=0;ireader_borrow_num;i++)

{

if((strcmp(returned,personnel->reader_borrow_book[i].borrow_books_name))==0)break;

}

printf("不好意思,你没有此书");system("pause");

}

else{

while(node)

{

if((strcmp(node->book_name,returned)==0))break;

else node=node->next;

}

if(node)

{

personnel->reader_borrow_num--;

node->borrow_num--;

savebooks();

}

else cout<<"对不起,没有你要还的书或者所还书被删除"<

}

}

reader::delet_book()

{

if(personnel->reader_borrow_num

{

books_node*node;

node=new books_node;

node=broot->next;

char borrowed[15];

cout<<"输入要借书的名子:";

cin>>borrowed;

while(node)

{

if((strcmp(node->book_name,borrowed)==0))break;

else node=node->next;

}

if(node&&(node->total_num-node->borrow_num)>0)

{

strcpy(personnel->reader_borrow_book[personnel->reader_borrow_num].borrow_books_name,node->book _name);

node->borrow_num++;

savebooks();

}

else cout<<"对不起,没有你要借的书或者所要借的书已经借完!"<

}

else cout<<"对不起,你借书的数量已经超过最大借数量"<

}

reader::print_me()

{

cout<<"姓名"<reader_name<<" 编号:"<reader_no<<" 借书总数:"<reader_borrow_num<

for(int i=0;ireader_borrow_num;i++)

{

printf("书名:%s,书的编号:%s",personnel->reader_borrow_book[i].borrow_books_name,personnel->reader_borrow_book[i].borrow_bo oks_no);

}

}

void Pause()

{

getch();

fflush(stdin);

}

reader::reader_borrow()

{

delet_book();

}

reader::reader_return()

{

add_book();

}

reader::save_readers(readers_node *L)

{

readers_node *root;

root=new readers_node;

root=L->next;

ofstream outFile;

outFile.open("c:\\Readers.dat",ios::binary);

outFile.write((char*)root,sizeof(readers_node));

root=root->next;

}

outFile.close();

}

readers_node* read_readers()

{

readers_node *r;

r=new readers_node;

r->next=NULL;

int flag=0;

ifstream inFile;

inFile.open("c:\\Readers.dat",ios::binary);

if(inFile.is_open()==-1)

{

cout<<"con't open readers.dat"<

}

else

{

while(1)

{

flag++;

readers_node *node;

node=new readers_node;

inFile.read((char*)node,sizeof(readers_node));

if(inFile.eof()) break;

node->next=r->next;

r->next=node;

}

inFile.close();

if(flag<2)

{

cout<<"暂无读者"<

}

else

return r;

}

}

password()

{

system("cls");

char a[]="111111",b[10],c;int n=0,k;

while(1)

{

n++;

k=0;

cerr<<"\t\t\t输入密码:";

while(1)

{

c=getch();

if(c==13)break;

b[k]=c;k++;

cerr<<"*";

}

b[k]='\0';

cout<<"\n";

if(n>2)

{

printf("你已经超过输入次数,系统将退出\n");

getch();

}

if(strcmp(a,b)==0)break;

else cout<<"密码错误,请重新输入\n";

cerr<<"\n";

}

}

void manager_menu_1(manager M)

{

int N;

while(1)

{

cout<<"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";

cout<<"┃图书管图书管理系统┃\n";

cout<<"┃菜单┃\n";

cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n";

cout<<"┃①增加图书┃\n";

cout<<"┃②.删除图书┃\n";

cout<<"┃③.查找图书┃\n";

cout<<"┃④.输出所有┃\n";

cout<<"┃退出请按0 ┃\n";

cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n";

cout<<"请输入您的选择(0--4):( )\b\b";

cin>>N;

switch (N)

case 1: M.add_book();getch();break;

case 2: M.delet_book();getch();break;

case 3: M.search_book();getch();break;

case 4: M.print_books();getch();break;

case 0: return;

}

system("cls");

}

}

void manager_menu_2(manager M)

{

int N;

while(1)

{

cout<<"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";

cout<<"┃图书管图书管理系统┃\n";

cout<<"┃菜单┃\n";

cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n";

cout<<"┃①增加读者┃\n";

cout<<"┃②删除读者┃\n";

cout<<"┃③查找读者┃\n";

cout<<"┃④输出所有┃\n";

cout<<"┃退出请按0 ┃\n";

cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n";

cout<<"请输入您的选择(0--4):( )\b\b";

cin>>N;

switch (N)

{

case 1: M.add_reader();getch();break;

case 2: M.delet_reader();getch();break;

case 3: M.search_reader();getch();break;

case 4: M.print_readers();getch();break;

case 0: return;

}

system("cls");

}

}

void manager_menu(readers_node*L)

{

system("cls");

password();

manager Manager(L);

附录(图书管理系统程序代码)

附录 主页面(MDImain): Private Sub addbook_Click() add_book.Show End Sub Private Sub addreader_Click() add_reader.Show End Sub Private Sub adduser_Click() add_user.Show End Sub Private Sub backbook_Click() back_book.Show End Sub Private Sub borrowbook_Click() borrow_book.Show End Sub Private Sub cuibackbook_Click() cuiback_book.Show End Sub Private Sub findbook_Click() find_book.Show End Sub Private Sub findreader_Click() find_reader.Show End Sub Private Sub MDIForm_Load() End Sub Private Sub modifybook_Click() change_book.Show End Sub Private Sub modifypwd_Click()

change_pwd.Show End Sub Private Sub modifyreader_Click() change_reader.Show End Sub Private Sub delbook_Click() del_book.Show End Sub Private Sub delreder_Click() del_reader.Show End Sub Private Sub quitsys_Click() End End Sub 登陆(login): Option Explicit Dim cnt As Integer '记录确定次数 Private Sub Command1_Click() Dim sql As String Dim rs_login As New ADODB.Recordset If Trim(txtuser.Text) = "" Then '判断输入的用户名是否为空MsgBox "没有这个用户", vbOKOnly + vbExclamation, "" txtuser.SetFocus Else sql = "select * from 用户表where 用户名='" & txtuser.Text & "'" rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF = True Then MsgBox "没有这个用户", vbOKOnly + vbExclamation, "" txtuser.SetFocus Else '检验密码是否正确 If Trim(rs_login.Fields(1)) = Trim(txtpwd.Text) Then userID = txtuser.Text userpow = rs_login.Fields(2) rs_login.Close Unload Me MsgBox "欢迎登录到图书管理系统!", vbOKOnly + vbExclamation, "" MDImain.Show Else

C++图书管理系统源代码

图书管理系统 系统功能: 1.借书:根据借书人提出的图书编号(id)查询该图书,如果该图书现存量(store)不为0,则提示输入借阅者的学号(num),为借书人办理借书手续,提示用户该书已被 借出。 2.归书:根据借书人的学号查询该读者的信息,若有该读者,则提示输入所借书籍的编号(id),为该读者办理还书手续,提示该书已还。 3.书籍管理:弹出书籍管理界面,输入所要执行操作的号码: (1)增加书籍:弹出注册新书的窗口,按照提示输入所增加书籍的信息,最后,提示用户该书已被注册。 (2)删除书籍:弹出删除书籍的窗口,输入所要删除书籍的编号(id),输出该书的信息,确认是否删除该书,1为删除,0为放弃。 (3)修改书籍:弹出修改书籍的窗口,输入所要修改书籍的编号(id),输出该书的信息,确认是否修改该书,1为修改,0为放弃。之后按照提示重新输入书籍的信息。 4.读者管理:弹出读者管理界面,输入所要执行操作的号码: (1)增加读者:弹出注册读者的窗口,按照提示输入所增加读者的信息,最后,提示用户该读者已被注册。 (2)删除书籍:弹出删除读者的窗口,输入所要删除读者的学号(num),输出该读者的信息,确认是否删除该读者,1为删除,0为放弃。 (3)修改书籍:弹出修改读者的窗口,输入所要修改读者的学号(num),输出该读者的信息,确认是否修改该读者,1为修改,0为放弃。之后按照提示重新输入读者的信息。 5.搜索:此搜索包括两方面的搜索,书籍搜索以及读者搜索,弹出搜索的窗口,按照提示输 入所要搜索的内容,1为书籍搜索,2为读者搜索: (1)搜索书籍:弹出搜索书籍的窗口,按照提示输入所要搜索的方式,包括按<1>书名搜索, <2>书号搜索,<3>作者搜索,<4>出版社搜索,<5>出版时间搜索;根据所选方式输入相 应的内容,若是该书籍存在,则输出该书籍的信息,否则,返回主界面。 (2)搜索读者:弹出搜索读者的窗口,按照提示输入所要搜索的方式,包括按<1>名字搜索, <2>学号搜索;根据所选方式输入相应的内容,若是该读者存在,则输出该读者的信息, 否则,返回主界面。 6.退出:退出图书管理系统。 图书类设计:

C++图书管理系统实验报告

面向对象程序设计(C++语言)课程设计 设计说明书 图书管理系统的设计与实现 起止日期:年月日至年月日 学生姓名 班级 学号 成绩 指导教师(签字) 计算机与通信学院 年月日 图书管理系统

一.需求分析 图书馆是目前生活中除了网络外的另一个获取知识的重要场所。利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。有助于加深对面向对象程序设计中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。 二.设计要求: 1.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时 间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 2.系统以菜单方式工作 3.图书信息录入功能(图书信息用文件保存)--输入 4.图书信息浏览功能--输出 5.查询和排序功能:(至少一种查询方式)--算法 6.按书名查询 7.按作者名查询 8.图书信息的删除与修改(可选项) 三.概要设计 1、类的设计 ①、Book类的设计(内部函数流程图):

②、BDatabase类的设计: ③、主函数流程图:

4多态的实现 class People { public: virtual void card(){cout<<"card people"<

Java图书管理系统-附源码

目录 题目简述 -------------------------------- 01 需求分析 -------------------------------- 01 数据结构 -------------------------------- 01 功能模块 -------------------------------- 02 程序设计 -------------------------------- 02 运行截图 -------------------------------- 04 分析总结 -------------------------------- 08 程序源码 -------------------------------- 08

图书信息管理系统 题目简述: 题目名称:图书信息管理系统 要求:使用图形用户界面,用数据库建立1或2个图书信息表,能连接数据库并实现查询、增加、删除、修改等功能。 需求分析: 图书信息管理系统应该具备图书的信息管理功能和流通管理功能。其中,信息管理功能包括查找,增加,修改,删除,显示全部信息等模块。流通管理功能包括图书借阅,归还等模块。因此分别设计各个模块,实现不同的功能。 数据结构: 用SQL Sever 建立数据库的表,用一张表存放图书的ID号码,图书名称,图书的所有者,图书状态,图书的使用者(允许为空)。具体设计如下图所示: 图书ID,图书名称,图书所有者,图书的状态,图书使用者(允许为空)均为varchar(50)类型,在Java中可以方便的查询。图书存储信息的具体内容如下图所示:

功能模块: 程序设计: 主框架设计: 主框架上方包含三个按钮,分别是“系统管理”、“图书信息管理”和“图书流通管理”,定义JMenuBar类的对象、JMenu类的对象和JMenuItem类的对象,分别表示菜单栏、菜单组和菜单选项,然后调用初始化函数,将不同类的对象通过setText()函数设定不同的文本,然后将其添加到窗口容器中。对每个按钮分别添加不同的消息监听,响应相应的消息,调用不同的类完成不同的功能。消息监听功能详见源代码bookMain类。 图书信息管理模块包括增加图书,删除图书,编辑图书,查找图书和显示图书信息。具体的方法实现在bookBean中实现,当用户点击相应的按钮时,消息监听模块就会调用bookBean的构造函数产生一个bookBean的对象,然后通过对象调用bookBean类中的相应方法,完成事件的相应。 增加图书信息模块: 调用bookAdd类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话

图书管理系统含源代码可以运行

第一章需求分析 1.1设计内容 利用c++的文件操作能力设计开发一个小型的图书管信息管理系统,至少具有如下功能:查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息、删除图书信息以及通过学生学号实现图书借阅功能。操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。 1.2 设计任务 要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C++进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。掌握模块化编程的基本方法与步骤;巩固和加深学生对C++课程基本知识的理解与掌握,培养学生利用C++进行软件操作的能力和技巧。 1.3 基本要求 (1)通过提示菜单选择可以进行的操作。 (2)将图书的信息存入文件中,并命名为BookInfo.txt。 (3)将图书借阅情况信息存入文件中,并命名为SendInfo.txt。 (4)在本系统中可以进行管理系统包含的基本操作,其中包括: a)查看所有图书的信息。

b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息。 c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置。 d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在。 e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt文件中。 (5)图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。 (6)图书信息文件中每一行存放一本图书的信息。 (7)借阅信息文件中每一行存放一本书的借阅情况。 (8)对老师.学生的信息进行登记处理,包括姓名、学号教师编号、学院班级等。 (9)对图书的金额进出管理,对一丢失的图书进行处罚、对超期归还的图书进行赔偿金额计算。 第二章系统功能设计

图书管理系统uml实验报告.doc

面向对象分析与设计大作业 学院:计算机科学与工程学院 班级:计算机软件 3 学生姓名:陈俊伟 学号:2174 指导老师:苏锦钿 提交日期:

华南理工大学 面向对象分析与设计大作业课程实验报告 实验题目 :_____ 图书管理系统 uml 图__________________________ 姓名 :___ 陈俊伟 ________学号:_ 2174_____ 班级 : ___09 软件 3 班________ 组别 : ________ 合作者 : __________________ 指导教师 : ______ 苏锦钿 __________ 实验概述 【实验目的及要求】 一.目的 1.掌握面向对象技术的基本原理和各种相关概念; Rational Rose 2003 、 IBM 2. 熟练掌握 UML的基本知识和9 种常见的 UML图形 , 并能够利 用 Software Architecture、或trufun UML工具进行建模; 3.根据问题进行学习,拓广、深化; 4.独立完成一个应用程序的分析、设计和建模,为以后软件项目的开发打下实践基础。 【实验原理】 UML建模,就是用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类 之间的关联、类的实例相互配合实现系统的动态行为等。UML提供了多种图形可视化描 述模型元素,同一个模型元素可能会出现在多个图中对应多个图形元素,人们可以从多 个视图来考察模型。UML建模主要分为结构建模、动态建模和模型管理建模 3 个方面,第 1 个方面是从系统的内部结构和静态角度来描述系统的,在静态视图、用例视图、实施视 图和配置视图中适用,采用了类图、用例图、组件图和配置图等图形。例如类图用于描述系 统中各类的内部结构(类的属性和操作)及相互间的关联、聚合和依赖等关系, 包图用于描述系统的分层结构等;第 2 个方面是从系统中对象的动态行为和组成对象间的相互 作用、消息传递来描述系统的,在状态机视图、活动视图和交互视图中适用,采 用了状态机图、活动图、顺序图和合作图等图形,例如状态机图用于一个系统或对象从 产生到结束或从构造到清除所处的一系列不同的状态;第 3 个方面描述如何将模型自身组织到高层 单元,在模型管理视图中适用,采用的图形是类图。建模的工作集中在前两 方面,而且并非所有图形元素都适用或需要采用

图书馆管理系统源代码

源程序清单 1、文件名 login(login.frm) 功能说明:整个系统的登陆界面,需要输入用户名和登陆密码才能进入到系统中,进行借阅等操作。 源代码: Option Explicit Dim cnt As Integer Private Sub Command1_Click() Dim sql As String Dim rs_login As New ADODB.Recordset If Trim(Combo1.Text) = "" Then MsgBox "没有这个用户", vbOKOnly + vbExclamation, "" Combo1.SetFocus Else sql = "select * from 系统管理 where 用户名='" & Combo1.Text & "'" rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF = True Then MsgBox "没有这个用户", vbOKOnly + vbExclamation, "" Combo1.SetFocus Else If Trim(rs_login.Fields(1)) = Trim(txtpwd.Text) Then userID = Combo1.Text rs_login.Close Unload Me form1.Show Else MsgBox "密码不正确", vbOKOnly + vbExclamation, "" txtpwd.SetFocus End If

End If cnt = cnt + 1 If cnt = 3 Then Unload Me End If Exit Sub End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() Dim connectionstring As String connectionstring = "provider=Microsoft.Jet.oledb.4.0;" & _ "data source=book.mdb" conn.Open connectionstring cnt = 0 End Sub Private Sub txtuser_Change() End Sub 2、文件名 form1(form1.frm) 功能说明:整个系统的主界面,其中包括图书管理、读者管理、图书借阅管理、系统管理、关于,以及在这下面的子菜单。 源代码: Private Sub add_admin_Click() frmadduser.Show End Sub Private Sub add_back_book_Click() frmbackbookinfo.Show

图书馆管理系统实验报告

华北科技学院计算机系综合性实验 实验报告 课程名称数据库系统 实验学期2009至2010学年第2学期学生所在系部计算机系 年级专业班级网络B081 学生姓名王明仁学号200807024102 任课教师郭红 实验成绩 计算机系制

《图书馆管理系统》课程综合性实验报告 开课实验室:基础62010年6月19日实验题目 一、实验目的 利用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够正确应用各个阶段的典型工具进行表示。 二、设备与环境 (1)硬件设备:PC机一台 (2)软件环境:安装Windows操作系统,安装数据库管理系统SQL Server2000等。 三、实验内容 完整实践应用数据库设计的工程过程:需求分析\概念设计\逻辑设计\物理设计和实施: (1)需求分析:选定一个应用(如图书管理系统),对所设计的数据库系统进行调研分析,其结果应该准确表达出选定 应用的功能需求; (2)概念分析:使用E-R图作为描述工具.必要时描述出局部和全局的E-R图; (3)逻辑设计:将上述绘制的E-R图转化为相应的关系模式,并根据范式理论进行优化分析。要求的关系模式不少于 3个,并根据实际应用的需要设计必要的视图; (4)物理设计:根据设计的结构,说明系统已经有的索引,并根据需要设计必要的索引; (5)实施:以SQL SERVER为平台创建出完整的数据库.在数据库中要表现出的知识点包括 ①登录控制(标准登录和混合登录) ②数据完整性:参照完整性、实体完整性、自定义完整性(包括触发器) ③安全性设计:设置用户,并相应设计用户的权限或角色(用户设计至少3个,有不同的权限) ④使用触发器、游标或存储过程完成相关操作,至少使用1种技术。 (6)以上内容,请详细描述,并有必要抓图. 四、实验结果及分析 根据我设计的图书馆数据库管理系统,我作了如下分析: 图书馆提供图书借阅业务,读者借阅需先办理借书卡(用条码识别身份),并交纳一定的押金。不同的书有着不同的借阅期限,比如期刊和某些新书最多只能借阅七天,而另一些书则可以借阅半个月或最长三个月不等。逾期不还,或丢失、损坏书籍则予以罚款。在交纳罚款前,借书卡被冻结。不同类别的读者不着不同的借阅数量限制,比如有的一次可以借阅7本,有的只能借阅5本等。对逾期不还的,系统给出报警,并打印催还通知单。读者可以事先从网上查询拟借书刊是否存在,并可查询书刊存放地点。 我设计的图书管理系统,功能包括: 一.图书管理系统: 1.图书查询 2.新书登记 3.图书下架 二.读者信息管理: 1.办卡 2.信息 3.挂失 4.注销 5.冻结 三.借阅管理系统: 1.借书(还书)

图书馆管理系统程序的设计代码

1.1程序设计代码 登录模块 if(username.Text.Trim()==""||password.Text.Trim()=="") MessageBox.Show("请输入用户名和密码","提示"); else { if (radioManage.Checked == true) { string strcon = "Data Source=SIMON-VAIO;Initial Catalog=lkl2;Integrated Security=True;"; //连接数据库的字符串,用于指定数据库地址,名称,账号,密码,连接方式SqlConnection sqlCon = new SqlConnection(strcon); //实例化并定义一个数据库连接 sqlCon.Open(); //打开数据库连接 string sql = "select * from login where usernum=usernum and userpassword=suerpassword"; //定义要查询sql语句 SqlCommand cmd = new SqlCommand(sql, sqlCon); //实例化并定义sql语句和数据库路径 cmd.Parameters.Add("usernum", SqlDbType.NChar, 20); //定义cmd查询命令的字段属性,loginname sqldbtype nchar(20) cmd.Parameters.Add("suerpassword", SqlDbType.NChar, 20); //同上 cmd.Parameters["usernum"].Value = username.Text; //将username中的text保存到变量loginname cmd.Parameters["suerpassword"].Value = password.Text; //同上 SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { this.Visible=false; Form2 Formmain = new Form2(); //应该是实例化一个主窗体的 this.Hide(); //应该是切换到主窗口的或关闭自己的 Formmain.Show(); //应该是打开一个主窗体的 dr.Close();//关闭dr的数据库连接 } else// if (dr.Read())读取失败则执行如下代码 MessageBox.Show("密码错误,请重新输入!"); //显示提示信息 } else if (radioPerson.Checked==true)

基于java的图书管理系统源代码

基于java的图书管理系统源代码声明:本系统是基于C/S的图书管理系统,主要使用的是Oracle数据库,下面附所有实现代码 package library; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.ResultSet; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class book_add extends JFrame implements ActionListener{ DataBaseManager db=new DataBaseManager(); ResultSet rs; JPanel panel1,panel2; JLabel book_id_label,book_name_label,author_label, press_label,press_date_label,price_label,book_num_label,borrowed_num _label,a ddress;

图书标准管理系统含源代码可以运行

图书标准管理系统含源代码可以运行

组长:何关瑶学号11107200105 组员:汪芳 李玉珏 马文磊 雷盛华 第一章需求分析 1.1设计内容 利用c++的文件操作能力设计开发一个小型的图书管信息管理系统,至少具有如下功能:查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息、删除图书信息以及通过学生学号实现图书借阅功能。操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。 1.2 设计任务 要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C++进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。掌握模块化编程的基本方法与步骤;巩固和加深学生对C++课程基本知识的理解与掌握,培养学生利用C++进行软件操作的能力和技巧。 1.3 基本要求 (1)通过提示菜单选择可以进行的操作。 (2)将图书的信息存入文件中,并命名为BookInfo.txt。 (3)将图书借阅情况信息存入文件中,并命名为SendInfo.txt。 (4)在本系统中可以进行管理系统包含的基本操作,其中包括: a)查看所有图书的信息。 b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显

示该图书的相关信息,如果没有找到则给出提示信息。 c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置。 d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在。 e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt 文件中。 (5)图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。 (6)图书信息文件中每一行存放一本图书的信息。 (7)借阅信息文件中每一行存放一本书的借阅情况。 (8)对老师.学生的信息进行登记处理,包括姓名、学号教师编号、学院班级 等。 (9)对图书的金额进出管理,对一丢失的图书进行处罚、对超期归还的图书 进行赔偿金额计算。

C--大作业图书管理系统实验报告

附件1: 《面向对象程序设计》 大作业 题学专班姓目 院 业 级 名 学生成绩管理系统 文法学院 教育学 教育学1201 杨欣 指导教师鄢红国 2013 年12 月20 日学号:0121213640126

目录 一二三四五六七八十设计目的 (1) 大作业的内容 (2) 大作业的要求与数据 (3) 大作业应完成的工作 (4) 总体设计(包含几大功能模块) (5) 详细设计(各功能模块的具体实现算法——流程图) (6) 调试分析(包含各模块的测试用例,及测试结果) (7) 总结 (8) 参考资料 (9)

一二 大作业的目的 《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。 大作业的内容 对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数等) 进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.将图书的信息进行记录,信息内容包含:(1)图书的编号(2)图书的书名(3)图书的库存量。假设,现收集到了一个图书馆的所有图书信息,要求用C语言编写一个简单的图书管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三大作业的要求与数据 1、用C语言实现系统; 2、对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出. 3、图书信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够 完成以下功能: (1)每一条记录包括一本图书的编号、书名、库存量 (2)图书信息录入功能:(图书信息用文件保存,可以一次完成若干条记录 的输入。) (3)图书信息显示浏览功能:完成全部图书记录的显示。 (4)查询功能:完成按书名查找图书记录,并显示。 (5)图书信息的删除:按编号进行图书某图书的库存量. (6)借书登记系统:可以输入读者编号和所借书号来借书。 (7)还书管理系统:可以输入读者编号和所借书号来还书。 (8)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应 尽可能清晰美观!

图书馆管理系统设计附带源代码

毕业设计_图书管理系统 一、数据库设计数据库设CREATE DATABASE TSGL GO USE TSGL GO CREATE TABLE Bmanage ( bId varchar(10) PRIMARY KEY, bName varchar(50), --添加图书--图书编号 --书名 bNumber varchar(10), --书数目) GO bSore varchar(50) --分类 CREATE TABLE Madmin ( mName varchar(10)PRIMARY KEY, mPwd varchar(25), mAge varchar(8), mSex varchar(4), mNumber varchar(15), mrole varchar(8) ) GO --图书员管理 --图书管理员姓名--图书管理员密码 --图书管理员年龄 --图书管理员性别 --图书管理员电话 --图书管理员角色

CREATE TABLE Reader ( rSno varchar (10) PRIMARY KEY , rName varchar (10), rPwd varchar (25), rAge varchar (8), rSex varchar (4), rState varchar (8), rNumber varchar (15), rEmail varchar (25), --读者信息表reader --读者号 --姓名 --密码 --年龄 --性别 --状态 --电话号码 --电子邮件rAdress varChar (50), --地址) GO rGrade varChar (15), rClass varchar (15), rRole varchar (8) --年级 --班级 --角色 CREATE TABLE Rrecord ( rSno varchar (10) PRIMARY KEY , rName varChar (10), bId varchar (10), bName varChar (50), bTime varchar (10), bBackTime varchar (10) ) GO CREATE TABLE SysSet ( rRole varchar (8)PRIMARY KEY , rState varchar (8), Fine float (25), rDay varchar (8) --读者编号学号 --读者姓名 --图书编号 --图书名称 --借书时间 --还书时间 --读者角色 --读者可借书数 --过期罚款设置 --可借书天数 ) 二、界面截图及说明 1) 登录窗口(实现管理员与馆长的登陆)

图书管理系统源代码

xxxx学院 课 程 设 计 报 告 设计名称:数据库课程软件设计 班级: 姓名: 学号: 指导教师: xx 时间: 2010.6.1—2010.6.16

一、课程设计目的 二、课程设计任务与要求1.设计任务 2.设计要求 三、原始依据 四.课程设计说明书 1. 需求分析 (1)问题描述 (2)基本要求 (3)测试数据 2. 概要设计 (1).数据结构 (2).程序模块及之间的调用关系(3). 详细分析 (4). 调试与结果 借书图示: 还书图示 还书图示 图书维护菜单 读者维护菜单 帮助文件

五、课程设计心得 一.课程设计目的 软件应用课程设计是计算机及相关专业的实践环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。其目的在于巩固和加深对C++语言课程的基本知识的理解和掌握;掌握C++语言编程和程序调试的基本技能;利用C++语言进行软件设计的基本思路和方法;提高运用C++语言解决实际问题的能力。 二.课程设计任务与要求: 1.设计任务 基本要求: [1]: 工作人员登陆后,可以进行的操作 (1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等); (2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量); (3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量),如果某个学生退学,就要清除他的信息; (4)查看学生的信息; (5)添加图书的信息(图书号,书名,作者,出版社,数量等); (6)修改图书的信息(图书号,书名,作者,出版社,数量等); (7)删除图书的信息(图书号,书名,作者,出版社,数量等); (8)查看图书的信息; [2]: 学生登陆后,可以进行的操作 (1)查看学生自己借阅的数目信息; (2)借阅图书; (3)归还图书; 备注:要求将学生和图书信息存放到外存上,每次从外存读取数据。 2.设计要求 (1).对指导教师下达的题目进行系统分析。 (2).根据分析结果完成系统设计。 (3).编程:在计算机上实现题目的代码实现。 (4).完成对该系统的测试和调试。 (5).提交课程设计报告,课程设计报告内容包括:需求分析、概要设计、详细设计,调试与结果和设计心得体会五个部分。 三.原始依据 已完成C++语言课程学习,有语言编程基础,能够熟练运用C++语言进行程

图书管理系统的C 代码 完整版

C#代码清单 共1个项目,包含5个类。 项目:librarysystem 类: 主类代码: namespace librarysystem { PublicationISBN = PublicationISBN; = PublicationName; = PublicationAuthor; = PublicationType; = PublicationStatus; } } } 读者类代码: namespace librarysystem { 询图书"); ("2.借书服务"); ("3.还书服务"); ("4.新出版物入库"); ("5.录入新读者"); ("6.查询读者的借阅信息"); ("7.退出管理系统"); ("-------------------------------------------------------------------"); bool flag; do { flag = false; ("请选择:"); string key = (); switch (key) { case"1": ("请输入需要查询图书的书名:"); ShowPubInfo(); break; case"2": ("请输入您的姓名:");

(); ShowBorrowInfo(); break; case"3": ("请输入您的姓名:"); (); ShowReturnInfo(); break; case"4": ("请按照提示逐步输入需要入库出版物的信息……"); ShowAddPublications(); break; case"5": ("请按照提示逐步输入新注册读者的信息……"); ShowAddReaders(); break; case"6": ("请输入您的姓名: "); (); ShowRedPubInfo; break; case"7": flag = false; break; default: ("无此业务,是否重新选择(y/n)?"); string answer = (); if (answer != "y") { flag = false; } else { flag = true; } break; } } while (flag); } /*显示查询到的出版物信息*/ public void ShowPubInfo() {

图书馆管理信息系统实验报告完整版

图书馆管理信息系统实 验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

管理信息系统实验报告 系部名称:国际学院 专业名称:会计 班级:0911 姓名: 第一章图书馆管理信息系统的系统规划 图书馆管理项目开发背景及开发目的 传统的图书馆管理工作主要是由于书籍管理、借阅管理、图书管理查询。该工作主要由学校图书管理人员来完成。近年来,随着招生规模的持续壮大,图书馆的容量也不断增加,有关图书的各种信息量也成倍的增加。面对庞大的信息量,传统的人工式的管理导致工作繁重,人力物力过多的浪费,图书馆的管理成本高,然而工作效率却不高,工作质量也难以得到可靠的保证,从而影响了整个图书馆的运作及管理。 时代的进步,计算机越来越广泛的运用,原先主要由手工操作的图书管理,正在慢慢的由计算机代替,并且日益完善。图书管理系统就是为了解决和减轻繁琐的手工管理,使图书馆可以上升到一个完善的电子化,信息化管理。在全球信息化的今天,是同计算机进行生产和管理已经成为一种趋势。计算机可以为我们选择最优的方案来达到我们的要求。在图书馆这一环境中,使用计算机管理可以最大程度减少操作难度,减轻工作人员的劳动负担。实现“以人为本,科学管理,创建新型现代化学校图书馆”的目标 图书馆管理可行性分析 图书馆是图书馆管理系统是利用计算机技术使书籍管理、借阅管理、图书管理查询等有机的结合在一起方便图书管理人员进行统一高效率的管理。对于系统的结构特性设计,应遵循提高系统实用性和操作简便灵活性的设计的原则。在业务流程上遵循了手工管理时的操作流程,使学生很快掌握操作程序等。 经济性可行性研究

图书管理系统程序代码

#i n c l u d e<> #include <> #include <> #define SIZE (struct booklist *)malloc(sizeof(struct booklist)) .(Y/N) :"); ch = getchar(); if(ch == 'y' || ch == 'Y') store(head); getchar(); break; } case 2: { if(head == NULL ) { printf("请先录入图书源信息!\n"); getchar(); break; } else { borrow_head = borrow_creat(head); .(Y/N) :" ); ch = getchar(); if(ch == 'y' || ch == 'Y') borstore(borrow_head); getchar(); break; } } case 3: { if(head == NULL ) { printf("请先录入图书源信息!\n"); getchar(); break; } else { flag = pre_creat(head); if(flag == 1)

printf("没有录入预借图书信息!\n\n"); if(flag == 2) pre_head = prebor_creat(); .(Y/N) :"); ch = getchar(); if(ch == 'y' || ch == 'Y') store(head); getchar(); break; } } case 4: .(Y/N) :"); ch = getchar(); if(ch == 'y' || ch == 'Y') store(head); getchar(); break; } } case 5: .(Y/N) :"); ch = getchar(); if(ch == 'y' || ch == 'Y') store(head); getchar(); break; } } case 9: .)\n\n"); printf("请选择功能:"); scanf("%d", &n); getchar(); if(n == 0) { x = 0; } getchar(); } else { printf("请输入学号:"); gets(c); strcpy(p -> prebook_num, a); strcpy(p -> prestu_num, c); if((fp = fopen("","a+")) == NULL)

图书管理系统实验报告

上海电力学院 信息网络技术课程设计报告 题目: 图书馆借阅系统 姓名:白志强 学号:20111946 院系:电子与信息工程学院 专业年级:电子信息工程2011级

2014 年12月 5 日

●摘要 在大学生活中,图书馆是我们常去的一个地方,因而图书馆的管理无疑是我们需要关注的一个问题。 现在很多学校图书馆的借阅工作部分还是手工管理,工作效率很低并且不能及时了解图书的种类和学生们比较需求的图书等,不能更好的适应当前学生的借阅要求。计算机信息化管理有着存储量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此利用计算机提供给我们的信息使学生们的借阅过程形成一整套动态的管理,能够极大提高图书馆理的效率,这也是学校的科学化,正规化管理。 图书借阅管理系统是一种信息管理系统,本系统采用数据库系统和VB平台,以https://www.360docs.net/doc/a614478939.html, 为编程语言开发一个适合学校图书管理所需要的数据库管理软件。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。 ●实验目的 本课程设计的目的是综合应用https://www.360docs.net/doc/a614478939.html,软件以及SQL数据库设计实现图书借阅系统。 ●设计环境 软件:VS2008,SQL Server2008 ●设计内容 基本要求:通过编程软件使系统可以进行管理员模块和用户使用模块。 管理员模块:添加图书,查询图书,查询用户,添加用户。 使用者模块:借阅图书,归还图书。 ●设计流程图 图书管理系统 用户界面管理者界面

设计步骤 建立数据库,新建表如图所示 打开表如图

相关文档
最新文档