用C或C++编程实现数据库的查询,添加,删除,修改功能。

用C或C++编程实现数据库的查询,添加,删除,修改功能。,第1张

一个教材管理系统,给你参考下

void shumingsearch(struct book *head) /*按教材名称查找*/

{ struct book *p

char name[20]

int c

if(head==NULL) {printf("未打开任何文件")getchar()return}

printf("1,查找专业 2,查找教材名称:")

scanf("%d",&c)

getchar()

if(c==2)

printf("请输入要查找的教材名称:")

else printf("请输入要查找的专业:")

gets(name)

p=head

do{ if(c==2)

if(strcmp(p->shuming,name)==0)

{

printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu)

}

if(c==1)

if(strcmp(p->zhuanye,name)==0)

{

printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu)

}

p=p->next

}while(p!=NULL)

printf("查找完成")

return

}

struct book *add(struct book *head) /*增加记录*/

{ struct book *p,*e,*f,*h

if(head==NULL) {printf("未打开任何文件")getchar()return NULL}

h=f=e=head

p=(struct book *)malloc(sizeof(struct book))

printf("\n教材编号:")

gets(p->number)

printf("\n教材名称:")

gets(p->shuming)

printf("\n数量:")

scanf("%d",&p->shuliang)

printf("\n价格:")

scanf("%d",&p->jiage)

getchar()

printf("\n专业:")

gets(p->zhuanye)

printf("\n作者:")

gets(p->zuozhe)

printf("\n出版社:")

gets(p->chubanshe)

printf("\n备注:")

gets(p->beizhu)

if(strcmp(f->number,p->number)>0) { p->next=fh=pprintf("\n添加成功")return h}

if(f->next==NULL) { f->next=pp->next=NULLprintf("\n添加成功")return h}

do{

if(f->next!=NULL)

if(strcmp(f->number,p->number)>0)

{

e->next=pp->next=fprintf("\n添加成功")return h

}

if(f->next==NULL)

{

f->next=p

p->next=NULL

printf("\n添加成功")

return h

}

f=f->next

e=e->next

}while(1)

}

struct book *delet(struct book *head) /*删除记录*/

{ struct book *p,*e

char num[20]

if(head==NULL) {printf("未打开任何文件")getchar()return NULL}

printf("请输入要删除的教材编号:")

scanf("%s",num)

p=e=head

if(strcmp(p->number,num)==0) { head=head->nextprint(head)return head}

else p=p->next

do{

if(strcmp(p->number,num)==0)

{

if(p->next!=NULL)

e->next=p->next

if(p->next==NULL) e->next=NULL

print(head)

return head

}

p=p->next

e=e->next

}while(p!=NULL)

printf("搜索完毕,未找到该记录")

return head

}

struct book *change(struct book *head) /*修改记录*/

{ struct book *p

char num[20]

if(head==NULL) {printf("未打开任何文件")getchar()return NULL}

printf("请输入要修改的教材编号:")

scanf("%s",num)

getchar()

p=head

do{

if(strcmp(p->number,num)==0)

{

printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu)

printf("\n教材编号:")

gets(p->number)

printf("\n教材名称:")

gets(p->shuming)

printf("\n数量:")

scanf("%d",&p->shuliang)

printf("\n价格:")

scanf("%d",&p->jiage)

getchar()

printf("\n专业:")

gets(p->zhuanye)

printf("\n作者:")

gets(p->zuozhe)

printf("\n出版社:")

gets(p->chubanshe)

printf("\n备注:")

gets(p->beizhu)

printf("修改成功")

return head

}

p=p->next

}while(p!=NULL)

printf("未找到要修改的记录")

return head

}

int mima()

{ FILE *fp

char mima1[20],mima2[20]

if((fp=fopen("mima","r"))==NULL)

{ printf("尚未设置密码请输入:")

scanf("%s",mima1)

printf("请再次输入密码:")

scanf("%s",mima2)

if(strcmp(mima1,mima2)!=0) { printf("两次密码不一样")return 0}

else {

fp=fopen("mima","w")

fprintf(fp,"%s",mima1)

printf("密码设置成功")

return 1

}

}

printf("请输入初始化密码:")

scanf("%s",mima1)

fscanf(fp,"%s",mima2)

if(strcmp(mima1,mima2)==0)

{

printf("密码正确")

printf("请输入要删除的文件名:")

scanf("%s",mima1)

if(remove(mima1)==0)

{

printf("删除成功")

getchar()

return 1

}

else {

printf("删除失败,请检查是否存在该文件或路径是否正确")

getchar()

return 0

}

}

else {

printf("密码错误")

getchar()

return 0

}

}

void main()

{

struct book *head=NULL

char i

getch()

system("cls")

do{

printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n")

printf("m--菜单 h--帮助")

printf("\n请输入命令:")

i=getch()

if(i=='h')

{ printf("\n1,录入教材信息的时候,每一个项目都必须输入相应的内容。\n2,修改,增加,删除,查找记录前必须先打开一个文件,修改完后必须记得保存教材信息。\n3,必须使用正确的路径打开文件,建议保存文件时候不用输入路径(此时是默认路径,即保存在程序目录下。)")

getch()

break

}

if(i=='m')

break

system("cls")

}while(i!='m'||i!='h')

system("cls")

do{

printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n")

printf("┌————-———┐\n")

printf("│1,录入教材信息│\n│2,显示教材信息│\n│3,打开一个记录│\n│4,编辑一个记录│\n│5,保存教材信息│\n│6,查找记录│\n│s,初始化系统 │\n│e,退出系统│\n")

printf("└———————-┘\n")

printf("\n请输入功能编号:")

i=getch()

system("cls")

switch(i)

{

case '1': head=creat()save(head)break

case '2': print(head)break

case '3': head=openfile()break

case '4': system("cls")

printf("┌————-———┐\n")

printf("│1,增加一个记录│\n")

printf("│2,删除一个记录│\n")

printf("│3,修改一个记录│\n")

printf("└———————-┘\n")

i=getch()

switch(i)

{

case '1':

head=add(head)break

case '2':

head=delet(head)break

case '3': head=change(head)break

default: break

}

break

case '5': save(head)break

case '6': shumingsearch(head)break

case 's': mima()break

case 'e': exit(0)

default :break

}

system("cls")

}while(1)

}

我曾经写过C语言的

数据库系统

..

给你部分代码(一个销售函数)以作参考...

void

book_out()

//销售函数

{

char

temp

EXEC

SQL

BEGIN

DECLARE

SECTION

/*主变量定义开始.*/

int

Hout_shuliang

int

Hshuliang///////////

char

Hbook_id[11]

EXEC

SQL

END

DECLARE

SECTION

/*主变量定义结束*/

lab3:

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

scanf("%s",&Hbook_id)

printf("请输入卖出本数:")

scanf("%d",&Hout_shuliang)

//先将

库存量

取出到主变量

EXEC

SQL

select

book_shuliang

into

:Hshuliang

from

book_kucun

where

book_id=:Hbook_id

if(Hshuliang<Hout_shuliang)

//假如库存不足,销售不成功.

{

printf("输入有误.没那么多库存,请重新输入.\n")

goto

lab3

}

//将销售记录插入到book_out(销售表)数据表.

EXEC

SQL

insert

into

book_out

values(:Hbook_id,:Hout_shuliang,GETDATE())

EXEC

SQL

COMMIT

TRANSACTION

/*事务提交*/

printf("售出成功,输入Y继续输入其他要售出的书.其他键返回

主菜单

:")

getchar()//////////////////////////

scanf("%c",&temp)

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

goto

lab3

}

mysql是有c语言接口的,安装相应库后就可以链接了,一般连接mysql的函数是mysql_connect或者mysql_real_connect(大概就是这么拼的吧。。。)可以使用mysql_query执行sql语句


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9612622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存