图书管理系统实验报告_第1页
图书管理系统实验报告_第2页
图书管理系统实验报告_第3页
图书管理系统实验报告_第4页
图书管理系统实验报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高级语言(C语言)课程设计说明书起止日期: 2012 年 07 月 2 日 至 2012 年 07 月 14 日题目学生姓名班级学号成绩通信与信息工程学院说明书撰写提纲一.课程设计要求 图书管理系统是使用C语言编一道程序,其内容包括以下几点:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等.图书信息管理系统提供以下功能:(1)系统以菜单方式工作(2)图书信息录入功能(图书信息用文件保存)-输入(3)图书信息浏览功能-输出(4)查询和排序功能(5)按书名查询(6)按作者名查询(7)图书信息的删除与修改具体要求如下:1.在程序中需要实现图书信息录入,浏览,查询,删除和修改等功

2、能的操作; 2.程序主菜单如下: "*MENU*", /*菜单的标题行*/ 1. 图书信息录入 /*输入数据*/ 2. 显示图书信息 /*显示所有记录*/ 3. 图书信息查询 /*要求采用书名、作者名进行查询 */ 4. 图书信息的修改 /*实现图书信息的修改和删除*/ 5. 退出3.要求设计流程图4.功能框图5.编写代码图书管理系统二程序功能的设计1.主功能:显示图书信息图书信息查询图书信息修改退出图书信息录入修改分类号录入价格按分类号查询录入登录号2.图书信息录入: 3.图书信息查询图书信息查询按书名查询按作者名查询按出版时间询查按价格查询添加图书录入分类号录入书名录入

3、作者名录入出版社修改书名4.图书信息修改图书信息修改修改信息删除图书修改价格修改出版社修改作者名 三.程序的数据结构struct book int number; char name15; char writer15; char publish15; float price; struct book*prior; struct book *next;typedef struct book STU;char Menu(void);char Menu1(void);STU *AppendNode(STU *head);STU *DeleteNode(STU *head, int nodeNum);

4、STU *ModifyNode(STU *head, int nodeNum);STU *SearchNode(STU *head, int nodeNum);STU *Append(STU *head);void Print(STU *head);STU *Delete(STU *head);void Modify(STU *head);void Search(STU *head);STU *Sort(STU *head);int Save( STU *head);STU *Load(STU *head);void DeleteMemory(STU *head);四.程序的函数设计1.函数的

5、功能描述/图书信息录入 STU *Append(STU *head)/图书信息查询 void Search(STU *head)/打印表头 void Print(STU *head)/删除记忆 void DeleteMemory(STU *head)/图书信息显示 STU *Sort(STU *head) /图书信息删除 STU *Delete(STU *head)/图书信息修改 void Modify(STU *head)/图书信息保存 int Save( STU *head)/图书信息储存 STU *Load(STU *head)2.函数的调用关系当运行是首先进入主界面,进入后输入你的登录

6、号,然后会调用主菜单:当选1是会调用表示图书信息录入函数当选2时会调用表示显示图书信息的函数当选3时调用图书信息查询函数当选4时调用第二个菜单函数在其下选1时调用删除图书信息函数,选2调用修改图书信息函数当选5时退出,其调用了保存和储存函数五.源程序代码#include <stdio.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#include<malloc.h>#define Len sizeof(struct book)struct book int numb

7、er; char name15; char writer15; char publish15; float price; struct book*prior; struct book *next;typedef struct book STU;char Menu(void);char Menu1(void);STU *AppendNode(STU *head);STU *DeleteNode(STU *head, int nodeNum);STU *ModifyNode(STU *head, int nodeNum);STU *SearchNode(STU *head, int nodeNum

8、);STU *Append(STU *head);void Print(STU *head);STU *Delete(STU *head);void Modify(STU *head);void Search(STU *head);STU *Sort(STU *head);int Save( STU *head);STU *Load(STU *head);void DeleteMemory(STU *head);main() int ch,a; int sav=0; char c,yname15; STU *head = NULL; printf("nnnnnnn"); p

9、rintf(" 欢迎使用 n"); printf("nnnn"); printf(" 请输入你的登录号:"); scanf("%s",yname); getchar(); system("cls"); while (1) A:ch = Menu(); system("cls"); switch (ch) case 1 : system("cls"); head = Append(head); system("cls"); sav+; b

10、reak; case 2 : head=Sort(head); sav+; Print(head); break; case 3: system("cls"); Search(head); system("cls"); break; case 4: system("cls"); a=Menu1(); while(1) switch(a)case 1: system("cls"); head = Delete(head); Print(head); break; case 2: system("cls&qu

11、ot;); Modify(head); system("cls"); Print(head); break;default:printf("t 输入错误!n");break; goto A; break; case 5: system("cls"); if(sav>0) printf("nnnnn"); printf(" 文件已修改,是否保存?(y/n)n"); scanf("%c",&c); getchar(); if('y'=c|'Y

12、'=c) Save(head); printf("n 储存成功!nn"); printf("nnnnnnn"); printf(" 谢谢使用! n"); printf(" 再见! n"); exit(0); DeleteMemory(head); break; default:printf("t 输入错误!n"); break; char Menu() int ch; printf("nnnnnnn"); printf(" * MENU * n")

13、; printf("nn"); printf("t 1.图书信息录入n"); printf("t 2.显示图书信息n"); printf("t 3.图书信息查询n"); printf("t 4.图书信息的修改n"); printf("t 5.退出n"); printf(" 请输入你的选项(1-5):"); scanf(" %d", &ch); return ch;char Menu1() int b; printf("

14、nnnn"); printf(" 图书信息的修改n"); printf(" 1.删除图书信息n"); printf(" 2.修改图书信息n"); printf(" 请输入你的选项(1或2):"); scanf("%d",&b); return b;STU *Append(STU *head) int i = 0; char c; do head = AppendNode(head); printf(" 你是否还要增添新的图书记录(Y/N)?"); scanf

15、(" %c",&c); getchar(); i+; while (c='Y' | c='y'); printf("nnnnn"); printf("t %d 个新记录已被增添!n", i); printf(".n"); return head;STU *Delete(STU *head) int i = 0, nodeNum; char c; do printf("nnnnn"); printf(" 请输入你想要删除的分类号:");

16、scanf("%d", &nodeNum); getchar(); head = DeleteNode(head, nodeNum); Print(head); printf(" 你是否还要删除(Y/N)?"); scanf(" %c",&c); getchar(); while (c='Y' | c='y'); return head;void Modify(STU *head) int j=1,num,b; char c; STU *p; do printf("n 请输入你

17、要修改的分类号:"); scanf("%d",&num); getchar(); p=head; while (num != p->number && p->next != NULL) p = p->next; if (num = p->number) printf("NO.%d,%s, %s,出版社:%s,价格:%8.2f元n",p->number,p->name,p->writer,p->publish,p->price); printf(" *n&qu

18、ot;); printf("*t 1.修改图书分类号 *n"); printf("*t 2.修改图书书名 *n"); printf("*t 3.修改图书作者 *n"); printf("*t 4.修改图书出版社 *n"); printf("*t 5.修改图书价格 *n"); printf("nnn"); printf(" 请输入你的选项(1-5):"); scanf("%d",&b); switch(b) case 1: sys

19、tem("cls"); printf("n 请输入分类号:"); scanf("%d", &p->number); getchar();break; case 2: printf(" 请输入书名:"); scanf("%s", p->name); getchar();break; case 3: printf("n 请输入作者名:"); scanf("%s", p->writer); getchar();break; case 4

20、: printf("n 请输入图书出版社:"); scanf("%s", p->publish); getchar();break; case 5: printf("n 请输入图书价格:"); scanf("%f", &p->price); getchar();break; default:printf("t 输入错误!n"); break; else printf("nn 请稍等一下.n"); printf(" 对不起,无法找到你要修改的信息!

21、n"); printf(" 你是否还要继续进行修改(Y/N)?"); scanf(" %c",&c); getchar(); while(c='Y' | c='y'); STU *ModifyNode(STU *head, int nodeNum) STU *p = head; int j=1; while (p != NULL) if (p->number = nodeNum) return p; p = p->next; j+; return head; STU *SearchNode(S

22、TU *head, int nodeNum) STU *p = head; int j=1; while (p != NULL) if (p->number = nodeNum) return p; p = p->next; j+; return NULL;void Search(STU *head) int j=1,num,b; char c,name20,writer15,publish20; float price; STU *p; do printf("nnnnnn"); printf("t 1.按图书分类号查找 n"); print

23、f("t 2.按图书书名查找 n"); printf("t 3.按图书作者查找 n"); printf("t 4.按图书出版社查找 n"); printf("t 5.按图书价格查找 n"); printf("n"); printf(" 请输入你的选项(1-5):"); scanf("%d",&b); switch(b) case 1: printf("n 请输入你要查找的分类号:"); scanf("%d",

24、&num); getchar(); p=head; while (num != p->number && p->next != NULL) p = p->next; if (num = p->number) printf("nnnnnnnn"); printf(" NO.%d,%s, %s,出版社:%s,价格:%8.2f元n",p->number,p->name,p->writer,p->publish,p->price); printf(".n"); el

25、se printf(" 请稍等一下.n"); printf(" 没有找到相应的图书信息!n"); break; case 2: printf("n 请输入你要查找的图书书名:"); scanf("%s",&name); getchar(); p=head; while (strcmp(p->name,name)!=0 && p->next != NULL) p = p->next; if (strcmp(p->name,name)=0) printf("nn

26、nnnnnn"); printf(" NO.%d,%s, %s,出版社:%s,价格:%8.2f元n",p->number,p->name,p->writer,p->publish,p->price); printf(".n"); else printf("nnnn"); printf(" 对不起,没有找到相应的图书信息!n"); printf(" #n"); break; case 3: printf("n 请输入你要查找的图书作者:"

27、); scanf("%s",&writer); getchar(); p=head; while (strcmp(p->writer,writer)!=0 && p->next != NULL) p = p->next; if (strcmp(p->writer,writer)=0 ) printf("nnnnn"); printf(" NO.%d,%s, %s,出版社:%s,价格:%8.2f元n",p->number,p->name,p->writer,p->p

28、ublish,p->price); printf(".n"); else printf("nnnnnn"); printf(" 对不起,没有找到相应的图书信息!n"); break; case 4: printf("n 请输入你要查找的图书出版社:"); scanf("%s",&publish); getchar(); p=head; while (strcmp(p->publish,publish)!=0 && p->next != NULL) p =

29、 p->next; if (strcmp(p->publish,publish)=0) printf("nnnnnnnn"); printf(" NO.%d,%s, %s,出版社:%s,价格:%8.2f元n",p->number,p->name,p->writer,p->publish,p->price); printf(".n"); else printf("nnnnn"); printf(" 对不起,没有找到相应的图书信息!n"); printf(&

30、quot; #n"); break; case 5: printf("n 请输入你要查找的图书价格:"); scanf("%f",&price); getchar(); p=head; while (price != p->price && p->next != NULL) p = p->next; if (price = p->price) printf("nnnnnnnnn"); printf(" NO.%d,%s, %s,出版社:%s,价格:%8.2f元n&qu

31、ot;,p->number,p->name,p->writer,p->publish,p->price); printf(".n"); else printf("nnnnn"); printf(" 对不起,没有找到相应的图书信息!n"); printf(" #n"); break;default:printf("t 输入错误!n"); break; printf("nnn"); printf(" 你是否还要继续查找(Y/N)?n&quo

32、t;); printf(" =n"); scanf(" %c",&c); getchar(); while(c='Y' | c='y');void Print(STU *head) STU *p = head; char str100 = '0' int j = 1; printf("nnnnn"); /构造表头 strcat(str, " 分类号t书名tt作者tt出版社tt价格n"); printf("%s", str); while (

33、p != NULL) printf("nnn"); printf(" No.%-11d%-15s%-15s%-15s%5.2f元", p->number, p->name,p->writer,p->publish,p->price); p = p->next; j+; printf("n"); printf("=n");STU *AppendNode(STU *head) STU *p = NULL; STU *pr = head; p = (STU *)malloc(sizeo

34、f(STU); if (p = NULL) printf("nnnn"); printf("申请内存失败!"); printf(".n"); exit(0); if (head = NULL) head = p; else while (pr->next != NULL) pr = pr->next; pr->next = p; pr = p; printf("nnnnn"); printf("n 请输入图书分类号:"); scanf("%d", &

35、p->number); getchar(); printf("n 请输入书名:"); scanf("%s", p->name); getchar(); printf("n 请输入图书作者名:"); scanf("%s", &p->writer); getchar(); printf("n 请输入图书出版社:"); scanf("%s", &p->publish); getchar(); printf("n 请输入图书价格:&q

36、uot;); scanf("%f", &p->price); printf("nnn"); getchar(); pr->next = NULL; return head; STU *DeleteNode(STU *head, int nodeNum) STU *p = head, *pr = head; char c; int i=0; if (head = NULL) printf(" 查找不到,无法删除!n"); return(head); while (nodeNum != p->number &am

37、p;& p->next != NULL) pr = p; p = p->next; if (nodeNum = p->number) printf("nnn"); printf("NO.%d,%s, %s,出版社:%s,价格:%8.2f元n",p->number,p->name,p->writer,p->publish,p->price); printf("nnn"); printf(" 您真的要删除此图书信息吗?(y/n)"); scanf("%c

38、",&c); if(c='y'|c='Y') if (p = head) head = p->next; else pr->next = p->next; printf("nnn"); printf(" 这个图书记录已被删除!n"); free(p); else printf(" 对不起,请稍等一下.n"); printf(" 没有找到你要删除的信息!n"); printf(" =n"); return head; STU *S

39、ort(STU *head) STU *h, *p, *q, *r, *s; h = p = (STU *)malloc(sizeof(STU); p->next = head; while (p->next!=NULL) r = p; q = p->next; while (q->next!=NULL) if (q->next->number < r->next->number) r = q; q = q->next; if (r != p) s = r->next; r->next = s->next; s->next = p->next; p->next = s; p = p->next; head = h->next; getchar(); free (h); return head; int Save( STU *head) STU *p1; FILE *fp; p1 = head; if(fp=fopen("save.sav&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论