SQL数据库课程设计酒店管理系统教学提纲.docx
《SQL数据库课程设计酒店管理系统教学提纲.docx》由会员分享,可在线阅读,更多相关《SQL数据库课程设计酒店管理系统教学提纲.docx(25页珍藏版)》请在冰豆网上搜索。
SQL数据库课程设计酒店管理系统教学提纲
苏州市职业大学
课程设计任务书
课程名称:
《计算机语言C》
起讫时间:
2007-12-31至2008-1-4
院系:
计算机工程系
班 级:
07软件测试
指导教师:
李金祥顾小晶
系主任:
宣仲良
苏州市职业大学
课程设计说明书
名称:
《计算机语言C》课程设计
图书登记管理程序
2007年12月31日至2008年1月4日共1周
院 系计算机工程系
班级07软件测试
姓名马宝珠
系 主 任宣仲良
教研室主任叶良
指导教师李金祥顾小晶
1.需求分析
图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。
拥护根据系统界面的提示信息对图书馆信息进行查询、初始化等操作
系统功能需求分析描述如下:
(1)查询图书:
根据图书编号进行查询,读者可以浏览或查询相关图书。
(2)系统主菜单:
若未找到相应的书籍返回到上一级目录。
(3)图书登记:
读者输入要查询的编号、出版社、作者姓名等信息,系统将进行处理。
(4)初始化:
输入书号、书名、书籍的数量以空格隔开,建立新文件写入数据否则初始化失败。
(5)新书入库:
可读入新书名称、编号、数量以空格隔开看是否有此类书籍。
(6)借书菜单:
可输入读者编号和所借书编号或调用借书函数执行借书功能。
(7)还书菜单:
可输入读者编号和所还书的编号执行还书功能,还书后修改图书库存量。
(8)保存连接数据:
方便读者了解图书登记的相关信息,为图书管理人员和读者带来便利。
2.总体设计
下面从系统的整体流程的功能模块系统界面及数据结构进行总体设计。
(1)总体思想
本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、初始化、添加新书、借书、还书等主要功能。
图书登记管理情况以文件的形式储存,系统的人机接口系用简单的字符界面进行交互,系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。
(2)系统模块结构图
根据需求分析结果,图书登记管理系统可以分为三大模块:
查询图书模块、图书登记管理模块、系统控制平台。
系统模块结构如图:
3、概要设计
㈠系统主菜单。
显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。
功能主要包括:
退出系统、查询图书、借书、还书、新书入库。
㈡查询图书信息
进入此菜单功能模块,输入您要查询的图书的编号、名称、作者、出版日期等。
图书查询模块流程如图:
㈢图书登记管理模块
根据功能选择进行操作,主要包括建立图书入库文件的保存与修改,借书、还书文件的建立与修改。
对系统进行初始化。
4、数据结构设计
图书信息和读者信息的数据结构系统云运用结构体来存放图书的编号、作者、出版、借书、还书、新书入库,读者的编号、姓名、借书名称等信息。
下面是结构体的简单描述:
typedefstructbk
{
charbook_num[11];
charbook_name[41];
intbook_kc;
intbook_xc;
structbk*next;
}book;
typedefstructrd
{
charreader_num[11];
charreader_name[11];
charreader_book_num[11];
structrd*next;
}reader;
5、系统流程描述
系统进行初始化后,根据提示输入图书、读者的相关信息后系统进入了主菜单,根据选择相应的功能代码进入不同的功能菜单。
主要包括退出系统、新书入库、图书查询、借书、还书、输出所有信息功能。
选择代码按回车键即可进入,进入功能模块后出现了不同选象,下面以进入借宿书模块为例:
进入借书模块后系统将提醒选择1可返回主菜单,选择2可正式进入借书系统。
选择2后,系统提示“请输入所借书的相关信息,读者的相关信息。
6、界面设计
一、系统主菜单
voidM_Form()
{charch;
printf("\nThemainwindowofbooksmanage");
printf("\n0:
Exit");
printf("\n1:
Newbookinstore");
printf("\n2:
Bookcheck");
printf("\n3:
Borrowbookcheckin");
printf("\n4:
Returnbookcheckin");
printf("\n5:
Outputallinformation");
do{
printf("\n\nPleasechosethecode:
");
scanf("%c",&ch);
fflush(stdin);
}while(ch!
='0'&&ch!
='1'&&ch!
='2'&&ch!
='3'&&ch!
='4'&&ch!
='5');
switch(ch)
{case'0':
exit(0);
case'1':
Form_Insert_New_Book();break;
case'2':
Form_Find_Book();break;
case'3':
Form_Borrow_Book();break;
case'4':
Form_Return_Book();break;
case'5':
load_data();print_book(h_book);print_reader(h_reader);M_Form();
default:
printf("error\n");exit(0);
}
}
二、系统初始化模块
voidinit_book()
{bookba[3];
FILE*fp;
inti;
printf("\nSystemwillinitialize,Bookinitializemodule:
\n");
printf("\nEnter3books’num,name,quantity(Spaceoutwithblank):
\n");
for(i=0;i<3;i++)
scanf("%s%s%d",ba[i].book_num,ba[i].book_name,&ba[i].book_kc);
for(i=0;i<3;i++){ba[i].book_xc=ba[i].book_kc;}
if((fp=fopen("book.dat","wb"))==NULL)
{printf("Bookfilecan'tbefounded,Initializefail!
Pleaserestarsystem!
\n");return;}
for(i=0;i<3;i++)
{if(fwrite(&ba[i],sizeof(structbk),1,fp)!
=1)
{printf("\Writedatewrong!
\n");exit(0);}
}
fclose(fp);
}
三、新书入库模块
voidInsert_New_Book(charbook_num[],charbook_name[],intnumber)
{structbk*book_fp;
structbk*p,*q,*t;
q=p=h_book;
while(p!
=NULL&&strcmp(p->book_num,book_num)!
=0){q=p;p=p->next;}
if(strcmp(p->book_num,book_num)==0)
{printf("\n\t\tThisnumalreadyexist,Pleasereorder!
\n");
return;
}
t=(structbk*)malloc(sizeof(structbk));
strcpy(t->book_num,book_num);
strcpy(t->book_name,book_name);
t->book_kc=t->book_xc=number;
q->next=t;t->next=NULL;
if((book_fp=fopen("book.dat","ab"))==NULL)
{printf("Bookfilecan'tbefounded,Initializefail!
Pleaserestarsystem!
\n");return;}
fwrite(t,sizeof(structbk),1,book_fp);
fclose(book_fp);
}
voidprint_book(structbk*h)
{structbk*p;
p=h;
printf("\n\tBooknum\tBookname\tStorequantity\tNowquantity\n");
while(p!
=NULL)
{printf("%10s\t%10s%10d\t%10d\n",p->book_num,p->book_name,p->book_kc,p->book_xc);
p=p->next;
}
}
四、借书模块
voidBorrow_Book(charreader_num[],charbook_num[])
{structbk*book_p;
structrd*reader_p;
book_p=h_book;
while(book_p!
=NULL&&strcmp(book_p->book_num,book_num)!
=0)
book_p=book_p->next;
if(book_p==NULL)
{printf("\n\tThisnumofbooknoexist!
\n");
Form_Borrow_Book();
}
reader_p=h_reader;
while(reader_p!
=NULL&&(strcmp(reader_p->reader_num,reader_num)!
=0))
reader_p=reader_p->next;
if(reader_p==NULL)
{printf("\n\tThisnumofreadernoexist!
\n");
Form_Borrow_Book();
}
elseif(strcmp(reader_p->reader_book_num,"0")!
=0)
{printf("\n\talreadyreachthetop,Can'tborrowagain!
\n");
Form_Borrow_Book();
}
else{
book_p->book_xc=book_p->book_xc-1;
strcpy(reader_p->reader_book_num,book_p->book_num);
save();
load_data();
}
Form_Borrow_Book();
}
五、还书功能模块
voidReturn_Book(charreader_num[],charbook_num[])
{structbk*book_p;
structrd*reader_p;
book_p=h_book;
while(book_p!
=NULL&&strcmp(book_p->book_num,book_num)!
=0)
book_p=book_p->next;
if(book_p==NULL)
{printf("\n\tThisnumofbooknoexist!
\n");
Form_Return_Book();
}
reader_p=h_reader;
while(reader_p!
=NULL&&(strcmp(reader_p->reader_num,reader_num)!
=0))
reader_p=reader_p->next;
if(reader_p==NULL)
{printf("\n\ttThisnumofreadernoexist!
\n");
Form_Return_Book();
}
elseif(strcmp(reader_p->reader_book_num,book_num)!
=0)
{printf("\n\tReaderdidn'tborrowthisbook\n");
Form_Return_Book();
}
else{
book_p->book_xc=book_p->book_xc+1;
strcpy(reader_p->reader_book_num,"0");
save();
load_data();
}
Form_Return_Book();
}
六、输出所有信息模块
voidForm_Insert_New_Book()
{charch;
structbkt;
printf("\nNewbookinstormodule,Pleasechosethecode:
\n");
printf("0:
Returnmainmenu\n");
printf("1:
Newbookinstore");
do{
printf("\n\nPleasechosethecode:
");
scanf("%c",&ch);
fflush(stdin);
}while(ch!
='0'&&ch!
='1'&&ch!
='2'&&ch!
='3'&&ch!
='4'&&ch!
='5');
switch(ch)
{case'0':
M_Form();break;
case'1':
{printf("\nEnterbook'snumnamequantity(Spaceoutwithblank):
");
scanf("%s%s%d",t.book_num,t.book_name,&t.book_kc);
fflush(stdin);
Insert_New_Book(t.book_num,t.book_name,t.book_kc);
Form_Insert_New_Book();
}
default:
printf("error\n");exit(0);
}
}
程序清单:
#include
#include
#include
#include
typedefstructbk
{
charbook_num[11];
charbook_name[41];
intbook_kc;
intbook_xc;
structbk*next;
}book;
typedefstructrd
{
charreader_num[11];
charreader_name[11];
charreader_book_num[11];
structrd*next;
}reader;
structbk*h_book,*h_reader;
voidForm_Insert_New_Book();
voidForm_Find_Book();
voidForm_Borrow_Book();
voidForm_Return_Book();
voidFind_Book(char*);
voidInsert_New_Book(char*,char*,int);
voidBorrow_Book(char*,char*);
voidReturn_Book(char*,char*);
voidprint_book(structbk*);
voidprint_reader(structrd*);
voidload_data();
voidinit_reader();
voidinit_book();
voidsave();
voidM_Form()
{charch;
printf("\nThemainwindowofbooksmanage");
printf("\n0:
Exit");
printf("\n1:
Newbookinstore");
printf("\n2:
Bookcheck");
printf("\n3:
Borrowbookcheckin");
printf("\n4:
Returnbookcheckin");
printf("\n5:
Outputallinformation");
do{
printf("\n\nPleasechosethecode:
");
scanf("%c",&ch);
fflush(stdin);
}while(ch!
='0'&&ch!
='1'&&ch!
='2'&&ch!
='3'&&ch!
='4'&&ch!
='5');
switch(ch)
{case'0':
exit(0);
case'1':
Form_Insert_New_Book();break;
case'2':
Form_Find_Book();break;
case'3':
Form_Borrow_Book();break;
case'4':
Form_Return_Book();break;
case'5':
load_data();print_book(h_book);print_reader(h_reader);M_Form();
default:
printf("error\n");exit(0);
}
}
voidForm_Find_Book()
{charch;
charbook_num[11];
printf("\nBookcheckmodule,Pleasechosethecode:
\n");
printf("0:
Returntomainmenu\n");
printf("1:
Bookcheck");
do{
printf("\n\nPleasechosethecode:
");
scanf("%c",&ch);
fflush(stdin);
}while(ch!
='0'&&ch!
='1');
switch(ch)
{case'0':
M_Form();break;
case'1':
{printf("\nEnterneedbook’snum:
");
scanf("%s",book_num);
fflush(stdin);
Find_Book(book_num);
Form_Find_Book();
}
default:
printf("error\n");exit(0);
}
}
voidFind_Book(charbook_num[])
{structbk*p;
p=h_book;
while(p!
=NULL&&strcmp(p->book_num,book_num)!
=0)
p=p->next;
if(p==NULL)printf("\n\tThenumofbooknoexist!
\n");
else{printf("\n\tBooknum\tBookname\tStoreroomquantity\tNowquantity\n");
printf("%10s\t%10s\t%d\t%d\t\n",p->book_num,p->book_name,p->book_kc,p->book_xc);
}
getch();
}
voidinit_book()
{bookba[3];
FILE*fp;
inti;
printf("\nSystemwillinitialize,Bookinitializemodule:
\n");
printf("\nEnter3books’num,name,quantity(Spaceoutwithblank):
\n");
for(i=0;i<3;i++)
scanf("%s%s%d",ba[i].book_num,ba[i].book_name,&ba[i].book_kc);
for(i=0;i<3;i++){ba[i].book_xc=ba[i].book_kc;}
if((fp=fopen("book.dat","wb"))==NULL)
{printf("Bookfilecan'tbefounded,Initializefail!
Pleaserestarsystem!
\n");return;}
for(i=0;i<3;i++)
{if(fwrite(&ba[i],sizeof(structbk),1,fp)!
=1)
{printf("\Writedatewrong!
\n");exit(0);}
}
fclose(fp);
}
voidinit()
{intdrive=DETECT,mode=0;
initgraph(&drive,&mode,"");
init_book();
init_reader();
}
voidInsert_New_Book(charbook_num[],charbook_name[],intnumber)
{structbk*book_fp;
structbk*p,*q,*t;
q=p=h_book;
while(p!
=NULL&&strcmp(p->book_num,book_num)!
=0){q=p;p=p->next;}
if(strcmp(p->book_num,book_num)==0)
{printf("\n\t\tThisnumalreadyexist,Pleasereorder!
\n");
return;
}
t=(structbk*)malloc(sizeof(structbk));
strcpy(t->book_num,book_num);
strcpy(t->book_name,book_name);
t->book_kc=t->book_xc=number;
q->next=t;t->next=NULL;
if((book_fp=fopen("book.dat","ab"))