超市储物柜系统C语言Word文档下载推荐.docx
《超市储物柜系统C语言Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《超市储物柜系统C语言Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
二、课程设计内容
顾客在进入超市购物之前,可以用超市的“自由存取箱”存放自己随身带的物品。
这种存取箱有一个功能面板,面板上主要有“我要存包”按钮、密码纸条输出口、密码纸条扫描口三项用户接口。
当顾客按下“我要存包”按钮时,片刻从输出口输出一个小纸条,上面有随机生成的密码(扫描码),同时存取箱会自动开启一个正在闲置的小箱,顾客放入物品关上箱门即可;
当顾客取包时,只要将含有密码扫描码的纸条在存取箱的输入口轻轻一晃,存取箱就自动开启顾客存物品的小箱。
请设计程序模拟超市“自由存取箱”的使用过程。
(要求:
小箱的数量为100,密码为4位)
三、课程设计要求
程序质量:
✧贯彻结构化的程序设计思想。
✧至少有“我要存包”、“我要取包”、“退出程序”三个菜单。
✧用户界面友好,功能明确,操作方便。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
________学生签名:
________
五、成绩
六、教师评语
一、需求分析
根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。
该系统是一个较典型实用型系统,系统应该具有操作简单、稳定性的特点。
1.操作简单性
自由储物柜要求操作简单,管理方便,无需携带任何凭证。
2.稳定性分析
指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。
3.主要功能分析
(1)获取储物箱:
对于获取储物箱,用户需要存包时,可以用来获取储物箱,同时获取取包时的密码,以便取包时使用。
(2)打开储物箱:
当用户需要取包时,输入相应的箱子号码,并输入密码,密码正确则箱子打开。
二、设计分析
主要有2个功能模块,每个模块对应一个C语言自定义函数。
这些函数原型及其功能简述如下:
1、程序总体结构图(传统流程图或N-S框图)
Topic
getchar()
While
(1)
Menu()getchar()
Case'
1'
是
否
我要存包
2'
0'
是否
退出程序
输入有误
重新输入
图1程序总体结构图
2、主要功能模块框图(传统流程图或N-S框图)
(1)获取储物箱函数mima()
否
是
图2获取储物箱函数
(2)获取储物箱函数tuibao()
三、主要界面截图
图3程序主界面
图4数据修改界面
……等等……
四、技术要点
(对本程序贡献较大的C语言知识点;
重要算法的设计与实现)
1、结构体的应用
定义了结构体用来描述学生的姓名、学号、班级以及三门课程成绩。
具体的定义如下:
……略……
所定义的结构体主要用于定义数组。
2、文件操作
包括了文件的写入和读取两个方面。
文件的写入操作,用于保存录入的学生数据,也用于保存所修改的数据。
例如如下程序段用于保存录入的学生信息:
3、关于删除算法
实现从系统中删除某位同学的相关信息的算法稍微复杂一些,其实质是对数组某个或某些元素的删除操作。
对数组元素的删除操作完成后,再将数组写入到文件中,就完整地实现了“删除”。
在进行删除操作时,先对数组进行查询操作,以确定待删除的数组元素,然后,
五、个人总结
(写出在课程设计过程中的收获和体会,说明程序的优点和缺憾。
)
六、参考文献
(参考的书籍或互联网资源)
[1]谭浩强.C程序设计.北京:
清华大学出版社,2005
[2]……略……
七、源程序
#include<
stdio.h>
stdlib.h>
conio.h>
time.h>
voidmima();
voidmenu();
voidtuibao();
staticintk;
staticinta[100];
staticintb[100];
main()
{
inti,n;
while
(1)
{
system("
cls"
);
system("
color71"
menu();
printf("
欢迎您的光临\n请按照提示输入:
\n"
scanf("
%d"
&
n);
getchar();
switch(n)
{
case1:
mima();
getchar();
break;
case2:
tuibao();
case0:
exit(0);
default:
printf("
您的输入有误,请重新输入!
!
}
}
voidmenu()//界面菜单
\t\t\t\t超市密码存储箱系统\n"
\t\t\t\t1-----获取存储箱\n"
\t\t\t\t2-----打开存储箱\n"
\t\t\t\t0-----退出系统\n"
voidmima()//密码
inti,j,n;
srand((unsigned)time(NULL));
//随机种子
if(k<
100)
b[k]=1;
for(i=0;
i<
=100;
i++)
if(b[k]==b[i]&
&
i!
=k)
b[k]++;
else
break;
do
a[k]=rand()%900+1000;
=k;
if(a[k]==a[i])
{j=1;
break;
j=0;
}while(j==0&
i==k);
你的存储箱号码为:
%d\n"
b[k]);
你的开箱密码为:
a[k]);
k++;
else
printf("
\t\t\t没有空余的存储箱了,请稍后!
voidtuibao()
inti,j,n,m,h=0;
请输入你的存储箱的号码:
scanf("
for(i=1;
if(i==n&
a[i-1]!
=NULL)
{
color74"
printf("
\t\t\t*******\n"
\t\t\t**\n"
\t\t\t*满*\n"
h=1;
请输入存储箱的密码:
m);
if(m==a[i-1])
for(j=i-1;
j<
j++)
b[i-1]=b[i];
a[i-1]=a[i];
}
请取出您的物品,欢迎下次光临!
k--;
您输入的密码错误,请核对后输入!
if(h==0&
n>
0&
n<
=100)
{
\t\t\t*空*\n"
}
if(n<
=0&
printf("
您的输入有误!
"