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

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

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

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

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

一、题目要求

1.新进图书基本信息的输入。

2.图书基本信息的查询。

3.对撤消图书信息的删除。

4.为借书人办理注册。

5.办理借书手续。

6.办理还书。

二、需求分析

作为学生对图书管理系统的要求有:

1.能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。

2.能够方便地借阅图书、归还图书。

3.能够查询自己的基本资料、借阅图书情况。

4.能够熟悉图书管理系统的使用。

作为图书管理员,他们对图书管理系统的要求有:

1.能方便的对图书进行录入登记,注销陈旧的书籍。

2.能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。

3.能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借阅情况等信息,以便各学院能够随时获知本院学生的一些借书信息。

根据题目需要,由于图书信息需要存放在文件中,所以应提供文件输入、输出等操作。

应提

供查找、借阅、管理等功能。

由于有多种借阅图书的方法,而又需要提供相应的算法,最后还

应提供键盘是选择菜单实现功能。

三、总体设计

四、详细设计

1、主函数

[说明]

主函数较多、较复杂,已经和主菜单函数合并,主菜单函数里还包括了各自的二级菜单,并已经开始了对各个函数的调用。

为了程序显示的清晰可读,应先清屏之后调用菜单函数。

[流程]

开始

显示一系列功能选项

N

输入n,判断n是否是0-4

Y

返回主菜单

根据n的值调用各功能模块函数

[程序]

main()

{

charch1,ch2,ch3,ch4,ch5;

do

printf("

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

);

\n\t\t\t\t1:

<

查阅图书>

\n"

\n\t\t\t\t2:

借阅图书>

\n\t\t\t\t3:

管理系统>

\n\t\t\t\t4:

归还图书>

\n\t\t\t\t0:

退出系统>

\n请输入0--4,其他输入非法!

scanf("

%s"

&

ch1);

switch(ch1)

{

case'

1'

:

chabook();

break;

2'

lendbook();

;

3'

do

\n\n\n\t\t***********欢迎进入管理系统***********\n"

\n\t\t\t\t1:

<

增加图书>

\n\t\t\t\t2:

删除图书>

\n\t\t\t\t3:

修改图书资料>

\n\t\t\t\t4:

书籍统计>

\n\t\t\t\t5:

职工管理系统>

\n\t\t\t\t6:

学生管理系统>

\n\t\t\t\t0:

返回>

\n请输入0--6,其他输入非法!

ch2);

switch(ch2)

addbook();

delbook();

changebook();

4'

bookcount();

getch();

5'

{do

\n\n\n\t\t***********欢迎进入职工管理系统!

***********\n"

增加员工>

删除员工>

修改员工资料>

员工统计>

ch3);

switch(ch3)

addemploy();

delemploy();

changemploy();

employcount();

0'

default:

printf("

无此操作\n"

}

}while(ch3!

='

}break;

6'

{

\n\n\n\t\t***********欢迎进入学生管理系统!

申请新卡>

删除卡号>

借书统计>

卡号统计>

ch4);

switch(ch4)

addcar();

delcar();

lendcount();

carcount();

}while(ch4!

}while(ch2!

huanbook();

}while(ch1!

}

2、各功能模块设计

(1)查阅模块

输入个员工信息后,浏览、查找、排序时同一个员工的所有信息都要同时显示,所以运用结构体运行。

数据信息存放在文件中,一条记录对应一条学生信息,方便管理。

chabook()

charch5;

do

---------------欢迎进入图书查询系统!

--------------\n"

1:

按书名查找>

2:

按作者查找>

0:

请输入0--2,其他输入非法!

scanf("

ch5);

switch(ch5)

findbook();

findbook1();

}while(ch5!

returnFALSE;

}

findbook()/*按书名查找图书函数*/

FILE*fp;

charbookname[10];

intture,i;

fp=fopen("

book.txt"

"

r"

请输入你要查找的书名\n"

bookname);

for(i=0;

fread(&

book[i],sizeof(structbook),1,fp)!

=0;

i++)

if(strcmp(bookname,book[i].bookname)==0)

if(book[i].turefalse==1)

这本书的详细资料是:

%d%s%s此书现在无人借阅\n按任意键返回\n"

book[i].booknum,book[i].bookname,book[i].bookcreat);

else{printf("

这本书已经有人借出\n"

fclose(fp);

return0;

}

fclose(fp);

returnFALSE;

没有你要查询的书籍\n"

findbook1()/*按作者查找图书函数*/

charbookcreat[10];

请输入你要查找的作者名\n"

bookcreat);

if(strcmp(bookcreat,book[i].bookcreat)==0)

(2)借阅模块

查阅完图书记录后,用户要借阅图书,系统要在操作过程中提示用户输入流程,根据用户所输入的指令,帮助其完成借阅。

lendbook()/*借书函数*/

FILE*fp,*fp2;

inti,n;

intcarnum;

请你输入你的卡号\n"

%d"

carnum);

car.txt"

car[i],sizeof(structcar),1,fp)!

if(car[i].carnum==carnum)

n=i;

请输入你要借阅的书的名字\n"

student[n].lendbook);

fp=fopen("

for(i=0;

if(strcmp(book[i].bookname,student[n].lendbook)==0)

if(book[i].turefalse==0){printf("

对不起,此书有人借出,请借其他书\n"

return;

else

record.txt"

a+"

student[n].carnum=carnum;

fwrite(&

student[n],sizeof(structstudent),1,fp);

fp2=fopen("

bookl.txt"

w"

book[i].turefalse=0;

book[i],sizeof(structbook),1,fp2);

continue;

fclose(fp2);

book[i],sizeof(structbook),1,fp2)!

book[i],sizeof(structbook),1,fp);

fopen("

借书完毕,按任意键返回\n"

getch();

return;

不存在这样的书,任意键返回\n"

你的卡号不存在,请申请新卡,按任意键返回\n"

(3)管理模块

管理模块最为复杂,管理所有的图书及职工、学生的信息。

先进入总体的管理系统,在这个系统中重点的操作是图书的管理,为其中的1至4项(分别是增加图书、删除图书、修改图书资料、书籍统计),同时系统还连接了职工、学生管理两个系统,为下一步的操作提供了条件。

职工管理系统主要有增加图书、删除图书、修改图书资料、书籍统计,学生管理系统主要有申请新卡、删除卡号、借书统计、卡号统计四个模块,用于管理学生登录信息。

[程序]

1>

图书管理系统

addbook()/*增加图书函数*/

inti=1;

charchoice='

y'

while(choice=='

||choice=='

Y'

请你输入第%d本书的序号\n"

i++);

book[i].booknum);

请你输入书名\n"

book[i].bookname);

请你输入书的作者\n"

book[i].bookcreat);

请你设定书的状态(请设为1或0,1代表书还没人借,0表示书已经借出,设其他值,程序运行时无法得出正常结果)\n"

book[i].turefalse);

是否要输入下本书<

y/n>

?

\n"

choice);

delbook()/*删除图书函数*/

inti;

charbookname[10],choice;

fp2=fopen("

请输入你要删除的书名\n"

如果你输入的书名存在,系统自动删除该信息!

如果不存在,系统不做任何改动\n"

if(strcmp(bookname,book[i].bookname)!

=0)

fclose(fp2);

是否真的要删除该书籍?

删除后该书籍的所有信息将无法恢复《Y/N》\n"

if(choice=='

按任意键返回\n"

else

changebook()/*修改图书资料函数*/

请你输入要修改的书籍的书字\n"

if(strcmp(book[i].bookname,bookname)==0)

你所要修改的书的资料如下,请选择你要修改的内容\n"

序号:

〈%d〉书名:

〈%s〉作者:

〈%s〉\n"

1:

修改书的序号\n"

2:

修改书名\n"

3:

修改作者\n"

请输入1-3:

"

switch(choice)

请输入新的序号\n"

}break;

请输入新的书名\n"

请输入新的作者\n"

defaut:

没有这样的操作"

getchar();

bookcount()/*图书统计函数*/

inti,n=0;

fp=fopen

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

当前位置:首页 > 高等教育 > 农学

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

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