图书管理系统 C语言实训报告 -
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基础编程能力实训报告
题目: 图书管理系统
专业年级:计算机科学与技术2013级
姓名:
学号:
2014年06月20日
1 实训题目与要求
1.1 问题描述
此系统可以完成对书籍信息的输入、删除、修改、排序等功能,提高图书管理效率,对图书进行合理规划与安排。
1.2 功能要求
程序输出主菜单(如下),提示用户选择操作
表1 主菜单
在主菜单中选择1,要求输入图书信息,包括书本序号,书本名字,作者名字,书的价格;
在主菜单中选择2,可查询已输入的图书信息;
在主菜单中选择3,可通过查找书本的序号,来选择所要删除的图书信息;
在主菜单中选择4,对已输入的图书信息,按照图书序号进行排序;
在主菜单中选择5,显示图书信息;
在主菜单中选择6,可通过查找书本的序号,来选择所要修改的图书,并对图书进行修改;
在主菜单中选择7,建立一个名为asd.txt的文件,并将图书信息录入;
在主菜单中选择8,退出图书管理系统。
2 图书管理系统的设计与功能实现
2.1
图1 系统模块图
输入模块完成用户从界面输入图书的信息的功能;
查询书籍信息模块完成用户从界面输入查询条件,在系统查询符合条件的图书信息,并在界面上显示的功能;
删除书本信息模块完成用户从界面输入需要的图书序号,并将其从系统中删除的功能;
书本信息排序模块完成对书本信息的排序的功能;
显示书籍信息模块完成显示书本信息的功能;
修改书籍信息模块完成用户从界面输入,在系统中查询定位,并将修改过的信息数据保存入系统的功能;
录入图书信息模块完成用户从界面输入需要导入的文件路径名称,将信息输入系统的功能;
2.2 数据结构
在程序中,定义了如下结构体:
typedef struct{
int num;
char Bname[50];
char Wname[50];
float score;
}Book;
其中Book.num是存储书本序号信息,Book.Bname存储书本名字信息,Book.Wname是存储书本作者名信息,Book.score存储书本价格信息。
2.3 算法设计
图2 主函数流程图
主函数的作用主要是调用main函数显示主界面,使用printf函数将菜单选项输出在屏幕上,供用户读取选择。
通过读取用户的输入,调用switch函数对用户的输入进行处理,使用while函数实现用户的选择性的重复操作。
图3 输入函数流程图
输入函数的主要作用是完成书籍信息的输入功能,用户先输入书本的实际数量,再输入书本序号、书名、作者名和书本价格并保存到数组中。
图4 查询函数流程图
查询函数的作用主要是为完成查找某书籍信息的功能,用户在使用时先输
入要查找的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则显示该项;否则,显示无此书。
图5 删除函数流程图
删除函数的主要作用是完成删除某本书籍信息的功能,用户先输入一个要删除的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则删除该项;否则,显示找不到要删除的书本信息。
2.4 程序代码设计
⑴主函数需要读取用户所输入的选项来调用其他功能的函数,从而实现
程序的各个功能;
void main()
{
…
}
使用while来循环j值,供用户输入选项,程序判断后进入对应模块,并调用相应的功能函数进行运算,并且使用break在调用完函数后退出switch 语句。
⑵void input(Book*a,int*n)
{
…
}
输入函数,定义结构体类型指针p,printf语句提示用户输入信息,添加for 循环,将用户输入的信息保存入数组中。
void find(Book*a,int n)
{
…
}
查找函数定义结构体指针p,printf语句提示用户输入信息,输入num后,for循环嵌套if语句按照书本序号查找对应的书本信息,break跳出循环。
void del(Book*a,int*n)
{
…
}
删除函数定义结构体指针p,printf语句提示用户输入信息,输入要删除的书本序号,对应结构体中已存有的num,for循环中嵌套if语句查找并删除对应的书本信息,break跳出循环。
void sort(Book*a,int n)
{
…
}
排序函数,采用冒泡法按照书本序号对书籍进行排序。
void display(Book*a,int n)
{
…
}
输出函数定义结构体p,for循环输出书本信息。
void wenjian(Book*a,int n)
{
…
}
定义指针变量fp,判断所指向的文件是否存在,定义结构体指针p,使用fprintf函数将数据输入文件中。
void xiugai(Book*a,int n)
{
…
}
修改函数定义结构体指针p,printf语句提示用户输入信息,输入要修改的书本序号,对应结构体中已存有的num,for循环中嵌套if语句查找并修改对应的书本信息。
void menu()
{
…
}
几个printf语句在界面显示出供用户选择的操作框。
2.5 测试与调试
3 实训总结
学习c语言不能停留在学习它的语法规则,而是利用学到的知识