VC编写的数据库图书管理系统详解 (数据库图书管理系统vc)

VC++编写的数据库图书管理系统详解

在数字化时代,各大图书馆和书店都已经采用了图书管理系统,以方便管理和查找全部图书,还能实现在网上借书续借等便捷操作。因此,在学习编程过程中,学习如何编写数据库图书管理系统,具有重要的实际意义。本文将详细介绍使用VC++编写的数据库图书管理系统的实现过程及其实现的功能,以供读者参考。

一、VC++数据库连接

在VC++中连接数据库是实现图书管理系统的之一步。VC++连接数据库需要使用ODBC数据源连接。ODBC连接器是开放数据库连接协议(Open Database Connectivity,简称ODBC)的一个封装,用于连接多种不同数据库管理系统(DBMS)。使用ODBC连接器,我们可以访问远程主机上的各种数据库。 下面,我将指导读者使用ODBC数据源连接器连接到我们的可用数据库。

1.打开VC++,选择一个新的Win32控制台应用程序项目,应用程序类型是“Win32应用程序”,特点是“控制台应用程序”。

2.在下一步中,选择项目名称并配置项目。在任务“应用向导”的此证书页单击 可以选择“创建使用MFC”或保留默认设置“空项目”而不使用MFC。

3.在下一步中,勾选“使用预编译头”和“生成活动”复选框,保留默认设置。

4.在下一步中,选择“已设定 Unicode 字符集”并保留默认设置。

5.在“应用向导”任务的下一个证书页上,选择“空项目”。

6.在“应用向导”任务的下一个证书页上,选择“结束”。

7.选择“视图”->“资源视图器”->“资源”->“ODBC数据源管理器”,打开ODBC数据源管理器。

8.单击“ODBC数据源管理器”中的“系统DSN”,单击“添加”,选择“SQL Server”(或其他类型的数据源),并输入SQL Server的名称。然后,选择“下一步”。

9.选择“使用Windows NT Integrated Security 并使用单一的登录名”。

10.在下一个证书页“选择默认数据库”,单击“访问”数据库并选择一个数据库,用于我们的应用程序。

11.单击“完成”,并在“ODBC数据源管理器”中选择新添加的源。现在,我们已经成功连接到可用数据库。

二、VC++编写图书管理系统程序

连接到数据库后,我们需要继续编写程序逻辑以尽可能实现实用的图书管理系统。

1.在VC++程序中,我们需要创建表格来存储图书的信息,包括图书名称、作者、出版商、ISBN、出版日期等项。

2.创建主菜单。在主菜单上添加菜单项,例如“添加书籍”、“删除书籍”、“查找书籍”和“维护书籍”等选项。用户可以使用这些选项在图书库中执行不同操作。

3.使用控件。为了更便捷地实现上述操作,我们可以在图书管理系统中使用控件。使用控件,我们可以让应用更直观和易于使用。在图书管理系统中,我们可以使用控件如下:

文本控件 – 显示图书名称、作者、出版日期等。

按钮控件 – 用于执行添加、删除、查找等操作。

列表框 – 显示书库中的书籍信息。

下拉框 – 用于选择书库中的不同书籍。

4.与数据库通信。我们需要实现对数据库的数据读取、数据更新等操作,以便在应用程序中查看、修改等内容。

5.实现搜索功能。我们可以使用数据库查询来查找书库中的书籍,并将结果显示在列表框中。另外,我们还可以通过搜索条目来过滤结果,从而得到更准确和更具体的搜索结果。

6.实现添加功能。当添加新书籍时,可以使用“添加书籍”菜单项或按钮回调来添加新的书籍信息到数据库。由于添加新图书涉及到对数据库的写操作,所以我们需要更为小心,避免造成数据库的损坏。

7.实现删除功能。当删除已有的书籍时,可以使用删除菜单项或按钮回调来删除相关书籍的数据库。

8.实现更新功能。如果需要更新书籍信息,可以使用“维护书籍”菜单项或按钮回调,对数据库的相关记录进行更新。

本文详细介绍了我们如何使用VC++编写图书管理系统,以及实现系统的核心功能。本文涉及到的某些细节可能需要根据具体情况进行更改,但我们可以要点如下:

首先连接到ODBC连接器,以连接和访问所需的SQL Server数据库;

然后,我们可以使用GUI控件和菜单,以更直观和容易使用的方式实现与应用的交互;

我们需要根据应用的具体需要实现在数据库中存储、添加、删除和更新数据、以及搜索和筛选书籍数据的功能。

相关问题拓展阅读:

用VC++和SQLSERVER做个图书馆管理系统

路过……,不会。。。我用asp链接的……

SQL SERVER 2023 数据库开发系统导航

人民邮电出版社

里面有VC++ 和 SQL SERVER 2023 开发加油站管理系统

里面简毁有缺咐竖`自伏大己去看下咯`

ADO

网上有许多这样的例子。看下孙鑫的书上也有

我有商业代码,不过你这是毕业设计就帮不了你了!

用C++做个关于建立个图书馆管理系统的程序

#include

#include

#include

#include

#include

#define STACK_INIT_SIZE 10

#define OK 1

#define TRUE 1

#define FALSE 0

#define ERROR 0

struct student /*定义学生类型,用于存放借出的书籍*/

{

int carnum;

char lendbook;

}student;

struct employ /*定义职工类型*/

{

int employnum;

char employname;

int employage;

char employsex;

char employleve;

long int employtage;

}employ;

struct book /*定义书的类型*/

{

int booknum;

char bookname;

char bookcreat;

int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/

}book;

struct car /*借书卡的数据类型*/

{

int carnum;

char studentname;

int studentclass;

}car;

huanbook() /*还书函数*/

{

FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/

int i,n;

int carnum;

char lendbook;

printf(“请你输入你的卡号n”);

scanf(“%d”,&carnum);

fp=fopen(“car.txt”,”r”); /*读取卡号记录*/

for(i=0;fread(&car,sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/

{

if(car.carnum==carnum) /*卡号存在,进入下一循环*/

{

n=i;

fclose(fp);

printf(“请输入你要还的书的名字n”);

scanf(“%s”,lendbook);

fp=fopen(“record.txt”,”r”);

for(i=0;fread(&student,sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/

{

if(strcmp(student.lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/

{

fclose(fp);

fp=fopen(“record.txt”,”r”);

fp2=fopen(“bookl.txt”,”w”);

for(i=0;fread(&student,sizeof(struct student),1,fp)!=0;i++)

{

if(strcmp(student.lendbook,lendbook)==0)

{

continue; /*删除还掉的书的借书记录*/

}

fwrite(&student,sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/

}

fclose(fp);

fclose(fp2);

fp=fopen(“record.txt”,”w”);

fp2=fopen(“bookl.txt”,”r”);

for(i=0;fread(&student,sizeof(struct student),1,fp2)!=0;i++)

{

fwrite(&student,sizeof(struct student),1,fp); /*将借书记录信息写回*/

}

fclose(fp);

fclose(fp2);

fopen(“bookl.txt”,”w”); /*清临时文件的记录*/

fclose(fp2);

fp=fopen(“book.txt”,”r”);

fp2=fopen(“bookl.txt”,”w”);

for(i=0;fread(&book,sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/

{

if(i==n)

{

book.turefalse=1;

fwrite(&book,sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/

continue;

}

fwrite(&book,sizeof(struct book),1,fp2);

}

fclose(fp);

fclose(fp2);

fp=fopen(“book.txt”,”w”);

fp2=fopen(“bookl.txt”,”r”);

for(i=0;fread(&book,sizeof(struct book),1,fp2)!=0;i++)

{

fwrite(&book,sizeof(struct book),1,fp); /*将临时文件写回*/

}

fclose(fp);

fclose(fp2);

fopen(“bookl.txt”,”w”); /*清临时文件*/

fclose(fp2);

printf(“还书完毕,按任意键返回n”);

getch();

return 1;

}

}

printf(“你没有借这样的书,任意键返回n”); /*出错提示*/

fclose(fp);

getch();

return 0;

}

}

printf(“系统没这样的卡,和管理员联系,按任意键返回n”); /*出错提示*/

fclose(fp);

getch();

}

findbook()

{

FILE *fp;

char bookname;

int ture,i;

fp=fopen(“book.txt”,”r”);

printf(“请输入你要查找的书名n”);

scanf(“%s”,bookname);

for(i=0;fread(&book,sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(bookname,book.bookname)==0)

{

if(book.turefalse==1)

{

printf(“这本书的详细资料是:%d %s %s 此书现在无人借阅n按任意键返回n”,book.booknum,book.bookname,book.bookcreat);

}

else {printf(“这本书已经有人借出n”);fclose(fp);return 0;}

fclose(fp);

return FALSE;

}

}

printf(“没有你要查询的书籍n”);

fclose(fp);

return FALSE;

}

findbook1()

{

FILE *fp;

char bookcreat;

int ture,i;

fp=fopen(“book.txt”,”r”);

printf(“请输入你要查找的作者名n”);

scanf(“%s”,bookcreat);

for(i=0;fread(&book,sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(bookcreat,book.bookcreat)==0)

{

if(book.turefalse==1)

{

printf(“这本书的详细资料是:%d %s %s 此书现在无人借阅n按任意键返回n”,book.booknum,book.bookname,book.bookcreat);

}

else {printf(“这本书已经有人借出n”);fclose(fp);return 0;}

fclose(fp);

return FALSE;

}

}

printf(“没有你要查询的书籍n”);

fclose(fp);

return FALSE;

}

lendcount()

{

FILE *fp;

int i,n=0;

fp=fopen(“record.txt”,”r”);

for(i=0;fread(&student,sizeof(struct student),1,fp)!=0;i++)

{

printf(“卡号:%d 借出的书籍:%s n”,student.carnum,student.lendbook);

n=n+1;

}

fclose(fp);

printf(“目前共有%d本书借出n”,n);

printf(“按任意键n”);

getch();

return n;

}

chabook()

{

char ch5;

do

{

printf(“-欢迎进入图书查询系统!n”);

printf(” 1:n”);

printf(” 2:n”);

printf(” 0:n”);

printf(“请输入0–2,其他输入非法!n”);

scanf(“%s”,&ch5);

switch(ch5)

{

case ‘1’:findbook();getch();break;

case ‘2’:findbook1();getch();break;

case ‘0’:break;

default:printf(“无此操作n”);getch();break;

}

}while(ch5!=’0′);

return FALSE;

}

lendbook()

{

FILE *fp,*fp2;

int i,n;

int carnum;

printf(“请你输入你的卡号n”);

scanf(“%d”,&carnum);

fp=fopen(“car.txt”,”r”);

for(i=0;fread(&car,sizeof(struct car),1,fp)!=0;i++)

{

if(car.carnum==carnum)

{

n=i;

fclose(fp);

printf(“请输入你要借阅的书的名字n”);

scanf(“%s”,student.lendbook);

fp=fopen(“book.txt”,”r”);

for(i=0;fread(&book,sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(book.bookname,student.lendbook)==0)

{

if(book.turefalse==0) {printf(“对不起,此书有人借出,请借其他书n”);fclose(fp);getch();return;}

else

fclose(fp);

fp=fopen(“record.txt”,”a+”);

student.carnum=carnum;

fwrite(&student,sizeof(struct student),1,fp);

fclose(fp);

fp=fopen(“book.txt”,”r”);

fp2=fopen(“bookl.txt”,”w”);

for(i=0;fread(&book,sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(book.bookname,student.lendbook)==0)

{

book.turefalse=0;

fwrite(&book,sizeof(struct book),1,fp2);

continue;

}

fwrite(&book,sizeof(struct book),1,fp2);

}

fclose(fp);

fclose(fp2);

fp=fopen(“book.txt”,”w”);

fp2=fopen(“bookl.txt”,”r”);

for(i=0;fread(&book,sizeof(struct book),1,fp2)!=0;i++)

{

fwrite(&book,sizeof(struct book),1,fp);

}

fclose(fp);

fclose(fp2);

fopen(“bookl.txt”,”w”);

fclose(fp2);

printf(“借书完毕,按任意键返回n”);

getch();

return;

}

}

printf(“不存在这样的书,任意键返回n”);

fclose(fp);

getch();

return;

}

}

printf(“你的卡号不存在,请申请新卡,按任意键返回n”);

fclose(fp);

getch();

}

carcount()

{

FILE *fp;

int i,n=0;

fp=fopen(“car.txt”,”r”);

for(i=0;fread(&car,sizeof(struct car),1,fp)!=0;i++)

{

printf(“第%d张卡n”,i+1,car.carnum,car.studentname,car.studentclass);

n=n+1;

}

fclose(fp);

printf(“目前共有%d本书n”,n);

printf(“按任意键n”);

getch();

}

delcar()

{

FILE *fp,*fp2;

int i;

int carnum;

char choice;

fp=fopen(“car.txt”,”r”);

fp2=fopen(“bookl.txt”,”w”);

printf(“请输入你要删除的卡号n”);

printf(“如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动n”);

scanf(“%d”,&carnum);

for(i=0;fread(&car,sizeof(struct car),1,fp)!=0;i++)

{

if(car.carnum!=carnum)

{

fwrite(&car,sizeof(struct car),1,fp2);

}

}

fclose(fp);

fclose(fp2);

printf(“是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》n”);

scanf(“%s”,&choice);

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

{

fp=fopen(“car.txt”,”w”);

fp2=fopen(“bookl.txt”,”r”);

for(i=0;fread(&car,sizeof(struct car),1,fp2)!=0;i++)

{

fwrite(&car,sizeof(struct car),1,fp);

}

fclose(fp);

fclose(fp2);

fp2=fopen(“bookl.txt”,”w”);

fclose(fp2);

printf(“按任意键返回n”);

getch();

return;

}

else

{

printf(“按任意键返回n”);

getch();

return;

}

}

addcar()

{

FILE *fp;

int i=0;

fp=fopen(“car.txt”,”a+”);

printf(“请你输入卡号n”);

scanf(“%d”,&car.carnum);

printf(“请你输入学生姓名n”);

scanf(“%s”,car.studentname);

printf(“请你输入班级n”);

scanf(“%d”,&car.studentclass);

fwrite(&car,sizeof(struct car),1,fp);

fclose(fp);

printf(“输入完毕,任意键返回n”);

getch();

}

这是高级语言访问数据库的程序,不复杂;

C++不知你用的是VC++还是C#还是C++BUILDER,

VC++难度就大了,C++BUILDER难度小;

mfc的文件我倒有

图书管理系统C语言设计(c#免入)

#include

#include

#include

#include

#include

#include

#include

#define LEFT 0x4b00 /*左*/

#define RIGHT 0x4d00 /*右*/

#define DOWN 0x5000 /*下*/

#define UP 0x4800 /*上*/

#define SPACE 0x3920 /*空格*/

#define ESC 0x011b /* ESC键*/

#define ENTER 0x1c0d /*回车键*/

#define Backspace 0xe08 /*擦除键*/

#define ALT_B/*组合键ALT_B */

#define ALT_M 12800/*组合键ALT_M */

#define ALT_H 8960/*组合键ALT_H */

int key;/*按键变量*/

int textx,texty;/*光标坐标,x行,y列*/

struct menustruct/*菜单用的结构体*/

{

char name;/*主菜单名*/

char str;/*选项*/

int n;/*选项数*/

}ml;/亮粗*使用了3个,可根据需要增删*/

typedef struct BookList/*书的结构体*/

{

char num;/*图书编号*/

char name;/*书名*/

int price;/*书的价格*/

char person;/*借阅人*/

int yes;/*判断书是否存在或者已经借出,1存在,0借出*/

struct BookList *next;

}Book;

typedef struct MemberList/*会员的结构体*/

{

char name;/*会员的姓名*/

char sex;/*会员的性别*/

int age;/*会员的年龄*/

struct MemberList *next;

}Member;

char save;/*保存文本区域空间*/

/*char sav1;*/竖吵

char c;/*清屏专用空间*/

int i,j;/*常用变量*/敬纤镇

void Menu();/*初始化界面*/

void Selectitem();/*定义菜单*/

void DrawSelectitem();/*显示主菜单*/

void BlackText(int x,int y,char *z);/*选中菜单*/

void RedText(int x,int y,char *z);/*正常菜单*/

void Run();/*具体操作过程*/

void DrawMl(int n);/*显示下拉菜单*/

void MoveMl(int n,int x);/*菜单选项的控制*/

void Enter(int m,int n);/*菜单选项的具体功能*/

void BookAdd();/*添加图书*/

void BookConsult();/*图书查询*/

void BookDel();/*删除图书资料*/

void BookBorrow();/*借书*/

void BookReturn(); /*还书*/

void MemberAdd(); /*增加会员*/

void MemberConsult();/*查询会员*/

void MemberDel(); /*删除会员*/

void MemberBook(); /*查询会员借书信息*/

void Help(); /*帮助*/

void Ver(); /*版本信息*/

void ClrScr();/*自定义清屏函数*/

void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/*画边框*/

/***主函数****/

void main(void)

{

Menu();/*初始化界面*/

Run();

/*具体操作过程*/

}

/*初始化界面*/

void Menu()

{

system(“cls”); /*调用系统的清屏命令*/

textbackground(BLUE);/*将背景设置为蓝色*/

window(1,1,25,80);

clrscr();

textx=3;/*光标初始化位置*/

texty=2;

gotoxy(1,2);

printf(“%c”,218);/*画左上角*/

for(i=0;inext=p;/*新记录插入到链表的尾*/

}

p->next=NULL;/*最后一个结点的后继为空*/

fclose(fp);

ClrScr();

printf(“Input the book name: “);

gets(bookname); /*输入图书名*/

p=head;

while(p!=NULL)/*按名字查找要删除的图书*/

{

if(strcmp(p->name,bookname)==0)/*找到要删除的图书*/

{

if(p==head) /*如果是之一个结点*/

head=head->next;

else

q->next=p->next;/*不是之一个结点*/

break;

}

q=p; /*指针后移*/

p=p->next;

}

fp=fopen(“book.txt”,”wb”);/*删除后从链表的头开始重新保存*/

while(head!=NULL)

{

fwrite(head,sizeof(Book),1,fp);/*块写*/

head=head->next;

}

fclose(fp);

ClrScr();

}

/*借书*/

void BookBorrow()

{

FILE *fp;

Book consultbook;

Member consultmember;

char bookname,membername;

int flag=0,mflag=0;

ClrScr();

gotoxy(2,3);

printf(“Please input the mermber name: “);

gets(membername); /*输入会员名*/

if((fp=fopen(“member.txt”,”rb”))==NULL)/*没找到文件*/

{

gotoxy(2,3);

printf(“Cannot open file!n”);

return;

}

else

while(!feof(fp))/*查询会员资料*/

{

fread(&consultmember,sizeof(Member),1,fp);

if(strcmp(consultmember.name,membername)==0)

{

mflag=1; /*是会员标志*/

break;

}

}

fclose(fp);

if(mflag==0)

{

gotoxy(2,4);

printf(“You are not a member now,pleas register first!”);/*不是会员不能借书*/

return;

}

gotoxy(3,5);

printf(“Please input the book name: “);

gets(bookname); /*输入图书名*/

ClrScr();

if((fp=fopen(“book.txt”,”rb+”))==NULL)/*没找到文件*/

{

gotoxy(2,3);

printf(“Cannot open file!n”);

return;

}

while(!feof(fp))/*查询图书资料*/

{

fread(&consultbook,sizeof(Book),1,fp);

if(strcmp(consultbook.name,bookname)==0)

{

if(consultbook.yes==0)/*图书已经借出的判断*/

{

gotoxy(2,3);

printf(“This book has borrowed!n”);

break;

}

else

{

consultbook.yes=0; /*作借出标志*/

strcpy(consultbook.person,membername);/*登记借书会员*/

fseek(fp,-1L*sizeof(Book),1);/*从当前位置前移一条记录指针*/

fwrite(&consultbook,sizeof(Book),1,fp);/*写记录*/

gotoxy(2,3);

printf(“Borrowed success!n”);

flag=1;/*借出书标志*/

break;

}

}

}

if(flag!=1)

{

ClrScr();

gotoxy(2,3);

printf(“Borrowed fail!n”);/*借书失败*/

}

fclose(fp);

}

/*还书*/

void BookReturn()

{

FILE *fp;

Book consultbook;

char bookname;

int flag=0;

ClrScr();

if((fp=fopen(“book.txt”,”rb+”))==NULL)/*没找到文件*/

{

gotoxy(2,3);

printf(“Can’t open file!n”);

return;

}

printf(“Please input the book name: “);

gets(bookname); /*输入图书名*/

ClrScr();

while(!feof(fp))/*查询图书资料*/

{

fread(&consultbook,sizeof(Book),1,fp);

if(strcmp(consultbook.name,bookname)==0)

{

if(consultbook.yes==0)/*图书已经借出的判断*/

{

consultbook.yes=1;/*作图书未借书标志,表示已还书*/

strcpy(consultbook.person,””);

fseek(fp,-1L*sizeof(Book),1);

fwrite(&consultbook,sizeof(Book),1,fp);

gotoxy(2,3);

printf(“Return book success!n”);

flag=1;

break;

}

}

}

if(flag!=1)

printf(“Return fail!n”);

fclose(fp);

}

/*清除屏幕*/

void ClrScr()

{

int i,j;

puttext(2,3,78,23,c);/*刚开始已经用gettext把蓝色的一块地方保存下来,现在再还原*/

gotoxy(2,3);

}

/*会员注册*/

void MemberAdd()

{

FILE *fp;

Member consultmember;

fp=fopen(“member.txt”,”rb”);

if(fp==NULL)/*如果没会员就新建*/

fp=fopen(“member.txt”,”wb”);

else/*如果有会员就添加*/

{

fclose(fp);

fp=fopen(“member.txt”,”ab”);/*追加方式打开*/

}

ClrScr();

gotoxy(2,3);

printf(“Please intput new member’s name: “);/*逐个输入会员的资料*/

gets(consultmember.name);

gotoxy(2,4);

printf(“Please input new member’s sex: “);

gets(consultmember.sex);

gotoxy(2,5);

printf(“Please input new member’s age: “);

scanf(“%d%*c”,&consultmember.age);

fwrite(&consultmember,sizeof(Member),1,fp);/*写入记录*/

fclose(fp);

ClrScr();

}

/*查询会员*/

void MemberConsult()

{

FILE *fp;

Member consultmember;

char membername;

int flag=0;

ClrScr();

gotoxy(2,3);

printf(“Please input the member’s name: “);/*输入要查询的会员名*/

gets(membername);

fp=fopen(“member.txt”,”rb”);

if(fp==NULL)/*没找到文件*/

{

ClrScr();

gotoxy(2,3);

printf(“Error!n”);

fclose(fp);

return;

}

while(!feof(fp))/*查询会员资料*/

{

fread(&consultmember,sizeof(Member),1,fp);

if(strcmp(consultmember.name,membername)==0)/*比较*/

{

ClrScr();

gotoxy(2,3);

printf(“The member %s ‘s information as follow:”,consultmember.name);

gotoxy(2,4);

printf(“This member’sex is %s.”,consultmember.sex);

gotoxy(2,5);

printf(“This member ‘s age is %d.”,consultmember.age);

flag=1;

break;

}

}

if(flag==0)

{

ClrScr();

gotoxy(2,3);

printf(“The member %s doesn’t exist in the library!”,membername);

}

fclose(fp);

}

/*删除会员资料*/

void MemberDel()

{

FILE *fp;

Member *head,*p,*q;

char membername;

fp=fopen(“member.txt”,”rb”);

if(fp==NULL)/*没找到文件*/

{

gotoxy(2,3);

printf(“Error!”);

fclose(fp);

return;

}

head=p=q=(Member*)malloc(sizeof(Member));/*将文件内容放入链表*/

fread(p,sizeof(Member),1,fp);

while(!feof(fp))

{

q=p;

p=(Member*)malloc(sizeof(Member));

fread(p,sizeof(Member),1,fp);/*读记录*/

q->next=p;/*链入到链表的尾部*/

}

p->next=NULL;

fclose(fp);

ClrScr();

printf(“Please input the member’s name: “);/*输入会员名*/

gets(membername);

p=head;

while(p!=NULL)/*按名字查找要删除的书*/

{

if(strcmp(p->name,membername)==0)/*查找会员*/

{

if(p==head)

head=head->next;/*如果是之一条记录*/

else

q->next=p->next;/*不是之一条记录*/

break;

}

q=p; /*没找到,则指针后移继续找*/

p=p->next;

}

fp=fopen(“member.txt”,”wb”);/*删除后重新保存*/

while(head!=NULL)

{

fwrite(head,sizeof(Member),1,fp);/*块写*/

head=head->next;

}

fclose(fp);

ClrScr();

}

字数超了。。。。留个邮箱吧

DELPHI/PASCAL.

C忘记的差不多了。

关于数据库图书管理系统vc的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

来源地址:VC编写的数据库图书管理系统详解 (数据库图书管理系统vc)

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^

© 版权声明
THE END
喜欢就支持一下吧
点赞45 分享