C语言程序设计报告图书管理系统docxWord文件下载.docx
- 文档编号:18847360
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:53
- 大小:23.09KB
C语言程序设计报告图书管理系统docxWord文件下载.docx
《C语言程序设计报告图书管理系统docxWord文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告图书管理系统docxWord文件下载.docx(53页珍藏版)》请在冰豆网上搜索。
**********欢迎光临**********
**********************图书信息管理系统************************
============1-用户登录===========
============0-退出系统===========
请输入您的选择:
一、输入1进行登录
------------------
*图书信息管理系统*
**********************************************
||1-
添加图书
2-
删除图书
||
||3-
图书列表
4-
图书排序
||5-
查询图书
6-
修改图书
||7-
录入数据
0-
退出系统
请输入所选择的序号:
选择1进入添加图书模块:
请输入您要添加的图书的编号:
选择2进入删除图书信息模块:
请输入要删除的图书编号:
选择3进入显示图书列表模块
图书信息列表如下
==========================================================
编号
图书名
作者名
出版社
类别
出版时间
价格
2
2.00
3
3.00
33
15
5
52
5.00
==========================================================:
选择4.进入修改个人信息模块
1-按姓名修改
请输入您的数字选择:
选择5.进入图书排序模块
================================================================
**1-
按图书编号排序
按出版时间排序
**3-
按图书价格排序
按图书名排序
**5-
按作者名排序
取消排序操作
================================================================请输入您选择的编号:
选择6.进入修改图书模块
*请输入要修改的图书编号:
选择7.进入录入信息模块
注意:
输入图书编码为0时结束!
请输入图书编号:
选择0.退出系统
四、系统总框架图
添加信息
读文件
主
函用户操作
数
写文件
删除信息
查询信息
修改信息
五、程序类的说明
structbook{
intnum;
charbname[50];
charwname[20];
charpress[50];
charsort[50];
inttime;
floatprice;
structbook*next;
//定义文件头指针
};
六、模块分析
1.添加模块
系统将提示用户输入新添加的图书的信息,插入在链表中
2.删除模块
首先由用户输入图书的编号,然后由删除模块判断p->
num和用户输入的编号是否相同,相
同则从链表中删除。
3.图书列表模块
传递一个头指针给print_book函数,若头指针不为空,则将整个链表的数据输出。
4.图书排序模块
首先由用户判断由什么关键词进行排序,然后运行相应的运行模块。
5.查询图书模块
系统将会把所有航班的信息显示出来。
由用户输入图书的编号,判断是
p->
num和用户输入
的编号是否相同,相同则输出。
6.
修改图书模块
按照编号检索,然后修改相应的内容。
7.
录入模块
用while循环批量录入图书信息。
1.退出系统
七、比较有特色的函数
voidnum_paixu(structbook*head)
{
structbook*a[1000],*p,*p1,*temp;
inti,k,index,n=0;
charb;
p1=head;
for(p=head;
p;
p=p->
next)
n++;
for(i=0;
i<
n;
i++){
a[i]=p1;
p1=p1->
next;
}
for(k=0;
k<
n-1;
k++){
index=k;
for(i=k+1;
if(a[i]->
num<
a[index]->
num)
index=i;
temp=a[index];
a[index]=a[k];
a[k]=temp;
printf("
排序成功!
\n"
);
是否显示排序结果?
(y/n)\n"
scanf("
%s"
&
b);
getchar();
switch(b){
case'
n'
:
break;
y'
================================================================\n"
**编号图书名作者名出版社类别出版时间价格
**\n"
**%d%s%s%s%s%d%.2f
a[i]->
num,a[i]->
bname,a[i]->
wname,a[i]->
press,a[i]->
sort,a[i]->
time,a[i]->
price);
default:
您的输入有误!
八、存在的不足与对策、编程体会。
排序的方式过于复杂,有待改进。
九、参考文献
XX文库
十、程序源代码
#include<
stdio.h>
stdlib.h>
string.h>
structbook*creatbook();
//
structbook*addbook(structbook*head);
intyanzheng(structbook*head,intm);
voiddeletebook(structbook*head);
voidfprint(structbook*head);
structbook*load();
voidprint_book(structbook*head);
voidchaxun(structbook*head);
voidnum_chaxun(structbook*head);
voidwname_chaxun(structbook*head);
voidsort_chaxun(structbook*head);
voidtime_chaxun(structbook*head);
voidbname_chaxun(structbook*head);
voidxiugai(structbook*head);
voidpaixu(structbook*head);
voidnum_paixu(structbook*head);
voidtime_paixu(structbook*head);
voidprice_paixu(structbook*head);
voidbname_paixu(structbook*head);
voidwname_paixu(structbook*head);
intmain()
intchoice,n,x,y=1,c,c1=1234;
chara,d,b[10],b1[10]="
yjk"
;
structbook*head=NULL;
while(y){
system("
cls"
\n\n\n\n\n\n\n"
**********
**********************
************************\n\n\n"
\n\n"
============1-
============0-
请输入您的选择:
"
%d"
n);
创建链表
验证新添加的图书编码是否已存在删除图书
将链表写入文件
从文件中读取信息并建成链表将链表信息输出
查询图书信息
按图书编号查询图书
按作者名查询图书
按类别查询图书
按出版时间查询图书
按图书名查询图书
修改图书信息
对图书进行排序
按图书出版时间排序
欢迎光临**********\n\n"
图书信息管理系统
用户登录===========\n"
退出系统===========\n"
switch(n){
case0:
y=0;
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"
||\n\n"
请输入所选择的序号:
choice);
switch(choice)
x=0;
head=load();
if(head==NULL){
文件为空,请先录入数据!
head=addbook(head);
添加成功!
是否将新信息保存到文件?
scanf("
a);
switch(a){
fprint(head);
保存成功!
case2:
deletebook(head);
case3:
print_book(head);
case4:
paixu(head);
case5:
chaxun(head);
case6:
xiugai(head);
case7:
注意:
head=creatbook();
是否将输入的信息保存到文件以覆盖文件中已存在的信
息?
您的输入有误,请重新输入!
请重新输入!
//录入数据并形成链表
structbook*creatbook()
structbook*head,*tail,*p;
intnum,time,n;
charbname[50],wname[20],press[50],sort[50];
intsize=sizeof(structbook);
head=tail=NULL;
请输入图书编号:
num);
请输入图书名:
bname);
请输入作者名:
wname);
请输入出版社:
press);
请输入类别:
sort);
请输入出版时间:
time);
请输入价格:
%f"
price);
while
(1){
p=(structbook*)malloc(size);
num=num;
strcpy(p->
bname,bname);
wname,wname);
press,press);
sort,sort);
time=time;
price=price;
next=NULL;
if(head==NULL)
head=p;
else
tail->
next=p;
tail=p;
do{
n=yanzheng(head,num);
if(n==0)
您输入的编号已存在,请重新输入!
}while
(1);
if(num==0)
returnhead;
//插入结点,并且插入后仍按一定顺序
structbook*addbook(structbook*head)
structbook*ptr,*p1,*p2,*p;
intnum,time,n=1;
scanf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 报告 图书 管理 系统 docx