×

c语言图书管理系统 c语言 语言

c语言图书库存管理系统?有几行PIC单片机的c语言程序代码看不懂,请教一下

admin admin 发表于2022-05-09 14:49:17 浏览113 评论0

抢沙发发表评论

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;}

有几行PIC单片机的c语言程序代码看不懂,请教一下

1 static volatile unsigned TMR1 @ 0x0E; 0x0E 是寄存器地址。 表示这个TMR1是寄存器0x0E的值。 具体这个寄存器是做什么用的,需要看你芯片的datasheet,比如 16F874A 16F877A 这个都是计数寄存器的地址。2 PopQueue应该是一个弹出队列的函数。将队列首弹出到msg中,返回值为PopSuccess表示取数据成功,取到的数据会存在msg中。一般用于中断传数据给主线程。这个在主线程中接收。3 __CONFIG(x) 一般是配置寄存器的。

C语言编程有哪些好用的软件

1.C语言编程软件有哪些。 Mcrosoft Visual C++ 、Microsoft Visual Studio、 DEV C++、Code::Blocks、Borland C++、WaTCom C++、Borland C++ Builder、GNU DJGPP C++、Lccwin32 C Compiler3.1、High C、Turb C、gcc、C-Free和Win-TC、My Tc等等,由于C语言比较成熟,所以编程环境很多。2.C语言入门,不推荐使用VC,因为VC不但庞大,而且应用开发比较高级。入门编程荐使用Dev-C 和 WIN-TC。 1)WIN-TC,该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。而且在功能上也有它的独特特色例如语法加亮、C内嵌汇编、自定义扩展库的支持等。并提供一组相关辅助工具令你在编程过程中更加游刃有余。 2)Dev-C ,Dev-C 是一个Windows下的C和C 程序的集成开发环境。它使用MingW32/GCC编译器,遵循C/C 标准。开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,能够适合初学者与编程高手的不同需求,是学习C或C的首选开发工具。