文档库 最新最全的文档下载
当前位置:文档库 › c++图书管理系统源代码

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

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

//本文章来源于网络。

// 图书管理系统.cpp : 定义控制台应用程序的入口点。

//

//#include "stdafx.h"

#include "iostream"

#include "fstream"

#include "string.h"

#include "iomanip"

using namespace std;

/*int _tmain(int argc, _TCHAR* argv[])

{

return 0;

}*/

/*int mark0=0;//用于标记是否找到要找的信息

int mark1=0;//用于标记是否找到要找的信息*/

struct Reathur{//记录书籍的书名信息

char bookname[20];//书名

struct Reathur* Lnode;//指向下一图书节点

};

struct Reader{//记录读者信息

char Readername[20];//读者名称

struct Reathur* next;//指向该读者借的书

struct Reader* Lreader,*Right,*Lift;//下一个读者节点

};

struct Libray{//记录图书的详细信息

char bookname[20];//书名

char bookno[20];//编号

char bookreathur[20];//作者名

int booknum;//现有册数

struct Libray* Llink,* Rlink,*Lnext;//下一图书的左右节点

struct Reader* read;//指向借阅该书的读者

};

void bsinsert(struct Libray* s,struct Libray* &t)//{将s所指结点插入到根结点指针为t的树中} {

if (t==NULL)

t=s;

else

if(strcmp(s->bookname,t->bookname)==1){

bsinsert(s,t->Rlink);

}

else {

bsinsert(s,t->Llink);

}

}

void Rnorder( struct Reader* T){//中序遍历所有的读者链的所有节点

if(T!=NULL){

Rnorder( T->Lift);

struct Reathur* u;

u=T->next;

cout<Readername<<"\n";

while(u!=NULL){

cout<bookname<<"》"<<"\n";

u=u->Lnode;

}

Rnorder( T->Right);

}

}

//////////////////////////////////////////////////////////

///////////////按中序遍历遍历二叉排序树进行检索///////////

void Rnorder_name( struct Reader* T,char name[],int &vetex){//中序遍历读者链的所有节点int i=vetex;

if(T!=NULL){

Rnorder_name( T->Lift,name,i);

if(strcmp(T->Readername,name)==0){

struct Reathur* u;

u=T->next;

cout<Readername<<"\n";

while(u!=NULL){

cout<bookname<<"》"<<"\n";

u=u->Lnode;

}

vetex=1;

}

Rnorder_name( T->Right,name,i);

}

}

//////////////////////////////////////////////////////////

///////////////按中序遍历遍历二叉排序树进行检索///////////

void Inorder( struct Libray* T){//中序遍历所有的图书节点

if(T!=NULL){

Inorder( T->Llink);

struct Reader* u;

u=T->read;

cout<bookname<<"》\n";

cout<bookno<<"\n";

cout<bookreathur<<"\n";

while(u!=NULL){

cout<Readername<<"\n";

u=u->Lreader;

}

Inorder( T->Rlink);

}

}

void Inorder_search( struct Libray* T,char bookname[20],int &vetex){//按书名检索int i=vetex;

char cname[20];

strcpy(cname,bookname);

if(T!=NULL){

Inorder_search( T->Llink ,cname,i);

if(strcmp(cname,T->bookname)==0){

struct Reader* u;

u=T->read;

cout<bookname<<"》\n";

cout<bookno<<"\n";

cout<booknum<<"\n";

cout<bookreathur<<"\n";

while(u!=NULL){

cout<Readername<<"\n";

u=u->Lreader;

}

vetex=1;

}

Inorder_search( T->Rlink,cname,i);

}

}

void Inorder_searchNo( struct Libray* T,char bookno[20],int &vetex){//按书目编号检索int i=vetex;

char cno[20];

strcpy(cno,bookno);

if(T!=NULL){

Inorder_searchNo( T->Llink ,cno,i);

if(strcmp(cno,T->bookno)==0){

struct Reader* u;

u=T->read;

cout<bookname<<"》\n";

cout<bookno<<"\n";

cout<bookreathur<<"\n";

while(u!=NULL){

cout<Readername<<"\n";

u=u->Lreader;

}

vetex=1;

}

Inorder_searchNo( T->Rlink,cno,i);

}

}

struct Libray* sortree(struct Libray* r)//建立一个含有m 个结点的二叉排序树,p为指向二叉树根结点的指针

{

struct Libray* temp=new struct Libray;

struct Libray* p=new struct Libray;

struct Libray* q=new struct Libray;

if(r->Lnext!=NULL){

temp=r->Lnext;

strcpy(q->bookname,temp->bookname);

strcpy(q->bookno,temp->bookno);

strcpy(q->bookreathur,temp->bookreathur);

q->booknum=temp->booknum;

q->read=temp->read;

q->Llink=NULL;

q->Rlink=NULL; ;

p=q;

}

temp=temp->Lnext;

while(temp!=NULL){

struct Libray* q=new struct Libray;

strcpy(q->bookname,temp->bookname);

strcpy(q->bookno,temp->bookno);

strcpy(q->bookreathur,temp->bookreathur);

q->booknum=temp->booknum;

q->read=temp->read;

q->Llink=NULL;

q->Rlink=NULL;

bsinsert(q,p);

temp=temp->Lnext;

}

return p;

}

//////////////////////////////////////////////////////////

///////////////往二叉排序树中插入记录///////////

void Book_insert(struct Libray* &t,char bookname[],char bookno[],char bookreathur[],int booknum){

struct Libray* j;

int B=1;

struct Libray* p=NULL;

j=t;

while((j!=NULL)&&(B==1)){

switch(strcmp(bookname,j->bookname)){

case 1:

p=j;

j=j->Rlink;

break;

case -1:

p=j;

j=j->Llink;

break;

case 0:

cout<<"该记录已经存在,无需新建该记录....\n";

B=0;

break;

}

}

if(B==1) {

struct Libray* j=new struct Libray;

strcpy(j->bookname,bookname);

strcpy(j->bookno,bookno);

strcpy(j->bookreathur,bookreathur);

j->booknum=booknum;

j->Llink=NULL;

j->Rlink=NULL;

j->read=NULL;

if(t==NULL)

t=j;

if(strcmp(bookname,p->bookname)==1)

p->Rlink=j;

if(strcmp(bookname,p->bookname)==-1)

p->Llink=j;

}

}

//////////////////////////////////////////////////////////

///////////////往二叉排序树中删除记录///////////

void Book_delete(struct Libray* t,char bookname[])//{j指向被删结点,p指向其双亲,假设树

不空}

{

struct Libray* q,*s;

struct Libray* j;

struct Libray* p=NULL;

int B=1;

j=t;

while((j!=NULL)&&(B==1)){

switch(strcmp(bookname,j->bookname)){

case 1:

p=j;

j=j->Rlink;

break;

case -1:

p=j;

j=j->Llink;

break;

case 0:

B=0;

break;

}

}

if(B==0) {

if(j->Llink==NULL)//{被删结点无左子树}

s=j->Rlink;

else

if(j->Rlink==NULL)

s=j->Llink;

else{

q=j;

s=q->Llink;

while(s->Rlink!=NULL){

q=s;

s=s->Rlink;

};

s->Rlink=j->Rlink;

if (q!=j){

q->Rlink=s->Llink;

s->Llink=j->Llink;

}

}

if(p==NULL)

t=s;

else

if (j==p->Llink)

p->Llink=s;

else

p->Rlink=s;

}

}

////////////////////////////////////////////////////

//////////////寻找重复的读者名称////////////////////

void search_name(struct Reader* T,char name[],struct Reader* &p){

if(T!=NULL){

search_name( T->Lift,name,p);

if(strcmp(T->Readername,name)==0){

p=T;

goto mark;

}

else

p=NULL;

search_name( T->Right,name,p);

}

mark:;

}

void Rsinsert(struct Reader* s,struct Reader* &t)//{将s所指结点插入到根结点指针为t的树中} {

if (t==NULL)

t=s;

else

if(strcmp(s->Readername,t->Readername)==1){

Rsinsert(s,t->Right);

}

else {

Rsinsert(s,t->Lift);

}

}

//////////////////////////////////////////////////////////

///////////////建立读者链的二叉排序树///////////

struct Reader* Build_reader(struct Libray* book){

struct Reader* vetex=new struct Reader;;

struct Reader* q;

struct Reader* Rroot=new struct Reader;

struct Reader* temp=new struct Reader;

struct Reathur* u=new struct Reathur;

struct Reathur* v;

struct Libray* p=new struct Libray;

char bname[20];

p=book->Lnext;

strcpy(u->bookname,p->bookname);

u->Lnode=NULL;

q=p->read;

if(q!=NULL){

strcpy(temp->Readername,q->Readername);

temp->next=u;

temp->Lift=NULL;

temp->Right=NULL;

}

Rroot=temp;

q=q->Lreader;

while(q!=NULL){

struct Reathur* u=new struct Reathur;

struct Reader* temp=new struct Reader;

u->Lnode=NULL;

strcpy(u->bookname,p->bookname);

strcpy(temp->Readername,q->Readername);

temp->next=u;

temp->Lift=NULL;

temp->Right=NULL;

Rsinsert(temp,Rroot);

q=q->Lreader;

}

p=p->Lnext;

while(p!=NULL){

q=p->read;

while(q!=NULL){

search_name(Rroot,q->Readername,vetex);

struct Reathur* u=new struct Reathur;

strcpy(u->bookname,p->bookname);

u->Lnode=NULL;

if(vetex!=NULL){

u->Lnode=vetex->next;

vetex->next=u;

q=q->Lreader;

continue;

}

struct Reader* temp=new struct Reader;

strcpy(temp->Readername,q->Readername);

temp->next=u;

temp->Lift=NULL;

temp->Right=NULL;

Rsinsert(temp,Rroot);

q=q->Lreader;

}

p=p->Lnext;

}

return Rroot;

}

//////////////////////////////////////////////////////////

//////////////////////////寻找读者想借阅的书籍////////////

struct Libray* Book_search(struct Libray* &t,char bookname[]){

struct Libray* j;

struct Libray* p=NULL;

int B=1;

j=t;

while((j!=NULL)&&(B==1)){

switch(strcmp(bookname,j->bookname)){

case 1:

p=j;

j=j->Rlink;

break;

case -1:

p=j;

j=j->Llink;

break;

case 0:

B=0;

break;

}

}

if(B==0&&j->booknum>0){

cout<<"已经在到你要寻找的书籍,可以借阅....\n";

return j;

}

if(B==1){

cout<<"Sorroy!没有你要寻找的书籍....\n";

return NULL;

}

}

//////////////////////////////////////////////////////////

//////////////////////////寻找读者信息,若无则建立新节点///

struct Reader* Reader_sea(struct Reader* &t,char bookname[],char readername[]){ struct Reader* j,*q;

struct Reathur* p;

int B=1;

j=t;

while((j!=NULL)&&(B==1)){

switch(strcmp(readername,j->Readername)){

case 1:

q=j;

j=j->Right;

break;

case -1:

q=j;

j=j->Lift;

break;

case 0:

B=0;

break;

}

}

if(B==0){

p=j->next;

while(p!=NULL){

if(strcmp(bookname,p->bookname)==0){

cout<<"Sorroy!你已经借阅了该书籍,不能重复借阅....\n";

return NULL;

}

p=p->Lnode;

}

return j;

}

else{

struct Reader* j=new struct Reader;

strcpy(j->Readername,readername);

j->Lift=NULL;

j->Right=NULL;

j->next=NULL;

if(t==NULL)

t=j;

if(strcmp(readername,q->Readername)==1)

q->Right=j;

if(strcmp(readername,q->Readername)==-1)

q->Lift=j;

return j;

}

}

//////////////////////////////////////////////////////////

///////////////读者借书///////////

void Borrow_book(struct Libray* &book,struct Reader* &Readeroot){

char Rname[20],Bname[20];

struct Libray* p=book;

struct Reader* q=Readeroot;

struct Libray* u;

struct Reader* v;

cout<<"请输入用户名!\n";

cin>>Rname;

cout<<"请输入书籍名!\n";

cin>>Bname;

u=Book_search(p,Bname);

v=Reader_sea(q,Bname,Rname);

if(u==NULL){

return;

}

else{

if(v==NULL){

return;

}

else{

struct Reader* temp=new struct Reader;

struct Reathur* tp=new struct Reathur;

strcpy(temp->Readername,Rname);

u->booknum--;

temp->Lreader=u->read;

u->read=temp;

strcpy(tp->bookname,Bname);

tp->Lnode=v->next;

v->next=tp;

}

}

}

//////////////////////////////////////////////////////////

//////////////////////////寻找读者想借阅的书籍////////////

void B_search(struct Libray* &t,char bookname[],char Rname[]){ struct Libray* j;

struct Libray* p=NULL;

struct Reader* u,*v;

int B=1;

j=t;

while((j!=NULL)&&(B==1)){

switch(strcmp(bookname,j->bookname)){

case 1:

p=j;

j=j->Rlink;

break;

case -1:

p=j;

j=j->Llink;

break;

case 0:

B=0;

break;

}

}

if(B==0){

cout<<"已经找到该书籍的有关记录,更新记录....\n";

j->booknum++;

u=j->read;

if(strcmp(Rname,u->Readername)==0){

j->read=u->Lreader;

delete(u);

return;

}

v=u;

u=u->Lreader;

while(u!=NULL){

if(strcmp(Rname,u->Readername)==0){

v->Lreader=u->Lreader;

delete(u);

return;

}

v=u;

u=u->Lreader;

}

if(B==1){

cout<<"Sorroy!没有找到该书籍的有关记录....\n";

return;

}

}

}

//////////////////////////////////////////

////////////////寻找读者信息/////////////

void R_sea(struct Reader* &t,char readername[],char bname[]){ struct Reader* j,*s,*q;

struct Reathur* v,*u;

struct Reader* p=NULL;

int B=1;

j=t;

while((j!=NULL)&&(B==1)){

switch(strcmp(readername,j->Readername)){

case 1:

p=j;

j=j->Right;

break;

case -1:

p=j;

j=j->Lift;

break;

case 0:

B=0;

break;

}

}

if(B==0){

cout<<"已经找到该读者的有关记录,更新记录....\n";

u=j->next;

if(strcmp(bname,u->bookname)==0){

if(u->Lnode==NULL){

if(j->Lift==NULL)//{被删结点无左子树}

s=j->Right;

else

if(j->Right==NULL)

s=j->Lift;

else{

q=j;

s=q->Lift;

while(s->Right!=NULL){

q=s;

s=s->Right;

};

s->Right=j->Right;

if (q!=j){

q->Right=s->Lift;

s->Lift=j->Lift;

}

}

if(p==NULL)

t=s;

else

if (j==p->Lift)

p->Lift=s;

else

p->Right=s;

}

else

j->next=u->Lnode;

delete(u);

return;

}

else{

v=u;

u=u->Lnode;

while(u!=NULL){

if(strcmp(bname,u->bookname)==0){

v->Lnode=u->Lnode;

delete(u);

return;

}

u=u->Lnode;

}

}

}

else{

cout<<"Sorroy!没有找到该读者的有关记录....\n";

return;

}

}

////////////////////////////////////////////

///////////////读者还书/////////////////////////

void Return_book(struct Libray* &book,struct Reader* &Readeroot){ char Rname[20],Bname[20];

struct Libray* p=book;

struct Reader* q=Readeroot;

cout<<"请输入用户名!\n";

cin>>Rname;

cout<<"请输入书籍名!\n";

cin>>Bname;

B_search(p,Bname,Rname);

R_sea(q,Rname,Bname);

}

//////////////////////////////////////////////////////////

///////////////将新纪录写入到文件当中///////////

void write_file(struct Libray* &T){

int i;

struct Libray* p=new struct Libray;

struct Libray* s[50];

fstream ofile;

ofile.open("C:\\Documents and Settings\\dufan\\My Documents\\Visual Studio 2008\\Projects\\mdata.txt",ios::out);

if(!ofile){

cout<<"The file can not open!\n";

return;

}

if(T==NULL)

return;

else {

i=0;

p=T;

}

do{

while(p!=NULL){

i=i+1;

s[i]=p;

p=p->Llink;

}

if(i!=0){

p=s[i];

i=i-1;

struct Reader* u;

u=p->read;

ofile<<"书名:"<bookname<<"\n";

ofile<<"书目编号:"<bookno<<"\n";

ofile<<"作者名称:"<bookreathur<<"\n";

ofile<<"现有册数:"<booknum<<"\n";

while(u!=NULL){

ofile<<"借阅读者:"<Readername<<"\n";

u=u->Lreader;

}

p=p->Rlink;

}

}while (i!=0 || p!=NULL);

}

int main(){

char ch;

int cnum,i=0;

char temp[5],cname[20],cno[20],creathur[20],cborrow[20];

struct Libray* book=new struct Libray;

struct Libray* p;

struct Reader* r=new struct Reader;//用于指向读者链

struct Reader* Readeroot=new struct Reader;//用于指向读者链二叉排序树

fstream ifile;

ifile.open("C:\\Documents and Settings\\dufan\\My Documents\\Visual Studio 2008\\Projects\\mdata.txt",ios::in);

if(!ifile){

cout<<"The file can not open!\n";

return 0;

}

p=book;

while(!ifile.eof()){

struct Libray* booktemp=new struct Libray;

struct Reader* rtemp;

rtemp=r;

ifile.ignore(20,':');

ifile.getline(cname,20);

strcpy(booktemp->bookname,cname);//读取书籍名称

ifile.ignore(20,':');

ifile.getline(cno,20);

strcpy(booktemp->bookno,cno);//读取书籍编号

ifile.ignore(20,':');

ifile.getline(creathur,20);

strcpy(booktemp->bookreathur,creathur);//读取作者名称

ifile.ignore(20,':');

ifile.getline(temp,20);

cnum=atol(temp);

booktemp->booknum=cnum;//读取现有册数

while(ifile.get(ch)){//读取借阅者名称

if((int)ch==-54)

break;

ifile.ignore(20,':');

struct Reader* q=new struct Reader;//读者节点

ifile.getline(cborrow,20);

strcpy(q->Readername,cborrow);//读取读者姓名

q->Lreader=NULL;

rtemp->Lreader=q;

rtemp=rtemp->Lreader;

}

booktemp->read=r->Lreader;

booktemp->Lnext=NULL;

p->Lnext=booktemp;

p=p->Lnext;

}

ifile.close();

delete(r);

Readeroot=Build_reader(book);

book=sortree(book);

//Inorder(book);

//Rnorder(Readeroot);

int fun;

while(1){

cout<<"/********** 图书管理系统功能说明表**********\n";

cout<<"/** 1添加新书\n";

cout<<"/** 2删除旧书\n";

cout<<"/** 3按书名检索\n";

cout<<"/** 4按书目编号检索\n";

cout<<"/** 5查询读者信息\n";

cout<<"/** 6读者借书\n";

cout<<"/** 7读者还书\n";

cout<<"/** 8更新文件记录\n";

cout<<"/** 0退出图书管理系统\n";

cout<<"/** 请选择要执行的操作\n";

cin>>fun;

switch(fun){

case 1:

cout<<"/** 请依次输入书名,书目编号,作者名称,现有册数,并用空格隔开!\n";

cin>>cname;

cin>>cno;

cin>>creathur;

cin>>cnum;

Book_insert(book,cname,cno,creathur,cnum);

break;

case 2:

cout<<"/** 请输入书名:";

cin>>cname;

Book_delete(book,cname);

break;

case 3:

cout<<"/** 请输入书名:";

cin>>cname;

//Inorder(book);

Inorder_search( book,cname,i);

if(i!=1){

cout<<"没有找到符合条件的信息,是否要新建该记录....\n\n";

}

break;

case 4:

cout<<"/** 请输入书目编号:";

cin>>cno;

Inorder_searchNo( book,cno,i);

//cout<

if(i!=1){

cout<<"没有找到符合条件的信息,是否要新建该记录....\n\n";

}

break;

case 5:

cout<<"/** 请输入读者名:";

cin>>cname;

Rnorder_name(Readeroot,cname,i);

if(i!=1){

cout<<"没有找到符合条件的信息,是否要新建该记录....\n\n";

}

break;

case 6:

Borrow_book(book,Readeroot);

break;

case 7:

Return_book(book,Readeroot);

break;

case 8:

write_file(book);

cout<<"更新成功!\n";

break;

case 0:

exit(0);

break;

}

}

}

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

附录 主页面(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.退出:退出图书管理系统。 图书类设计:

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)对图书的金额进出管理,对一丢失的图书进行处罚、对超期归还的图书进行赔偿金额计算。 第二章系统功能设计

图书馆管理系统源代码

源程序清单 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

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

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)对图书的金额进出管理,对一丢失的图书进行处罚、对超期归还的图书 进行赔偿金额计算。

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

毕业设计_图书管理系统 一、数据库设计数据库设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() {

图书管理系统程序代码

#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)

图书管理系统程序代码

模块设计 基础模块 SqlSession: 利用mybatis获取jdbc,其中有inter.select,update,select等方法 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sesson = sqlSessionFactory.openSession(); Dao基础模块 所有的dao都继承于BaseDao; 代码 /** *保存利用mybatis的xml * model 保存的对象 *id mybatis的id名 */ Public void Save(BaseModel model,String id){ sesson.inster(id model); } …… Model基础模块 所有的模型都继承于BaseModel; 代码片段 /** *字段编号 */ Private int id; Public void setId(String id){ This.id = id; } Public String getId(){

Return id; } 添加书籍 代码片段 Book book = new Book(); book.setId(…..); …….. Book.setTitle(….); BooksManageDao bookDao = new BooksManageDao(); bookDao .save(“addBook”,book); 删除书籍 代码片段 BookDao bookDao = new BookDao(); Book book = (Book) bookDao .getModel(id); BooksManageDao bookDao = new BooksManageDao(); bookDao .delete(“delete Book”,book); 更新书籍

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

组长:何关瑶学号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)对图书的金额进出管理,对一丢失的图书进行处罚、对超期归还的图书 进行赔偿金额计算。

图书管理系统程序源代码

源程序 1.主窗体 Private Sub add_back_Click() frmbackbookinfo.Show End Sub Private Sub add_binf_Click() frmaddbookinfo.Show End Sub Private Sub add_book_style_Click() frmaddbookstyle.Show End Sub Private Sub add_manager_Click() frmadduser.Show End Sub Private Sub add_rinf_Click() frmaddreaderinfo.Show End Sub Private Sub add_rstyle_Click() frmaddreaderstyle.Show End Sub Private Sub change_binf_Click() frmmodifybookinfo.Show End Sub Private Sub change_book_style_Click() frmmodifybookstyle.Show End Sub Private Sub delete_binf_Click() frmmodifybookinfo.Show End Sub Private Sub delete_book_style_Click() frmmodifybookstyle.Show End Sub Private Sub delete_rstyle_Click() frmmodifyreaderstyle.Show End Sub Private Sub exit_Click() End End Sub Private Sub find_binf_Click() frmfindbook.Show End Sub Private Sub find_lend_Click() frmfindborrowinfo.Show

图书管理系统模板(附代码)

课程设计报告 图书管理系统的 设计与实现 系 名:电子通信与软件工程系 专 业:计算机科学与技术 指导教师: 二○一三 年 十二 月 装 订 线 中山大学南方学院

目录 第1章可行性分析 (1) 1.1经济可行性 (1) 1.2技术可行性 (1) 第2章需求分析 (2) 2.1 图书管理系统开发的目的 (2) 2.2 图书管理系统开发的背景 (2) 2.3 图书管理系统开发任务概述 (2) 2.4 系统(或用户)的特点 (2) 2.5 假定和约束 (3) 2.6 软件功能说明 (3) 2.7 对功能的一般性规定 (5) 2.8 运行环境规定 (6) 2.9支撑软件 (6) 2.10 接口 (6) 第3章总体设计 (7) 3.1系统设计 (7) 3.2结构设计 (11) 3.2.1模块描述 (11) 3.2.2系统角色设计 (13) 3.3接口设计 (14) 3.3.1用户界面设计规则 (14) 3.3.2内部接口设计 (14) 3.3.3外部接口设计 (14) 3.3.4出错处理设计 (14) 3.3.5系统维护设计 (14) 第4章详细设计 (15) 4.1 数据库设计 (15) 4.1.1数据库概念结构设计 (15) 4.1.2数据库逻辑结构设计 (15) 4.2.1程序界面 (15)

4.3 服务器模块 (19) 4.3.1程序界面 (19) 4.3.2功能说明 (19) 4.4改进计划 (19) 4.5支持软件 (20) 4.6使用说明 (20) 4.7出错和恢复 (20) 4.8版权说明 (22) 4.8.1开发团队 (22) 4.8.2版权信息 (22) 4.8.3版权信息 (22) 第5章编码与测试 (23) 5.1 编码阶段 (23) 5.1.1 连接数据库代码 (23) 5.1.2 登录代码 (23) 5.1.3 注册代码 (25) 5.1.4 违规处理代码 (26) 5.2 软件测试报告 (26) 5.2.1 引言 (26) 5.2.2 测试步骤 (26) 5.2.3 测试结果 (27) 参考文献 (28) 开发心得体会 (29)

Java图书管理系统附源码

Java图书管理系统 附源码

目录 题目简述 -------------------------------- 01 需求分析 -------------------------------- 01 数据结构 -------------------------------- 01 功能模块 -------------------------------- 02 程序设计 -------------------------------- 02 运行截图 -------------------------------- 04 分析总结 -------------------------------- 08 程序源码 -------------------------------- 08 图书信息管理系统 题目简述: 题目名称:图书信息管理系统 要求:使用图形用户界面,用数据库建立1或2个图书信息表,能连接数据库并实现查询、增加、删除、修改等功能。 需求分析: 图书信息管理系统应该具备图书的信息管理功能和流通管理

功能。其中,信息管理功能包括查找,增加,修改,删除,显示全部信息等模块。流通管理功能包括图书借阅,归还等模块。因此分别设计各个模块,实现不同的功能。 数据结构: 用SQL Sever 建立数据库的表,用一张表存放图书的ID号码,图书名称,图书的所有者,图书状态,图书的使用者(允许为空)。具体设计如下图所示: 图书ID,图书名称,图书所有者,图书的状态,图书使用者(允许为空)均为varchar(50)类型,在Java中能够方便的查询。图书存储信息的具体内容如下图所示: 功能模块:

图书信息管理系统设计源代码

头函数名: #include #include #include /*********图书信息结构体*********/ /***包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等***/ struct bookinf { int num; ******************************************************登录号char bname[20];***************************************书名 char wname[10];***************************************作者名 char clanum[14];***************************************分类号 char pubcom[10];***************************************出版单位 char pubtime[10];***************************************出版时间 float price;*********************************************价格 }; 一管理员登录系统模块: (1)来到图书信息管理系统页面 void index() { char input; 注释:运行时printf("\n\n\t\t\t*****************************\n"); 直接进入printf("\t\t\t 图书信息管理系统\n"); 这个页面printf("\t\t\t*****************************\n\n\n"); printf(" ------------------------------------------------------------------------------\n"); printf("\t<按任意键进入>\n\t"); input=getchar(); } (2)管理员登陆进入功能菜单页面

相关文档
相关文档 最新文档