《算法分析与设计综合实验》实验报告图书信息管理系统.docx

上传人:b****5 文档编号:8202945 上传时间:2023-01-29 格式:DOCX 页数:47 大小:835.42KB
下载 相关 举报
《算法分析与设计综合实验》实验报告图书信息管理系统.docx_第1页
第1页 / 共47页
《算法分析与设计综合实验》实验报告图书信息管理系统.docx_第2页
第2页 / 共47页
《算法分析与设计综合实验》实验报告图书信息管理系统.docx_第3页
第3页 / 共47页
《算法分析与设计综合实验》实验报告图书信息管理系统.docx_第4页
第4页 / 共47页
《算法分析与设计综合实验》实验报告图书信息管理系统.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

《算法分析与设计综合实验》实验报告图书信息管理系统.docx

《《算法分析与设计综合实验》实验报告图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《《算法分析与设计综合实验》实验报告图书信息管理系统.docx(47页珍藏版)》请在冰豆网上搜索。

《算法分析与设计综合实验》实验报告图书信息管理系统.docx

《算法分析与设计综合实验》实验报告图书信息管理系统

 

《算法分析与设计综合实验》

 

 

姓名:

蔡志雄

学号:

2015010906015

指导教师:

胡科

日期:

2016年月日

电子科技大学

实验报告1

一、实验名称:

界面设计与创建文件

二、实验内容

1.设计登录系统、主菜单、退出系统界面

登录系统:

输入以“*”显示的密码,三次键入机会。

密码正确,进入系统;密码错误,程序结束。

主菜单:

按划分的模块,显示系统菜单。

退出系统:

在系统主菜单中输入“0”,以退出系统。

2.数据录入与数据存盘

给定记录数,屏幕输入若干记录,并将数据存入磁盘文件中。

三、算法设计与核心代码

1.charinputa,data[20],account[34]={"Admin's\\"},word[20];

intz,k=0,a=1;

printf("输入管理员账户名:

");//登录验证

scanf("%s",&data);

strcat(account,data);

strcat(account,".txt");

//提取数据

FILE*fpx=NULL;

if(fpx=fopen(account,"r"))

{

fscanf(fpx,"%s\n",&admin.name);

fscanf(fpx,"%s\n",&admin.ID);

fscanf(fpx,"%s\n",&admin.password);

fclose(fpx);

}

else{printf("没有对应资料!

\n");system("pause");return0;}

if(strcmp(data,admin.name)==-1)//验证密码

{

printf("账号不存在\n");

return0;

}

else

{

printf("账号存在(你将有3次输入密码机会)\n");

for(z=2;z>=-1;z--)

{

if(z==-1){return0;}

printf("输入密码:

");

while

(1)

{

fflush(stdin);

inputa=getch();

if(inputa!

='\r'&&inputa!

='\b')//密码隐藏

{

printf("*");

word[k]=inputa;

k++;

}

elseif(inputa=='\b')//退格删除

{

printf("\b");

printf("");

printf("\b");

k--;

}

elsebreak;//回车结束

}

if(strcmp(word,admin.password)!

=0)

{

printf("密码错误(%d次机会)\n",z);

k=0;

}

else{printf("\n密码正确!

\n");system("pause");break;}

}

}

2.printf("********************************************************************************\n");

printf("图书数量:

%d读者数量:

%d\n",bnum,rnum);

printf("\n");

printf("\n");

printf("\n");

printf("图书信息管理系统\n");

printf("\n");

printf("\n");

printf("\n");

printf("请做出您的选择:

(输入对应序号)\n");

printf("\n");

printf("\n");

printf("1.图书管理2.读者管理——管理员使用\n");

printf("\n");

printf("3.图书借还——任何人使用\n");

printf("\n");

printf("0.退出\n");

printf("\n");

printf("\n");

printf("\n");

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

printf("输入:

");

scanf("%c",&input);

switch(input)

{

case'0':

a=0;break;

case'1':

BookManage();break;

case'2':

ReaderManage();break;

case'3':

BookOperate();break;

}

}

system("cls");

3.

 

四、实验主要结果(附程序运行界面截图)

 

实验报告2

一、实验名称:

显示记录与编辑记录

二、实验内容

1.屏幕显示若干记录

列表输出磁盘文件记录,并显示记录序号与记录总数。

2.按字段编辑记录

输入记录序号,显示对应记录;按字段编辑记录。

三、算法设计与核心代码

intShowRecord(intx)

{

intb=1,c=1;

charaim1[12]={"图书"},aim2[12]={"读者"},aim[12],buffer[80];

//判断目的

if(x==1)//图书

{

strcpy(aim,aim1);

strcat(aim,"\\");

strcat(aim,"图书记录");

strcat(aim,".txt");

FILE*fp;

if((fp=fopen(aim,"r"))==NULL){printf("打开失败!

\n");return-1;}

printf("序号书号书名作者日期出版类别定价是否借出\n");

for(;b<=(bnum=getlinenum

(1));b++)

{

fgets(buffer,1024,fp);

printf("%d%s",c,buffer);

c++;

}

fclose(fp);

system("pause");

}

elseif(x==2)//读者

{

strcpy(aim,aim2);

strcat(aim,"\\");

strcat(aim,"读者记录");

strcat(aim,".txt");

FILE*fp;

if((fp=fopen(aim,"r"))==NULL){printf("打开失败!

\n");return-1;}

for(;b<(rnum=getlinenum

(2));b++)

{

fgets(buffer,1024,fp);

printf("%s\n",buffer);

}

fclose(fp);

}

else{printf("错误\n");return-1;}

return0;

}

intFixRecord(intx)

{

intb=1,c;

chara,aim1[12]={"图书"},aim2[12]={"读者"},aim[12],buffer[80];

FILE*fp,*ftp;

//判断目的

if(x==1)//图书

{

strcpy(aim,aim1);

strcat(aim,"\\");

strcat(aim,"图书记录");

strcat(aim,".txt");

if((ftp=fopen("图书\\temp.txt","w"))==NULL){printf("创建文件失败!

\n");return-1;}

if((fp=fopen(aim,"r+"))==NULL){printf("打开失败!

\n");return-1;}

ShowRecord

(1);

printf("输入要编辑的条目序号:

");

scanf("%d",&c);

for(;b!

=c;b++)

{

fscanf(fp,"%s%s%s%s%s%s%d%d%*[^\n]",&books[0].ID,&books[0].name,&books[0].author,&books[0].date,&books[0].publish,&books[0].sort,&books[0].price,&books[0].borrowed);

fprintf(ftp,"%s%s%s%s%s%s%d%d\n",books[0].ID,books[0].name,books[0].author,books[0].date,books[0].publish,books[0].sort,books[0].price,books[0].borrowed);

}

printf("开始编辑:

\n");

printf("输入书号:

");

scanf("%s",&books[0].ID);

printf("书名:

");

scanf("%s",&books[0].name);

printf("作者:

");

scanf("%s",&books[0].author);

printf("日期:

");

scanf("%s",&books[0].date);

printf("出版:

");

scanf("%s",&books[0].publish);

printf("类别:

");

scanf("%s",&books[0].sort);

printf("定价:

");

scanf("%d",&books[0].price);

printf("是否借出:

");

scanf("%d",&books[0].borrowed);

printf("书号:

%s书名:

%s作者:

%s日期:

%s出版:

%s类别:

%s定价:

%d是否借出:

%d\n确定?

(y/n)\n输入:

",books[0].ID,books[0].name,books[0].author,books[0].date,books[0].publish,books[0].sort,books[0].price,books[0].borrowed);

fflush(stdin);

scanf("%c",&a);

if(a=='y')

{

fprintf(ftp,"%s%s%s%s%s%s%d%d\n",books[0].ID,books[0].name,books[0].author,books[0].date,books[0].publish,books[0].sort,books[0].price,books[0].borrowed);

b++;

fscanf(fp,"%s%s%s%s%s%s%d%d%*[^\n]",&books[0].ID,&books[0].name,&books[0].author,&books[0].date,&books[0].publish,&books[0].sort,&books[0].price,&books[0].borrowed);

printf("编辑成功!

\n");

}

elseprintf("已取消创建...\n");

for(;b<=bnum;b++)

{

fscanf(fp,"%s%s%s%s%s%s%d%d%*[^\n]",&books[0].ID,&books[0].name,&books[0].author,&books[0].date,&books[0].publish,&books[0].sort,&books[0].price,&books[0].borrowed);

fprintf(ftp,"%s%s%s%s%s%s%d%d\n",books[0].ID,books[0].name,books[0].author,books[0].date,books[0].publish,books[0].sort,books[0].price,books[0].borrowed);

}

fclose(fp);

fclose(ftp);

remove(aim);

rename("图书\\temp.txt",aim);

ShowRecord

(1);

fclose(fp);

}

elseif(x==2)//读者

{

strcpy(aim,aim2);

strcat(aim,"\\");

strcat(aim,"读者记录");

strcat(aim,".txt");

if((fp=fopen(aim,"r+"))==NULL){printf("打开失败!

\n");return-1;}

fclose(fp);

}

else{printf("错误\n");return-1;}

return0;

}

 

四、实验主要结果(附程序运行界面截图)

 

 

实验报告3

一、实验名称:

增加记录与删除记录

二、实验内容

1.屏幕增加记录(添加记录、插入记录)

输入待增加的记录信息,并输入记录序号,将记录插入到指定序号对应记录之后。

2.删除指定的记录

输入待删除的记录序号,并显示对应记录;显示确认信息,以删除指定记录。

三、算法设计与核心代码

intAddRecord(intx,inth)

{

intb=1,i;

charaim1[12]={"图书"},aim2[12]={"读者"},aim[12],buffer[80],buffer1[80],buffer2[80];

list*t,*p;

bnum=getlinenum

(1);

//判断目的

if(x==1)//图书

{

strcpy(aim,aim1);

strcat(aim,"\\");

strcat(aim,"图书记录");

strcat(aim,".txt");

FILE*fp;

if((fp=fopen(aim,"r+"))==NULL){printf("打开失败!

\n");return-1;}

ShowRecord

(1);

printf("输入:

\n书号书名作者日期出版类别定价是否借出\n");

scanf("%s%s%s%s%s%s%d%d",&books[1].ID,&books[1].name,&books[1].author,&books[1].date,&books[1].publish,&books[1].sort,&books[1].price,&books[1].borrowed);

link*m=clist();

p=m->head;

get_and_add_list(x,m,NULL);

intj=0;

if(h>bnum+1)h=bnum+1;

if((p=m->head)==NULL)

{

t=(list*)malloc(sizeof(list));

if(t==NULL)return-1;

t->next=p->next;

t->data=books[1];

m->head=t;

m->length++;

}

elseif(h==1)

{

t=(list*)malloc(sizeof(list));

if(t==NULL)return-1;

t->next=m->head;

t->data=books[1];

m->head=t;

m->length++;

}

else

{

while(p!

=NULL&&j

{

p=p->next;

j++;

}

t=(list*)malloc(sizeof(list));

if(t==NULL)return-1;

t->next=p->next;

t->data=books[1];

p->next=t;

m->length++;

}

fprintf_list(x,m);

fclose(fp);

}

elseif(x==2)//读者

{

strcpy(aim,aim2);

strcat(aim,"\\");

strcat(aim,"读者记录");

strcat(aim,".txt");

FILE*fp;

if((fp=fopen(aim,"r+"))==NULL){printf("打开失败!

\n");return-1;}

scanf("%s",&buffer);

for(;b!

=h;b++)

{

fgets(buffer,0,fp);

}

fgets(buffer1,1024,fp);

fprintf(fp,"%s\n",buffer);

b++;

for(;b!

=(bnum=getlinenum

(1));b++)

{

fgets(buffer2,1024,fp);

fprintf(fp,"%s\n",buffer1);

b++;

fgets(buffer1,1024,fp);

fprintf(fp,"%s\n",buffer2);

}

fclose(fp);

}

else{printf("错误\n");return-1;}

ShowRecord(x);printf("1\n");

return0;

}

intDeleteRecord(intx,chary[])

{

FILE*fin,*ftp;

charch,aim1[12]={"图书"},aim2[12]={"读者"},aim[12],buffer[80];

if(x==1)//图书

{

strcpy(aim,aim1);

strcat(aim,"\\");

strcat(aim,"图书记录");

strcat(aim,".txt");

if((fin=fopen(aim,"r"))==NULL){printf("打开失败!

\n");return-1;}

if((ftp=fopen("图书\\temp.txt","w"))==NULL){printf("创建文件失败!

\n");return-1;}

while(fscanf(fin,"%s%s%s%s%s%s%d%d%*[^\n]",&books[0].ID,&books[0].name,&books[0].author,&books[0].date,&books[0].publish,&books[0].sort,&books[0].price,&books[0].borrowed)==8)

{

if(strcmp(books[0].ID,y)!

=0)

{

fprintf(ftp,"%s%s%s%s%s%s%d%d\n",books[0].ID,books[0].name,books[0].author,books[0].date,books[0].publish,books[0].sort,books[0].price,books[0].borrowed);

}

}

fclose(fin);

fclose(ftp);

remove(aim);

rename("图书\\temp.txt","图书\\图书记录.txt");

printf("删除成功!

\n");

ShowRecord

(1);

}

elseif(x==2)//读者

{

strcpy(aim,aim2);

strcat(aim,"\\");

strcat(aim,"读者记录");

strcat(aim,".txt");

if((fin=fopen(aim,"r"))==NULL){printf("打开失败!

\n");return-1;}

}

else{printf("错误\n");return-1;}

return0;

}

四、实验主要结果(附程序运行界面截图)

实验报告4

一、实验名称:

查询记录

二、实验内容

按指定字段查询记录

显示查询子菜单,输入字段序号,按指定字段查询记录,并显示查询结果。

特别地,对“定价”字段,输入区间左右端点值,在指定范围查询记录。

三、算法设计与核心代码

intInquireRecord(intx)

{

intb=1,c,d;

charaim1[12]={"图书"},aim2[12]={"读者"},aim[12],buffer[80];

FILE*fp;

//判断目的

if(x==1)//图书

{

strcpy(aim,aim1);

strcat(aim,"\\");

strcat(aim,"图书记录");

strcat(aim,".txt");

if((fp=fopen(aim,"r"))==NULL){printf("打开失败!

\n");return-1;}

printf("查询的依据是:

\n1.书号\n2.书名\n3.作者\n4.出版日期\n5.类别\n6.定价\n7.是否借出\n0.返回\n输入:

");

scanf("%d",&c);

switch(c)

{

case0:

return0;

case1:

{

printf("输入书号:

");scanf("%s",&buffer);

printf("书号书名作者日期出版类别定价是否借出\n");

while(fscanf(fp,"%s%s%s%s%s%s%d%d%*[^\n]",&books[0].ID,&books[0].name,&books[0].author,&books[0].dat

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

当前位置:首页 > 表格模板 > 合同协议

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

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