大一C语言课程设计图书信息管理系统_第1页
大一C语言课程设计图书信息管理系统_第2页
大一C语言课程设计图书信息管理系统_第3页
大一C语言课程设计图书信息管理系统_第4页
大一C语言课程设计图书信息管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大一C语言3果程设

计图书信息管理系

高级语言程序设计课程设计

评语:

学院一班级

姓名学号

成绩指导老师

年月日

文档仅供参考,不当之处,请联系改正。

一、目的

1.进一步掌握和利用C语言进行程设计的能力;

2、进一步理解和运用结构化程设计的思想和方法;

3、初步掌握开发一个小型实用系统的基本方法;

4、学会调试一个较长程序的基本方法;

5、学会利用流程图或N-S图表示算法;

6、掌握书写程设计开发文档的能力(书写课程设计报告);

二、内容与设计思想。

(1)题目:图书信息包括:登录号、书名、作者名、分类号、出版单

位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功

能:

系统以菜单方式工作

图书信息录入功能(图书信息用文件保存)一一输入

图书信息浏览功能一一输出

查询和排序功能:(至少一种查询方式)一一算法

按书名查询

按作者名查询

图书信息的删除与修改(可选项)

(2).系统功能与分析(填写你所设计的菜单及流程图)

截图略

流程图:

文档仅供参考,不当之处,请联系改正。

插入模块流程图

(3)数据结构

typedefstructbook

(

intsort;

charbook_name[15];

charauthor_name[15];

intvertnumber;

charpublish_unit[15];

charpublish_tinie[10];

intprice;

)B

文档仅供参考,不当之处,请联系改正。

(4).模块设计

根据功能需要:

源文件函数名功能

saveO保存

input()输入

get()获取

output()输出

book_name经过书名查找

authorname()经过作者查找

modify()修改

delet()删除

(5)总体设计思想:

图书信息管理系统

,数据输.数据浏.数据查删除和修、退出

(6)调试过程:测试数据及结果,出现了哪些问题

截图略

(7)程序有待改进的地方及本次实习的收获和建议

(8)源程序清单(主要代码)

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#defineLENsizeof(structbook)

文档仅供参考,不当之处,请联系改正。

typedefstructbook

{

intsort;

charbook_name[15];

charauthor_name[15];

intvert.number;

charpublish_unit[15];

charpublish_time[10];

intprice;

)B;

B*P,*pl,boo;

intnum=0,f=0;

intsave();

voidinput();

intget();

voidoutput();

voidbook_name();

voidauthor_name();

voidmodifyO;

voiddelet();

intmain()

文档仅供参考,不当之处,请联系改正。

intre=l,tJ=O;

intn,choice;

while(re==l)

system(HclsH);

printf(n

printf(u主菜单XnXn,*);

printf(H1.录入信息\n");

printf(M2.查看信息\iT);

printf(H3.查询信息\n”);

printf(n4.删除与修改信息\n”);

printf(n5.退出\n");

•?,.£•f®\

printf(n

printf(n\nM);

if(j==l)printf"n't选择错误!”);

printf(M\n\t请选择1-5:_\b\bn);

scanf(''%d'',&choice);

switch(choice)

文档仅供参考,不当之处,请联系改正。

case1:

(

printf(H\n\tl:录入信息\n");

input();

printf(M\n\tl.返回主菜单;\n\t2.退出\n\t\t

请选择:_\b\b");

scanf(M%dM,&re);

break;

)

case2:

(

printf("\n\t2.查看信息\n");

output();

printf(u\n\tL返回主菜单;\n\t2,退出\n\t\t

请选择:_\b\b");

scanf(n%dM,&re);

break;

)

case3:

文档仅供参考,不当之处,请联系改正。

while(t==l)

(

printfT\n\t3渣询信息\暧);

printf(n\n\t请选择查询方式:\n\t1.按书

名\n\t2.按作者名\n\t3.其余任意数字键返回主菜单_\b\b”);

scanf(M%dn,&n);

if(n==l)

book_name();

elseif(n==2)

author_name();

else

{

re=l;

gotolebel;

)

printf(n\n\t1.返回上一层;\n\t2.返回主

菜单;\n\t3.退出\n\t请选择:_\b\b");

scanf(n%du,&t);

if(t==l)

system(nclsH);

文档仅供参考,不当之处,请联系改正。

if(t==2)

if(t==3)re=O;

lebel:break;

case4:

while(t==l||t==l)

{

printf「\n\t4删除与修改信息\iT);

printf(M\n\t请选择八n\t1.删除信息;\n\t

2.修改信息\n\t3.其余任意数字键返回主菜单_\b\b");

scanf(n%dH,&n);

if(n==l)

delet();

elseif(n==2)

modifyO;

else

文档仅供参考,不当之处,请联系改正。

re=l;

gotolebe;

)

printf(H\n\t1.返回上一层;\n\t2.返回主

菜单;\n\t3.退出\n\t\t请选择:_\b\b“);

scanf(n%dH,&t);

if(t==l)

system(nclsn);

if(t==2)re=l;

if(t==3)re=0;

)

lebe:break;

)

case5:

{

re=0;

break;

default:

re=l;

文档仅供参考,不当之处,请联系改正。

j=l;

)

)

)

return0;

)

intsave()

(

FILE*fp;

inti,n=0,nl=0;

if((fp=fopen(Mbook.txtn,na+H))==NULL)

return0;

fprintf(fp,n%d\nM,num);

for(i=0;i<num;i++)

(

fprintf(fp,M%d%s%s%d%s%s%dM,P[i].sort,P[i].boo

k_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].pu

b!ish_time,P[i].price);

文档仅供参考,不当之处,请联系改正。

fprintf(fp,M\nM);

)

fclose(fp);

return1;

)

intget()

(

FILE*fp;

inti;

fp=fopen(Hbook.txt,\HrM);

if(fp==NULL)

return0;

else

(

fscanf(fp,n%dH,&num);

if(num>0)

(

P=(B*)malloc(LENnum);

for(i=0;i<num;i++)

文档仅供参考,不当之处,请联系改正。

fscanf(fp,M%d%s%s%d%s%s%d,\&P[i].sort,P[i].book_na

me,

P[i].author_name,&P[i].vert_number,P[i].publish_unit,P[i].publish

_time,&P[i].price);

)

fclose(fp);

return1;

}

else

{

fclose(fp);

return0;

}

)

)

voidinput()

{

intresult;

inti;

printf(M\t\t要录入信息的书籍数量为:_本\1>\1)");

文档仅供参考,不当之处,请联系改正。

scanf(M%dM,&num);

if(num>0)

(

P=(B*)malloc(LEN*num);

for(i=0;i<num;i++)

(

P[i].sort=i+1;

printf(H\n\tNO.%dH,P[i].sort);

printf(n\nn);

primf「\t请按序输入:书名作者名分类号

出版单位出版时间价格\n\t\t");

scanf(H%s%s%d%s%s%d,\P[i].book_name,P[i].author_na

me,&P[i].vert_number,P[i].publish_unit,

P[i].publish_dme,&P[i].price);

printf(H\nn);

)

result=save();

if(result==O)

文档仅供参考,不当之处,请联系改正。

printf(M\t录入信息失败!\n”);

num=0;

)

if(result==l)

(

printf(n\t成功录入信息!\n");

}

)

else

(

num=0;

printf(M\t输入错误!”);

)

)

voidoutput()

{

inti;

get();

if(get()==l)

(

printf(u\n\t\t成功获取信息!\iT);

for(i=0;i<num;i++)

文档仅供参考,不当之处,请联系改正。

printf(,,\n\t\tNO.\t%d\nu,P[i].sort);

printf("\t\t书名作者名序列号出版单位出版时间

价格'暧);

printf(H\t\t%s%s%d%s%s%dn,P[i].book_nam

e,P[i].author_name,P[i].vert_number,P[i].publish_unit,

P[i].publish_time,P[i].price);

printf(,,\n,);

)

)

elseprintf「\t文件打开错误!”);

)

voidbook_name()

(

inti;

inttag=();

charch[15];

printf(u\t请输入书名:_\b\bH);

scanf(H%sn,ch);

if(get()==O)

文档仅供参考,不当之处,请联系改正。

printf(u\t无法查询!”);

return;

)

if(get()==l)

{

for(i=0;i<num;i++)

(

if(strcmp(P[i].book_name,ch)==0)

(

printf"n\t\t排列号书名作者名序列

号出版单位出版时间价格W”);

printf(H\t\t%d%s%s%d%s%s%d\nn,P[i].sort

,P[i].book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_t

ime,P[i].price);

tag=1;

)

}

if(tag==0)

文档仅供参考,不当之处,请联系改正。

printf(H\n\t没有相关信息!\iT);

)

)

)

voidauthor_name()

(

inti;

inttag=0;

charch[15];

printf(M\t请输入作者名:_\b\bn);

scanf(M%s*\ch);

if(get()==O)

{

printf(n\t无法查询V);

return;

)

if(get()==l)

for(i=0;i<num;i++)

文档仅供参考,不当之处,请联系改正。

if(strcmp(P[i].author_name,ch)==0)

(

printf(M\n\t\t排列号书名作者名序列

号出版单位出版时间价格\n");

printf(H\t\t%d%s%s%d%s%s%d\nM,P[i].sor

t,P[i|.book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].pu

blish_time,P[i].price);

tag=1;

)

if(tag==0)

(

printf(n\t没有相关信息!”);

}

)

)

voidmodifyO

intt,n,i,y=l;

intresult,z,x;

文档仅供参考,不当之处,请联系改正。

t=get();

if(t==O)

(

printf(H\n\t打开文件错误,无法修改!”);

return;

)

elseif(y==l)

(

printf(n\n\t您要修改信息的图书排列号为(L%d):

_\b\b**,num);

scanf(M%dH,&n);

if(n>=l&&n<=num)

(

for(i=0;i<num;i++)

(

if(P[i].sort==n)

{

printf(n\n\t您即将修改以下信息八n");

printf(n\t\t排列号书名作者名序列

号出版单位出版时间价格\n");

printf(H\t\t%d%s%s%d%s%s%dH,P[i].sort,P[i].book_na

文档仅供参考,不当之处,请联系改正。

me,

P[i].author_name,P[i].vert_number,P[i].publish_unit,

P[i].publish_time,P[i].price);

printf,\n\n\t确认请按1;返回请按2;

返回上一层请按3_\b\bn);

scanf(n%d,\&x);

if(x==l)

(

//pl=&boo;

您要将信息修改为An");

书名:_\b\b”);

scanf(H%sH,P[i].book_name);

作者名:_\b\b");

scanf(n%sH,P[i].author_name);

printf(”\t\t序列号:_\b\b”);

scanf(,,%d,,,&P[i].vert_number);

printf(n\t\t出版单位:_\b\b");

scanf(M%sH,P[i].publish_unit);

printf(M\t\t出版时间:_\b\b");

scanf(H%sH,P[i].publish_time);

printf(”\t\t价格:_\b\b”);

文档仅供参考,不当之处,请联系改正。

scanf(''%(r,&P[i].price);

strcpy(P[i].book_name,P[i].book_name);

strcpy(P[i].author_name,P[i+l].author_name);

P[i].vert_number=P[i+l].vert_number;

strcpy(P[i].publish_unit,P[i+l].publish_unit);

strcpy(P[i].publish_dme,P[i+l].publish_tinie);

P[i].price=P|i+l].price;

y=0;

z=l;

)

else

if(x==2)

(

y=l;z=O;

)

else

(

y=o;

f=i;

文档仅供参考,不当之处,请联系改正。

)

)

)

else

(

printf(M\t输入错误,请重新输入:");

y=i;

)

while(z==l)

{

result=save();

if(result==O)

{

printf(n\n\t修改信息失败!\n");

z=0;

)

if(result==l)

{

printf(”\n\t成功修改信息!\n");

z=0;

文档仅供参考,不当之处,请联系改正。

return;

)

voiddelet()

(

intt,n,ij,y=l;

intresult,z=0,x;

t=get();

if(t==O)

(

printf(n\n\t打开文件错误,无法删除!”);

return;

)

else

while(y==l)

(

printf(H\n\t您要删除信息的图书排列号为(1・

%d):_\b\bM,num);

scanf(M%dM,&n);

if(n>=l&&n<=num)

文档仅供参考,不当之处,请联系改正。

for(i=0;i<num;i++)

{

if(P[i].sort==n)

(

printf("\n\t您即将删除以下信

息八n”);

printf(H\t\t排列号书名作者名序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论