C语言程序设计报告图书管理系统.docx

上传人:b****1 文档编号:1688571 上传时间:2023-05-01 格式:DOCX 页数:53 大小:39.37KB
下载 相关 举报
C语言程序设计报告图书管理系统.docx_第1页
第1页 / 共53页
C语言程序设计报告图书管理系统.docx_第2页
第2页 / 共53页
C语言程序设计报告图书管理系统.docx_第3页
第3页 / 共53页
C语言程序设计报告图书管理系统.docx_第4页
第4页 / 共53页
C语言程序设计报告图书管理系统.docx_第5页
第5页 / 共53页
C语言程序设计报告图书管理系统.docx_第6页
第6页 / 共53页
C语言程序设计报告图书管理系统.docx_第7页
第7页 / 共53页
C语言程序设计报告图书管理系统.docx_第8页
第8页 / 共53页
C语言程序设计报告图书管理系统.docx_第9页
第9页 / 共53页
C语言程序设计报告图书管理系统.docx_第10页
第10页 / 共53页
C语言程序设计报告图书管理系统.docx_第11页
第11页 / 共53页
C语言程序设计报告图书管理系统.docx_第12页
第12页 / 共53页
C语言程序设计报告图书管理系统.docx_第13页
第13页 / 共53页
C语言程序设计报告图书管理系统.docx_第14页
第14页 / 共53页
C语言程序设计报告图书管理系统.docx_第15页
第15页 / 共53页
C语言程序设计报告图书管理系统.docx_第16页
第16页 / 共53页
C语言程序设计报告图书管理系统.docx_第17页
第17页 / 共53页
C语言程序设计报告图书管理系统.docx_第18页
第18页 / 共53页
C语言程序设计报告图书管理系统.docx_第19页
第19页 / 共53页
C语言程序设计报告图书管理系统.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计报告图书管理系统.docx

《C语言程序设计报告图书管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告图书管理系统.docx(53页珍藏版)》请在冰点文库上搜索。

C语言程序设计报告图书管理系统.docx

C语言程序设计报告图书管理系统

 

南京航空航天大学金城学院

《C语言程序设计》课程设计报告

 

图书信息管理系统

 

学号:

姓名:

学号:

姓名:

日期:

 

一、需求分析:

………………………………………………………3

二、程序的主要功能:

……………………………………………….3

三、程序运行平台:

………………………………………………….3

四、系统总框架图:

………………………………………………….6

五、程序类的说明:

……………………………………………….6

六、模块分析:

……………………………………………………….8

七、比较有特色的函数:

…………………………………………….9

八、存在的不足与编程体会…………………………………………10

九、程序源代码:

…………………………………………………….10

 

一、需求分析

设计与分析一个图书信息管理系统,能够对图书的根据书名、价格或出版社进行统计、处理和更新,并且可以方便学校老师和领导对图书进行整体分析。

二、程序的主要功能

图书信息界面美观、简洁,采用菜单式显示功能选择;

能够从磁盘文件输入和输出数据;

能够对图书信息进行检索操作;

具有增、删、改信息的功能;

使用结构体链表数据类型对图书信息进行描述和存储。

三、程序运行平台

VC6.0

运行程序“library.exe”,进入登录界面如下

**

**********欢迎光临**********

**********************图书信息管理系统************************

 

============1-用户登录===========

============0-退出系统===========

请输入您的选择:

一、输入1进行登录

------------------

*图书信息管理系统*

------------------

**********************************************

**********************************************

||1-添加图书2-删除图书||

||3-图书列表4-图书排序||

||5-查询图书6-修改图书||

||7-录入数据0-退出系统||

**********************************************

**********************************************

请输入所选择的序号:

 

选择1进入添加图书模块:

请输入您要添加的图书的编号:

选择2进入删除图书信息模块:

请输入要删除的图书编号:

选择3进入显示图书列表模块

图书信息列表如下

==========================================================

编号图书名作者名出版社类别出版时间价格

2222222.00

3333333.00

3315525525.00

5555555.00

==========================================================:

选择4.进入修改个人信息模块

1-按姓名修改

请输入您的数字选择:

选择5.进入图书排序模块

================================================================

**1-按图书编号排序2-按出版时间排序**

**3-按图书价格排序4-按图书名排序**

**5-按作者名排序0-取消排序操作**

================================================================

请输入您选择的编号:

选择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循环批量录入图书信息。

0.退出系统

七、比较有特色的函数

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

a[i]=p1;

p1=p1->next;

}

for(k=0;k

index=k;

for(i=k+1;i

if(a[i]->numnum)

index=i;

}

temp=a[index];

a[index]=a[k];

a[k]=temp;

}

printf("排序成功!

\n");

printf("是否显示排序结果?

(y/n)\n");

scanf("%s",&b);

getchar();

switch(b){

case'n':

break;

case'y':

printf("================================================================\n");

printf("**编号图书名作者名出版社类别出版时间价格**\n");

for(i=0;i

printf("**%d%s%s%s%s%d%.2f**\n",a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price);

}

printf("================================================================\n");

break;

default:

printf("您的输入有误!

\n");

break;

}

}

八、存在的不足与对策、编程体会。

排序的方式过于复杂,有待改进。

九、参考文献

XX文库

十、程序源代码

#include

#include

#include

structbook{

intnum;

charbname[50];

charwname[20];

charpress[50];

charsort[50];

inttime;

floatprice;

structbook*next;//定义文件头指针

};

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");

printf("\n\n\n\n\n\n\n");

printf("**********欢迎光临**********\n\n");

printf("**********************图书信息管理系统************************\n\n\n");

printf("\n\n");

printf("============1-用户登录===========\n");

printf("============0-退出系统===========\n");

printf("请输入您的选择:

");

scanf("%d",&n);

printf("\n");

getchar();

switch(n){

case0:

y=0;

break;

case1:

printf("请输入您的用户名:

");

gets(b);

printf("\n");

printf("请输入您的密码:

");

scanf("%d",&c);

printf("\n");

if(strcmp(b,b1)!

=0||c!

=c1){

printf("验证失败,请重新输入!

\n");

scanf("%c",&d);

getchar();

system("cls");

}

else{

printf("验证通过!

请按Enter键进入!

\n");

scanf("%c",&d);

getchar();

x=1;

while(x){

system("cls");

printf("------------------\n");

printf("*图书信息管理系统*\n");

printf("------------------\n\n");

printf("**********************************************\n\n");

printf("**********************************************\n\n");

printf("||1-添加图书2-删除图书||\n\n");

printf("||3-图书列表4-图书排序||\n\n");

printf("||5-查询图书6-修改图书||\n\n");

printf("||7-录入数据0-退出系统||\n\n");

printf("**********************************************\n\n");

printf("**********************************************\n\n");

printf("请输入所选择的序号:

");

scanf("%d",&choice);

getchar();

system("cls");

switch(choice)

{

case0:

x=0;break;

case1:

head=load();

if(head==NULL){

printf("文件为空,请先录入数据!

\n");

getchar();

break;

}

else{

head=addbook(head);

printf("添加成功!

\n");

printf("是否将新信息保存到文件?

(y/n)\n");

scanf("%c",&a);

getchar();

switch(a){

case'n':

break;

case'y':

fprint(head);

printf("保存成功!

\n");

getchar();

break;

}

break;

}

case2:

head=load();

if(head==NULL){

printf("文件为空,请先录入数据!

\n");

getchar();

break;

}

else{

deletebook(head);

getchar();

break;

}

break;

case3:

head=load();

if(head==NULL){

printf("文件为空,请先录入数据!

\n");

getchar();

break;

}

else{

print_book(head);

getchar();

break;

}

case4:

head=load();

if(head==NULL){

printf("文件为空,请先录入数据!

\n");

getchar();

break;

}

else{

paixu(head);

getchar();

}

break;

case5:

head=load();

if(head==NULL){

printf("文件为空,请先录入数据!

\n");

getchar();

break;

}

else{

chaxun(head);

getchar();

}

break;

case6:

head=load();

if(head==NULL){

printf("文件为空,请先录入数据!

\n");

getchar();

break;

}

else{

xiugai(head);

getchar();

break;

}

break;

case7:

printf("注意:

输入图书编码为0时结束!

\n");

head=creatbook();

printf("是否将输入的信息保存到文件以覆盖文件中已存在的信息?

(y/n)\n");

getchar();

scanf("%c",&a);

getchar();

switch(a){

case'n':

break;

case'y':

fprint(head);

printf("保存成功!

\n");

getchar();

break;

}

break;

default:

printf("您的输入有误,请重新输入!

\n");

getchar();

break;

}

}

}

break;

default:

printf("您的输入有误!

请重新输入!

\n");

getchar();

break;

}

}

}

//录入数据并形成链表

structbook*creatbook()

{

structbook*head,*tail,*p;

intnum,time,n;

charbname[50],wname[20],press[50],sort[50];

floatprice;

intsize=sizeof(structbook);

head=tail=NULL;

printf("请输入图书编号:

");

scanf("%d",&num);

printf("请输入图书名:

");

scanf("%s",bname);

getchar();

printf("请输入作者名:

");

scanf("%s",wname);

getchar();

printf("请输入出版社:

");

scanf("%s",press);

getchar();

printf("请输入类别:

");

scanf("%s",sort);

getchar();

printf("请输入出版时间:

");

scanf("%d",&time);

getchar();

printf("请输入价格:

");

scanf("%f",&price);

getchar();

while

(1){

p=(structbook*)malloc(size);

p->num=num;

strcpy(p->bname,bname);

strcpy(p->wname,wname);

strcpy(p->press,press);

strcpy(p->sort,sort);

p->time=time;

p->price=price;

p->next=NULL;

if(head==NULL)

head=p;

else

tail->next=p;

tail=p;

do{

printf("请输入图书编号:

");

scanf("%d",&num);

n=yanzheng(head,num);

if(n==0)

break;

else

printf("您输入的编号已存在,请重新输入!

\n");

}while

(1);

if(num==0)

break;

else

{

printf("请输入图书名:

");

scanf("%s",bname);

getchar();

printf("请输入作者名:

");

scanf("%s",wname);

getchar();

printf("请输入出版社:

");

scanf("%s",press);

getchar();

printf("请输入类别:

");

scanf("%s",sort);

getchar();

printf("请输入出版时间:

");

scanf("%d",&time);

getchar();

printf("请输入价格:

");

scanf("%f",&price);

getchar();

}

}

returnhead;

}

//插入结点,并且插入后仍按一定顺序

structbook*addbook(structbook*head)

{

structbook*ptr,*p1,*p2,*p;

charbname[50],wname[20],press[50],sort[50];

intsize=sizeof(structbook);

intnum,time,n=1;

floatprice;

do{

printf("请输入图书编号:

");

scanf("%d",&num);

n=yanzheng(head,num);

if(n==0)

break;

else

printf("您输入的编号已存在,请重新输入!

\n");

}while

(1);

printf("请输入图书名:

");

scanf("%s",bname);

getchar();

printf("请输入作者名:

");

scanf("%s",wname);

getchar();

printf("请输入出版社:

");

scanf("%s",press);

getchar();

printf("请输入类别:

");

scanf("%s",sort);

getchar();

printf("请输入出版时间:

");

scanf("%d",&time);

getchar();

printf("请输入价格:

");

scanf("%f",&price);

getchar();

p=(structbook*)malloc(size);

p-

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2