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资享网,谢谢!^^