
本系统主要功能:
1) 新购物品入库
2) 物品信息删除
3) 物品信息修改
4) 物品信息查询
5)物品信息浏览
数据结构
struct ima
{
int id;
char name[20];
char produce[30];
int number;
float price;
};
模块划分
原函数清单
1、创建函数
void chushihua()
2、增加物品函数
Tianjia();
3、删除物品信息函数
Shanchu();
4、修改物品信息函数
Xiugai();
5、查询物品信息函数
Chazhao();
6、浏览物品信息函数
Liulan();
7、系统颜色设置函数
yanseshezhi();
8、应用程序退出函数
Jieshu();
开发工具和编程语言:
编程语言:C语言
开发工具:microsoft visual C++ 6.0
详细设计
1、结构体变量的定义:
struct ima
{
int id;
char name[20];
char produce[30];
int number;
float price;
};
3、文件的初始化:
void chushihua()
{
FILE *fp;
struct ima i={1,"123","1234",1200,2.5};
fp=fopen("ima.dat
if(fp==NULL)
{
printf("\\\系统错误,请重试........");
exit(0);
}
fwrite(&i,sizeof(struct ima),1,fp);
fclose(fp);
}
4、欢迎菜单(主函数):
void main()
{
char a[20],b[]="123";
int i=0;
printf("请输入密码,按回车结束\\n");
while((a[i]=getch())!=13)
{
printf("*");
i++;
}
a[i]='\\0';
if(strcmp(a,b)==0)
printf("\\n密码正确\\n");
else
{
printf("\\n密码错误\\n");
return;
}
printf("\\n\\n");
printf("\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\n");
printf("\x x\\n");
printf("\x x\\n");
printf("\x 欢迎使用 x\\n");
printf("\x x\\n");
printf("\x x\\n");
printf("\x 超市商品管理系统 x\\n");
printf("\x 按任意键继续 x\\n");
printf("\x x\\n");
printf("\x x\\n");
printf("\x x\\n");
printf("\x x\\n");
printf("\x x\\n");
printf("\x \\3\\n");
printf("\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
getch();
system("cls");
menu();
initialization();
menu();
}
密码加密
{
char a[20],b[]="123";
int i=0;
printf("请输入密码,按回车结束\\n");
while((a[i]=getch())!=13)
{
printf("*");
i++;
}
a[i]='\\0';
if(strcmp(a,b)==0)
printf("\\n密码正确\\n");
else
{
printf("\\n密码错误\\n");
return;
}
调试分析
在密码加密部分花费了较多心思,最后终于决定用if语句来进行最后判断比较合适
调试结果
1密码验证部分:
2欢迎界面
3主菜单页面
4物品信息浏览及新物品入库
心得总结
虽然只上了半个学期的C语言课程,但是本来对电脑就有几分兴趣的我对C语言也产生了极大的兴趣,但是真正要写起程序来就遇到了很大的困难,首先不知道该如何下手,不知道自己做的这个程序要实现什么样的功能.最后在到网上查询了许多相关资料后开始入手,这个程序说实话属于我自己的东西比较少,但是都是我一字一句读懂别人程序后写下来的,最后,对于网上的源程序是没有开头的密码验证的,这个是属于我自己编写的东西,也是花费了不少心思.
源程序
#include "stdafx.h"
#include #include #include #include struct ima { int id; char name[20]; char produce[30]; int number; float price; }; void Append(); void Selldelete(); void Amend(); void Findin(); void Browse(); void colorsetting(); void Endprogram(); void initialization() { FILE *fp; struct ima i={1,"123","1234",1200,2.5}; fp=fopen("ima.dat恶","w"); if(fp==NULL) { printf("\\\系统错误,请重试........"); exit(0); } fwrite(&i,sizeof(struct ima),1,fp); fclose(fp); } void menu() { int choice; printf("\\n------------------------【超市库存管理系统】-----------------------\\n"); printf("\\n\1=====================【 新购物品入库 】\\n"); printf("\\n\2=====================【 物品信息删除 】\\n"); printf("\\n\3=====================【 物品信息修改 】\\n"); printf("\\n\4=====================【 物品信息查询 】\\n"); printf("\\n\5=====================【 物品信息浏览 】\\n"); printf("\\n\6=====================【 应用程序退出 】\\n"); printf("\\n\请输入您要选择的菜单......"); scanf("%d",&choice); switch(choice) { case 1: Append(); break; case 2: Selldelete(); break; case 3: Amend(); break; case 4: Findin(); break; case 5: Browse(); break; case 6: Endprogram(); break; default: printf("\\n\\\\\输入无效,请您重新输入......"); getch(); system("cls"); menu(); } } int validateID(int id) { FILE *fp; struct ima i; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\\\系统错误,请您重试........"); exit(0); } fread(&i,sizeof(struct ima),1,fp); while(!feof(fp)) { if(i.id==id) { fclose(fp); return 1; break; } fread(&i,sizeof(struct ima),1,fp); } fclose(fp); return 0; } void Append() { struct ima i; char choice; FILE *fp; fp=fopen("ima.date","ab"); if(fp==NULL) { printf("\\\系统错误,请您重试........"); exit(0); } labID: printf("\\n\请您输入要入库物品的信息...\\n"); printf("\\\\ 物品的编号:"); scanf("%d",&i.id); if(validateID(i.id)==1) { printf("\\\\此编号已被使用,请您重新输入......"); goto labID; } printf("\\\\ 物品的名称:"); scanf("%s",i.name); printf("\\\\ 物品的生产地:"); scanf("%s",i.produce); printf("\\\\ 物品的数量:"); scanf("%d",&i.number); printf("\\\\ 物品的单价:"); scanf("%f",&i.price); fwrite(&i,sizeof(struct ima),1,fp); fclose(fp); printf("\\\\\\ 物品信息已入库成功!!!\\n"); printf("\\n您想继续吗?(y/n)"); scanf(" %c",&choice); if(choice=='Y'||choice=='y') { Append(); } else { system("cls"); menu(); } } void Selldelete() { struct ima i[1000]; struct ima temp; int delID; char choice; int index=0; int j=0; FILE *fp; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\\\系统错误,请您重试........"); exit(0); } fread(&temp,sizeof(struct ima),1,fp); while(!feof(fp)) { i[index]=temp; index++; fread(&temp,sizeof(struct ima),1,fp); } fclose(fp); printf("\\n\请输入要删除的物品的编号:"); scanf("%d",&delID); fopen("f:\\\\ima.date","w"); if(fp==NULL) { printf("\\\系统错误,请您重试........"); exit(0); } for( j=0;j if(i[j].id!=delID) { fwrite(&i[j],sizeof(struct ima),1,fp); } } fclose(fp); printf("\\\\\物品信息已清除!!!\\n"); printf("\\n您想继续吗?(y/n)"); scanf(" %c",&choice); if(choice=='Y'||choice=='y') { Selldelete(); } else { system("cls"); menu(); } } void Amend() { int index=0; int ID,j; char choice; struct ima i[1000]; struct ima temp; FILE *fp; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\\\系统错误,请您重试........"); exit(0); } fread(&temp,sizeof(struct ima),1,fp); while(!feof(fp)) { i[index]=temp; index++; fread(&temp,sizeof(struct ima),1,fp); } fclose(fp); fp=fopen("ima.date","w"); if(fp==NULL) { printf("\\\\\系统错误,请您重试........"); exit(0); } printf("\\n\请输入要修改的信息的物品的编号:"); scanf("%d",&ID); for(j=0;j<=index-1;j++) { if(i[j].id!=ID) { fwrite(&i[j],sizeof(struct ima),1,fp); } else { printf("\\物品名称修改为:"); scanf("%s",i[j].name); printf("\\物品生产地修改为:"); scanf("%s",i[j].produce); printf("\\物品数量修改为:"); scanf("%d",&i[j].number); printf("\\物品单价修改为:"); scanf("%f",&i[j].price); fwrite(&i[j],sizeof(struct ima),1,fp); } } fclose(fp); printf("\\\\物品信息已修改......"); printf("\\n您想继续吗?(y/n)"); scanf(" %c",&choice); if(choice=='Y'||choice=='y') { Amend(); } else { system("cls"); menu(); } } void Findin() { FILE *fp; int findID;char choice;struct ima i; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\\\系统错误,请你重试........"); exit(0); } finID: printf("\\n\请输入要查询的物品的编号.."); scanf("%d",&findID); fread(&i,sizeof(struct ima),1,fp); while(!feof(fp)) { if(i.id==findID) { printf("\\n\\n\***************物品信息******************"); printf("\\n\物品编号...%30d\\n",i.id); printf("\\n\-----------------------------------------"); printf("\\n\物品名称...%30s\\n",i.name); printf("\\n\-----------------------------------------"); printf("\\n\生产厂家...%30s\\n",i.produce); printf("\\n\-----------------------------------------"); printf("\\n\进口数量...%30d\\n",i.number); printf("\\n\-----------------------------------------"); printf("\\n\批发价格...%30.3f\\n",i.price); printf("\\n\-----------------------------------------"); printf("\\n您想继续吗?(y/n)"); scanf(" %c",&choice); if(choice=='Y'||choice=='y') { Findin(); } else { system("cls"); menu(); } } fread(&i,sizeof(struct ima),1,fp); } fclose(fp); printf("\\\\\输入的编号不存在,请您重新输入......"); goto finID; } void Browse() { struct ima i; int index=0; char choice; FILE *fp; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\\\系统错误,请你重试........"); exit(0); } fread(&i,sizeof(struct ima),1,fp); while(!feof(fp)) { index++; printf("\\n\\n\****************物品信息%d*****************",index); printf("\\n\物品编号...%30d\\n",i.id); printf("\\n\-----------------------------------------"); printf("\\n\物品名称...%30s\\n",i.name); printf("\\n\-----------------------------------------"); printf("\\n\生产厂家...%30s\\n",i.produce); printf("\\n\-----------------------------------------"); printf("\\n\进口数量...%30d\\n",i.number); printf("\\n\-----------------------------------------"); printf("\\n\批发价格...%30.3f\\n",i.price); printf("\\n\-----------------------------------------"); getch(); fread(&i,sizeof(struct ima),1,fp); } fclose(fp); printf("\\n您想继续吗?(y/n)"); scanf(" %c",&choice); if(choice=='Y'||choice=='y') { Browse(); } else { system("cls"); menu(); } } void Endprogram() {char choice; system("cls"); printf("\\n\\n\\n\\n\\n\\n\\n\\\您确定要退出系统吗?\\n\\n\\n\\\如果您想退出请按'y',其它键将返回主菜单....."); scanf(" %c",&choice); if(choice=='Y'||choice=='y') { system("cls"); printf("\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\\\谢谢您的使用!!!"); printf("\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n"); } else { system("cls"); menu(); } } void main() { char a[20],b[]="123"; int i=0; printf("请输入密码,按回车结束\\n"); while((a[i]=getch())!=13) { printf("*"); i++; } a[i]='\\0'; if(strcmp(a,b)==0) printf("\\n密码正确\\n"); else { printf("\\n密码错误\\n"); return; } printf("\\n\\n"); printf("\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\n"); printf("\x x\\n"); printf("\x x\\n"); printf("\x 欢迎使用 x\\n"); printf("\x x\\n"); printf("\x x\\n"); printf("\x 超市商品管理系统 x\\n"); printf("\x 按任意键继续 x\\n"); printf("\x x\\n"); printf("\x x\\n"); printf("\x x\\n"); printf("\x x\\n"); printf("\x x\\n"); printf("\x \\3\\n"); printf("\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); getch(); system("cls"); menu(); initialization(); menu(); }
