c语言课程设计图书信息管理系统Word文件下载.docx
- 文档编号:22015990
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:16
- 大小:93.49KB
c语言课程设计图书信息管理系统Word文件下载.docx
《c语言课程设计图书信息管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言课程设计图书信息管理系统Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
图书信息
管理系统
信信信信信
息息息息息
录浏查删修
览询除改入
按(姓名按按(姓名
+作者)姓+类型)
名
系统各模块说明如下:
(1)信息输入模块:
完成图书信息的输入功能,输入信息包括书名、作者名、分类号、出版单位、出版时间、价格等;
(2)信息浏览模块:
完成已录入图书信息的显示;
(3)信息查询模块:
完成图书信息的查询,查询时对应有按书名查询和按作者名查询以及组合查询三种方式;
(4)信息修改模块完成图书信息的修改功能;
(5)信息删除模块完成图书信息的删除功能;
(6)菜单选择模块完成用户命令的接收,此模块也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;
2、数据结构
本系统中主要的数据结构就是图书的信息,包含书名、作者名、分类号、出版单位、出版时间、价格等;
在处理过程中各项可以作为一本图书的不同属性来进行处理。
3、程序流程
系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如下:
开始
菜单
否
否输入否
查询是
浏览是
修改
删除是
是
是按按否书作名按者条信息修改名信息信息浏览件信息删除输入组
合
结束
注:
条件组合查询按书名和价格组合查询,修改删除按书名查找结构体修改删除。
程序清单:
#include<
stdio.h>
//输入输出函数#include<
string.h>
//字符串函数头文件#include<
stdlib.h>
conio.h>
//调用函数#include<
malloc.h>
//申请内存#defineMAXNAME11//书名最大长度#defineMAXwriter21
#defineMENU_COUNT5//菜单选项个数#defineMAXN15
//自定义枚举类型fi_type,用来表示图书信息typedefenum_fi_type
{
news=1,//图书信息
}fi_type;
//图书信息结构体
structfi_info
{charname[MAXNAME];
charwriter[MAXwriter];
inttypenum;
charpublish_from[MAXN];
intpublish_time;
floatprice;
fi_typetype;
structfi_info*next;
//结构体的指针域,用于存放链表的下个结点的地址
};
structfi_info*head=NULL,*head_=NULL;
//将图书信息写成链表,头指针分别为空
intBook_num;
//图书信息的统计数voidmenu();
intReadinfoFromFile();
//读入数据//函数申明
intcreat_news();
voidsearch_news();
voiddelete_news();
voidupdate_news();
voidshow();
voidquit();
intmain()
intselected=0,land_num;
//菜单选择变量
ReadinfoFromFile();
//数据导入
printf("
请输入您的图书管理系统登录号:
"
);
scanf("
%d"
&
land_num);
while(selected>
=0&
&
selected<
=MENU_COUNT)
system("
cls"
//清屏
menu();
//显示主菜单
>
请选择要进行的操作(%d_%d):
0,MENU_COUNT);
if(scanf("
selected)!
=1||selected<
0||selected>
MENU_COUNT)
输入有误!
请选择(%d-%d)之间的数字!
按任意键重试..."
fflush(stdin);
//清空输入缓冲区
getchar();
}
else
switch(selected)
case1:
creat_news();
break;
case2:
search_news();
case3:
delete_news();
case4:
update_news();
case5:
show();
case0:
quit();
selected=0;
return0;
intReadinfoFromFile()//读入数据
FILE*fp=NULL;
//文件指针
structfi_info*p=NULL;
//结构体指针
inti;
if((fp=fopen("
sun.txt"
"
r+"
))==NULL)
文件不存在~\n"
fp=fopen("
w"
//为输出打开一个文件
文件建立成功~\n"
fscanf(fp,"
Book_num);
////从文件中分别读入图书信息统计数,以便于下面for循环的条件控制
for(i=0;
i<
Book_num;
i++){
p=(structfi_info*)malloc(sizeof(structfi_info));
//P为动作指针,申请内存空间
%s"
p->
name);
writer);
p->
typenum);
publish_from);
publish_time);
%f"
price);
type);
if(p->
type==1)
if(head==NULL){
head=p;
next=NULL;
else{
next=head;
if(head_==NULL){
head_=p;
next=head_;
fclose(fp);
voidmenu(){
\n\n*******************************图书信息管理系统********************************\n"
\t\t\t1;
录入图书信息\n"
\t\t\t2;
查找图书信息\n"
\t\t\t3;
删除图书信息\n"
\t\t\t4;
修改图书信息\n"
\t\t\t5;
显示图书信息\n"
\t\t\t0;
退出\n"
}
intcreat_news()//添加图书信息{
请输入书名:
请输入作者名:
请输入分类号:
请输入出版单位:
请输入出版时间:
请输入书本价格:
type=news;
Book_num+=1;
voidsearch_news()//查询图书信息{
charname[10],writer[21];
intprice;
intb=1,i;
按书名查找请按1.\n按作者名查找请按2.\n按组合查询请按3.\n"
i);
if(i=1)
请输入要查找的书名:
name);
for(p=head;
p!
=NULL;
p=p->
next)//一个链表指针p的遍历,直到结尾p==NULL
if(strcmp(name,p->
name)==0)//字符串的比较函数,若前后相等则等于0
{b=0;
//若存在,则b=0
你找到了要查找的图书信息:
\n"
%s\n"
%d\n"
%f\n"
if(head==NULL)printf("
没有此图书信息\n"
if(b)printf("
你要查找的图书信息不存在!
//若b=1,则不存在
elseif(i=2)
请输入要查找的作者名:
writer);
if(strcmp(writer,p->
writer)==0)//字符串的比较函数,若前后相等则等于0
elseif(i=3)
请输入要查找的书名价格\n:
%s%d"
name,&
name)==0&
price==p->
price)//字符串的比较函数,若前后相等则等于0
}elseprintf("
提醒:
没有该功能选项,请重新选择:
PAUSE"
//暂停
voiddelete_news()//删除图书信息
//定义两个结构体指针
structfi_info*q=NULL;
charname[10];
intb=1;
inta;
请输入要删除的书名:
for(p=head,q=head;
next)
name)==0)
b=0;
确定删除?
0(是)or1(否)\n"
a);
if(a==0)
if(p==head)
head=head->
next;
q->
next=p->
删除成功~\n"
elseq=p;
提示:
查不到图书信息\n"
voidupdate_news()//修改图书信息{
inta,b=1;
\n\n"
if(strcmp(p->
name,name)==0){
是否确定修改,0(是)or1(否)\n"
if(a==0){
**********请重新输入信息*********\n"
请输入分类号"
\n\n提醒:
您修改成功!
if(b==1)printf("
没有您要修改的信息~\n"
voidshow()//显示图书信息{
next){
voidquit()//退出系统退出先保存
{FILE*fp=NULL;
system("
fprintf(fp,"
%d"
Book_num);
{fprintf(fp,"
%s"
%s\n"
%f"
感谢使用本图书信息管理系统!
);
exit(0);
程序运行结果:
设计总结和体会:
总结1:
熟悉了链表,结构体,数组指针的知识,还自学了枚举类型以及文件部分。
2:
上机运行更加熟练,能及时地修改语法及程序错误。
3:
团队合作很重要,我从搭档的身上学习了很多。
4:
对C语言的细节知识点及程序上机有了更深入的认识及了解。
体会:
图书管理系统花了我将近整整三天的时间,前两天是构建框架,着手写源程序,效率有些低,第三天真
的是一天都对着电脑,调试再调试,忘乎所有,心里想的都是程序代码。
这样的投入与认真让我更加坚
定了深入学习C语言以及自学C++等语言的兴趣,当程序没有错误并成功运行,我觉得什么付出都值得,
不睡觉算什么,没有好好吃饭算什么,辐射算什么、、、、、、。
虽然最后的结果是写了两个源程序并成功运
行,但还是觉得自己可以做的更好一点,至少在效率方面应该更高些。
以后更要好好学习,打好稳固的
基础,为梦想而奋斗~
设计成绩:
教师签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 图书 信息管理 系统