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

上传人:b****8 文档编号:10862097 上传时间:2023-02-23 格式:DOCX 页数:15 大小:72.37KB
下载 相关 举报
图书管理系统 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

《图书管理系统 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];

ﻩchar Wname[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语句。

⑵void input(Book*a,int*n)

{

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

voidfind(Book*a,intn)

{

}

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

void del(Book*a,int*n)

 …

 }

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

voidsort(Book*a,intn)

{

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

voiddisplay(Book*a,int n)

}

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

void wenjian(Book*a,intn)

{

}

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

void xiugai(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"

#define SIZE80

typedefstruct{

intnum;

ﻩcharBname[50];

char Wname[50];

ﻩfloatscore;

}Book;

void input(Book*a,int*n)

{

Book*p;

inti=1;

system("cls");

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

scanf("%d",n);

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

");

ﻩﻩfor(p=a;p<a+*n;p++)

{

ﻩﻩ printf("\n%d:

",i++);

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

ﻩ}

ﻩﻩprintf("按回车键返回:

");

getch();

}

voidfind(Book*a,int n)

{

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

void del(Book*a,int*n)

{

 int i,j,k=0;

 Book*p;

 intnum;

system("cls");

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

");

scanf("%d",&num);

 for(i=0,p=a;p<a+*n;i++)

ﻩ  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<n;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();

}

void wenjian(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\t 3  删除4 排序\n\n");

printf("\t\t 5显示  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;

 case 3:

del(book,&num);break;

case 4:

 sort(book,num);break;

case5:

display(book,num);break;

case 6:

xiugai(book,num);break;

  case7:

 wenjian(book,num);break;

  case8:

exit(0);

 }

}

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

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1