版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大一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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度一级建造师高分题库附参考答案详解(A卷)
- 儿童饮食与营养指导
- 2024-2025学年度公务员(国考)题库检测试题打印及答案详解【新】
- 2024-2025学年度执业药师考试历年机考真题集附参考答案详解(轻巧夺冠)
- 2024-2025学年度化验员常考点试卷【研优卷】附答案详解
- 2024-2025学年度燃气职业技能鉴定考前冲刺练习题含答案详解(突破训练)
- 2024-2025学年度福建林业职业技术学院单招数学考试黑钻押题含答案详解【巩固】
- 2024-2025学年度文化教育职业技能鉴定考试综合练习及参考答案详解【典型题】
- 全科医学科高危慢性病筛查方案
- 2024-2025学年度电工过关检测试卷【网校专用】附答案详解
- QGDW11970.7-2023输变电工程水土保持技术规程第7部分水土保持设施质量检验及评定
- 2025年护校队管理制度
- 寺庙管理协议书范本
- 高三年级心理健康教育课教案
- 《非脱钩智能混合式强夯机》编制说明
- 贵州省《公路隧道钻爆法机械化施工技术指南》(试行)2025
- 【初中化学】复分解反应-2024-2025学年九年级化学下册(人教版2024)
- 预约合同违约责任研究
- 中央2025年中央台办所属事业单位招聘15人笔试历年参考题库附带答案详解
- 2025年安徽省六安市单招职业适应性测试题库必考题
- 2024年宁夏中考数学真题
评论
0/150
提交评论