📄 源文件.cpp
字号:
//请保留版权信息:编写者:贵州大学刘二腾,指导老师:曾劼,有问题请联系3l3t3t@163.com
LoadLibrary("OleAcc.dll"); //老师,使用这条语句您可以把程序中的strcpy_s函数换成strcpy后能在VC6下编译成功
#include "stdafx.h" //预编译头文件,用于包含所有源程序可能用刀的头文件,C++必须
#include "iostream" //定义数据流输入输出流
#include "iomanip" //参数化输入输出(程序中使用倒了setw,必须包含这个头文件
#include "fstream" //文件的输入输出头文件
#include "time.h" //包含时间函数和时间类型的头文件
#include "conio.h" //标准的控制台输入输出,程序中使用getche函数必须包含该头文件
using namespace std; //使用标准的名字空间的定义
#define nostudent "您输入的学生不存在"
#define nobook "您输入的图书不存在"
#define inputstudentID "请输入学生编号:"
#define caidan "1: 新增 2: 更改 3:删除 4:查找 5:显示全部 6:全删全部 0:退出>>"
#define bh "编号:"
#define i0 int i=0
#define studentnamemax 10 //定义学生名字的最大长度
#define booknamemax 30 //定义书本名称的最大长度
#define booknum 20 //定义书本编号的最高长度
#define studentnum 20 //定义学生编号的最高长度
#define gradesmax 20 //定义年级允许的最大长度
#define maxbookborrow 50 //定义每人允许借书数的最大限度
class Page //控制本程序的封面和介绍
{
private:
char pageflag; //翻页控制变量值为P时向前,值为N时向后
char counts; //传递当前封面所在页
char gettxt; //封面文件读取字符时的暂时存储变量
public:
int borrowmax; //定义允许每人最多借的书本数
int stumax; //定义允许存储的最大学生数
int bkmax; //定义允许存储的最大书本数
int addstumax; //定义修该最学生数时使用的中间变量,暂时留空
Page(); //定义Page类的构造函数
void setborrowmax(); //重新设置每人限制借的书本数
void viewpage(char count); //定义控制上一页下一页位置函数
void page1(); //定义显示封面函数
void page2(); //定义显示需求分析函数
void page3(); //定义显示概要设计函数
void page4();
void page5();
void pagewelcome(); //显示欢迎屏幕
void pagebye(); //显示再见信息函数
~Page(); //定义Page类的析构函数
}pageview;
Page::Page()
{
i0;
while(i<=0)
{
if(i==0)
cout<<endl<<endl<<endl<<endl<<endl<<endl<<setw(50)<<"初始化程序中…";
cout<<endl<<endl<<setw(50)<<"请您输入您可能需要入库的最大书本数:";
cin>>bkmax;
cout<<endl<<setw(50)<<" 请您输入可能要存储的最大学生:";
cin>>stumax;
cout<<endl<<setw(50)<<"请您输入您要允许每人最多借的书本数:";
cin>>borrowmax;
if(bkmax<stumax*borrowmax) //防止因为数组大小而导致程序访问冲突,因为调试时曾遇到过这种情况,所以加这个判断
{
system("cls");
cout<<endl<<setw(50)<<"您输入的书本存储长度不满足您的学生量需求";
cout<<endl<<setw(50)<<" 请重新初始化数据...";
cout<<endl<<endl<<endl;
i=-1; //初始化不正常,重新初始化
}
else
i=1; //初始化正常,跳出循环
}
}
//请保留版权信息:编写者:贵州大学刘二腾,指导老师:曾劼
void Page::setborrowmax()
{
cout<<"如果您需要更改学生和书本的存储长度,请退出后重新初始化本程序!"<<endl;
cout<<"请您输入您要允许每人最多借的书本数";
cin>>borrowmax;
system("cls");
}
void Page::page1()
{
counts='1';
system("cls");
cout<<endl<<endl;
cout<<setw(55)<<"******数据结构课程设计******"<<endl<<endl<<endl;
cout<<setw(60)<<"★辅导老师:曾劼"<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<setw(37)<<"题目:"<<"图书管理程序"<<endl;
cout<<setw(37)<<"学院:"<<"职业技术学院"<<endl;
cout<<setw(37)<<"专业:"<<"计算机科学与技术"<<endl;
cout<<setw(37)<<"班级:"<<"04计科"<<endl;
cout<<setw(37)<<"学号:"<<"16"<<endl;
cout<<setw(37)<<"姓名:"<<"刘二腾"<<endl;
cout<<setw(37)<<"时间:"<<"2006年12月14日"<<endl;
cout<<endl<<endl<<endl<<endl;
viewpage(counts);
}
void Page::page2()
{
counts='2';
ifstream file;
file.open("xuqiu.333"); //读取需求分析文本文档
if(!file) //如果文件不存在,跳出封面显示程序,显示程序欢迎界面
{
file.close();
pagewelcome();
}
else
{
cout<<endl<<endl<<endl;
cout<<setw(45)<<"一、需求分析"<<endl<<endl<<endl;
while(!file.eof()) //输出xuqiu.333中的内容
{
file.get(gettxt);
cout<<gettxt;
file.close();
cout<<endl<<endl;
viewpage(counts);
}
}
}
//请保留版权信息:编写者:贵州大学刘二腾,指导老师:曾劼
void Page::page3()
{
counts='3';
ifstream file;
file.open("gaiyao1.333"); //读取概要设计文本文档
if(!file)
{
file.close();
pagewelcome();
}
else
{
cout<<endl<<endl<<endl;
cout<<setw(45)<<"二、概要设计"<<endl<<endl<<endl;
while(!file.eof()) //输出gaiyao.333中的内容
{
file.get(gettxt);
cout<<gettxt;
file.close();
cout<<endl<<endl;
viewpage(counts);
}
}
}
void Page::page4()
{
counts='4';
ifstream file;
file.open("gaiyao2.333"); //读取概要设计文本文档
if(!file)
{
file.close();
pagewelcome();
}
else
{
while(!file.eof()) //输出gaiyao.333中的内容
{
file.get(gettxt);
cout<<gettxt;
file.close();
viewpage(counts);
}
}
}
void Page::page5()
{
counts='5';
ifstream file;
file.open("gaiyao3.333"); //读取概要设计文本文档
if(!file)
{
file.close();
pagewelcome();
}
else
{
while(!file.eof()) //输出gaiyao.333中的内容
{
file.get(gettxt);
cout<<gettxt;
file.close();
viewpage(counts);
}
//请保留版权信息:编写者:贵州大学刘二腾,指导老师:曾劼
}
}
void Page::pagewelcome()
{
time_t start,end; //定义用于显示欢迎信息的开始和结束时间控制变量
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<setw(50)<<"欢迎使用本图书管理程序";
start=time(NULL);
while(1) //显示欢迎信息两秒钟
{
end=time(NULL);
if((end-start)==2)
{
system("cls");
break;
}
}
}
void Page::pagebye()
{
time_t start,end; //定义用于显示再见信息的开始和结束时间控制变量
system("cls");
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<setw(55)<<"感谢您使用本图书管理程序,再见";
start=time(NULL);
while(1) //显示再见信息量秒钟
{
end=time(NULL);
if((end-start)==2)
break;
}
}
void Page::viewpage(char count)
{
if(count=='1')
cout<<setw(77)<<"请输入N翻页或其他键跳过:";
else if(count=='5')
cout<<setw(77)<<"请输入P翻页或其他键跳过:";
else
cout<<setw(77)<<"请输入N/P翻页或其他键跳过:";
pageflag=_getche();
if(pageflag=='N') //大小写兼容
pageflag='n';
if(pageflag=='P')
pageflag='p';
switch(count)
{
case '1':
if(pageflag=='n')
{
system("cls");
page2();
}
else
{
system("cls");
pagewelcome();
system("cls");
}
break;
case '2':
if(pageflag=='n')
{
system("cls");
page3();
}
else if(pageflag=='p')
{
system("cls");
page1();
//请保留版权信息:编写者:贵州大学刘二腾,指导老师:曾劼
}
else
{
system("cls");
pagewelcome();
system("cls");
}
break;
case '3':
if(pageflag=='n')
{
system("cls");
page4();
}
else if(pageflag=='p')
{
system("cls");
page2();
}
else
{
system("cls");
pagewelcome();
system("cls");
}
break;
case '4':
if(pageflag=='n')
{
system("cls");
page5();
}
else if(pageflag=='p')
{
system("cls");
page3();
}
else
{
system("cls");
pagewelcome();
system("cls");
}
break;
case '5':
if(pageflag=='p')
{
system("cls");
page4();
}
else
{
system("cls");
pagewelcome();
system("cls");
}
break;
default:
//请保留版权信息:编写者:贵州大学刘二腾,指导老师:曾劼
break;
}
}
Page::~Page()
{
}
class Book //图书类
{
private:
char num[booknum]; //定义书本编号
char name[booknamemax]; //定义书名
float prices; //定义书的价格
float times; //该变量用于显示借书总时间
time_t borrowtime,rettime; //定义借书和还书时间
int delflag; //定义删除标记 1:已删 0:未删
int noborrow; //定义书本是否借出,值为1时在架,为0时已借出
public:
Book(); //定义图书类的构造函数,留空
char *getnum(); //获取书本编号
char *getname(); //获取书名
float getprice(); //获取价格
float gettimes(); //获取时间
int getdelflag(); //获取删除标记
void setname(char newname[]); //设置书名
void setprice(float price); //设置价格
int jieshu(); //借书操作
void huanshu(); //还书操作
void addbook(char *n,char *newname,float price);//增加书本
void delbook(); //删除书本
void display(); //输出所有书本
~Book(); //定义图书类的析构函数,留空
};
Book::Book()
{
}
//请保留版权信息:编写者:贵州大学刘二腾,指导老师:曾劼
char *Book::getnum()
{
return num;
}
char *Book::getname()
{
return name;
}
float Book::getprice()
{
return prices;
}
float Book::gettimes()
{
times=times/(60*60*24); //将时间从秒换算成天
return times; //返回借书天数
}
int Book::getdelflag()
{
return delflag;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -