图书管理系统C语言实训报告.docx

上传人:b****1 文档编号:13233805 上传时间:2023-06-12 格式:DOCX 页数:15 大小:98.75KB
下载 相关 举报
图书管理系统C语言实训报告.docx_第1页
第1页 / 共15页
图书管理系统C语言实训报告.docx_第2页
第2页 / 共15页
图书管理系统C语言实训报告.docx_第3页
第3页 / 共15页
图书管理系统C语言实训报告.docx_第4页
第4页 / 共15页
图书管理系统C语言实训报告.docx_第5页
第5页 / 共15页
图书管理系统C语言实训报告.docx_第6页
第6页 / 共15页
图书管理系统C语言实训报告.docx_第7页
第7页 / 共15页
图书管理系统C语言实训报告.docx_第8页
第8页 / 共15页
图书管理系统C语言实训报告.docx_第9页
第9页 / 共15页
图书管理系统C语言实训报告.docx_第10页
第10页 / 共15页
图书管理系统C语言实训报告.docx_第11页
第11页 / 共15页
图书管理系统C语言实训报告.docx_第12页
第12页 / 共15页
图书管理系统C语言实训报告.docx_第13页
第13页 / 共15页
图书管理系统C语言实训报告.docx_第14页
第14页 / 共15页
图书管理系统C语言实训报告.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

图书管理系统C语言实训报告.docx

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

图书管理系统C语言实训报告.docx

图书管理系统C语言实训报告

 

基础编程能力实训报告

 

题目:

图书管理系统

专业年级:

计算机科学与技术2013级

姓名:

学号:

2014年06月20日

1实训题目与要求

1.1问题描述

此系统可以完成对书籍信息的输入、删除、修改、排序等功能,提高图书管理效率,对图书进行合理规划与安排。

1.2功能要求

程序输出主菜单(如下),提示用户选择操作

欢迎使用图书管理系统

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

*主菜单*

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

1输入2查询

3删除4排序

5显示6修改

7录入8退出

请选择[1/2/3/4/5/6/7/8]:

表1主菜单

在主菜单中选择1,要求输入图书信息,包括书本序号,书本名字,作者名字,书的价格;

在主菜单中选择2,可查询已输入的图书信息;

在主菜单中选择3,可通过查找书本的序号,来选择所要删除的图书信息;

在主菜单中选择4,对已输入的图书信息,按照图书序号进行排序;

在主菜单中选择5,显示图书信息;

在主菜单中选择6,可通过查找书本的序号,来选择所要修改的图书,并对图书进行修改;

在主菜单中选择7,建立一个名为asd.txt的文件,并将图书信息录入;

在主菜单中选择8,退出图书管理系统。

2图书管理系统的设计与功能实现

图书管理系统

2.1总体设计

 

图1系统模块图

输入模块完成用户从界面输入图书的信息的功能;

查询书籍信息模块完成用户从界面输入查询条件,在系统查询符合条件的图书信息,并在界面上显示的功能;

删除书本信息模块完成用户从界面输入需要的图书序号,并将其从系统中删除的功能;

书本信息排序模块完成对书本信息的排序的功能;

显示书籍信息模块完成显示书本信息的功能;

修改书籍信息模块完成用户从界面输入,在系统中查询定位,并将修改过的信息数据保存入系统的功能;

录入图书信息模块完成用户从界面输入需要导入的文件路径名称,将信息输入系统的功能;

2.2数据结构

在程序中,定义了如下结构体:

typedefstruct{

intnum;

charBname[50];

charWname[50];

floatscore;

}Book;

其中Book.num是存储书本序号信息,Book.Bname存储书本名字信息,Book.Wname是存储书本作者名信息,Book.score存储书本价格信息。

2.3算法设计

图2主函数流程图

主函数的作用主要是调用main函数显示主界面,使用printf函数将菜单选项输出在屏幕上,供用户读取选择。

通过读取用户的输入,调用switch函数对用户的输入进行处理,使用while函数实现用户的选择性的重复操作。

图3输入函数流程图

输入函数的主要作用是完成书籍信息的输入功能,用户先输入书本的实际数量,再输入书本序号、书名、作者名和书本价格并保存到数组中。

图4查询函数流程图

查询函数的作用主要是为完成查找某书籍信息的功能,用户在使用时先输入要查找的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则显示该项;否则,显示无此书。

图5删除函数流程图

删除函数的主要作用是完成删除某本书籍信息的功能,用户先输入一个要删除的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则删除该项;否则,显示找不到要删除的书本信息。

2.4程序代码设计

⑴主函数需要读取用户所输入的选项来调用其他功能的函数,从而实现程序的各个功能;

voidmain()

{

}

使用while来循环j值,供用户输入选项,程序判断后进入对应模块,并调用相应的功能函数进行运算,并且使用break在调用完函数后退出switch语句。

⑵voidinput(Book*a,int*n)

{

}

输入函数,定义结构体类型指针p,printf语句提示用户输入信息,添加for循环,将用户输入的信息保存入数组中。

voidfind(Book*a,intn)

{

}

查找函数定义结构体指针p,printf语句提示用户输入信息,输入num后,for循环嵌套if语句按照书本序号查找对应的书本信息,break跳出循环。

voiddel(Book*a,int*n)

{

}

删除函数定义结构体指针p,printf语句提示用户输入信息,输入要删除的书本序号,对应结构体中已存有的num,for循环中嵌套if语句查找并删除对应的书本信息,break跳出循环。

voidsort(Book*a,intn)

{

}

排序函数,采用冒泡法按照书本序号对书籍进行排序。

voiddisplay(Book*a,intn)

{

}

输出函数定义结构体p,for循环输出书本信息。

voidwenjian(Book*a,intn)

{

}

定义指针变量fp,判断所指向的文件是否存在,定义结构体指针p,使用fprintf函数将数据输入文件中。

voidxiugai(Book*a,intn)

{

}

修改函数定义结构体指针p,printf语句提示用户输入信息,输入要修改的书本序号,对应结构体中已存有的num,for循环中嵌套if语句查找并修改对应的书本信息。

voidmenu()

{

}

几个printf语句在界面显示出供用户选择的操作框。

2.5测试与调试

测试数据类型

测试数据

预期结果

实际结果

合法数据

在主菜单中输入1

进入输入菜单

进入输入菜单

在主菜单中输入2

进入查询菜单

进入查询菜单

非法数据

在主菜单中输入9

没有该项内容

没有该项内容

在主菜单中输入a

没有该项内容

没有该项内容

3实训总结

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。

即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。

只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。

实训期间,学习到很多东西,不仅使我在理论上c语言有了全新的认识,在实践能力上也得到了提高,将课本上的死知识应用于实践中,程序编写是以后工作和学习的基础,第一次尝试编写较复杂的程序,发现以前一直忙于理论知识的学习,这次实训是抽象的理论知识很好的应用,编写过程中,在不断地错误改正中,发现了自己很多知识的理解及联系性的不足,因此,在以后的学习中,我会更加的有的放矢,弥补自己知识面的不足,使自己能更好的牢固掌握本专业知识,完善自我。

附录

#include"stdio.h"

#include"stdlib.h"

#include"conio.h"

#defineSIZE80

typedefstruct{

intnum;

charBname[50];

charWname[50];

floatscore;

}Book;

voidinput(Book*a,int*n)

{

Book*p;

inti=1;

system("cls");

printf("\n请输入书的序号(1-80)");

scanf("%d",n);

printf("\n请输入书本信息(书本序号/书名/作者/单价):

");

for(p=a;p

{

printf("\n%d:

",i++);

scanf("%d%s%s%f",&p->num,p->Bname,p->Wname,&p->score);

}

printf("按回车键返回:

");

getch();

}

voidfind(Book*a,intn)

{

intk=0;

intnum;

Book*p;

system("cls");

printf("\n请输入要查询的书的序号");

scanf("%d",&num);

for(p=a;p

if(num==p->num)

{

k=1;

printf("已找到,是:

%d\t%s\t%s\t%.lf\n",p->num,p->Bname,p->Wname,p->score);

break;

}

if(!

k)

printf("无此书!

\n");

printf("按回车键返回:

");

getch();

}

voiddel(Book*a,int*n)

{

inti,j,k=0;

Book*p;

intnum;

system("cls");

printf("\n请输入要删除的书的序号:

");

scanf("%d",&num);

for(i=0,p=a;p

if(num==(p+i)->num)

{

k=1;

for(j=i;j<*n-1;j++)

*(p+j)=*(p+j+1);

(*n)--;

break;

}

if(!

k)

printf("找不到要删除的书本信息!

\n");

printf("按回车键返回:

");

getch();

}

voidsort(Book*a,intn)

{

inti,j;

Bookt;

for(i=0;i

for(j=0;j

if((a[j].num)>(a[j+1].num))

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

printf("\n输出排序结果:

\n");

for(i=0;i

printf("%d\t%s\t%s\t%.lf\n",a[i].num,a[i].Bname,a[i].Wname,a[i].score);

printf("\n");

printf("按回车键返回:

");

getch();

}

voiddisplay(Book*a,intn)

{

Book*p;

for(p=a;p

printf("%d\t%s\t%s\t%.lf\n",p->num,p->Bname,p->Wname,p->score);

printf("\n");

printf("按回车键返回:

");

getch();

}

voidwenjian(Book*a,intn)

{

FILE*fp;

Book*p;

inti;

system("cls");

fp=fopen("asd.txt","w+");

if(fp==NULL)

printf("打开失败\n");

else

{

for(i=0,p=a;i

fprintf(fp,"%d%s%s%f\n",p->num,p->Bname,p->Wname,p->score);

printf("写入成功\n");

}

printf("\n");

printf("按回车键返回:

");

getch();

}

voidxiugai(Book*a,intn)

{

Book*p;

inti,m;

system("cls");

printf("请输入要修改的书号:

");

scanf("%d",&m);

for(p=a;p

if(m==p->num)

{

printf("请输入修改后的信息(书号/书名/作者/单价)\n");

scanf("%d%s%s%f",&p->num,&p->Bname,&p->Wname,&p->score);

}

printf("\n");

printf("按回车键返回:

");

getch();

}

voidmenu()

{

system("cls");

printf("\n\n\n\t\t\t欢迎使用图书管理系统\n\n\n");

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

printf("\t\t\t*主菜单*\n");

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

printf("\t\t1输入2查询\n\n");

printf("\t\t3删除4排序\n\n");

printf("\t\t5显示6修改\n\n");

printf("\t\t7录入8退出\n\n");

printf("\t\t请选择[1/2/3/4/5/6/7/8]:

");

}

voidmain()

{

intj,num;

Bookbook[SIZE];

while

(1)

{menu();

scanf("%d",&j);

switch(j)

{

case1:

input(book,&num);break;

case2:

find(book,num);break;

case3:

del(book,&num);break;

case4:

sort(book,num);break;

case5:

display(book,num);break;

case6:

xiugai(book,num);break;

case7:

wenjian(book,num);break;

case8:

exit(0);

}

}

}

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

当前位置:首页 > 自然科学 > 物理

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

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