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

其他范文 时间:2020-02-28 17:24:30 收藏本文下载本文
【www.daodoc.com - 其他范文】

图书管理系统(含源代码)c语言_数据结构课程设计报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构课程设计报告”。

数据结构大作业 121279044 伍杨

数据结构大作业 图书管理系统

工程管理 121279044 伍杨

目录一、二、三、题目要求...................................................................2 总体设计...................................................................2 编码实现...................................................................3 1)定义图书结构体.......................................................3 2)登记操作...............................................................4 3)查看操作...............................................................8 4)删除操作.............................................................11 5)Main函数...........................................................20四、五、六、调试与测试..............................................................26 五心得体会..............................................................28 用户手册.................................................................28

数据结构大作业 121279044 伍杨

一、题目要求

1)目的要求

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

实现图书管理信息系统的设计。要求实现图书添加、显示全部图书、查询、借阅和归还。主要考查利用文件的操作!

二、总体设计

数据结构大作业 121279044 伍杨

三、编码实现

1)定义图书结构体

struct book{

char bookname[20];

//书名

int NO;

//书编号

char type[20];

//类型

int date;

//到书日期 };struct person{

char name[10];

//姓名

char claes[20];

//班级

int number;

//学号

char telephone[12];

//联系电话

int NO;

//书编号

char bookname[20];

//书名

int borrowdate;

//借书日期

int returndate;

//还书日期

数据结构大作业 121279044 伍杨

2)登记操作

void new_book(){ FILE *fp;struct book b;//登记新书

int i,j;

printf(“请朱老师输入此次收到的书本总数:”);if((fp=fopen(“shuku.txt”,“a”))==NULL){ printf(“File open error!n”);exit(0);}

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

数据结构大作业 121279044 伍杨

}

} fprintf(fp,“

%s”,b.type);printf(“请朱老师输入到书日期:”);scanf(“%d”,&b.date);fprintf(fp,“

%d”,b.date);if(fclose(fp)){

} printf(“Can not close the file!n”);exit(0);void new_person()

{

FILE *fp;struct person p;char choice;

//登记借书

if((fp=fopen(“jieshujilu.txt”,“a”))==NULL){ printf(“File open error!n”);exit(0);}

数据结构大作业 121279044 伍杨

printf(“请朱老师输入借书人姓名:”);scanf(“%s”,p.name);fprintf(fp,“%s”,p.name);printf(“请朱老师输入借书人班级:”);scanf(“%s”,p.claes);fprintf(fp,“

%s”,p.claes);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);

数据结构大作业 121279044 伍杨

printf(“请朱老师输入还书日期:”);scanf(“%d”,&p.returndate);fprintf(fp,“

%d”,p.returndate);printf(“nt您想继续吗?(y/n)”);scanf(“ %c”,&choice);if(choice=='Y'||choice=='y'){

} system(“cls”);new_person();if(fclose(fp)){

} printf(“Can not close the file!n”);exit(0);}实现程序对文件的读取 void Read(){

int i=0;int j=0;ifstream in(“Libra.txt”,ios::out);in>>i;

数据结构大作业 121279044 伍杨

nt;

} all=i;if(i>0&&i

in>>data[j].id>>data[j].name>>data[j].type>>data[j].status>>data[j].coufor(j=1;j

3)查看操作

v void see_book(){

FILE *fp;long NO;char bookname[20];char type[20];long date;//查看书库记录

数据结构大作业 121279044 伍杨

} if((fp=fopen(“shuku.txt”,“r”))==NULL){

} printf(“File open error!n”);exit(0);while(!feof(fp)){ fscanf(fp,“%s%ld%s%ld”,bookname,&NO,type,&date);printf(“%-10s %-10ld %-10s %ldn”,bookname,NO,type,date);};if(fclose(fp)){

} printf(“Can not close the file!n”);exit(0);void see_person(){ //查看所有借书记录

数据结构大作业 121279044 伍杨

FILE *fp;char name[10];

char claes[20];

int number;char telephone[20];

int NO;

char bookname[20];

int borrowdate;

int returndate;

fscanf(fp,“%s %s %ld %s %ld %s %ld %ld”,name,claes,&number,telephonwhile(!feof(fp)){ if((fp=fopen(“jieshujilu.txt”,“r”))==NULL){

} printf(“File open error!n”);exit(0);e,&NO,bookname,&borrowdate,&returndate);printf(“%-5s %-5s %ld %-5s %ld %-5s %ld %ldn”,name,claes,number,telephone,NO,bookname,borrowdate,returndate);

数据结构大作业 121279044 伍杨

} };if(fclose(fp)){

} printf(“Can not close the file!n”);exit(0);

4)删除操作

void delete_books()

{

int number;void deletebooks();

printf(“请输入您要删除的书编号:”);scanf(“%d”,&number);FILE *fp;struct book b;

//删除旧书

数据结构大作业 121279044 伍杨

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(“nnt***************图书信息*******************n”);printf(“nt图书书名:%25s”,b.bookname);printf(“nt----------”);printf(“nt图书编号:%25d”,b.NO);printf(“nt----------”);printf(“nt图书类型:%23s”,b.type);printf(“nt----------”);printf(“nt到书日期:%25d”,b.date);printf(“nt----------”);

deletebooks();

数据结构大作业 121279044 伍杨

}

void deletebooks(){

while(!feof(fp)){ fscanf(fp,“%s %d %s %d”,b.bookname,&b.NO,b.type,&b.date);if((fp=fopen(“shuku.txt”,“r”))==NULL){

} if((fp1=fopen(“tempshuku.txt”,“w”))==NULL){

//建立一个临时文件

} printf(“不能打开此文件!n”);exit(0);printf(“不能打开此文件!n”);exit(0);printf(“nn确认删除?请再次输入书编号:”);scanf(“%d”,&number);FILE *fp,*fp1,*fp2,*fp3;int number;struct book b;

数据结构大作业 121279044 伍杨

} 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){

} if((fp3=fopen(“shuku.txt”,“w”))==NULL){

//清空书库

} 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);printf(“不能打开此文件!n”);exit(0);printf(“不能打开此文件!n”);exit(0);

数据结构大作业 121279044 伍杨

}

void delete_returnbook(){

if((fp=fopen(“jieshujilu.txt”,“r”))==NULL){

} printf(“不能打开此文件!n”);exit(0);printf(“n请输入所还书本的书编号:”);scanf(“%d”,&numbers);FILE *fp;int numbers;struct person p;void deletereturnbook();char choice;printf(“n

删除成功!n”);fclose(fp2);fclose(fp3);

//删除借书记录

数据结构大作业 121279044 伍杨

while(!feof(fp)){

fscanf(fp,“%s %s %ld %s %ld %s %ld %ld”,p.name,p.claes,&p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate);

if(p.NO==numbers){

printf(“nt***************图书信息*******************n”);printf(“nt借书人姓名:%20s”,p.name);printf(“nt----------”);printf(“nt借书人班级:%20s”,p.claes);printf(“nt----------”);printf(“nt借书人学号:%20d”,p.number);printf(“nt----------”);printf(“nt借书人联系电话:%20s”,p.telephone);printf(“nt----------”);printf(“nt图书编号:%24d”,p.NO);printf(“nt----------”);printf(“nt图书名称:%23s”,p.bookname);printf(“nt----------”);printf(“nt借书日期:%25d”,p.borrowdate);printf(“nt----------”);printf(“nt还书日期:%25d”,p.returndate);

数据结构大作业 121279044 伍杨

}

}

} printf(“nt----------”);

deletereturnbook();

printf(“nt您想继续吗?(y/n)”);scanf(“ %c”,&choice);if(choice=='Y'||choice=='y'){

} system(“cls”);delete_returnbook();fclose(fp);void deletereturnbook(){ FILE *fp,*fp1,*fp2,*fp3;struct person p;

int numbers;printf(“nn确认删除?请再次输入书编号:”);

数据结构大作业 121279044 伍杨

scanf(“%d”,&numbers);if((fp=fopen(“jieshujilu.txt”,“r”))==NULL){

} if((fp1=fopen(“tempbook.txt”,“w”))==NULL){

} printf(“不能打开此文件!n”);exit(0);printf(“不能打开此文件!n”);exit(0);while(!feof(fp)){ fscanf(fp,“%s %s %d %s %d %s %d %d”,p.name,p.claes,&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.claes,p.number,p.telephone,p.NO,p.bookname,p.borrowdat

数据结构大作业 121279044 伍杨

e,p.returndate);

fscanf(fp2,“%s %s %d %s %d %s %d %d”,p.name,p.claes,while(!feof(fp2)){

//将临时文件写人源文件 if((fp2=fopen(“tempbook.txt”,“r”))==NULL){

} if((fp3=fopen(“jieshujilu.txt”,“w”))==NULL){

} printf(“不能打开此文件!n”);exit(0);printf(“不能打开此文件!n”);exit(0);fclose(fp);fclose(fp1);} &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.数据结构大作业 121279044 伍杨

claes,p.number,p.telephone,p.NO,p.bookname,p.borrowdate,p.returndate);

} printf(“n

删除成功!n”);fclose(fp2);fclose(fp3);} 5)Main函数

int main(void){

do{ printf(“nnn

图书馆管理系统na”);printf(“ *******************************************************n”);int choice;char choice2;struct book;struct person;

数据结构大作业 121279044 伍杨

printf(“ ***朱老师您好吖********功能选项: 登记******请按1,******n”);printf(“ ******************************* 查看/查询*请按2 ******n”);printf(“ ******************************* 删除***** 请按3 ******n”);printf(“ ******************************* 退出***** 请按0 ******n”);printf(“ *******************************************************nnn”);printf(“

请选择功能:”);scanf(“%d”,&choice);switch(choice){ case 1:

printf(“

登记选项:新书登记请按1,借书登记请按2,返回请按3n”);printf(“请选择:”);scanf(“%d”,&choice);switch(choice){ case 1:

system(“cls”);

//清屏 printf(“新书资料登记:nn”);new_book();

//新书登记 printf(“登记完毕!n”);printf(“n”);scanf(“ %c”,&choice2);system(“cls”);break;

数据结构大作业 121279044 伍杨

case 2:

system(“cls”);printf(“借书资料登记:nn”);new_person();

//借书登记 printf(“n pre anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 3:

} break;system(“cls”);break;

case 2: printf(“

查看/查询选项:书库查看请按1,总借书记录查看请按2,到期记录查询请按3,返回请按4n”);

printf(“请选择:”);scanf(“%d”,&choice);switch(choice){ case 1:

system(“cls”);printf(“欢迎朱老师进入书库!nn”);

数据结构大作业 121279044 伍杨

printf(“书名

书编号

类型

到书日期n”);printf(“-----------n”);see_book();

//书库显示 printf(“n pre anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 2:

system(“cls”);printf(“欢迎朱老师进入借书记录!nn”);printf(“姓名

班级 学号 联系电话 书编号 书名

借书日期 到书日期n”);

printf(“-------------------------n”);see_person();

//借书记录显示

printf(“n pre anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 3:

system(“cls”);search_person();

//显示符合记录 printf(“n pre anykey ”);

数据结构大作业 121279044 伍杨

scanf(“ %c”,&choice2);system(“cls”);break;case 4:

} break;system(“cls”);break;case 3: printf(“

删除选项:旧书删除请按1,借书记录删除请按2,返回请按3n”);

printf(“请选择:”);scanf(“%d”,&choice);switch(choice){ case 1:

system(“cls”);delete_books();

//删除ing printf(“n pre anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 2:

数据结构大作业 121279044 伍杨

}

system(“cls”);delete_returnbook();

//删除ing printf(“n pre anykey ”);scanf(“ %c”,&choice2);system(“cls”);break;case 3:

} break;system(“cls”);break;case 0:

} system(“cls”);}while(choice!= 0);return 0;

数据结构大作业 121279044 伍杨

四、调试与测试

主菜单

登记

数据结构大作业 121279044 伍杨

查看

删除

生成的文件内信息

数据结构大作业 121279044 伍杨五、五心得体会

经过这次大作业,我觉得代码的编写,最主要的的是编程思想,语言其实不是太重要,思路最重要!

六、用户手册

程序执行文件为 lib sys.exe,打开执行文件后按提示操作即可

下载图书管理系统(含源代码)c语言_数据结构课程设计报告word格式文档
下载图书管理系统(含源代码)c语言_数据结构课程设计报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文