C++课程设计
课程设计
系部:计算机应技术系
专业:计算机应技术
班级学号:
姓名:
系统功分析:
图书理系统
设计说明报告:
图书馆作学生学知识重场作信息资源集散图书馆户阅资料繁包含信息数理介现象图书馆阅理系统进行全面分析处理信息高速发展天促进图书馆理运网络技术通信息系统开发图书馆间互通利提高图书利率
系统针图书理面量纷繁复杂图书理工作图书出需设计合理系统应包括图书库读者库图书书信息建立网电子图书理系统目实现纸化图书理减轻理员工作量
时损失图书进行删达降低成提高工作效率目标
系统设计缺点足时间里断完善修改希老师够指出足够真正更应生活中
二系统设计:
设计四类Reader(读者类)Rdatabase(读者库类)Book(图书类)Bdatabase(图书库类)读者类存储信息中包括读者基属性int tag删标记 1:已删0:未删 int no 读者编号 char name[10]读者姓名 int borbook[Maxbor]图书 char *getname() 获取姓名 int gettag() 获取删标记 int getno()获取读者编号void setname(char na[])设置姓名void delbook()设置删标记void addreader(int nchar *na) 增加读者void borrowbook(int bookid) 书操作int retbook(int bookid) 书操作void disp() 输出读者信息读者库类包括:int top 读者记录指针Reader read[Maxr] 读者记录RDatabase() 构造函数readertxt读read[]中void clear() 删读者信息int addreader (int nchar *na) 添加读者时先查找否存Reader *query(int readerid) 编号查找void disp() 输出读者信息void readerdata() 读者库维护~RDatabase() 析构函数read[]写入readertxt文件中
图书类包括:int tag 删标记 1:已删 0:未删 int no 图书编号 char name[20] 书名 int onshelf 否架 1:架 0:已 char *getname() {return name} 获书名 int getno() {return no} 获书编号 int gettag() {return tag} 获删标记 void setname(char na[]) 设置书名void delbook()删图书void addbook(int nchar *na)增加图书int borrowbook() 书操作void retbook() 书操作void disp() 输出图书图书库类包括:int top图书记录指针 Book book[Maxb] 图书记录BDatabase() 构造函数booktxt读book[]中void clear() 全删int addbook(int nchar *na) 增加图书Book *query(int bookid)查找图书void bookdata() 图书库维护~Bdatabase析构函数book[]写入booktxt文件中
Reader(读者类)
Int tag
Int no
Char name[10]
Int borbook[maxbor]
Reader()
Char *getname()
Int gettag()
Int getno()
Void setname(char na[])
Void delreader()
Void addreader(int nchar *na)
Void borrowbook(int bookid)
Int retbook(int bookid)
Void disp()
Rdatabase(读者库类)
Int top
Reader read[maxr]
Rdatabase()
Void clear()
Int addreader(int nchar *na)
Reader *query(int readerid)
Void disp()
Void readerdata()
~Rdatabase()
Book(图书类)
Int tag
Int no
Char name[20]
Int oneself
Book()
Char *getname()
Int getno()
Int gettag()
Void setname(char na[])
Void delbook()
Void addbook(int nchar *na)
Void borrowbook()
Int retbook()
Void disp()
Bdatabase(图书库类)
Int top
Book book[maxb]
BDatabase()
Void clear()
Int addbook(int nchar *na)
book *query(int bookid)
Void disp()
Void bookdata()
~BDatabase()
三代码编写:
#include
#include
#include
#include
const int Maxr100
const int Maxb100
const int Maxbor5
class Reader
{
int tag
int no
char name[10]
int borbook[Maxbor]
public
Reader() {}
char *getname() {return name}
int gettag() {return tag}
int getno() {return no}
void setname(char na[])
{
strcpy(namena)
}
void delbook()
{
tag1
}
void addreader(int nchar *na)
{
tag0
non
strcpy(namena)
for (int i0i
}
void borrowbook(int bookid)
{
for (int i0i
{
borbook[i]bookid
return
}
}
int retbook(int bookid)
{
for (int i0i
{
borbook[i]0
return 1
}
return 0
}
void disp()
{
cout<
cout<
}
class RDatabase
{
int top
Reader read[Maxr]
public
RDatabase()
{
Reader s
top1
fstream file(readertxtiosin)
while (1)
{
fileread((char *)&ssizeof(s))
if (file) break
top++
read[top]s
}
fileclose()
}
void clear()
{
top1
}
int addreader (int nchar *na)
{
Reader *pquery(n)
if (pNULL)
{
top++
read[top]addreader(nna)
return 1
}
return 0
}
Reader *query(int readerid)
{
for (int i0i
return &read[i]
return NULL
}
void disp()
{
for (int i0i
if (read[i]gettag()0)
read[i]disp()
}
}
void readerdata()
~RDatabase()
{
fstream file(readertxtiosout)
for (int i0i
filewrite((char *)&read[i]sizeof(read[i]))
fileclose()
}
}
void RDatabasereaderdata()
{
int choice1
char rname[20]
int readerid
Reader *r
while(choice0)
{
if (choice0)
{
cout<<读者维护 <
cin>>choice
if(choice0)continue
if(choice1)
{
cout<<输入读者编号:
cin>>readerid
cout<<输入读者姓名:
cin>>rname
addreader(readeridrname)
}
else
if(choice2)
{
cout<<输入读者编号:
cin>>readerid
rquery(readerid)
if (rNULL)
{
cout<<该读者存<
}
cout<<输入新姓名:
cin>>rname
r>setname(rname)
}
else
if(choice3)
{
cout<<输入读者编号:
cin>>readerid
rquery(readerid)
if (rNULL)
{
cout<<该读者存<
}
r>delbook()
}
else
if(choice4)
{
cout<<输入读者编号:
cin>>readerid
rquery(readerid)
if (rNULL)
{
cout<<该读者存<
}
r>disp()
}
else
if(choice5)disp()
else
if(choice6)clear()
else
cout<<您输入误请重新输入:<
}
}
class Book
{
int tag
int no
char name[20]
int onshelf
public
Book() {}
char *getname() {return name}
int getno() {return no}
int gettag() {return tag}
void setname(char na[])
{
strcpy(namena)
}
void delbook()
{
tag1
}
void addbook(int nchar *na)
{
tag0
non
strcpy (namena)
onshelf1
}
int borrowbook()
{
if (onshelf1)
{
onshelf0
return 1
}
return 0
}
void retbook()
{
onshelf1
}
void disp()
{
cout<
}
class BDatabase
{
int top
Book book[Maxb]
public
BDatabase()
{
Book b
top1
fstream file(booktxtiosin)
while (1)
{
fileread((char*)&bsizeof(b))
if (file) break
top++
book[top]b
}
fileclose()
}
void clear()
{
top1
}
int addbook(int nchar *na)
{
Book *pquery(n)
if (pNULL)
{
top++
book[top]addbook(nna)
return 1
}
return 0
}
Book *query(int bookid)
{
for (int i0i
return &book[i]
return NULL
}
void bookdata()
void disp()
{
for (int i0i
if (book[i]gettag()0)
book[i]disp()
}
}
~BDatabase()
{
fstream file(booktxtiosout)
for (int i0i
filewrite((char*)&book[i]sizeof(book[i]))
fileclose()
}
}
void BDatabasebookdata()
{
int choice1
char bname[40]
int bookid
Book *b
while(choice0)
{
if (choice0)
{
cout<<图书维护<
cin>>choice
if(choice0)continue
if (choice1)
{
cout<<输入图书编号:
cin>>bookid
cout<<输入图书书名:
cin>>bname
addbook(bookidbname)
}
else
if (choice2)
{
cout<<输入图书编号:
cin>>bookid
bquery(bookid)
if (bNULL)
{
cout<<该图书存<
}
cout<<输入新书名:
cin>>bname
b>setname(bname)
}
else
if (choice3)
{
cout<<输入图书编号:
cin>>bookid
bquery(bookid)
if (bNULL)
{
cout<<该图书存<
}
b>delbook()
}
else
if (choice4)
{
cout<<输入图书编号:
cin>>bookid
bquery(bookid)
if (bNULL)
{
cout<<该图书存<
}
b>disp()
}
else
if (choice5)disp()
else
if (choice6)clear()
else
cout<<您输入误请重新输入:<
}
}
void main()
{
int choice1bookidreaderid
RDatabase ReaderDB
Reader *r
BDatabase BookDB
Book *b
while(choice0)
{
if(choice0)
{
cout<<1书 2书 3图书维护 4读者维护 0离开>
cin>>choice
if(choice0)continue
if (choice1)
{
cout<< 书 读者编号:
cin>>readerid
cout<< 图书编号
cin>>bookid
rReaderDBquery(readerid)
if (rNULL)
{
cout<<该读者存书<
}
bBookDBquery(bookid)
if (bNULL)
{
cout<<该读者存书<
}
if (b>borrowbook()0)
{
cout<<该读者存书<
}
r>borrowbook(b>getno())
}
else
if (choice2)
{
cout<<书 读者编号
cin>>readerid
cout<< 图书编号:
cin>>bookid
rReaderDBquery(readerid)
if (rNULL)
{
cout<<存该读者书<
}
bBookDBquery(bookid)
if (bNULL)
{
cout<<存该图书书<
}
b>retbook()
r>retbook(b>getno())
}
if (choice3)BookDBbookdata()
else
if (choice4)ReaderDBreaderdata()
else cout<<您输入误请重新输入:<
}
}
四总结
C++语言课程设计现代计算机技术实际应相结合阶段学完理课程该方面力次检验
开始算法思路运行调试美观图形界面兴奋程序学锻炼程巩固原理知识培养灵活运组合集成学知识技分析解决实际问题力体会身知识力实际中应发挥激发创新意识开发创造力培养沟通力
次实时间然仅星期确实受益非浅通实丰富计算机操作验更加深C++语言解熟悉环境
外实中老师进行细心耐心指导鼓励程序进行合理改进培养创新意识创新力原认怕课程设计种种辅助条件完成心里说出高兴
发现问题解决问题程困惑明朗苦恼道兴奋步步走发现编程真奇妙刺激旅程特认毫事情完成种感觉简直言语表达
感谢次课程设计带全新体验丰富验会换成奋斗源泉
五参考书
•1 李龙澍编 C++程序设计 清华学出版社
•2李龙澍编 C++程序设计实训 清华学出版社社
•3刘振安等 C++程序设计课程设计 机械工业出版社
•4李春葆等 C++语言程序设计题典清华学出版社
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档