图书管理系统含源代码c语言数据结构课程设计报告.docx

上传人:b****5 文档编号:7681875 上传时间:2023-01-25 格式:DOCX 页数:18 大小:167.04KB
下载 相关 举报
图书管理系统含源代码c语言数据结构课程设计报告.docx_第1页
第1页 / 共18页
图书管理系统含源代码c语言数据结构课程设计报告.docx_第2页
第2页 / 共18页
图书管理系统含源代码c语言数据结构课程设计报告.docx_第3页
第3页 / 共18页
图书管理系统含源代码c语言数据结构课程设计报告.docx_第4页
第4页 / 共18页
图书管理系统含源代码c语言数据结构课程设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

图书管理系统含源代码c语言数据结构课程设计报告.docx

《图书管理系统含源代码c语言数据结构课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统含源代码c语言数据结构课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

图书管理系统含源代码c语言数据结构课程设计报告.docx

图书管理系统含源代码c语言数据结构课程设计报告

数据结构大作业

图书管理系统

工程管理121279044伍杨

一、题目要求

1)目的要求

本课程设计任务的目的就是要求学生按照分析、设计、编码、调试与测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。

2)题目要求

实现图书管理信息系统的设计。

要求实现图书添加、显示全部图书、查询、借阅与归还。

主要考查利用文件的操作!

二、总体设计

三、编码实现

1)定义图书结构体

structbook{

charbookname[20];//书名

intNO;//书编号

chartype[20];//类型

intdate;//到书日期

};

structperson{

charname[10];//姓名

charclasses[20];//班级

intnumber;//学号

chartelephone[12];//联系电话

intNO;//书编号

charbookname[20];//书名

intborrowdate;//借书日期

intreturndate;//还书日期

2)登记操作

voidnew_book()//登记新书

{

FILE*fp;

structbookb;

inti,j;

if((fp=fopen("shuku、txt","a"))==NULL){

printf("error!

\n");

exit(0);

}

printf("请朱老师输入此次收到的书本总数:

");

scanf("%d",&i);

for(j=0;j

printf("请朱老师输入书名:

");

scanf("%s",b、bookname);

fprintf(fp,"%s",b、bookname);

printf("请朱老师输入书编号:

");

scanf("%d",&b、NO);

fprintf(fp,"%d",b、NO);

printf("请朱老师输入类型:

");

scanf("%s",b、type);

fprintf(fp,"%s",b、type);

printf("请朱老师输入到书日期:

");

scanf("%d",&b、date);

fprintf(fp,"%d",b、date);

}

if(fclose(fp)){

printf("Cannotclosethefile!

\n");

exit(0);

}

}

voidnew_person()//登记借书

{

FILE*fp;

structpersonp;

charchoice;

if((fp=fopen("jieshujilu、txt","a"))==NULL){

printf("error!

\n");

exit(0);

}

printf("请朱老师输入借书人姓名:

");

scanf("%s",p、name);

fprintf(fp,"%s",p、name);

printf("请朱老师输入借书人班级:

");

scanf("%s",p、classes);

fprintf(fp,"%s",p、classes);

printf("请朱老师输入借书人学号:

");

scanf("%d",&p、number);

fprintf(fp,"%d",p、number);

printf("请朱老师输入借书人联系电话:

");

scanf("%s",p、telephone);

fprintf(fp,"%s",p、telephone);

printf("请朱老师输入书编号:

");

scanf("%d",&p、NO);

fprintf(fp,"%d",p、NO);

printf("请朱老师输入书名:

");

scanf("%s",p、bookname);

fprintf(fp,"%s",p、bookname);

printf("请朱老师输入借书日期:

");

scanf("%d",&p、borrowdate);

fprintf(fp,"%d",p、borrowdate);

printf("请朱老师输入还书日期:

");

scanf("%d",&p、returndate);

fprintf(fp,"%d",p、returndate);

printf("\n\t您想继续不?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y'){

system("cls");

new_person();

}

if(fclose(fp)){

printf("Cannotclosethefile!

\n");

exit(0);

}

}实现程序对文件的读取

voidRead()

{

inti=0;

intj=0;

ifstreamin("Libra、txt",ios:

:

out);

in>>i;

all=i;

if(i>0&&i<=Max)

{

for(j=1;j<=i;j++)

{

in>>data[j]、id>>data[j]、name>>data[j]、type>>data[j]、status>>data[j]、count;

}

}

in、close();

}

3)查瞧操作

vvoidsee_book()//查瞧书库记录

{

FILE*fp;

longNO;

charbookname[20];

chartype[20];

longdate;

if((fp=fopen("shuku、txt","r"))==NULL){

printf("error!

\n");

exit(0);

}

while(!

feof(fp))

{

fscanf(fp,"%s%ld%s%ld",bookname,&NO,type,&date);

printf("%-10s%-10ld%-10s%ld\n",bookname,NO,type,date);

};

if(fclose(fp)){

printf("Cannotclosethefile!

\n");

exit(0);

}

}

voidsee_person()//查瞧所有借书记录

{

FILE*fp;

charname[10];

charclasses[20];

intnumber;

chartelephone[20];

intNO;

charbookname[20];

intborrowdate;

intreturndate;

if((fp=fopen("jieshujilu、txt","r"))==NULL){

printf("error!

\n");

exit(0);

}

while(!

feof(fp))

{

fscanf(fp,"%s%s%ld%s%ld%s%ld%ld",name,classes,&number,telephone,&NO,bookname,&borrowdate,&returndate);

printf("%-5s%-5s%ld%-5s%ld%-5s%ld%ld\n",name,classes,number,telephone,NO,bookname,borrowdate,returndate);

};

if(fclose(fp)){

printf("Cannotclosethefile!

\n");

exit(0);

}

}

4)删除操作

voiddelete_books()//删除旧书

{

FILE*fp;

structbookb;

intnumber;

voiddeletebooks();

printf("请输入您要删除的书编号:

");

scanf("%d",&number);

if((fp=fopen("shuku、txt","r"))==NULL){

printf("不能打开此文件!

\n");

exit(0);

}

while(!

feof(fp)){

fscanf(fp,"%s%d%s%d",b、bookname,&b、NO,b、type,&b、date);

if(b、NO==number){

printf("\n\n\t***************图书信息*******************\n");

printf("\n\t图书书名:

%25s",b、bookname);

printf("\n\t-----------------------------------------");

printf("\n\t图书编号:

%25d",b、NO);

printf("\n\t-----------------------------------------");

printf("\n\t图书类型:

%23s",b、type);

printf("\n\t-----------------------------------------");

printf("\n\t到书日期:

%25d",b、date);

printf("\n\t-----------------------------------------");

deletebooks();

}

}

}

voiddeletebooks()

{

FILE*fp,*fp1,*fp2,*fp3;

intnumber;

structbookb;

printf("\n\n确认删除?

请再次输入书编号:

");

scanf("%d",&number);

if((fp=fopen("shuku、txt","r"))==NULL){

printf("不能打开此文件!

\n");

exit(0);

}

if((fp1=fopen("tempshuku、txt","w"))==NULL){//建立一个临时文件

printf("不能打开此文件!

\n");

exit(0);

}

while(!

feof(fp)){

fscanf(fp,"%s%d%s%d",b、bookname,&b、NO,b、type,&b、date);

if(b、NO==number)

continue;

else

fprintf(fp1,"%s%d%s%d",b、bookname,b、NO,b、type,b、date);

}

fclose(fp);

fclose(fp1);

if((fp2=fopen("tempshuku、txt","r"))==NULL){

printf("不能打开此文件!

\n");

exit(0);

}

if((fp3=fopen("shuku、txt","w"))==NULL){//清空书库

printf("不能打开此文件!

\n");

exit(0);

}

while(!

feof(fp2)){//将临时文件的内容写人源文件

fscanf(fp2,"%s%d%s%d",b、bookname,&b、NO,b、type,&b、date);

fprintf(fp3,"%s%d%s%d",b、bookname,b、NO,b、type,b、date);

}

fclose(fp2);

fclose(fp3);

printf("\n删除成功!

\n");

}

voiddelete_returnbook()//删除借书记录

{

FILE*fp;

intnumbers;

structpersonp;

voiddeletereturnbook();

charchoice;

printf("\n请输入所还书本的书编号:

");

scanf("%d",&numbers);

if((fp=fopen("jieshujilu、txt","r"))==NULL){

printf("不能打开此文件!

\n");

exit(0);

}

while(!

feof(fp)){

fscanf(fp,"%s%s%ld%s%ld%s%ld%ld",p、name,p、classes,&p、number,p、telephone,&p、NO,p、bookname,&p、borrowdate,&p、returndate);

if(p、NO==numbers){

printf("\n\t***************图书信息*******************\n");

printf("\n\t借书人姓名:

%20s",p、name);

printf("\n\t-----------------------------------------");

printf("\n\t借书人班级:

%20s",p、classes);

printf("\n\t-----------------------------------------");

printf("\n\t借书人学号:

%20d",p、number);

printf("\n\t-----------------------------------------");

printf("\n\t借书人联系电话:

%20s",p、telephone);

printf("\n\t-----------------------------------------");

printf("\n\t图书编号:

%24d",p、NO);

printf("\n\t-----------------------------------------");

printf("\n\t图书名称:

%23s",p、bookname);

printf("\n\t-----------------------------------------");

printf("\n\t借书日期:

%25d",p、borrowdate);

printf("\n\t-----------------------------------------");

printf("\n\t还书日期:

%25d",p、returndate);

printf("\n\t-----------------------------------------");

deletereturnbook();

printf("\n\t您想继续不?

(y/n)");

scanf("%c",&choice);

if(choice=='Y'||choice=='y'){

system("cls");

delete_returnbook();

}

}

}

fclose(fp);

}

voiddeletereturnbook()

{

FILE*fp,*fp1,*fp2,*fp3;

structpersonp;

intnumbers;

printf("\n\n确认删除?

请再次输入书编号:

");

scanf("%d",&numbers);

if((fp=fopen("jieshujilu、txt","r"))==NULL){

printf("不能打开此文件!

\n");

exit(0);

}

if((fp1=fopen("tempbook、txt","w"))==NULL){

printf("不能打开此文件!

\n");

exit(0);

}

while(!

feof(fp)){

fscanf(fp,"%s%s%d%s%d%s%d%d",p、name,p、classes,&p、number,p、telephone,&p、NO,p、bookname,&p、borrowdate,&p、returndate);

if(p、NO==numbers)

continue;

else

fprintf(fp1,"%s%s%d%s%d%s%d%d",p、name,p、classes,p、number,p、telephone,p、NO,p、bookname,p、borrowdate,p、returndate);

}

fclose(fp);

fclose(fp1);

if((fp2=fopen("tempbook、txt","r"))==NULL){

printf("不能打开此文件!

\n");

exit(0);

}

if((fp3=fopen("jieshujilu、txt","w"))==NULL){

printf("不能打开此文件!

\n");

exit(0);

}

while(!

feof(fp2)){//将临时文件写人源文件

fscanf(fp2,"%s%s%d%s%d%s%d%d",p、name,p、classes,&p、number,p、telephone,&p、NO,p、bookname,&p、borrowdate,&p、returndate);

fprintf(fp3,"%s%s%d%s%d%s%d%d",p、name,p、classes,p、number,p、telephone,p、NO,p、bookname,p、borrowdate,p、returndate);

}

fclose(fp2);

fclose(fp3);

printf("\n删除成功!

\n");

}

5)Main函数

intmain(void)

{

intchoice;

charchoice2;

structbook;

structperson;

do{

printf("\n\n\n图书馆管理系统\n\a");

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

printf("***朱老师您好吖********功能选项:

登记******请按1,******\n");

printf("*******************************查瞧/查询*请按2******\n");

printf("*******************************删除*****请按3******\n");

printf("*******************************退出*****请按0******\n");

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

printf("请选择功能:

");

scanf("%d",&choice);

switch(choice){

case1:

printf("登记选项:

新书登记请按1,借书登记请按2,返回请按3\n");

printf("请选择:

");

scanf("%d",&choice);

switch(choice){

case1:

system("cls");//清屏

printf("新书资料登记:

\n\n");

new_book();//新书登记

printf("登记完毕!

\n");

printf("\n");

scanf("%c",&choice2);

system("cls");

break;

case2:

system("cls");

printf("借书资料登记:

\n\n");

new_person();//借书登记

printf("\npressanykey");

scanf("%c",&choice2);

system("cls");

break;

case3:

system("cls");

break;

}

break;

case2:

printf("查瞧/查询选项:

书库查瞧请按1,总借书记录查瞧请按2,到期记录查询请按3,返回请按4\n");

printf("请选择:

");

scanf("%d",&choice);

switch(choice){

case1:

system("cls");

printf("欢迎朱老师进入书库!

\n\n");

printf("书名书编号类型到书日期\n");

printf("------------------------------------------\n");

see_book();//书库显示

printf("\npressanykey");

scanf("%c",&choice2);

system("cls");

break;

case2:

system("cls");

printf("欢迎朱老师进入借书记录!

\n\n");

printf("姓名班级学号联系电话书编号书名借书日期到书日期\n");

printf("--------------------------------------------------------\n");

see_person();//借书记录显示

printf("\npressanykey");

scanf("%c",&choice2);

system("cls");

break;

case3:

system("cls");

search_person();//显示符合记录

printf("\npressanykey");

scanf("%c",&choice2);

system("cls");

break;

case4:

system("cls");

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

当前位置:首页 > 高等教育 > 院校资料

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

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