C语言 图书管理系统 课程设计正文Word格式文档下载.docx
- 文档编号:21627643
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:51
- 大小:144.26KB
C语言 图书管理系统 课程设计正文Word格式文档下载.docx
《C语言 图书管理系统 课程设计正文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言 图书管理系统 课程设计正文Word格式文档下载.docx(51页珍藏版)》请在冰豆网上搜索。
如果没找到,系统会给出提示信息。
2.15图书排序信息处理
在选择了图书排序信息后,将图书信息按类型选择排序,然后从内存中调出来显示,最后提示是否显示排序结果。
如果没有查询都任何信息,系统会给出提示信息。
2.16图书列表信息处理
在选择了图书列表信息后,将图书信息从内存中调出来显示,最后提示是否查看图书信息。
如果没有查询到任何信息,系统会给出提示信息。
2.17查询图书信息处理
首先提示用户输入要查找的编号,根据用户输入的编号从单链表中对图书信息进行查询。
查询成功后,显示该图书信息,并提示是否对根据用户输入的信息可以完成对图书的查询。
2.18修改图书信息处理
首先要提示用户输入要修改的图书编号,根据用户输入的编号从单链表对图书信息进行查询。
根据菜单输入要修改的图书信息的编号。
然后将内存中输入的信息进行修改。
2.19录入数据信息处理
用户根据提示输入图书的书名、作者、出版社、出版日期、类别、编号、等数据。
3概要设计
图1
4详细设计
图书管理设置用户登录,用户的身份登录可以对系统中的所有功能模块进行操作。
整个系统的功能模块的是图书信息管理。
系统启动时,主函数中调用对用户模块进行初始化的操作,即设定最初的管理员的用户名(为“admin”)和密码(为“1234”),并对文件进行初始设置,即用户文件不存在,则创建用户文件。
用函数system("
color03"
)来控制整个程序的颜色。
录入数据主要完成图书文件的初始设置,即图书文件不存在,则创建图书文件。
下面对模块的功能做简单介绍。
1.登录系统
系统用选择结构(switch)语句来完成登录操作。
首先提示用户输入用户名和密码,接着判断密码是否正确。
如果密码错误,给出密码输入错误的提示信息;
如果密码都正确则进入主程序。
在主程序中完成程序的判断。
2.添加图书信息
系统调用structbook*addbook(structbook*head)函数以增加图书信息,将用户输入的信息添加到图书单链表中,输入完成后提示用户是否继续增加图书信息的操作,如果用户输入“Y”或“y”,则再次调用该函数,实现继续增加图书信息的操作;
如果用户输入“N”或“n”,则返回主菜单界面。
3.删除图书信息
系统调用voiddeletebook(structbook*head)完成图书信息的操作。
首先提示用户输入图书的编号,在单链表中查询该图书信息是否存在,如果图书不存在,给出图书不存在的提示信息。
如果图书存在,系统提示是否确认删除,如果用户输入“Y”或“y”,则删除该图书信息,否则返回主菜单界面。
4.图书列表信息
系统调出voidprint_book(structbook*head)函数来输出图书列表信息,将图书链表中的图书信息按指定的格式显示出来,显示完成后,提示用户是否再次浏览,如果用户输入“Y”或“y”,则再次显示单链表中的图书信息;
否则,返回主菜单界面。
5.图书排序信息
系统调出voidSort_Book(structbook*head)函数来对图书信息进行排序,选择子菜单,可以分别按编号、出版时间、价格、书名、作者名进行排序。
将图书链表中的图书信息按指定的排序格式显示出来。
(1)按图书编号排序
调用voidNum_Sort(structbook*head)函数按图书编号进行排序。
(2)按出版时间排序
调用voidTime_Sort(structbook*head)函数,按出版时间对图书信息进行排序。
(3)按图书价格排序
调用voidPrice_Sort(structbook*head)函数,按出版时间对图书信息进行排序。
(4)按图书名排序
调用voidBName_Sort(structbook*head)函数,按图书名对图书信息进行排序。
(5)按作者名排序
调用voidWName_Sort(structbook*head)函数,按作者名对图书信息进行排序。
6.查询图书信息
系统调出voidSearch(structbook*head)函数来对图书信息进行查询,选择子菜单,可以分别按编号、出版时间、价格、书名、作者名进行查询。
将图书链表中的图书信息按指定的查询格式显示出来
(1)按图书编号查找
调用voidNum_Search(structbook*head)函数按图书编号进行查找。
(2)按出版时间查找
调用voidTime_Search(structbook*head)函数,按出版时间对图书信息进行查找。
(3)按图书名查找
调用voidBName_Search(structbook*head)函数,按图书名对图书信息进行查找。
(4)按作者名查找
调用voidWName_Search(structbook*head)函数,按作者名对图书信息进行查找。
(5)按类别查找
调用voidClass_Search(structbook*head)函数,按类别对图书信息进行查找。
7.修改图书信息
系统调用voidRevise(structbook*head)函数来修改图书信息,可以根据编号对图书进行修改,包括全部修改和放弃修改。
8.退出系统
退出系统时,首先提示用户是否确定退出,如果用户输入“Y”或“y”,将用户链表中的数据保存到用户文件,用户输入“N”或“n”,则不退出。
5调试与测试结果分析
1.登录系统
系统运行后提示用户输入编号,选择要用户登录还是退出系统。
选择用户登录,系统首次运行时的用户名为“admin”,密码是“1234”,以用户的身份登录系统,进入主菜单界面,登录界面如图2所示,主菜单界面如图3所示。
图2
图3
2.添加图书
在主菜单界面中,输入数字1进入输入添加图书界面,用户可以根据提示信息输入图书的基本信息,输入”y”保存图书信息按回车键返回主菜单界面,输入信息情况如图4。
图4
3.删除图书信息
在主菜单界面中,输入数字2进入输入删除图书界面,用户可以根据提示信息输入图书的编号信息,输入”y”确定删除图书信息按回车键返回主菜单界面,输入信息情况如图5。
图5
4.图书列表
在主菜单界面中,输入数字3进入图书列表界面,系统会显示图书的基本信息,按回车键返回主菜单界面,图书列表信息情况如图6。
图6
5.查询图书
在主菜单界面中,输入数字5进入查询图书界面,用户可以根据提示信息输入图书的基本信息,来查询图书信息,并查看查找的图书。
按回车键返回主菜单界面,查找图书信息情况如图7.
图7
6.修改图书
在主菜单界面中,输入数字6进入修改图书界面,用户可以根据提示信息修改图书的基本信息,输入”y”保存修改后的图书信息按回车键返回主菜单界面,输入信息情况如图8
图8
7.录入数据
在主菜单界面中,输入数字7进入录入图书信息界面,用户可以根据提示信息输入图书的基本信息,输入”y”保存图书信息按回车键返回主菜单界面,输入信息情况如图9
图9
6总结
(1)程序设计思路一定要清晰,主函数尽量简洁,这样在调试过程中若出现错误,只要沿着主函数的思路逐个排查即可。
一个条理清楚的框架结构有利于编译过程中查找并解决问题。
(2)编译、调试时最好分模块进行。
我第一次调试时是在整个程序编辑完后一次性编译,一下子出现了很多处错误。
分模块调试,检查错误是最快的方法。
(3)细节处一定要注意,我刚刚编程时很容易丢落“;
”“}”等符号,而这会对程序的编译造成极大的不便。
一个优秀的程序员应时刻注意细节,养成细心的良好品质。
(4)本次C语言课程设计我是通过程序设计课本加上别的参考文献来完成的,其中虽然还存在比较多的瑕疵,但我都是一饱满的热情、认真的态度去对待本次课程设计的。
通过这次课程设计我对完全靠现有的知识,是很难编写出来的。
所以要有读除课本以外的参考书的习惯,可以学习更多的知识。
参考文献
[1]谢延红,王付山.C语言程序设计教程[M].北京:
国防工业出版社,2010.152-171.
[2]梁旭,谷晓琳.C语言课程设计-3版.北京:
电子工业出版社,2013.8
[3]张福祥.C语言程序设计[M].辽宁大学出版社,2008.1
[4]张福祥,王萌.C语言程序设计习题解答与实验实沈阳:
辽宁大学出版社,2008.
[5]牛莉,刘远军等.计算机等级考试辅导教程[M].北京:
中国铁道出版社,2008.
[6]石柱,何新贵.优序法在软件评价中的应用[J].计算机工程与设计,2002,23
(2):
45-46.
附录
#include<
cstdio>
cstdlib>
cstring>
structbook
{
intnum;
charbname[50];
charwname[20];
charpress[50];
charsort[50];
inttime;
floatprice;
structbook*next;
};
structbook*creatbook();
//创建链表
structbook*addbook(structbook*head);
//添加图书
intis_exist(structbook*head,intm);
//验证新添加的图书编码是否已存在
voiddeletebook(structbook*head);
//删除图书
voidfprint(structbook*head);
//将链表写入文件
structbook*load();
//从文件中读取信息并建成链表
voidprint_book(structbook*head);
//将链表信息输出
voidSearch(structbook*head);
//查询图书信息
voidNum_Search(structbook*head);
//按图书编号查询图书
voidWName_Search(structbook*head);
//按作者名查询图书
voidClass_Search(structbook*head);
//按类别查询图书
voidTime_Search(structbook*head);
//按出版时间查询图书
voidBName_Search(structbook*head);
//按图书名查询图书
voidRevise(structbook*head);
//修改图书信息
voidSort_Book(structbook*head);
//对图书进行排序
voidNum_Sort(structbook*head);
//按图书编号排序
voidTime_Sort(structbook*head);
//按图书出版时间排序
voidPrice_Sort(structbook*head);
//按图书价格排序
voidBName_Sort(structbook*head);
//按图书名排序
voidWName_Sort(structbook*head);
//按作者名排序
intmain()
system("
);
//控制颜色
intchoice,n,x,y=1,c,c1=1234;
chara,d,b[10],b1[10]="
ycl"
;
structbook*head=NULL;
while(y){
cls"
//清屏
printf("
\n\n\n\n\n\n\n"
puts("
╔*☆***◎***◇***☆***欢迎光临***☆***◇***◎***☆*╗\n"
**********************图书信息管理系统************************\n\n\n"
\n\n"
============1-用户登录===========\n"
============0-退出系统===========\n"
请输入您的选择:
"
scanf("
%d"
&
n);
\n"
getchar();
switch(n){
case0:
y=0;
break;
case1:
请输入您的用户名:
gets(b);
请输入您的密码:
c);
if(strcmp(b,b1)!
=0||c!
=c1){
验证失败,请重新输入!
%c"
d);
}
else{
验证通过!
请按Enter键进入!
x=1;
while(x){
------------------\n"
*图书信息管理系统*\n"
------------------\n\n"
**********************************************\n\n"
||1-添加图书2-删除图书||\n\n"
||3-图书列表4-图书排序||\n\n"
||5-查询图书6-修改图书||\n\n"
||7-录入数据0-退出系统||\n\n"
请输入所选择的序号:
choice);
switch(choice)
{
x=0;
break;
head=load();
if(head==NULL){
文件为空,请先录入数据!
head=addbook(head);
添加成功!
是否将新信息保存到文件?
(y/n)\n"
a);
switch(a){
case'
n'
:
y'
fprint(head);
保存成功!
case2:
deletebook(head);
case3:
print_book(head);
case4:
Sort_Book(head);
case5:
Search(head);
case6:
Revise(head);
case7:
注意:
输入图书编码为0时结束!
head=creatbook();
是否将输入的信息保存到文件以覆盖文件中已存在的信息?
default:
您的输入有误,请重新输入!
您的输入有误!
请重新输入!
}
//录入数据并形成链表
structbook*creatbook()
structbook*head,*tail,*p;
intnum,time,n;
charbname[50],wname[20],press[50],sort[50];
intsize=sizeof(structbook);
head=tail=NULL;
请输入图书编号:
num);
请输入图书名:
%s"
bname);
请输入作者名:
wname);
请输入出版社:
press);
请输入类别:
sort);
请输入出版时间:
time);
请输入价格:
scanf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 图书管理系统 课程设计正文 语言 图书 管理 系统 课程设计 正文