c语言图书库存管理系统
#include《algorithm》#include《cstdio》#include《cstring》#include《cstdlib》#include《iostream》#include《vector》#include《queue》#include《stack》#include《map》#include《string》#include《climits》#include《cmath》#define N 1000010#define LL long longusing namespace std;#include《iostream》#include《iomanip》#include《string》#include《fstream》#include《stdio.h》using namespace std;const int Maxb=10000; //最多的图书class Book//图书类{int tag; //删除标记e799bee5baa6e997aee7ad94e58685e5aeb9313333353336391:已删0:未删int number; //ISBN书号char name; //书名char author; //主编char number2;//版次char position;//出版社char time;//出版年int price;//定价int onshelf; //是否在架1:在架0:已借public:Book() {}char *getname() { return name; } //获取姓名int getnumber() { return number; } //获取ISBN书号int gettag() { return tag; } //获取删除标记char *getauthor() {return author;} //获取主编char *getnumber2() {return number2;} //获取版次char *getposition() {return position;} //获取出版社char *gettime() {return time;} //获取出版年char getprice() {return price;} //获取图书定价void delbook() { tag=1; } //删除图书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;} void disp() //输出图书{cout 《《 setw(10) 《《 number 《《 setw(10) 《《 name 《《 setw(10)《《 setw(10)《《author《《setw(10)《《number2《《setw(10)《《position《《setw(10)《《time《《setw(10)《《price《《endl;}}; class BDatabase //图书库类{int top; //图书记录指针Book book[Maxb]; //图书记录public:BDatabase() //构造函数,将book.txt读到book中{Book b;top=-1;fstream file(“book.txt“,ios::in);while (1){file.read((char *)&b,sizeof(b));if (!file) break;top++;book[top]=b;}file.close();} void clear() //全删{top=-1;} int addbook(int n,char *na,char *au, char *n2, char *da,char *ti,int pr) //增加图书{Book *p=search1(n);if (p==NULL){top++;book[top].addbook(n,na,au,n2,da,ti,pr);return 1;}return 0;} Book *search1(int bookid) //查找图书{for (int i=0;i《=top;i++)if (book[i].getnumber()==bookid &&book[i].gettag()==0)return &book[i];return NULL;} Book *search2(int bookid,char *name) //按书名查找图书{ for(int i=0;i《=top;i++) if(strcmp(book[i].getname(),name)==0) {bookid=book[i].getnumber(); return &book[i]; } return NULL;} Book *search3(int bookid,char *author) //按主编查找图书{ for(int i=0;i《=top;i++) if(strcmp(book[i].getauthor(),author)==0) {bookid=book[i].getnumber(); return &book[i]; } return NULL;} void bookdata(); //图书库维护 void disp(){ cout《《setw(10)《《“图书书号“《《setw(10)《《“图书名字“《《setw(10)《《“图书主编“《《setw(10)《《“版次“《《setw(10)《《“出版社“《《setw(10)《《“出版年“《《setw(10)《《“价格“《《endl《《endl《《endl《《endl;for (int i=0;i《=top;i++)if (book[i].gettag()==0)book[i].disp();}~BDatabase() //析构函数,将book写入book.txt文件中{fstream file(“book.txt“,ios::out);for (int i=0;i《=top;i++)if (book[i].gettag()==0)file.write((char *)&book[i],sizeof(book[i]));file.close();}}; void BDatabase::bookdata(){int choice=1;int choice2=1;int choice3=1;int choice4;char bname;char editor;char banci;char position;char year;int value;int bookid;Book *b;while (choice!=0){ cout《《endl《《endl;cout《《“ **************************** “《《endl;cout《《“ **** 1添加图书 **** “《《endl;cout《《“ **** 3 删除图书 **** “《《endl;cout《《“ **** 4 图书查询 **** “《《endl;cout《《“ **** 5 显示图书 **** “《《endl;cout《《“ **** 6 全部删除 **** “《《endl;cout《《“ **** 7 借书 **** “《《endl;cout《《“ **** 8 还书 **** “《《endl;cout《《“ **** 0 退出 **** “《《endl;cout《《“ ****************************“《《endl《《endl;cout《《endl《《“请按键选择您需要的操作:“;cin》》choice;while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=0){ cout《《endl《《“ ** 您输入的编号在菜单里不存在,请重新输入 **“《《’\a’《《endl《《endl; cout《《“ 请选择您需要的操作:“; cin》》choice;} switch (choice){case 1:cout 《《“输入ISBN书号(一定为数字否则会异常):“;cin 》》 bookid; cout 《《“输入书名:“;cin 》》 bname; cout 《《“输入主编:“;cin 》》editor;cout 《《“输入版次(一定为数字否则会异常):“;cin》》banci;cout《《“输入出版社:“;cin》》position;cout《《“输入出版年(一定为数字否则会异常):“; cin》》year;cout《《“输入价格(一定为数字否则会异常):“;cin》》value;addbook(bookid,bname,editor,banci,position,year,value);cout《《“ISBN书号“《《bookid《《“添加成功,如需返回主菜单请按1,退出系统请按0(一定要输入数字)“;cin》》choice4;while (choice4!=0&&choice4!=1){ cout《《“输入错误请重新输入“《《endl; cin》》choice4;}switch (choice4){case 1:choice=1;break;case 0: choice=0; break;}break; case 3:cout 《《 “ 输入ISBN书号:“;cin 》》 bookid;b=search1(bookid);if (b==NULL){cout 《《 “ 该图书不存在“ 《《 endl;break;}b-》delbook();break;case 4: cout《《“查找方式:“《《endl《《“1按ISBN书号查询 2按书名查询 3按主编查询 0退出:“; cin》》choice3;switch(choice3){case 1: {cout 《《 “ 输入ISBN书号:“; //按ISBN书号查询cin 》》 bookid;b=search1(bookid);if (b==NULL){cout 《《 “ 该图书不存在“ 《《 endl;break;}b-》disp();}break;case 2:{ cout《《“请输入书名:“; cin》》bname; b=search2(bookid,bname); if(b==NULL) { cout《《“该图书不存在啊!“《《endl; break; } b-》disp();} break;case 3: { cout《《“请输入主编:“; cin》》editor; b=search3(bookid,editor); if(b==NULL) { cout《《“该主编不存在!“《《endl; break; } b-》disp();} break;}break;case 5:disp();break;case 6:clear();break;}}cout《《endl《《“ ****** 慢走 ******“《《endl《《endl《《endl;}; int main(){BDatabase BookDB;cout《《endl《《endl《《endl;cout《《“ Welcome to the library of SCU “《《endl;cout《《“ 欢 迎 来 到XXXX 大 学 图 书 馆 “《《endl;cout《《endl《《endl《《“请输入0进入图书馆“《《endl;int w;cin》》w;if(w==0)BookDB.bookdata();system(“pause“);return 0;}
计算机2级C语言,考些什么
全国计算机C语言程序设计,,要考的内容是:一、基本数据结构与算法1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。5.线性单链表、双向链表与循环链表的结构及其基本运算。6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。二、程序设计基础1.程序设计方法与风格。2.结构化程序设计。3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。三、软件工程基础1.软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。3.结构化设计方法,总体设计与详细设计。4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。5.程序的调试,静态调试与动态调试。四、数据库设计基础1.数据库的基本概念:数据库,数据库管理系统,数据库系统。2.数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。考试方式1、公共基础的考试方式为笔试,与C语言(VisualBASIC、VisualFoXPro、Java、Access、VisualC++)的笔试部分合为一张试卷。公共基础部分占全卷的30分。2、公共基础知识有10道选择题和5道填空题。C语言程序设计基本要求1.熟悉TURBOC集成环境。2.熟练掌握结构化程序设计的方法,具有良好的程序设计风格。3.掌握程序设计中简单的数据结构和算法。4.TURBOC的集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。考试内容一、C语言的结构1.程序的构成,MAIN函数和其他函数。2.头文件,数据说明,函数的开始和结束标志。3.源程序的书写格式4.C语言的风格。二、数据类型及其运算1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。2.C运算符的种类、运算优先级和结合性。
易语言破解方法
你认真看一下易语言的破解版,不论是完美破解还是通用破解,用的都是同一个KEY文件再进入破解的易语言注册界面也会看到,注册序列号也被固定成了同一个。这说明易使用的是非对称加密,长度为2268位的密钥,要破解这种算法基本是不可能的,而现在的破解方法则是截取(也就是hook)或改变读机器特征序列号的程序,让它指向固定的序列号(这个序列号可能是某个正版的企业版用户注册号),这样再附上那个序列号对应的key文件,破解就完成了。你可以下一个hookdiskID(要全局常驻内存的hook),通过软件hook改变读硬盘ID的返回值,你会发现易未注册的版本的序列号改变了(如果是破解版则没有反应)