体育资讯网

您现在的位置是:首页 > 分类10 > 正文

分类10

mfc图书管理系统源码(mfc图书管理系统对话框教程)

hacker2023-02-06 07:30:30分类10120
本文目录一览:1、图书馆座位管理系统C++源代码2、求MFC学生管理系统源代码

本文目录一览:

图书馆座位管理系统C++源代码

图书馆座位管理系统C++源代码

#include iostream

#include iomanip

#include string

#include fstream//输入/输出文件流类

using namespace std;

const int Maxr=100;//最多的读者

const int Maxb=100;//最多的图书

const int Maxbor=5;//每位读者最多借五本书

//读者类,实现对读者的信息的描述

class Reader

{

private:

int tag; //删除标记 1:已删 0:未删

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(name,na);

}

void delbook(){ tag=1; }//设置删除标记 1:已删 0:未删

void addreader(int n,char *na)//增加读者

{

tag=0;

no=n;

strcpy(name,na);

for(int i=0;iMaxbor;i++)

borbook[i]=0;

}

void borrowbook(int bookid)//借书操作

{

for(int i=0;iMaxbor;i++)

{

if (borbook[i]==0)

{

borbook[i]=bookid;

return;

}

}

}

int retbook(int bookid)//还书操作

{

for(int i=0;iMaxbor;i++)

{

if(borbook[i]==bookid)

{

borbook[i]=0;

return 1;

}

}

return 0;

}

void disp()//读出读者信息

{

cout setw(5) no setw(10) name"借书编号:[";

for(int i=0;iMaxbor;i++)

if(borbook[i]!=0)

cout borbook[i] "|";

cout "]"endl;

}

};

//读者类库,实现建立读者的个人资料

class RDatabase

{

private:

int top; //读者记录指针

Reader read[Maxr];//读者记录

public:

RDatabase() //构造函数,将reader.txt读到read[]中

{

Reader s;

top=-1;

fstream file("reader.txt",ios::in);//打开一个输入文件

while (1)

{

file.read((char *)s,sizeof(s));

if (!file)break;

top++;

read[top]=s;

}

file.close(); //关闭 reader.txt

}

void clear()//删除所有读者信息

{

top=-1;

}

int addreader(int n,char *na)//添加读者时先查找是否存在

{

Reader *p=query(n);

if (p==NULL)

{

top++;

read[top].addreader(n,na);

return 1;

}

return 0;

}

Reader *query(int readerid)//按编号查找

{

for (int i=0;i=top;i++)

if (read[i].getno()==readerid

read[i].gettag()==0)

{

return read[i];

}

return NULL;

}

void disp() //输出所有读者信息

{

for (int i=0;i=top;i++)

read[i].disp();

}

void readerdata();//读者库维护

~RDatabase() //析构函数,将read[]写到reader.txt文件中

{

fstream file("reader.txt",ios::out);

for (int i=0;i=top;i++)

if (read[i].gettag()==0)

file.write((char *)read[i],sizeof(read[i]));

file.close();

}

};

void RDatabase::readerdata()

{

char choice;

char rname[20];

int readerid;

Reader *r;

while (choice!='0')

{

cout "\n\n\t\t\t读 者 维 护\n\n\n\t\t 1 新 增\n\n\t\t 2 更改\n\n\t\t 3 删 除\n\n\t\t 4 查 找\n\n\t\t 5 显 示\n\n\t\t 6 全 删\n\n\t\t 0 退出"endl;

cin choice;

switch (choice)

{

case '1':

cout "输入读者编号:";

cin readerid;

cout "输入读者姓名:";

cin rname;

addreader (readerid,rname);

break;

case '2':

cout "输入读者编号:";

cin readerid;

r=query(readerid);

if (r==NULL)

{

cout " 该读者不存在 "endl;

break;

}

cout "输入新的姓名:";

cin rname;

r-setname(rname);

break;

case '3':

cout " 输入读者编号:";

cin readerid;

r=query(readerid);

if (r==NULL)

{

cout " 该读者不存在" endl;

break;

}

r-delbook();

break;

case '4':

cout "读入读者编号:";

cin readerid;

r=query(readerid);

if (r==NULL)

{

cout "该读者不存在" endl;

break;

}

r-disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

default:cout"输入错误,请从新输入:";break;

}

}

}

//图书类,实现对图书的描述,图书的编号,书名,借出,还入等

class Book

{

private:

int tag;//删除标记 1:已删 0:未删

int no;//图书编号

char name[20];//书名

int onshelf;//是否再架 1:再架 2:已借

public:

Book(){}

char *getname() { return name; }//获取姓名

int getno(){ return no; }//获取图书编号

int gettag(){ return tag; }//获取删除标记

void setname(char na[])//设置书名

{

strcpy(name,na);

}

void delbook(){ tag=1;}//删除图书

void addbook(int n,char *na)//增加图书

{

tag=0;

no=n;

strcpy(name,na);

onshelf=1;

}

int borrowbook()//借书操作

{

if (onshelf==1)

{

onshelf=0;

return 1;

}

return 0;

}

void retbook()//还书操作

{

onshelf=1;

}

void disp()//输出图书

{

cout setw(6) no setw(18) name setw(10)

(onshelf==1? "在架":"已借") endl;

}

};

//图书库类,实现对图书的维护,查找,删除等

class BDatabase

{

private:

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)//增加图书

{

Book *p=query(n);

if (NULL==p)

{

top++;

book[top].addbook(n,na);

return 1;

}

return 0;

}

Book *query(int bookid)//查找图书

{

for (int i=0;i=top;i++)

if (book[i].getno()==bookid book[i].gettag()==0)

{

return book[i];

}

return NULL;

}

void bookdata();//图书库维护

void disp()

{

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()

{

char choice;

char bname[40];

int bookid;

Book *b;

while (choice!='0')

{

cout "\n\n\n\t\t\t图 书 维 护 "endlendl;

cout"\t\t1 新 增\n \t\t2 更 改\n\t\t3 删 除\n\t\t4 查 找\n\t\t5 显示\n\t\t6 全 删\n\t\t0 退 出"endl;

cin choice;

switch (choice)

{

case '1':

cout "输入图书编号:"endl;

cin bookid;

cout "输入图书书名:"endl;

cin bname;

addbook(bookid,bname);

break;

case '2':

cout "输入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在 "endl;

break;

}

cout "输入新的书名:"endl;

cin bname;

b-setname(bname);

break;

case '3':

cout " 读入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在" endl;

break;

}

b-delbook();

break;

case '4':

cout " 读入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在" endl;

break;

}

b-disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

default:cout"输入错误,请从新输入:";

}

}

}

//main() 函数的实现,程序的主界面的引导

void main()

{

char choice;

int bookid,readerid;

RDatabase ReaderDB;

Reader *r;

BDatabase BookDB;

Book *b;

while(choice!='0')

{

cout endlendl"\t\t\t 图 书 管 理 系 统\n\n\n";

cout "\t\t\t1 借 书\n\n\t\t\t2 还 书 \n\n\t\t\t3 图 书 维护\n\n\t\t\t4 读 者 维 护\n\n\t\t\t0 离 开"endl;

cin choice;

switch (choice)

{

case '1':

cout " 借书 读者编号:";

cin readerid;

cout " 图书编号: ";

cin bookid;

r=ReaderDB.query(readerid);//按编号查找

if (NULL==r)

{

cout " 不存在该读者,不能借书" endl;

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout " 不存在该图书,不能借书" endl;

break;

}

if (b-borrowbook()==0)

{

cout " 该图书已借出,不能借书" endl;

break;

}

r-borrowbook(b-getno());

break;

case '2':

cout"还书\n 读者编号:";

cin readerid;

cout " 图书编号:";

cin bookid;

r=ReaderDB.query(readerid);

if (r==NULL)

{

cout " 不存在该读者,不能还书" endl;

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout " 不存在该图书,不能还书" endl;

break;

}

b-retbook();

r-retbook(b-getno());

break;

case '3':

BookDB.bookdata();

break;

case '4':

ReaderDB.readerdata();

break;

default:cout"输入错误,请从新输入:";

}

}

}

求MFC学生管理系统源代码

学生的信息有那些啊?只有学号,班号!名字啊什么的呢?写的话很快就可以,用vc6写可以吗

c语言程序设计图书馆源代码

#include stdio.h

#include stdlib.h

#include time.h

#include string.h

typedef int BOOL;

typedef struct bookinfo

{

char number[15];/*产品编号*/

char name[30];/*产品名称*/

float price;/*单价*/

char auther[20];/*作者*/

BOOL isExit;/*存在状态*/

char lendername[20];/*借书人姓名*/

char lendersex[2];/*借书人性别*/

char lendernum[15];/*借书人学号*/

}BOOKINFO;

void menu()

{

printf("\n\n\n\n\n\n\n");

printf("\t\t\t图书管理系统\n");

printf("\t\t\t1:新进图书基本信息的输入\n");

printf("\t\t\t2:显示全部记录\n");

printf("\t\t\t3:根据图书名称查询图书基本信息\n");

printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n");

printf("\t\t\t5:按照图书名称从小大到排序\n");

printf("\t\t\t6:统计某价格以上的图书数量\n");

printf("\t\t\t7:列出所有未借出去的图书信息\n");

printf("\t\t\t8:退出\n");

}

void choice_1_input_new()/*输入新进的图书信息*/

{

char choice;

FILE *p;

BOOKINFO newbook;

system("cls");

while(1)

{

printf("输入图书编号:");

gets(newbook.number);

printf("输入图书名称:");

gets(newbook.name);

printf("输入图书单价:");

scanf("%f",newbook.price);

while(getchar()!='\n');

printf("输入图书的作者:");

gets(newbook.auther);

printf("输入借书人姓名:");

gets(newbook.lendername);

printf("输入借书人性别:");

gets(newbook.lendersex);

printf("输入借书人学号:");

gets(newbook.lendernum);

printf("是否保存该条书目?(Y/N)\n");

if(choice=='Y'||choice=='y')

{

newbook.isExit=1;/*将图书状态设置成1mfc图书管理系统源码,表示没有借出*/

p=fopen("c:\\bookinfo.data","ab");

fwrite(newbook,sizeof(BOOKINFO),1,p);

fclose(p);

printf("\n该条书目已添加到c:\\bookinfo.data文件中!\n");

}

else

{

printf("\n本条书目未保存!\n");

}

printf("\n是否继续添加书目?(Y/N)\n");

while(choice!='Y'choice!='y'choice!='N'choice!='n')

if(choice=='Y'||choice=='y')

continue;

else

break;

}

}

void choice_2_display_all()/*显示全部图书信息*/

{

FILE *p;

int n;

BOOKINFO bookinfo[100];

int booknumber=0;

system("cls");

p=fopen("c:\\bookinfo.data","rb");

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

/*booknumber--;使用feof()函数会多读一行mfc图书管理系统源码,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

booknumber--;

if(booknumber==0)

{

printf("没有任何图书信息!\n\n");

}

else

{

n=0;

printf(" 图书信息如下\n");

printf(" 图书信息 | 借书人信息 \n");

printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n");

while(nbooknumber)

{

printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

n++;

}

}

printf("\n\n按任意键回到主菜单!\n");

}

void choice_3_search_according_name()/*根据图书名称显示图书的信息*/

{

char search[20]="";/*search用来存放要查询的书名*/

int n;

FILE *p;

char choice;

BOOKINFO bookinfo[100];

int booknumber=0;

system("cls");

p=fopen("c:\\bookinfo.data","rb");

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

while(1)

{

printf("输入要查询的书本名称:");

gets(search);

if(booknumber==0)

{

printf("书库中没有任何信息!\n\n");

printf("按任意键回到主菜单!\n\n");

getch();

break;

}/*if结束*/

else

{

for(n=0;nbooknumber;n++)

if(strcmp(bookinfo[n].name,search)==0)

{

printf("该书的详细信息如下:\n");

printf(" 图书信息 | 借书人信息 \n");

printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n");

printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

break;

}

if(n=booknumber)

printf("没有查找该书的任何信息!\n");

printf("\n\n是否继续查询?(Y/N)\n");

choice=getch();

while(choice!='Y'choice!='y'choice!='N'choice!='n')

choice=getch();

if(choice=='Y'||choice=='y')

continue;

else

break;

}/*else结束*/

}/*while(1)结束*/

}

void choice_4_delete_according_name()/*根据图书名称对图书信息进行删除*/

{

char search[20]="";/*search用来存放要删除的书名*/

int n,i;

FILE *p;

char choice;

BOOKINFO bookinfo[100];

int booknumber;

system("cls");

while(1)

{

printf("输入要删除的书本名称:");

gets(search);

p=fopen("c:\\bookinfo.data","rb");

booknumber=0;

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("书库中没有任何信息!\n\n");

printf("按任意键回到主菜单!\n\n");

getch();

break;

}/*if结束*/

else

{

for(n=0;nbooknumber;n++)

if(strcmp(bookinfo[n].name,search)==0)

{

break;

}

if(n=booknumber)

printf("没有查找该书的任何信息!\n");

else

{

printf("是否确认需要删除该条书目?(Y/N)");

choice=getch();

while(choice!='Y'choice!='y'choice!='N'choice!='n')

choice=getch();

if(choice=='Y'||choice=='y')

{

for(i=n;ibooknumber-1;i++)

bookinfo[i]=bookinfo[i+1];

booknumber--;

p=fopen("c:\\bookinfo.data","wb");

for(n=0;nbooknumber;n++)

fwrite(bookinfo[n],sizeof(BOOKINFO),1,p);

fclose(p);

printf("删除成功!\n");

}

else

printf("\n\n该条书目没有被删除!");

}

printf("\n\n是否继续进行删除操作?(Y/N)\n");

choice=getch();

while(choice!='Y'choice!='y'choice!='N'choice!='n')

choice=getch();

if(choice=='Y'||choice=='y')

continue;

else

break;

}/*else结束*/

}/*while(1)结束*/

}

void choice_5_sort_according_name()/*根据图书名称排序*/

{

FILE *p;

int m,n;

BOOKINFO temp;

BOOKINFO bookinfo[100];

int booknumber;

p=fopen("c:\\bookinfo.data","rb");

booknumber=0;

system("cls");

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("没有任何图书信息!\n\n");

}

else

{

for(m=0;mbooknumber-1;m++)

for(n=m+1;nbooknumber;n++)

if(strcmp(bookinfo[m].name,bookinfo[n].name)0)

{

temp=bookinfo[m];

bookinfo[m]=bookinfo[n];

bookinfo[n]=temp;

}

p=fopen("c:\\bookinfo.data","wb");

for(m=0;mbooknumber;m++)

fwrite(bookinfo[m],sizeof(BOOKINFO),1,p);

fclose(p);

printf("\n\n完成排序!\n\n");

}

printf("按任意键回到主菜单!\n");

getch();

}

void choice_6_display_high_price()/*根据价格列出图书信息*/

{

float price;

FILE *p;

int n;

int count=0;

BOOKINFO bookinfo[100];

int booknumber;

system("cls");

printf("请输入价格:");

scanf("%f",price);

p=fopen("c:\\bookinfo.data","rb");

booknumber=0;

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("没有任何图书信息!\n\n");

}

else

{

for(n=0;nbooknumber;n++)

{

if(bookinfo[n].price=price)

count++;

}

if(count==0)

printf("书库中没有比%.1f$价格高的图书!",price);

else

{

printf(" 价格高于%.1f$的图书信息如下\n",price);

printf(" 图书信息 | 借书人信息 \n");

printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n");

for(n=0;nbooknumber;n++)

{

if(bookinfo[n].price=price)

printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

}

}

}

printf("\n\n按任意键回到主菜单!\n");

getch();

}

void choice_7_display_according_exitflag()/*根据存在状态列出图书信息*/

{

FILE *p;

int n;

int count=0;

BOOKINFO bookinfo[100];

int booknumber;

system("cls");

booknumber=0;

p=fopen("c:\\bookinfo.data","rb");

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;

fclose(p);

if(booknumber==0)

{

printf("书库中没有任何书目存在!\n");

}

else

{

for(n=0;nbooknumber;n++)

if(bookinfo[n].isExit==1)

count++;

if(count==0)

printf("书库中的书籍全部借出!\n");

else

{

printf("书库中未被借出的图书信息如下:\n\n");

printf(" 图书信息 | 借书人信息 \n");

printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n");

for(n=0;nbooknumber;n++)

if(bookinfo[n].isExit==1)

{

printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

}

}

}

printf("\n按任意键返回主菜单!\n");

getch();

}

void main()

{

char choice;

clock_t tm;

FILE *p;

if((p=fopen("c:\\bookinfo.data","rb"))==NULL)

{

p=fopen("c:\\bookinfo.data","wb");

fclose(p);

}

while(1)

{

system("cls");

menu();

choice=getch();

switch(choice)

{

case '1':choice_1_input_new();break;/*输入新进的图书信息*/

case '2':choice_2_display_all();break;/*显示全部图书信息*/

case '3':choice_3_search_according_name();break;/*根据图书名称显示图书的信息*/

case '4':choice_4_delete_according_name();break;/*根据图书名称对图书信息进行删除*/

case '5':choice_5_sort_according_name();break;/*根据图书名称排序*/

case '6':choice_6_display_high_price();break;/*根据价格列出图书信息*/

case '7':choice_7_display_according_exitflag();break;/*根据存在状态列出图书信息*/

case '8':printf("\n\n\t\t\t谢谢使用,再见!\n\t\t\t按任意键退出!\n");getch();return;

default:

printf("\n\n\t\t\t请输入菜单中的数字!(1~8)");

tm=clock();

while(clock()tm+1800);

break;

}

}

}

Visual Studio 2010设计的图书管理系统 完整的 源代码

你好!!

我有一个图书管理系统,你看看吧,希望能帮到你,内涵建库脚本

发表评论

评论列表

  • 丑味友欢(2023-02-06 10:48:53)回复取消回复

    LL) { cout " 该图书不存在" endl; break; } b-disp(); break; case '5': disp(); break; case '

  • 美咩馥妴(2023-02-06 14:16:56)回复取消回复

    me;} //获取姓名 int gettag() {return tag;} //获取删除标记 int getno() {return no;} //获取读者编号 void setname(ch

  • 假欢常安(2023-02-06 14:30:45)回复取消回复

    choice=getch(); while(choice!='Y'choice!='y'choice!='N'choice!='n') choice=getch(); if(choic

  • 怎忘杞胭(2023-02-06 08:49:53)回复取消回复

    BOOL isExit;/*存在状态*/ char lendername[20];/*借书人姓名*/ char lendersex[2];/*借书人性别*/ char le

  • 听弧里予(2023-02-06 08:16:51)回复取消回复

    book(bookid,bname); break; case '2': cout "输入图书编号:"endl; cin bookid; b=query(bookid); if (b==NULL) { cout " 该图书不存在 "endl; break; } cout "输入新的书