发现了一个很不错的微信小明孝程序源码。
weapp-library:提供在线借书功能的开源小程序项目。连接读者与图书馆,实现图书借阅线上化。界面风兆世格良好,功能完整。具有注册登录、图书搜索、书单系统、订单管理等功能。这是一个完整的小程序项目,包括了前后端的开发,并且撰写了完善的文档,适合初学者学习。
文档真的是很完善,可以看出作者是真的费心了。
在线借书平台小程序——我的——组件展示
本项目采用三层架构,从上族槐肢至下分为界面层、业务逻辑层(Controller)、数据访问层(Eloquent\Model)。通过 Slim 框架完全实现 前后端分离 ,前后端通过HTTPS协议进行通信,传输数据格式为JSON。业务逻辑层提供了RESTful风格的API。
源码地址:https://github.com/imageslr/weapp-library
源代码如下:
#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
#include<stdio.h>
using namespace std
const int maxb=10000 //最多的图书
class book//图书类
{
int tag //删除标记1:已删0:未棚余滑删
int number //isbn书号
char name[20] //书名
char author[10]//主编
char number2[10]//版次
char position[20]//出版社
char time[20]//出版年
void addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr) //增加图毁好书
{
tag=0
number=n
price=pr
strcpy(name,na)
strcpy(author,au)
strcpy(number2,n2)
strcpy(position,da)
strcpy(time,ti)
onshelf=1
}
扩展资料
1、源程序中,很链腊多符号都是成对匹配出现的,为避免遗漏必须配对使用的符号。
2、用花括号括起来的部分,但从程序结构清晰,便于阅读、理解、维护的角度出发,建议在书写程序时应遵循以下规则,以养成良好的编程习惯。
3、一个说明或一条语句占一行,与该结构开始处的左花括号对齐。
解决过一个类似的~如下:
#include "iostream"
#include "string"
using namespace std
class obj
{
public:
string name
string num
public:
obj(){name="0"num="0"}
obj(string x,string y)
{
name=x
num=y
}
}
class book :public obj
{
public:
string writer
public:
book():obj(){writer="0"}
}
class reader:public obj
{
private:
book b[5]
const int MAX
static int num
public:
reader(string x,string y):obj(x,y),MAX(5){}
int rentbook()
void print()
}
int reader:: num =0
int reader:: rentbook()
{
int i
cout<<"输入选项:0、退出,1、借书,2、还书 "<<endl
while(cin>>i)
{
switch(i)
{
case 0:
cout<<"!!!"<<endl
return 0
case 1:
if(num == 4) cout<<"已经借满5本"<<endl
else
{
string na ,nu,author
cout<<"输入所借书的书名:"
cin>>na
cout<<"输入所借图书的编号:"
cin>>nu
cout<<"输入图书的腊慧作者:"
cin>>author
b[num].name = na
b[num].num = nu
b[num].writer = author
num++
}
break
case 2:
if(num == 0) cout<<"没有书籍轮州答可还!"<<endl
else
{
string na
cout<<"输入所还书的书名"
cin>>na
int i
for(i=0i<MAXi++)
if(b[i].name == na)
{ b[i].name ="0"b[i].num ="0"b[i].writer="0"cout<<迹悄"还书成功"<<endlgoto B }
cout<<"没有此书"<<endl
}
B:break
default :
cout<<"please input the right number!!"<<endl
break
}
cout<<"输入选项:0、退出,1、借书,2、还书 "<<endl
}
}
void reader:: print()
{
int i
cout<<"姓名:"<<obj::name<<"学号"<<obj::num<<endl
cout<<"所借图书如下:"<<endl
cout<<"书名"<<"\t"<<"编号"<<"\t"<<"作者"<<endl
for(i=0i<MAXi++)
if(b[i].name !="0")
cout<<b[i].name<<"\t"<<b[i].num<<"\t"<<b[i].writer<<endl
}
int main()
{reader a("wang","1234")
a.rentbook()
a.print()
}
这个有很多实现方法,参考程序:
#include<iostream>
#include<string>
using namespace std
class object
{
protected:
char name[20]//继承到图书中是代表书名,继承到读者 代表 读者姓名
int no//继承到图书中代表图书编号,继承到读者代表借书证编号,“按道理说这里是字符型较好”
public:
object(){}
object(char na[],int n)
{
strcpy(name,na)
no=n
}
void show()
{
cout<<name<<"\t("<<no<<")"<<endl
}
}
class reader//类的前向声明
class book:protected object
{
private:
char author[10]//作者
public:
book(){}
friend class reader//reader为book的友元类,这样便于reader类访问book类的数据成员,减轻代码负担
}
class reader:protected object
{
private:
int const MAX//借阅图书的最大数量
static int num//记录读者借阅的图书数量
book b[15]
public:
reader(char na[],int n) :object(na,n),MAX(5){}
void rentbook()//借书
{ char name[20]
int n
char au[10]
int i=0
cout<<"输入数字 1 借书 ,输入 0 停止借书:"<<endl
int select
while(cin>>select)
{
if(select==0||i==MAX) break
cout<<"请输入图书书名:"<<endl
cin>>name
cout<<"请输入图书编号:"<<endl
cin>>n
cout<<"请输入图书作者:"<<endl
cin>>au
strcpy(b[i].name,name)
no=n
strcpy(b[i].author,au)
num++
i++
cout<<"输入数字 1 借书 ,输入 0 停止借书:"<<endl
}
}
void showread()//信息输出
{
int i
cout<<"读者信息为:\n\n"<<"姓名\t"<<"证件号码\t\n"
show()
cout<<"\n借阅信息为:\n\n"
cout<<"书名\t"<<"编号\t\t"<<"作者\n"
for(i=0i<numi++)
cout<<b[i].name<<"\t"<<b[i].no<<"\t\t"<<b[i].author<<"\t"<<endl
}
}
int reader::num=0
int main()
{
reader r("王建",800201)
r.rentbook()
r.showread()
}
/*主函数 或者改为:
int main()
{
char name[10]int number
cout<<"请输入读者姓名:\n"
cin>>name
cout<<"请输入借书证号:\n"
cin>>number
reader r(name,number)
r.rentbook()
r.showread()
}
*/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)