《C语言程序设计》课程设计报告题目:体育器材借还信息管理系统专业:数学与应用数学学号:1009401—09姓名:指导教师:成绩:———二零一一年六月十日课程设计报告——体育器材借还信息管理系统1、研究背景及意义由于现今的大学里体育器材借还信息管理非常常见,管理人员付出很多的工作时间,得到的效率很低。
因此为提高工作效率,为了减轻学校对体育器材借还信息进行登记,查找,等繁杂的工作,进而设计出一个功能完善、合理、先进的体育器材借还信息管理系统来管理。
开发此体育器材借还信息管理系统软件,以供管理人员及操作者对学校公共体育器材进行轻松的管理,方便操作者随时添加、查询、修改体育器材借还信息。
2、问题描述和功能要求问题描叙对体育器材借还信息进行管理,主要包含的信息为:班级、器材名称、数量、编号。
此主要系统包含下列功能:对体育器材借还信息的插入、查询、修改、删除、显示、退出。
系统功能1)、每一条记录包括一个班级、体育器材名称、数量、编号。
2)、插入功能:插入一个班级的信息。
3)、查找功能:按班级号查找体育器材借还信息,并显示。
4)、修改功能:能将以前输入并保存的数据进行修改。
5)、删除功能:删除体育器次借还的信息;6)、显示功能:完成全部体育器材借还记录的显示。
7)、退出功能:记录完毕退出系统。
8)、有一个清晰美观界面来调用各个功能功能模块分工:组长:何春辉何春辉负责:插入功能、显示功能、退出功能、查找功能。
王孟然负责:删除功能、修改功能、文件的读写功能与储存功能。
3、课程设计报告内容3.1体育器材借还信息管理系统的理论依据1、建立一个结构体数组对象class,用于存储体育器材借还信息。
2、建立相应的系统操作函数如下:1)、插入班级体育器材借还的信息函数:Insert(class,s);2)、根据班级号查找体育器材借还信息的函数:Search(class,s);3)、修改体育器材借还的信息函数:Update(class,s);4)、删除班级体育器材借还的信息函数:Delete(class,s);5)、显示所有班级体育器材借还的信息函数:Show(classs,s);6)、从文件中读入数据函数:Read(class_info,s);7)、将所有记录写入文件函数:Save(class_info,s);8)、退出管理系统函数:Exit(0);9)、写main()函数,由用户输入一个参数i,根据i的值来选择要进行的操作。
3.2算法流程图:3.3源程序代码:#include"stdlib.h"#include "string.h"#include "stdio.h"#define MaxSize 50#include"malloc.h"typedef struct class_info{int s ; //行政班级char name[50]; //器材名称int sum; //器材数量double telephone; //联系电话int number; //编号struct class_info *next;} ClassLink, *Pointer;void Insert(Pointer *Head);void Search(Pointer Head);void Update(Pointer Head);void Delete(Pointer *Heaad);void Show(Pointer Head);void File(Pointer &Head);void Exit(Pointer Head);int main(){Pointer Head=NULL; //定义表头指针int i;do //显示一个简易菜单{ printf("\n");printf("1----插入(Insert)\n");printf("2----查询(Search)\n");printf("3----修改(Update)\n");printf("4----删除(Delete)\n");printf("5----显示(Show)\n");printf("6----文件读入(File)\n");printf("0----退出(Exit)\n");scanf("%d",&i); //接收用户的选择switch(i) //调用对应的函数{ case 1:Insert( & Head);break;case 2:Search( Head);break;case 3:Update( Head);break;case 4:Delete( & Head);break;case 5:Show( Head);break;case 0: break;default:printf("错误选择!请重选");break;}}while(i!=0);return 0;}void Insert(Pointer *Head) //插入函数的定义{ int in_number;Pointer p,q,r; //说明变量printf("请输入编号:");scanf("%d",&in_number);p=q= *Head; //查找符合条件的记录while(p!=NULL){if(p->number==in_number) //找到相同的编号{printf("已经有相同的编号:");return;}else{ q=p;p=p->next;} //走链}r=(Pointer)malloc(sizeof(ClassLink)); //申请空间r->next=NULL; //设置指针域if(r==NULL){ printf("分配空间失败!");return;}if(q==NULL) //原表为空表* Head=r; //新结点作为头元素else{q->next=r; //在表尾插入元素}r->number=in_number; //接收插入数据printf("请输入行政班级:");scanf("%d",&r->s);printf("请输入器材名称:");scanf("%s",r->name);printf("请输入器材数量:");scanf("%d",&r->sum);printf("请输入联系电话:");scanf("%lf",&r->telephone);}void Search(Pointer Head) //查找函数的定义{ int flag=1; //设定标记变量的初值int number;Pointer p;printf("请输入要查询的编号:");scanf("%d",&number);p=Head; //查找符合条件的记录while(p!=NULL&&flag){if(p->number==number){printf("行政班级:%d\n",p->s);printf("器材名称:%s\n",p->name);printf("器材数量:%d\n",p->sum);printf("联系电话:%11.0lf\n",p->telephone);flag=0; //找到标记变量设为0 }elsep=p->next; //指针走到下一个结点}if(flag)printf("没有查询到!!");}void Update(Pointer Head) //修改函数的定义{ int flag=1; //设定标记变量的初值int number;Pointer p;printf("请输入要修改的编号:");scanf("%d",&number);p=Head; //查找符合条件的记录while(p!=NULL&&flag){ if(p->number==number){printf("请输入器材名称:");scanf("%s",p->name);printf("请输入器材数量:");scanf("%d",&p->sum);flag=0;}elsep=p->next; //指针走到下一个结点}if(flag)printf("没有找到要修改的记录!!");}void Delete(Pointer *Head) //删除函数的定义{ int flag=1; //设定标记变量的初值int number;Pointer p,q;printf("请输入要删除数据的编号:");scanf("%d",&number);p=q= *Head; //查找符合条件的记录while(p!=NULL&&flag){ if(p->number==number){if(p== *Head) //删除的是表头元素{ * Head=p->next;free(p);}else{ q->next=p->next;free(p);} //删除普通元素flag=0;}else //指针走到下一个结点{ q=p;p=p->next;} //q所指结点为p所指结点的前驱}if(flag)printf("没有找到可以删除的数据!!");}void Show(Pointer Head){ Pointer p;p=Head;int number;printf("输入要显示的编号:");scanf("%d",&number);while(p!=NULL){ printf("行政班级:%d\n",p->s);printf("器材名称:%s\n",p->name);printf("器材数量:%d\n",p->sum);printf("联系电话:%11.0lf\n",p->telephone);p=p->next;}}3.4调试时源程序中出现的错误:1、出现了一些语法错误:定义变量类型出现错误;2、出现了一些逻辑错误:while(i!=6)被写成了while(i=6);3、运行出现了错误:scanf函数中变量没有用&;4、使用指针时,忘了定义指针的指向;5、printf函数中变量的输出类型和定义类型不一致,导致输出结果出错;6、在switch语句中break的使用位置不正确;7、函数的引用和定义不相符;8、字母在输入时出现大小写混淆;9、语句结尾出忘记了加分号;10、定义结构体时,数据类型不相符;11、流程图制作忘记了用箭头符号12、多出忘记了加双引号;13、标记变量忘了赋初值;14、使用单链表时没有定义表头指针等等;3.5运行结果窗口:1、菜单选项窗口:2、插入窗口:3、查询窗口:4、修改窗口:5、删除窗口:6、显示窗口:7、退出窗口:总结:开始接到这个作业时觉得有点惊讶,因为学了一个学期的《C语言程序设计》我是连简单的错误都改不好,更别提是要自己动手去做什么课程设计了。