湖南城市学院C语言程序设计.docx
- 文档编号:9972592
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:14
- 大小:103.47KB
湖南城市学院C语言程序设计.docx
《湖南城市学院C语言程序设计.docx》由会员分享,可在线阅读,更多相关《湖南城市学院C语言程序设计.docx(14页珍藏版)》请在冰豆网上搜索。
湖南城市学院C语言程序设计
《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"
#defineMaxSize50
#include"malloc.h"
typedefstructclass_info
{
ints;//行政班级
charname[50];//器材名称
intsum;//器材数量
doubletelephone;//联系电话
intnumber;//编号
structclass_info*next;
}ClassLink,*Pointer;
voidInsert(Pointer*Head);
voidSearch(PointerHead);
voidUpdate(PointerHead);
voidDelete(Pointer*Heaad);
voidShow(PointerHead);
voidFile(Pointer&Head);
voidExit(PointerHead);
intmain()
{
PointerHead=NULL;//定义表头指针
inti;
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)//调用对应的函数
{case1:
Insert(&Head);
break;
case2:
Search(Head);
break;
case3:
Update(Head);
break;
case4:
Delete(&Head);
break;
case5:
Show(Head);
break;
case0:
break;
default:
printf("错误选择!
请重选");break;
}
}while(i!
=0);
return0;
}
voidInsert(Pointer*Head)//插入函数的定义
{intin_number;
Pointerp,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);
}
voidSearch(PointerHead)//查找函数的定义
{intflag=1;//设定标记变量的初值
intnumber;
Pointerp;
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
}
else
p=p->next;//指针走到下一个结点
}
if(flag)
printf("没有查询到!
!
");
}
voidUpdate(PointerHead)//修改函数的定义
{intflag=1;//设定标记变量的初值
intnumber;
Pointerp;
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;
}
else
p=p->next;//指针走到下一个结点
}
if(flag)
printf("没有找到要修改的记录!
!
");
}
voidDelete(Pointer*Head)//删除函数的定义
{intflag=1;//设定标记变量的初值
intnumber;
Pointerp,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("没有找到可以删除的数据!
!
");
}
voidShow(PointerHead)
{Pointerp;
p=Head;
intnumber;
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语言程序设计》我是连简单的错误都改不好,更别提是要自己动手去做什么课程设计了。
每次去机房对着电脑,心里就会有一种压力,因为一个简单的程序我都会弄错几个地方,看着周围的同学都做得很好,我的心里难免会有一些担忧。
平时连C语言上机作业我也去同学那里拷贝,实在说不过去,如果继续这样考试肯定不能通过的,然后我就想办法,自己努力克服困难,搞了一段时间的自学,还找了学长帮忙。
最后通过和同学合作,发了大概一周的时间终于共同完成了源程序的编写!
通过这次合作,我学到了很多东西,例如在找合作人时我是发了一定的功夫的,我尽量找与自己有不同长处的同学合作,这样可以让我们在合作中取长补短,更好的发挥出自己的优势,争取把C语言课程设计做的更好。
经过了一周多的努力,我的作业终于完成了,但是老师说还有很多地方做的不好,希望我们能再修改一下,找出其中的不足之处并将其完善。
《C语言程序设计》是我大学里接触的第一本有关于计算机语言的课程,没有开课时我心里就很好奇,终于现在自己有机会接触到程序这个神奇的东西了,所以就有很浓厚的兴趣去学习它的理论基础。
而现在又要搞课程设计,那就是要把自己所学的理论付诸于实践,这更增添了我的兴趣爱好,又由于我是班上的体育委员,每次上体育课时我都要去体育器材室借体育器材,看见那里的管理员是用本子密密麻麻的记录着所有的班级所借还的体育器材的信息,这就很不方便,因此就引起了我对做这个程序设计的兴趣。
又由于现今的大学里体育器材借还信息管理非常繁琐,管理人员付出大量的工作时间,得到的效率不高。
因此我们打算开发此体育器材借还信息管理系统软件,以供器材管理人员及操作者进行器材借还管理,方便操作者随时插入、查询、删除、修改班级体育器材借还信息。
总之,我认为这次的课程设计做的还是挺不错的,毕竟这是我们自己第一次做,没有什么经验和好的技术,但我们还是按时完成了任务。
总的来说,做完了还是蛮有成就感的,要是能得到老师的肯定,那我们将会更加努力。
通过本期的学习,我们知道了计算机高级语言对生活和发展的重要性,因此我们决定要在下期里努力学好下一门计算机高级语言,以便于更好的溶入社会和服务社会。
也为自己的发展多增添一条道路。
参考文献:
[1]谭浩强著《C语言程序设计》(第四版),清华大学出版出版时间:
2010年
[2]谭浩强著《C语言程序设计习题与上机指导》(第三版)清华大学出版出版时间:
2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南 城市 学院 语言程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)