软件基础课程设计化学仪器管理系统.docx
《软件基础课程设计化学仪器管理系统.docx》由会员分享,可在线阅读,更多相关《软件基础课程设计化学仪器管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
软件基础课程设计化学仪器管理系统
软件基础课程设计
——化学仪器管理系统
编写人:
同组成员:
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
完成日期:
2011年6月24日
辅导教师:
批阅日期:
分数:
目录
一.程序功能简介2
二.总体设计部分2
三.源程序及注释4
四.运行结果10
五.小组分工及讨论14
一.程序功能简介
我们所制作的化学仪器管理系统是一个基本的仪器管理程序,具有录入、删除、显示、修改和查询五个功能功能。
存储的数据包括:
仪器名称,仪器数量,仪器借出数量,新增仪器名称,新增仪器数量。
有如下功能:
1)仪器添加记录(仪器名称,仪器代号,仪器数量);
2)仪器删除记录;
3)查询功能(仪器名称查询);
要求:
程序运行开始,首先显示一个命令菜单。
用户选择那条命令,就调用那项功能。
主菜单如图
(1)所示:
每个菜单项功能如下:
1.添加仪器记录:
请输入储存仪器的名称,如果该用户已经存在则显示,否则,输入进行添加。
2.显示仪器详细记录:
显示所录入仪器信息。
3.查找仪器记录:
输入仪器名称,显示信息,进行修改。
4.删除仪器记录:
显示删除仪器后的记录。
5.修改仪器记录:
修改原有仪器记录。
0.退出:
退出此次操作。
二.总体设计部分
1、设计思路
进入主循环
调用函数输出菜单
输入[0~5]中的一个数值,
选择相应操作
否
是
判断键值,调用相应函数,
完成相应功能
2、功能模块设计:
本程序主要的数据结构是线性链表,它由四大模块组成
3、所调用函数:
1.main函数:
通过显示各个部分的功能,再用开关语句进行需选择,以调用各相关函数;
2.delete函数:
通过对此函数的运用,进行删除整条记录的操作;
3.insert函数:
通过对此函数的运用,进行添加一次记录的操作:
4.modify函数:
通过对此函数的运用,进行分别修改相关记录的操作;
5.printf函数:
通过对此函数的运用,进行显示相关记录的操作;
6.search函数:
通过对此函数的运用,输入首字母后可进行查找相关整条记录的操作。
三.源程序及注释
#include
#include
#include
#include
#include
#defineCMstructcm
structcm
{
charchemistrystrumentname[30];
charchemistrystrumentnumber[40];
intchemistrystrumentcount;
CM*next;
};
intpc=0;
/*输入添加记录*/
CM*insert(CM*head)
{system("cls");
system("color17");
CM*temp,*p1,*p2;
printf("插入操作开始!
!
!
\n");
temp=(CM*)malloc(sizeof(CM));
printf("请输入化学仪器名称:
\n");
scanf("%s",temp->chemistrystrumentname);
getchar();
printf("请输入仪器代号:
\n");
scanf("%s",temp->chemistrystrumentnumber);
getchar();
printf("请输入仪器数量:
\n");
scanf("%d",&temp->chemistrystrumentcount);
getchar();
if(head==NULL)
{head=temp;temp->next=NULL;}
else
{p1=head;
while(p1!
=NULL)
{p2=p1;p1=p1->next;}
p2->next=temp;
temp->next=p1;
}
printf("插入成功");
pc++;
return(head);
}
/*查找记录*/
CM*search(CM*head)
{system("cls");
system("color17");
CM*p1,*p2;
intflag=0;
charc;
printf("请输入仪器名称的首字母:
");
scanf("%s",&c);getchar();
p1=head;
while(p1!
=NULL)
{if(p1->chemistrystrumentname[0]==c)
{
printf("化学仪器名称:
%s\t仪器代号:
%s\t仪器数量:
%d\n",p1->chemistrystrumentname,p1->chemistrystrumentnumber,p1->chemistrystrumentcount);
flag=1;
}
p2=p1;p1=p1->next;}
if(flag==0)
printf("未找到符合记录!
\n");
returnhead;
}
/*删除记录*/
CM*delet(CM*head)
{system("cls");
system("color17");
CM*p1,*p2;
charstr[20];
printf("请输入要删除的仪器名称:
");
scanf("%s",str);
getchar();
p1=head;
if(head==NULL)
{
printf("没有记录\n");
gotoend;
}
while(p1!
=NULL&&strcmp(p1->chemistrystrumentname,str)!
=0)
{
p2=p1;p1=p1->next;
}
if(p1==NULL)
printf("未找到符合记录!
\n");
elseif(strcmp(p1->chemistrystrumentname,str)==0)
{
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("成功!
!
!
\n");
pc--;
}
end:
return(head);
}
/*修改记录*/
CM*modify(CM*head)
{system("color17");
CM*p1,*p2;
intmode;
charstr[20];
printf("\n请输入要修改记录的化学仪器名称:
\n");
scanf("%s",str);
getchar();
p1=head;
while(p1!
=NULL)
{
if(strcmp(p1->chemistrystrumentname,str)==0)
{
printf("\n1.化学仪器名称:
%s\n",p1->chemistrystrumentname);
printf("\n2.仪器代号:
%s\n",p1->chemistrystrumentnumber);
printf("\n3.仪器数量:
%d\n",p1->chemistrystrumentcount);
printf("\n请选择要修改选项:
\n");
scanf("%d",&mode);
getchar();
if(mode==1)
{
printf("请输入修改后的化学仪器名称\n");
scanf("%s",p1->chemistrystrumentname);
printf("\t\t\n");
printf("***修改成功***\n");
getchar();
}
elseif(mode==2)
{
printf("请输入修改后的仪器代号\n");
scanf("%s",p1->chemistrystrumentnumber);
printf("\t\t\n");
printf("***修改成功***\n");
getchar();
}
elseif(mode==3)
{
printf("请输入修改后的仪器数量\n");
scanf("%d",&p1->chemistrystrumentcount);
printf("\t\t\n");
printf("修改成功!
!
!
\n");
getchar();
}
else
printf("输入有误!
\n");
break;
}
p2=p1;p1=p1->next;
}
if(p1==NULL)printf("未找到符合要求的记录!
\n");
returnhead;
}
/*显示结果函数*/
voidprint(CM*head)
{system("cls");
system("color17");
CM*p;
p=head;
printf("显示结果是:
\n");
printf("化学仪器名称\t\t\t仪器代号\t\t\t仪器数量\n");
if(head!
=NULL)
do
{printf("%s\t\t\t\t%s\t\t\t\t%d\n",p->chemistrystrumentname,p->chemistrystrumentnumber,p->chemistrystrumentcount);
p=p->next;
}while(p!
=NULL);
}
/*主函数*/
voidmain()
{system("cls");
system("color17");
CM*head=NULL;
intchoise;
printf("\t\t\n");
printf("\t\t\n");
printf("\t\t\n");
printf("\t\t****软件基础课程设计****\n");
while
(1)
{printf("\t\t\n");
printf("\t\t欢迎使用化学仪器管理系统\n");
printf("*****************\t\n");
printf("*1.添加仪器记录*\t\n");
printf("*2.显示仪器详细记录*\t\n");
printf("*3.查找仪器记录*\t\n");
printf("*4.删除仪器记录*\t\n");
printf("*5.修改仪器记录*\t\n");
printf("*0.退出*\t\n");
printf("*****************\n");
printf("\t\t\n");
printf("请选择(0-5):
");
scanf("%d",&choi