c语言课程设计宠物店信息管理系统.docx
- 文档编号:25923275
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:26
- 大小:118.14KB
c语言课程设计宠物店信息管理系统.docx
《c语言课程设计宠物店信息管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计宠物店信息管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
c语言课程设计宠物店信息管理系统
合肥学院
计算机科学与技术系
课程设计报告
2012~2013学年第二学期
课程
面向过程综合设计
课程设计名称
宠物(小动物)店信息管理系统
学生姓名
宋俊
学号
1204091008
专业班级
软件工程
指导教师
项响琴、华珊珊
2013年6月
第一章需求分析
1.1描述问题
本课程设计的任务和要求是设计一个宠物(小动物)店信息管理系统,该系统要求对宠物(小动物)店信息进行管理和维护。
运用信息技术可以很快的提高宠物店的运营效率。
方便对宠物信息的管理。
使用菜单实现检索、增加、删除、显示和存取等功能的正确选择。
1.2具体功能:
(1)程序运行时首先要求输入:
宠物的编号。
要录入的宠物的名字。
要录入的宠物的性别。
要录入宠物的年龄。
要录入宠物的颜色。
录入后该宠物的数量。
这些原始数据应保存到一个文件中。
(2)然后程序要求可以实现:
新宠物的增加。
宠物的修改。
宠物的浏览。
宠物的删除。
这些功能。
1.3主要知识点:
(1)面向过程程序设计方法
(2)界面制作,switch的应用。
(3)数组或链表的实现与应用
(4)文件的读写。
第二章、算法设计
2.1设计思想
该程序的流程图如下:
:
本程序紧扣题目要求,尽量采用一些简单的算法和语法来编写源代码,在不影响程序功能的前提下,既简化了程序结构,也降低的编写人员的工作量。
本程序主要针对的用户是宠物信息管理人员,主要作用是让店主能快速搜索到他想要的宠物信息。
本程序是先有店主手动输入各个宠物的信息,然后再存储到文本文件中。
然后可以有店主快熟搜索到想要的宠物的信息。
2.2设计表示
2.2.1结构体模块
除了头文件、子函数的申明等一些必要的部分,在程序的开头处首先定义了两个个结构体,该结构体是为了更方便的储存宠物的信息,由第一个结构体是由三个方面构成的charsex[1]//性别,charage[10];//年龄charcolor[10];//颜色结构体定义为TY,第二个结构体charnum[10];charname[10];TYA;charsum[10];定义为INF。
2.2.2菜单模块
本模块主要功能是对菜单的显示,是用户打开程序所看到的一些信息。
主要显示了欢迎界面、程序的设计者、单位等。
特别重要的是,本模块告诉了用户下一步该做什么,怎么做,此处从用户的角度出发,能帮助用户更好更方便地使用本系统。
main();、menu1();、menu();这3个函数是整个宠物店管理系统的全部菜单函数,main()为系统主界面,进入时可选择进入程序和退出程序。
menu()为进入程序时显示的功能菜单menu1();此菜单为进入管理系统菜单,在此可以选择添加、删除、修改宠物等操作。
2.2.3增加宠物信息
这个函数的作用是为了让用户增加宠物信息。
。
我先在这个函数中建立一个“宠物的各种信息”的文件。
。
用户可以直接把输入的信息存到文件中。
方便后来的对文件里信息的调用。
2.2.4修改宠物信息(子函数名Change)
这个函数是为了让用户修改文件里的宠物信息。
先要读取“宠物的各种信息信息”文本文档的信息。
然后根据输入的宠物昵称找出该宠物信息。
2.2.5查询宠物信息
这个函数是为了让用户更好更快的调用文本文档中宠物的信息。
先要读取“宠物信息”文本文档的信息。
然根据通过两字符串的比较,找到与输入姓名相同的姓名的位置
2.2.6显示宠物信息
这个函数是为了把文本文档的信息显示在屏幕上。
2.2.7删除宠物信息
这个函数通过数组中该位置之后的数据存放位置向前移一位来实现删除功能。
2.3功能实现情况
本程序较好地完成了任务中的各项要求,能实现宠物信息管理系统的基本功能,并且应用到了面向过程程序设计方法、界面制作、if、for函数的应用、数组或链表的实现与应用、文件的读写等知识点。
在此基础上,本程序还优化了菜单和界面,使用户看起来更方便舒服,并且程序输出的结果也模拟了表格的格式,使结果看起来更清晰。
2.4算法设计
本程序主要应用了基本的输入输出语句、条件语句、循环语句、选择语句以及对文本文件的操作等一系列算法,基本涵盖了c语言课程中的大部分算法思想。
同时,本程序也存在这一些不足之处:
,本程序的数据需要一个一个的输进去。
对于数据库较大的会带来不便。
第三章、用户手册
3.1打开方式
(1)先打开电脑中的visualC软件,再通过vc打开目录中文件名为“宠物(小动物)信息管理系统.c”的.c文件。
(2)找到c文件目录下的“Debug”文件夹,直接打开文件名为“宠物(小动物)信息管理系统”的exe文件。
3.2操作步骤
(1)运行程序,看到主菜单界面。
(2)点击任意键继续程序。
(3)按照程序提示信息,分别输入宠物昵称,宠物性别,宠物种类。
宠物年龄。
(4)打开c文件目录下文件名为“宠物信息”的文本文件,获得录取结果
(5)退出程序
3.3注意事项
在输入完学生信息时请务必先保存后再运行程序,否则可能会使信息无法正确读取。
第四章、调试及测试
4.1调试过程中出现的问题
4.1.1文件无法打开
在编译调试阶段,总是出现编译错误,无法通过编译调试,经过逐行的查找,最终发现定义的指向文件的指针,在定义时没有加“*”符号,导致了该编译错误。
4.1.2选择错误
在编译调试完成后,又出现了问题,即无法对学生信息正确筛选,程序无法判断学生成绩是否合格,全部将其按照合格处理。
经过分布调试法的运行,发现了问题所在,是由于在if语句括号后面不慎加了一个“;”符号,导致if判断之后执行的是空语句,而全原本应该判断之后再执行的语句则被无条件执行,从而导致了无法正确筛选学生的结果。
在发现该原因之后,删除此“;”符号,程序即运行正确。
4.1.3排版错误
在调试过程中,除了出现了语法错误和算法错误之外,还出现了输出结果的排版错误,即在程序写入结果的文本文件中信息混乱,很难辨别信息,这会给用户造成很大的不方便。
为了解决此问题,在输出语句中加了一些转义字符“\t”和一些分隔线,这样就能有效的分开不同的数据信息,使界面更清晰美观,极大的方便了用户查看。
4.14磁盘文件读写错误
在运用磁盘文件时遇到了不小的麻烦,不能正确的读出原有的图书的信息而造成重新录入时复值出现错误,造成写入磁盘文件不能写入或写入出现错误,经常出现“烫”,经过调试和分析,源文件的光标最后所处的位置可能会影响磁盘文件的读写而出现错误,
4.2对设计和编码的回顾
此程序在设计的过程中考虑到了算法的简便性,由于此程序实现的功能较为简单,所以在算法设计的过程中避开了一些容易出错的语句。
所以此程序总体来看算法较为简单,且语法结构较为单一。
4.3对时空效率分析
本程序实现的功能的较为简单,且算法并不复杂,执行步骤也不多,程序源代码只有五百多行,所以运行起来几乎对计算机CPU无任何影响,对内存空间的占用很小;在时间上,本程序也几乎是瞬间完成执行,没有明显的时间等待。
4.4测试程序
4.5经验和体会
通过本次课程设计,我对c语言的学习与应用有了更加深刻的体会,也对一些基本语法结构、算法思想和程序设计方法更加的了解。
通过这次c语言课程设计,很大程度上锻炼了我们写程序的动手能力和自主思考能力。
利用所学知识,开发小型实用的应用系统,掌握运用C语言编写调试应用系统程序,对于我们独立开发应用系统并进行数据处理的综合能力是一个很大的提高。
通过这次c语言课程设计,很大程度上锻炼了我们写程序的动手能力和自主思考能力。
利用所学知识,开发小型实用的应用系统,掌握运用C语言编写调试应用系统程序,对于我们独立开发应用系统并进行数据处理的综合能力是一个很大的提高。
第五章、小结
本程序虽然实现了任务书中的基本要求,但还是存在一些需要以后解决的问题。
比如用户不能较方便的直接通过程序对学生信息进行操作,不能处理小数的分数信息等等。
在这次课程设计中,我体会到了,作为程序开发人员,不能仅仅站在开发者的角度去考虑问题、解决问题,面对一些实际问题时,也要站在用户的角度去看待问题,毕竟,我们开发出来的程序主要面对的就是用户,所以用户的需求与想法才是程序开发者最需要考虑关心的。
第六章、参考文献
[1]黄明等编著《C语言课程设计》北京:
电子工业出版社
[2]郭翠英编著《C语言课程设计案例精编》北京:
中国水利水电出版社
[3]宁正元《数据结构(c语言)》南京:
东南大学出版社。
2000年6月第1版
[4]严蔚敏等《数据结构(c语言版)》北京:
清华大学出版社,1997年4月第1版
[5]谭浩强编著《C程序设计题解与上机指导(第3版)》北京:
清华大学出版社
[6]谭浩强编著《C程序设计(第3版)》北京:
清华大学出版社
附录一、源程序清单
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
typedefstructtype//定义结构体该种小动物的信息
{
charsex[10];//性别
charage[10];//年龄
charcolor[10];//颜色
}TY;
typedefstructinformation//定义结构体小动物的各种信息
{
charnum[10];
charname[10];
TYA;
charsum[10];
}INF;
///函数声明
voidmenu();//子函数主菜单
voidmenu1();//菜单1
voidInformation();//子函数浏览全部宠物
voidWrite();//子函数新增宠物
voidChange();//子函数修改宠物
voidDelete();//子函数删除宠物
voidExit();//退出
voidmenu()//子函数主菜单1
{
inta;
charb;
M:
system("cls");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t\t1.......新宠物的增加..........\n");
printf("\n");
printf("\n");
printf("\t\t\t2.......宠物的修改...........\n");
printf("\n");
printf("\n");
printf("\t\t\t3.......宠物浏览............\n");
printf("\n");
printf("\n");
printf("\t\t\t4.......宠物的删除.............\n");
printf("\n");
printf("\n");
printf("\t\t\t5.......退出............\n");
printf("\n");
printf("\n");
printf("\t\t\t\t请输入你的选择:
");
L:
scanf("%d",&a);
switch(a)
{
case1:
Write();
gotoM;
break;
case2:
Change();
gotoM;
break;
case3:
Information();
printf("返回上一层请输入y,结束程序请输入任意键\n");
getchar();
scanf("%c",&b);
if(b=='y'||b=="Y")
{
gotoM;
}
break;
case4:
Delete();
gotoM;
break;
case5:
Exit();
break;
default:
printf("\n");
printf("\n");
printf("\t\t\t你输入的序号不存在,请重新输入:
");
gotoL;
}
}
voidmenu1()//子函数主菜单
{
system("cls");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t\t\t*******欢迎进入宠物店管理系统*******\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t\t\t******进入下一页面请按Enter键******\n");
printf("\n");
printf("\n");
getchar();
menu();
}
voidExit()
{
system("cls");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t\t\t*******再见*******");
getchar();
}
voidInformation()//浏览全部宠物
{
INFCPET[100];
inti,a;
FILE*fp;
system("cls");
fp=fopen("宠物的各种信息.txt","r+");
i=0;
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s",CPET[i].num,CPET[i].name,CPET[i].A.sex,CPET[i].A.age,CPET[i].A.color,CPET[i].sum);
i++;
}fclose(fp);
printf("编号\t名称\t性别\t年龄\t颜色\t数量\n");
for(a=0;a
{
printf("\n");
printf("%s\t%s\t%s\t%s\t%s\t%s\n",CPET[a].num,CPET[a].name,CPET[a].A.sex,CPET[a].A.age,CPET[a].A.color,CPET[a].sum);
printf("\n");
}
}
voidWrite()//录入函数
{
INFCPET[100];
FILE*fp;
inta,i,n;
charb;
system("cls");
fp=fopen("宠物的各种信息.txt","r+");
i=0;
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s",CPET[i].num,CPET[i].name,CPET[i].A.sex,CPET[i].A.age,CPET[i].A.color,CPET[i].sum);
i++;
}
a=i;
L:
printf("请输入你要录入的宠物的编号\n");
scanf("%s",CPET[a].num);
printf("\n");
printf("请输入你要录入的宠物的名字\n");
scanf("%s",CPET[a].name);
printf("\n");
printf("请输入你要录入的宠物的性别\n");
scanf("%s",CPET[a].A.sex);
printf("\n");
printf("请输入你要录入的宠物的年龄\n");
scanf("%s",CPET[a].A.age);
printf("\n");
printf("请输入你要录入的宠物的颜色\n");
scanf("%s",CPET[a].A.color);
printf("\n");
printf("请输入录入后该种宠物的数量\n");
scanf("%s",CPET[a].sum);
fp=fopen("宠物的各种信息.txt","w+");
for(n=0;n<=a;n++)
{
fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",CPET[n].num,CPET[n].name,CPET[n].A.sex,CPET[n].A.age,CPET[n].A.color,CPET[n].sum);
}
fclose(fp);
printf("录入完成,继续录入请输入y,完成录入请输入n\n");
getchar();
scanf("%c",&b);
if(b=='y'||b=='Y')
{
a=a+1;
system("cls");
gotoL;
getchar();
}
if(b=='n')
{
printf("信息录入成功,数据初始化正在进入上层界面\n");
}
}
voidChange()//修改宠物信息
{
INFCPET[100];
FILE*fp;
inta,i,b;
charc;
charn[100];
system("cls");
fp=fopen("宠物的各种信息.txt","r+");
i=0;
while(!
feof(fp))
{
fscanf(fp,"%s%s%s%s%s%s",CPET[i].num,CPET[i].name,CPET[i].A.sex,CPET[i].A.age,CPET[i].A.color,CPET[i].sum);
i++;
}
a=i;
printf("请输入你要修改的宠物编号\n");
L:
getchar();
gets(n);
for(i=0;i { if(strcmp(n,CPET[i].num)==0) { b=i; break; } } if(i==a) { printf("你输入的宠物编号不存在,请重新输入\n"); gotoL; } printf("请输入修改后的宠物的编号\n"); scanf("%s",CPET[b].num); printf("\n"); printf("请输入修改后的宠物的名称\n"); scanf("%s",CPET[b].name); printf("\n"); printf("请输入修改后的宠物的性别\n"); scanf("%s",CPET[b].A.sex); printf("\n"); printf("请输入修改后的宠物的年龄\n"); scanf("%s",CPET[b].A.age); printf("\n"); printf("请输入修改后的宠物的颜色\n"); scanf("%s",CPET[b].A.color); printf("\n"); printf("请输入修改后的该宠物的数量\n"); scanf("%s",CPET[b].sum); printf("\n"); fclose(fp); fp=fopen("宠物的各种信息.txt","w+"); for(i=0;i { fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",CPET[i].num,CPET[i].name,CPET[i].A.sex,CPET[i].A.age,CPET[i].A.color,CPET[i].sum); } fclose(fp); printf("修改完成\n"); printf("继续修改请输入y,完成修改请输入n.\n"); getchar(); scanf("%c",&c); if(c=='y'||c=='Y') { system("cls"); printf("请输入你要修改的宠物编号\n"); gotoL; } if(c=='n') { printf("信息保存成功,数据初始化需重新进入系统\n"); } } voidDelete()//删除宠物信息 { INFCPET[100]; FILE*fp; inta,i,b,flag=0; charc; charn[10]; system("cls"); fp=fopen("宠物的各种信息.txt","r+"); i=0; while(! feof(fp)) { fscanf(fp,"%s%s%s%s%s%s",CPET[i].num,CPET[i].name,CPET[i].A.sex,CPET[i].A.age,CPET[i].A.color,CPET[i].sum); i++; } a=i; printf("请输入你要删除的宠物的编号\n"); L: getchar(); gets(n); for(i=0;i { if(strcmp(n,CPET[i].num)==0) { b=i; flag=1; break; } } if(flag==1) { printf("\n\n"); printf("%s\t%s\t%s\t%s\t%s\t%s\n",CPET[i].num,CPET[i].name,CPET[i].A.sex,CPET[i].A.age,CPET[i].A.color,CPET[i].sum); printf("\n\n"); printf("正在删除此宠物信息,Enter键继续删除\n"); getchar(); } else { printf("你输入的宠物编号不存在请重新输入: \n"); gotoL; } for(i=b;i {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 宠物店 信息管理 系统