C课程设计图书管理系统Word文档格式.docx

上传人:b****8 文档编号:22579802 上传时间:2023-02-04 格式:DOCX 页数:20 大小:20KB
下载 相关 举报
C课程设计图书管理系统Word文档格式.docx_第1页
第1页 / 共20页
C课程设计图书管理系统Word文档格式.docx_第2页
第2页 / 共20页
C课程设计图书管理系统Word文档格式.docx_第3页
第3页 / 共20页
C课程设计图书管理系统Word文档格式.docx_第4页
第4页 / 共20页
C课程设计图书管理系统Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C课程设计图书管理系统Word文档格式.docx

《C课程设计图书管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C课程设计图书管理系统Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

C课程设计图书管理系统Word文档格式.docx

voidinsert();

voiddel();

voidorder();

voidshow();

4主函数

2。

4。

1包含项目

信息录入函数,信息查询函数,信息修改函数,添加信息函数,删除信息函数,排序函数

voidmain()

intn;

menu();

//显示菜单函数

scanf(”%d"

,&

n);

//输入选择功能编号

while(n)

{

switch(n)

{

case1:

in();

//录入函数

break;

case2:

search();

//查询函数

case3:

modify();

//修改函数

case4:

insert();

//插入函数

break;

case5:

del();

//删除函数

case6:

order();

//排序函数

}

getch();

menu();

//执行完成后继续显示菜单界面

scanf(”%d”,&

}

2.5功能菜单

程序代码:

voidmenu()

system(”cls”);

//清屏

printf(”\n\n\n\n”);

printf("

\t|==============================================|\n”);

\t|图书管理系统|\n"

);

printf(”\t|==============================================|\n"

printf(”\t|\t0。

退出|\n”);

printf(”\t|\t1。

录入图书信息|\n”);

printf(”\t|\t2。

查询图书信息|\n"

);

printf(”\t|\t3。

修改图书信息|\n"

printf(”\t|\t4。

插入新记录|\n”);

printf(”\t|\t5。

删除记录|\n"

printf(”\t|\t6。

书籍排序|\n”);

printf(”\t|==============================================|\n”);

printf(”\n请选择(0—6):

”);

2.6录入图书信

2.6。

1功能叙述

*在功能界面中输入1,即可以进入图书信息录入状态,如果没有数据,则图书的编号,书名,作者,出版社,并提示用户是否输入.输入y,则开始录入信息;

输入n,则显示“OK"

,再按任意键返回到主菜单界面。

**如果输入y,屏幕显示图书的编号,书名,作者,出版社,输入完成以后,系统提示“保存成功!

是否继续?

"

.

***如果输入y,系统继续提示相应信息,再输入一条记录.

2。

6.2程序代码

voidin()

{

inti,m=0;

//m是记录的条数

charch[2];

FILE*fp;

if((fp=fopen("

Bookinf。

dat”,”ab+”))==NULL)

printf("

无法打开文件!

\n”);

return;

while(!

feof(fp))//检测是否到了文件结尾

if(fread(&book[m],sizeof(structBookinf),1,fp)==1)

m++;

//统计当前记录条数,读取成功则m自加1,继续往后读取

if(m==0)

没有记录!

\n"

else

system(”cls"

show();

//show函数位置错误

(y/n):

”);

scanf("

%s”,ch);

//ch之所以定义成字符数组,是为了接收一个字符和回车符,以字符串方式存入//有所改动

while(strcmp(ch,”Y”)==0||strcmp(ch,”y”)==0)//判断是否要录入信息

编号:

scanf(”%d"

&book[m].num);

//输入商品编号

for(i=0;

i〈m;

i++)

if(book[i].num==book[m]。

num)//检验文件中是否已经存在所输入的编号

printf(”该记录已存在!

getch();

scanf(”%s”,ch);

}

printf(”书名:

scanf("

%s”,book[m].name);

//输入书名

作者:

scanf(”%s”,book[m]。

aut);

//输入作者

出版社:

scanf(”%s”,book[m].pub);

//输入出版社

printf(”价格:

scanf(”%f”,&

book[m]。

price);

//输入价格//%错打成&,格式输入错误%f写成%5。

2f

if(fwrite(&

book[m],sizeof(structBookinf),1,fp)!

=1)//将录入信息写入指定文件

printf("

不能保存!

getch();

return;

//后来添加的

else

printf(”《%s》保存成功!

\n”,book[m]。

name);

printf(”是否继续?

//询问是否继续

//接受回车

scanf(”%s"

ch);

//输入一次后,无法继续,原因:

格式输入

fclose(fp);

printf(”OK!

7显示信息(在程序中如果不声明要放在in()前面)

程序代码

voidshow()

FILE*fp;

inti,m=0;

if((fp=fopen(”Bookinf。

dat"

,”rb"

))==NULL)//由wb改成

printf(”无法显示文件!

feof(fp))

if(fread(&book[m],sizeof(structBookinf),1,fp)==1)

}

printf(”编号\t\t书名\t\t作者\t\t出版社\t\t价格\n”);

for(i=0;

i<

m;

%d\t\t%s\t\t%s\t\t%s\t\t%5.2f"

,book[i].num,book[i].name,book[i]。

aut,book[i]。

pub,book[i]。

printf(”\n"

8查询图书信息

2.8。

输入图书编号即可查询相应的图书信息。

如果存在该商品编号,则询问是否显示该条信息,需要显示,输入y即可显示。

8。

voidsearch()//价格不显示

intsnum;

//输入的编号

charch[2];

//错写成char[2]

printf(”文件打开失败!

return;

while(!

if(fread(&book[m],sizeof(structBookinf),1,fp)==1)

fclose(fp);

if(m==0)

printf(”没有记录"

printf(”请输入编号:

scanf(”%d”,&snum);

for(i=0;

m;

if(snum==book[i]。

num)

printf(”已经找到记录,是否显示?

(y/n)"

scanf("

%s"

,ch);

if(strcmp(ch,"

Y”)==0||strcmp(ch,”y"

)==0)

{

printf(”编号\t\t书名\t\t作者\t\t出版社\t\t价格\n”);

printf("

%d\t\t%s\t\t%s\t\t%s\t\t%5.2f”,book[i].num,book[i].name,book[i]。

aut,book[i]。

pub,book[i]。

break;

else

return;

if(i==m)

printf("

没有相应的记录!

9添加图书信息

2.9。

进入插入记录界面,程序提示“请输入要插入记录的位置"

输入序号后按Enter键进入添加记录界面,如果输入的记录已经存在,则系统提示“该编号已存在,按任意键继续!

”插入记录以后,可在录入记录模块显示所有数据

voidinsert()

FILE*fp;

inti,j,k,m=0,snum;

Bookinf.dat”,"

ab+”))==NULL)

if(fread(&

book[m],sizeof(structBookinf),1,fp)==1)

m++;

printf(”没有记录!

fclose(fp);

return;

printf(”请输入要插入记录的位置:

\n”);

%d"

snum);

//输入要插入的位置

if(snum==book[i]。

for(j=m—1;

j>

i;

j—-)

book[j+1]=book[j];

//从最后一条记录开始均向后移一位

请输入新信息:

编号:

scanf(”%d”,&book[i+1].num);

for(k=0;

k<

k++)

if(book[k]。

num==book[i+1]。

num&

&

k!

=i+1)

该编号已经存在,按任意键继续!

getch();

fclose(fp);

printf(”书名:

%s”,book[i+1]。

name);

printf(”作者:

scanf(”%s"

book[i+1]。

aut);

printf(”出版社:

%s”,book[i+1].pub);

价格:

scanf(”%f”,&book[i+1]。

if((fp=fopen("

dat”,”wb"

))==NULL)

printf(”文件打开失败!

return;

}

for(k=0;

k〈=m;

if(fwrite(&book[k],sizeof(structBookinf),1,fp)!

=1)//将修改后的记录写入磁盘文件

printf("

保存失败!

getch();

printf(”插入成功!

fclose(fp);

10修改图书信息

2.10.1功能叙述

进入修改记录功能模块后,程序提示用户输入要修改的图书编号,输入编号,如果存在该记录,系统显示“编号书名作者出版社"

用于修改记录,如果没有找到,则提示“没有找到!

10。

voidmodify()

inti,j,m=0,snum;

if((fp=fopen(”Bookinf.dat”,”ab+"

printf(”无法打开文件!

if(fread(&book[m],sizeof(structBookinf),1,fp)==1)

fclose(fp);

printf(”请输入要修改的记录信息的编号!

%d”,&snum);

if(snum==book[i]。

num)//检索记录中是否有要修改的信息

if(i〈m)

{

已经找到,是否修改?

(y/n)\n"

%s”,ch);

Y"

)==0||strcmp(ch,”y”)==0)

书名:

scanf("

%s”,book[i+1]。

printf(”作者:

scanf(”%s”,book[i+1].aut);

printf(”出版社:

scanf(”%s”,book[i+1].pub);

scanf(”%f"

&book[i+1].price);

printf(”保存成功!

else

printf(”没有找到!

return;

if((fp=fopen("

dat”,"

wb”))==NULL)

printf(”文件打开失败!

return;

for(j=0;

j<

j++)

if(fwrite(&book[j],sizeof(structBookinf),1,fp)!

=1)

保存失败!

fclose(fp);

2.11删除图书信息

2.11。

进入删除记录功能模块,程序提示输入要删除的图书编号,按Enter之后,如果查询到该书记录,,则提示“记录已找到,是否删除?

,如果用户输入“y"

则删除该记录,并弹出“删除成功!

”的提示信息,如果没找到要删除的图书信息,则提示“没有找到”信息

11。

voiddel()

intsnum,i,j,m=0;

charch[2];

,”ab+"

printf(”无法打开文件!

if(fread(&book[m],sizeof(structBookinf),1,fp)==1)

没有记录!

请输入要删除的记录信息的编号!

scanf(”%d”,&snum);

printf(”该记录已找到,是否删除?

(y/n)”);

scanf(”%s"

,ch);

if(strcmp(ch,”Y”)==0||strcmp(ch,"

y"

for(j=i;

j〈m;

book[j]=book[j+1];

m——;

printf(”删除成功!

Bookinf.dat”,”wb”))==NULL)

printf(”打开失败!

j〈m;

if(fwrite(&

book[j],sizeof(structBookinf),1,fp)!

getch();

fclose(fp);

12图书排序

2.12.1功能叙述

将图书按价格升或降进行排序,选择1,升序,选择2,降序

12。

voidorder()

structBookinftemp;

inti,j,m=0,n;

文件打开失败!

if(fread(&book[m],sizeof(structBookinf),1,fp)==1)

printf(”请选择排序方式(1。

价格升序,2.价格降序):

scanf(”%d”,&n);

case1:

for(i=0;

i〈m—2;

i++)//之前是m—1

for(j=i+1;

m—1;

if(book[i]。

price〉book[j].price)

temp=book[i];

book[i]=book[j];

book[j]=temp;

}break;

//忘记break了

m—2;

m-1;

if(book[i]。

price〈book[j].price)

temp=book[i];

book[i]=book[j];

book[j]=temp;

}break;

default:

printf(”输入有误!

编号\t\t书名\t\t作者\t\t出版社\t\t价格\n”);

printf(”%d\t\t%s\t\t%s\t\t%s\t\t%5。

2f”,book[i].num,book[i].name,book[i].aut,book[i]。

pub,book[i].price);

printf(”\n"

fclose(fp);

注:

所有程序代码都已经经过了调试并且成功

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1