为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

程 序 实 践 报 告

2011-07-19 20页 doc 150KB 15阅读

用户头像

is_685204

暂无简介

举报
程 序 实 践 报 告程序实践报告姓名:班级:学号:程序实践报告概述本程序是图书管理系统,它具有以下几个特点:(1)、具备菜单操作窗口;(2)、具备文件操作功能;说明:能按照图书的名称、出版社、定价、购买日期等参数进行排序。(3)、具备灵活的输入和查询功能;说明:按照图书的名称、类别、作者、出版社、定价、购买日期等参数进行查询。(4)、具备删除功能。方案描述在图书管理系统中,为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者名),账户中存储借阅者的个人信息、借阅信息以及预定信息。持有借阅卡的借阅者可以借阅书刊、返还书刊、...
程 序 实 践 报 告
程序实践姓名:班级:学号:程序实践报告概述本程序是图管理系统,它具有以下几个特点:(1)、具备菜单操作窗口;(2)、具备文件操作功能;说明:能按照图书的名称、出版社、定价、购买日期等参数进行排序。(3)、具备灵活的输入和查询功能;说明:按照图书的名称、类别、作者、出版社、定价、购买日期等参数进行查询。(4)、具备删除功能。描述在图书管理系统中,为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者名),账户中存储借阅者的个人信息、借阅信息以及预定信息。持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定,但这些操作都是通过图书管理员进行的,也即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。在借阅书刊时,需要输入所借阅的书刊名,书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者是否有效(在系统中存在账户),若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。借阅者还书后,删除关于所还书刊的借阅记录。如果借阅者所借的书刊已被借出,借阅者还可预定该书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人(为了简化系统,预定书刊可获得时就不通知借阅者了)。另外,为了简化系统,也不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊。主要功能模块c语言代码删除功能菜单式操作界面查询功能流程图调试过程由于知识体系和的不足,本次程序实践有相当部分借鉴了优秀案例。尤其是菜单式窗口和结构体的设计,虽然很努力地去尝试,但是最终都没有成功。但是经过自己动手动脑的学习,感觉还是有所得。所幸调试过程中这两部分未出现问题,否则也很难解决。上次调试过程出现的几个问题(主要是初学c语言对一些基本语句的掌握和一些语法规则不熟练)得到了较好解决,未出现因为缺失“;”导致编译失败这样的低级错误。以下是出现的一些较难的问题:(1)、构体嵌套问题谭浩强的书中并未提到这一内容,但是第一部分就用到了菜单项结构体。对于简单的定义没有问题,但是结构体嵌套定义了,却不知道如何从文件中一一读取有关书籍和学生的信息。进过多次调试和在相关论坛的交流基本掌握了struck的用法。(2)、全局变量与局部变量搞清楚(3)、函数的返回值只能一个,所以遇到有多函数返回值的用指针运行窗口将程序编译并运行,输入1,按回车,进入借书办理模块,输入所寻找的图书编号,输入自己的学号,借阅成功!在调试过程中深刻感受到现在我们的水平其实还只是很初级很初级,缺乏必需的知识结构和经验,独立处理较复杂的一下问题时明显力不从心,不得不借助于网络等渠道模仿、借鉴、学习。但是在调试过程中遇到的很多问题超出能力范围,相当苦恼。要学的还很多。全部代码#include<stdio.h>#include<stdlib.h>#include<string.h>structbook{ charbook_name[30]; intbianhao; doubleprice; charauthor[20]; charstate[20]; charname[20]; charsex[10]; intxuehao; structbook*book_next;};structclub{ charname[20]; charsex[10]; intxuehao; charborrow[30]; structclub*club_next;};voidPrint_Book(structbook*head_book);/*浏览所有图书信息*/voidPrint_Club(structclub*head_club);/*浏览所有会员信息*/structbook*Create_New_Book();/*创建新的图书库,图书编号输入为0时结束*/structbook*Search_Book_bianhao(intbianhao,structbook*head_book);structbook*Search_Book_name(char*b_name,structbook*head_book);structbook*Search_Book_price(doubleprice_h,doubleprice_l,structbook*head_book);structbook*Insert_Book(structbook*head_book,structbook*stud_book);/*增加图书,逐个添加*/structbook*Delete_Book(structbook*head_book,intbianhao);/*删除图书*/structclub*Create_New_Club();structclub*Search_Club_xuehao(intxuehao,structclub*head_club);structclub*Search_Club_name(char*c_name,structclub*head_club);structclub*Insert_Club(structclub*head_club,structclub*stud_club);structclub*Delete_Club(structclub*head_club,intxuehao);structbook*Lent_Book(intbianhao,intxuehao,structbook*head_book,structclub*head_club);structbook*back(intbianhao,intxuehao,structbook*head_book,structclub*head_club);intmain(){ structbook*head_book,*p_book; charbook_name[30],name[20],author[20],sex[10]; intbianhao; doubleprice,price_h,price_l; intsize_book=sizeof(structbook); intm=1,n=1,f; char*b_name,*c_name; structclub*head_club,*p_club; intxuehao; intsize_club=sizeof(structclub); intchoice;printf("\n欢迎您第一次进入图书管理系统!\n\n"); printf("----->[向导]----->[新建图书库]\n\n"); printf("注意:当输入图书编号为0时,进入下一步.\n\n"); head_book=Create_New_Book(); system("cls"); printf("\n欢迎您第一次进入图书管理系统!\n\n"); printf("----->[向导]----->[新建会员库]\n\n"); printf("注意:当输入会员学号为0时,进入主菜单.\n\n"); head_club=Create_New_Club(); system("cls"); do{ printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("\n"); printf("\t\t\t[1]:借书办理\t");printf("[6]:还书办理\n"); printf("\n"); printf("\t\t\t[2]:查询图书\t");printf("[7]:查询会员\n"); printf("\t\t\t[3]:添加图书\t");printf("[8]:添加会员\n"); printf("\t\t\t[4]:删除图书\t");printf("[9]:删除会员\n"); printf("\t\t\t[5]:遍历图书\t");printf("[10]:遍历会员\n\n"); printf("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n"); printf("\t\t\t0:退出\n\n"); printf("请选择<0~10>:"); scanf("%d",&choice); switch(choice){ case1: printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("输入所借图书编号:\n"); scanf("%d",&bianhao); printf("输入借书人的学号:\n"); scanf("%d",&xuehao); head_book=Lent_Book(bianhao,xuehao,head_book,head_club); system("cls"); printf("\n借阅成功!\n\n"); printf("相关信息如下:\n\n"); head_book=Search_Book_bianhao(bianhao,head_book); break; case2: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("1.按编号查询\n\n"); printf("2.按名称查询\n\n"); printf("3.按价格区间查询\n\n"); printf("0.返回主菜单\n\n"); printf("请选择:"); scanf("%d",&f); if(f==1){ printf("请输入查询图书编号:"); scanf("%d",&bianhao); printf("相关信息如下:\n\n"); head_book=Search_Book_bianhao(bianhao,head_book); break; } elseif(f==2){ b_name=book_name; getchar(); printf("请输入查询图书名称:"); gets(b_name); printf("相关信息如下:\n\n"); head_book=Search_Book_name(b_name,head_book); break; } elseif(f==3){ printf("请输入最高价格:"); scanf("%lf",&price_h); printf("请输入最低价格:"); scanf("%lf",&price_l); printf("相关信息如下:\n\n"); head_book=Search_Book_price(price_h,price_l,head_book); break; } elseif(f==0){ break; } break; case6: printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("输入所还图书编号:\n"); scanf("%d",&bianhao); printf("输入还书人的学号:\n"); scanf("%d",&xuehao); head_book=back(bianhao,xuehao,head_book,head_club); system("cls"); printf("\n归还成功!\n\n"); printf("相关信息如下:\n\n"); head_book=Search_Book_bianhao(bianhao,head_book); break; case3: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("请输入图书名称:"); scanf("%s",book_name); printf("请输入图书编号:"); scanf("%d",&bianhao); printf("请输入单价:"); scanf("%lf",&price); printf("请输入作者名字:"); scanf("%s",author); printf("\n"); structbook*ptr_b; for(ptr_b=head_book;ptr_b;ptr_b=ptr_b->book_next) { if(ptr_b->bianhao==bianhao) { printf("此编号图书已存在\n"); m=0; break; } } if(m){p_book=(structbook*)malloc(size_book); strcpy(p_book->book_name,book_name); p_book->bianhao=bianhao; p_book->price=price; p_book->xuehao=0; strcpy(p_book->author,author); strcpy(p_book->state,"存在"); strcpy(p_book->sex,"待定"); strcpy(p_book->name,"待定"); head_book=Insert_Book(head_book,p_book); printf("\n添加图书成功!\n\n"); } break; case4: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("输入删除图书编号:\n"); scanf("%d",&bianhao); head_book=Delete_Book(head_book,bianhao); printf("\n删除图书成功!\n\n"); break; case5: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); Print_Book(head_book); break; case7: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("1.按学号查询\n\n"); printf("2.按姓名查询\n\n"); printf("0.返回主菜单\n\n"); printf("请选择:"); scanf("%d",&f); if(f==1){ printf("请输入查询会员学号:"); scanf("%d",&xuehao); printf("相关信息如下:\n\n"); head_club=Search_Club_xuehao(xuehao,head_club); break; } elseif(f==2){ c_name=name; getchar(); printf("请输入查询会员姓名:"); gets(c_name); printf("相关信息如下:\n\n"); head_club=Search_Club_name(c_name,head_club); break; } elseif(f==0){ break; } break; printf("请输入查询会员学号:\n"); scanf("%d",&xuehao); printf("相关信息如下:\n\n"); break; case8: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("请输入会员名字:"); scanf("%s",name); printf("请输入会员性别:"); scanf("%s",sex); printf("请输入会员学号:"); scanf("%d",&xuehao); printf("\n"); structclub*ptr_c; for(ptr_c=head_club;ptr_c;ptr_c=ptr_c->club_next) { if(ptr_c->xuehao==xuehao) { printf("此学号会员已存在\n"); n=0; break; } } if(n){ p_club=(structclub*)malloc(sizeof(structclub)); strcpy(p_club->name,name); strcpy(p_club->sex,sex); p_club->xuehao=xuehao; strcpy(p_club->borrow,"暂无"); head_club=Insert_Club(head_club,p_club); printf("\n添加会员成功!\n\n"); } break; case9: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("输入要删除会员学号:\n"); scanf("%d",&xuehao); head_club=Delete_Club(head_club,xuehao); printf("\n删除会员成功!\n\n"); break; case10: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); Print_Club(head_club); break; case0: system("cls"); printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n"); printf("\n谢谢您的使用!\n\n"); break; } }while(choice!=0); return0;}structbook*Create_New_Book(){ structbook*head_book,*p_book; intbianhao; doubleprice; charbook_name[30],author[20]; intsize_book=sizeof(structbook); head_book=NULL; printf("请输入图书名称:"); scanf("%s",book_name); printf("请输入图书编号:"); scanf("%d",&bianhao); printf("请输入单价:"); scanf("%lf",&price); printf("请输入作者名字:"); scanf("%s",author); printf("\n"); while(bianhao!=0){ p_book=(structbook*)malloc(size_book); strcpy(p_book->book_name,book_name); p_book->bianhao=bianhao; p_book->price=price; p_book->xuehao=0; strcpy(p_book->author,author); strcpy(p_book->state,"存在"); strcpy(p_book->sex,"待定"); strcpy(p_book->name,"待定"); head_book=Insert_Book(head_book,p_book); printf("请输入图书名称:"); scanf("%s",book_name); printf("请输入图书编号:"); scanf("%d",&bianhao); printf("请输入单价:"); scanf("%lf",&price); printf("请输入作者名字:"); scanf("%s",author); printf("\n"); } returnhead_book;}structbook*Search_Book_bianhao(intbianhao,structbook*head_book){ structbook*ptr_book; intflag=0; for(ptr_book=head_book;ptr_book;ptr_book=ptr_book->book_next) { if(ptr_book->bianhao==bianhao){ printf("图书编号:%d\n",ptr_book->bianhao); printf("图书名称:%s\n",ptr_book->book_name); printf("图书单价:%.2lf\n",ptr_book->price); printf("图书作者:%s\n",ptr_book->author); printf("存在状态:%s\n",ptr_book->state); printf("借书人姓名:%s\n",ptr_book->name); printf("借书人性别:%s\n",ptr_book->sex); printf("学号:%d\n",ptr_book->xuehao); printf("\n"); flag++; } } if(flag==0){ printf("暂无此图书信息!\n\n"); } returnhead_book;}structbook*Search_Book_name(char*b_name,structbook*head_book){ structbook*ptr_book; intflag=0; for(ptr_book=head_book;ptr_book;ptr_book=ptr_book->book_next) { if(strcmp(ptr_book->book_name,b_name)==0){ printf("图书编号:%d\n",ptr_book->bianhao); printf("图书名称:%s\n",ptr_book->book_name); printf("图书单价:%.2lf\n",ptr_book->price); printf("图书作者:%s\n",ptr_book->author); printf("存在状态:%s\n",ptr_book->state); printf("借书人姓名:%s\n",ptr_book->name); printf("借书人性别:%s\n",ptr_book->sex); printf("学号:%d\n",ptr_book->xuehao); printf("\n"); flag++; } } if(flag==0){ printf("暂无此图书信息!\n\n"); } returnhead_book;}structbook*Search_Book_price(doubleprice_h,doubleprice_l,structbook*head_book){ structbook*ptr_book; intflag=0; for(ptr_book=head_book;ptr_book;ptr_book=ptr_book->book_next) { if((ptr_book->price>=price_l)&&(ptr_book->price<=price_h)){ printf("图书编号:%d\n",ptr_book->bianhao); printf("图书名称:%s\n",ptr_book->book_name); printf("图书单价:%.2lf\n",ptr_book->price); printf("图书作者:%s\n",ptr_book->author); printf("存在状态:%s\n",ptr_book->state); printf("借书人姓名:%s\n",ptr_book->name); printf("借书人性别:%s\n",ptr_book->sex); printf("学号:%d\n",ptr_book->xuehao); printf("\n"); flag++; } } if(flag==0){ printf("暂无此图书信息!\n\n"); } returnhead_book;}structbook*Delete_Book(structbook*head_book,intbianhao){ structbook*ptr1_book,*ptr2_book; while(head_book!=NULL&&head_book->bianhao==bianhao){ ptr2_book=head_book; head_book=head_book->book_next; free(ptr2_book); } if(head_book==NULL) returnNULL; ptr1_book=head_book; ptr2_book=head_book->book_next; while(ptr2_book!=NULL){ if(ptr2_book->bianhao==bianhao){ ptr1_book->book_next=ptr2_book->book_next; free(ptr2_book); } else ptr1_book=ptr2_book; ptr2_book=ptr1_book->book_next; } returnhead_book;}structclub*Create_New_Club(){ structclub*head_club,*p_club; intxuehao; charname[20],sex[10]; intsize_club=sizeof(structclub); head_club=NULL; printf("请输入会员名字:"); scanf("%s",name); printf("请输入会员性别:"); scanf("%s",sex); printf("请输入会员学号:"); scanf("%d",&xuehao); printf("\n"); while(xuehao!=0){ p_club=(structclub*)malloc(size_club); strcpy(p_club->name,name); strcpy(p_club->sex,sex); p_club->xuehao=xuehao; strcpy(p_club->borrow,"暂无"); head_club=Insert_Club(head_club,p_club); printf("请输入会员名字:"); scanf("%s",name); printf("请输入会员性别:"); scanf("%s",sex); printf("请输入会员学号:"); scanf("%d",&xuehao); printf("\n"); } returnhead_club;}structclub*Search_Club_xuehao(intxuehao,structclub*head_club){ structclub*ptr_club; intflag=0; for(ptr_club=head_club;ptr_club;ptr_club=ptr_club->club_next) { if(ptr_club->xuehao==xuehao){ printf("会员姓名:%s\n",ptr_club->name); printf("会员性别:%s\n",ptr_club->sex); printf("会员学号:%d\n",ptr_club->xuehao); printf("所借图书:%s\n",ptr_club->borrow); printf("\n"); flag++; } } if(flag==0){ printf("此用户不存在!\n\n"); } returnhead_club;}structclub*Search_Club_name(char*c_name,structclub*head_club){ structclub*ptr_club; intflag=0; for(ptr_club=head_club;ptr_club;ptr_club=ptr_club->club_next) { if(strcmp(ptr_club->name,c_name)==0){ printf("会员姓名:%s\n",ptr_club->name); printf("会员性别:%s\n",ptr_club->sex); printf("会员学号:%d\n",ptr_club->xuehao); printf("所借图书:%s\n",ptr_club->borrow); printf("\n"); flag++; } } if(flag==0){ printf("此用户不存在!\n\n"); } returnhead_club;}structbook*Lent_Book(intbianhao,intxuehao,structbook*head_book,structclub*head_club){ structbook*ptr_book; structclub*ptr_club; intflag=0; for(ptr_book=head_book;ptr_book;ptr_book=ptr_book->book_next) for(ptr_club=head_club;ptr_club;ptr_club=ptr_club->club_next) { if((ptr_book->bianhao==bianhao)&&(ptr_club->xuehao==xuehao)) { strcpy(ptr_book->name,ptr_club->name);/*字符串的复制,把右边的内容复制到左边*/ strcpy(ptr_book->sex,ptr_club->sex); ptr_book->xuehao=ptr_club->xuehao; strcpy(ptr_book->state,"暂无"); strcpy(ptr_club->borrow,ptr_book->book_name); flag++; } if(flag==0){ printf("暂无此图书或您还未注册为会员!\n\n"); } } returnhead_book;}structbook*back(intbianhao,intxuehao,structbook*head_book,structclub*head_club){ structbook*ptr_book; structclub*ptr_club; intflag=0; for(ptr_book=head_book;ptr_book;ptr_book=ptr_book->book_next) for(ptr_club=head_club;ptr_club;ptr_club=ptr_club->club_next) { if((ptr_book->bianhao==bianhao)&&(ptr_club->xuehao==xuehao)) { strcpy(ptr_book->name,"暂无"); strcpy(ptr_book->sex,"待定"); ptr_book->xuehao=0; strcpy(ptr_book->state,"暂无"); strcpy(ptr_club->borrow,"暂无"); flag++; } if(flag==0){ printf("输入有误,请重试\n\n"); } } returnhead_book;}structbook*Insert_Book(structbook*head_book,structbook*stud_book){ structbook*ptr_b,*ptr1_b,*ptr2_b; ptr2_b=head_book; ptr_b=stud_book; if(head_book==NULL){ head_book=ptr_b; head_book->book_next=NULL; } else{ while((ptr_b->bianhao>ptr2_b->bianhao)&&(ptr2_b->book_next!=NULL)){ ptr1_b=ptr2_b; ptr2_b=ptr2_b->book_next; } if(ptr_b->bianhao<=ptr2_b->bianhao){ if(head_book==ptr2_b)head_book=ptr_b; elseptr1_b->book_next=ptr_b; ptr_b->book_next=ptr2_b; } else{ ptr2_b->book_next=ptr_b; ptr_b->book_next=NULL; } } returnhead_book;}structclub*Insert_Club(structclub*head_club,structclub*stud_club){ structclub*ptr_c,*ptr1_c,*ptr2_c; ptr2_c=head_club; ptr_c=stud_club; if(head_club==NULL){ head_club=ptr_c; head_club->club_next=NULL; } else{ while((ptr_c->xuehao>ptr2_c->xuehao)&&(ptr2_c->club_next!=NULL)){ ptr1_c=ptr2_c; ptr2_c=ptr2_c->club_next; } if(ptr_c->xuehao<=ptr2_c->xuehao){ if(head_club==ptr2_c)head_club=ptr_c; elseptr1_c->club_next=ptr_c; ptr_c->club_next=ptr2_c; } else{ ptr2_c->club_next=ptr_c; ptr_c->club_next=NULL; } } returnhead_club;}voidPrint_Club(structclub*head_club){ structclub*ptr_c; if(head_club==NULL){ printf("\n无记录\n\n"); return; } printf("\n会员姓名\t会员性别\t会员学号\n\n"); for(ptr_c=head_club;ptr_c;ptr_c=ptr_c->club_next) printf("%s\t\t%s\t\t%d\n",ptr_c->name,ptr_c->sex,ptr_c->xuehao);}structclub*Delete_Club(structclub*head_club,intxuehao){ structclub*ptr1_club,*ptr2_club; while(head_club!=NULL&&head_club->xuehao==xuehao){ ptr2_club=head_club; head_club=head_club->club_next; free(ptr2_club); } if(head_club==NULL) returnNULL; ptr1_club=head_club; ptr2_club=head_club->club_next; while(ptr2_club!=NULL){ if(ptr2_club->xuehao==xuehao){ ptr1_club->club_next=ptr2_club->club_next; free(ptr2_club); } else ptr1_club=ptr2_club; ptr2_club=ptr1_club->club_next; } returnhead_club;}voidPrint_Book(structbook*head_book){ structbook*ptr_b; if(head_book==NULL){ printf("\n无记录\n\n"); return; } printf("\n图书编号\t图书名称\t图书单价\t图书作者\n\n"); for(ptr_b=head_book;ptr_b;ptr_b=ptr_b->book_next) printf("%d\t\t%s\t\t%.2lf\t\t%s\n\n",ptr_b->bianhao,ptr_b->book_name,ptr_b->price,ptr_b->author);}本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/iamskying/archive/2009/08/29/4496437.aspx
/
本文档为【程 序 实 践 报 告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索