首先要运行我的第一段代码,这个是我的系统的激活工具,你运行这个小代码进行登录账号和密码的初始化
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char ch[2][10],temp[10];
if((fp=fopen("C:\\rao.din","w+"))==NULL)
{
printf("打开文件失败!");
exit(0);
}
printf("请输入账号:");
scanf("%s",ch[0]);
printf("请输入密码:");
scanf("%s",ch[1]);
fputs(ch[0],fp);
fputc('\n',fp);
fputs(ch[1],fp);
fclose(fp);
return 0;
}
/////-------------------------------------------------------------------
接下来就是我的系统函数了,可以用你的VC++运行,
记得密码是你先开始注册时的密码,
在系统中我有秘密的修改功能,所以说,那个注册程序只要第一次运行后,以后就不需要在运行了,就相当于微软系统的一个激活工具啥的,
进入系统后必须进行商品信息的采集(就是选择0),采集信息你想输入多少就输入多少,因为我的用的动态链表操作内存存储,在输入完毕后所有的商品信息输入为0,就表示信息采集完毕,就可以各种操作了。说不定以后会帮上你们的忙,嘿嘿,我现在进军C++了。
/*** **
** 饶进阳C语言课程设计---商品进销管理系统 **
** 湖北工业大学 **
** ***/
//------------------头文件-------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//----------------------界面函数声明-------------------------------
void anzhuang(void);
void jindutiao(void);
int jiemian(void);
int load(void);
//----------------------菜单前期中间操作---------------------------
void print(struct Sp *head);
void xuanxiang(void);
//------------------------选项界面---------------------------------
struct Sp *creat(void);
void xiugai(struct Sp *head);
struct Sp *shanchu(struct Sp *head);
void add(struct Sp *head);
void press(struct Sp *head);
void sousuo(struct Sp *head);
void xianshi(struct Sp *head);
//-----------------------密码登陆界面------------------------------
int first_load(void);
void two_load(void);
//-----------------------宏定义和全局变量的定义--------------------
#define LEN sizeof(struct Sp)
int n;
//-----------------------结构体------------------------------------
struct Sp
{
char name[10];
char price[10];
char manyin[10];
char manyout[10];
struct Sp *next;
};
//------------------------主函数-----------------------------------//
/* **
** **
** **
**-----------------------------------------------------------------*/
int main()
{ struct Sp *rao;
int i,j;
jiemian();
for(;;)
{ j=first_load();
if(j)
{ printf("\n\n\t\t 密码正确....");
printf("\n\n\t\t **每天开心一点,祝你每天幸福快乐**");
_sleep(2000);
system("cls");
break;
}
printf("\n\n\t\t 密码错误....");
printf("\n\n\t\t **别灰心!再来一次,加油!**");
_sleep(2000);
system("cls");
}
do
{
system("cls");
xuanxiang();
scanf("%d",&i);
switch(i)
{
case 0: system("cls"),rao=creat();break;
case 1: system("cls"),xiugai(rao);break;
case 2: system("cls"),rao=shanchu(rao);break;
case 3: system("cls"),add(rao);break;
case 4: system("cls"),press(rao);break;
case 5: system("cls"),sousuo(rao);break;
case 6: system("cls"),print(rao);break;
case 7: system("cls"),two_load();break;
case 8: system("cls");printf("\n\n\n\n\t\t\t\t正在退出....");_sleep(3000);system("cls");return 0;
}
}while(1);
return 0;
}
//---------------------------界面的开机的函数---------------------------------------
int jiemian(void)//**********************************************************
{
int i;
for(i=1;i<=100;i++)
{
anzhuang();
_sleep(5);
system("cls");
}
return 0;
}
//---------------------------界面安装的程序被界面函数调用-----------------------------
void anzhuang(void)//*****************************************************************
{
int i;
printf("\n\t\t .......【HBUT】......");
printf("\n\t\t\t *******************************\n");
for(i=1;i<2;i++)
{
printf("\t\t\t \n");
}
printf("\t\t\t 欢 迎 使 用 商 品 进 销 管 理 系 统");
for(i=1;i<2;i++)
{
printf("\t\t\t \n");
}
printf("\t\t\t 正 在 启 动 请 稍 后\n");
jindutiao();
putchar('\n');
printf("\t\t\t *******************************");
printf("\n\t\t 饶进阳C语言课程设计作品\n");
printf("\t\t Copyright received by Mr.jinyang rao");
}
//--------------------------有进度开机提示界面和进度条----------------------------------
void jindutiao(void)//******************************************************************
{
static int i=1;
char ch;
printf("\t\t\t %d%%\n",i);
switch(i/10)
{
case 1:printf("\t\t\t ->请稍后.");break;
case 2:printf("\t\t\t -->请稍后..");break;
case 3:printf("\t\t\t --->请稍后...");break;
case 4:printf("\t\t\t ---->请稍后.");break;
case 5:printf("\t\t\t ----->请稍后..");break;
case 6:printf("\t\t\t ------>请稍后...");break;
case 7:printf("\t\t\t ------->请稍后.");break;
case 8:printf("\t\t\t -------->请稍后..");break;
case 9:printf("\t\t\t --------->请稍后...");break;
case 10:printf("\t\t\t ---------->请稍后.");break;
}
i++;
}
//-----------------------------creat动态链表的构建--------------------------------------
struct Sp *creat()//****************************************************************
{
struct Sp *p1,*p2;
struct Sp *endline1,*endline2;
struct Sp *head=NULL;
n=1;
p2=p1=(struct Sp *)malloc(LEN);
head=p1;
printf("\n\n\t\t 请输入商品信息进行初始化\n");
printf("\t\t-----------------------------------------\n");
printf("\t\t第 %d 个商品的信息\n",n);
printf("\t\t商品名称:");
scanf("%s",p1->name);
printf("\t\t商品价格(元):");
scanf("%s",p1->price);
printf("\t\t商品进库量:");
scanf("%s",p1->manyin);
printf("\t\t商品出货(出仓)量:");
scanf("%s",p1->manyout);
printf("\n");
while(strcmp(p1->name,"0"))
{
if(n==1) p2=p1,n++;
else
{
p1=(struct Sp *)malloc(LEN);
p2->next=p1;
printf("\t\t第 %d 个商品的信息\n",n);
printf("\t\t商品名称:");
scanf("%s",p1->name);
printf("\t\t商品价格(元):");
scanf("%s",p1->price);
printf("\t\t商品进库量:");
scanf("%s",p1->manyin);
printf("\t\t商品出货(出仓)量:");
scanf("%s",p1->manyout);
printf("\n");
p2=p1;
n++;
}
}
p2->next=NULL;
getchar();
for(;;)
{
printf("\n\t\t----------请按enter键返回主菜单------------\n");
if(getchar()=='\n')
return head;
}
}
//---------------------------------链表的打印程序----------------------------
void print(struct Sp *head)//*******************************************************
{
struct Sp *read;
read=head;
printf("\n\n\n\t\t 商品信息\n");
printf("\t\t ---------------------------------------------\n");
while(read->next!=NULL)
{
printf("\t\t 商品名称: %-s\n",read->name);
printf("\t\t 商品价格(元): %-s\n",read->price);
printf("\t\t 入仓的量(个): %-s\n",read->manyin);
printf("\t\t 出仓的量(个): %-s\n",read->manyout);
read=read->next;
}
getchar();
for(;;)
{
printf("\n\t\t----------请按enter键返回主菜单------------\n");
if(getchar()=='\n')
return;
}
}
//---------------------------------选项界面-----------------------------------
void xuanxiang(void)//*******************************************************
{
printf("\n\n\t\t\t 欢迎使用商品管理系统\n");
printf("\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("\t\t\t 0 商品信息的创建\n\n");
printf("\t\t\t 1 商品信息的修改\n\n");
printf("\t\t\t 2 单个商品信息删除\n\n");
printf("\t\t\t 3 增加单个商品信息\n\n");
printf("\t\t\t 4 打印商品信息文本\n\n");
printf("\t\t\t 5 搜索商品信息\n\n");
printf("\t\t\t 6 显示商品目录\n\n");
printf("\t\t\t 7 修改登录账户和密码\n\n");
printf("\t\t\t 8 EXIT!\n");
printf("\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
}
//-------------------------------修改功能函数--------------------------------
void xiugai(struct Sp *head)//************************************************
{
char name[10];
struct Sp *p;
p=head;
printf("\n\n\n\t\t 商品信息修改\n");
printf("\t\t ---------------------------------------------\n");
printf("\n\n\t\t 请输入你想修改的商品的名称:");
scanf("%s",name);
do
{
if(strcmp(name,p->name)==0)
{
printf("\n\t\t 你想要修改的商品价格:");
scanf("%s",p->price);
printf("\n\t\t 你想要修改的商品入仓量:");
scanf("%s",p->manyin);
printf("\n\t\t 你想要修改的商品出仓量:");
scanf("%s",p->manyout);
}
p=p->next;
}while(p->next!=NULL);
getchar();
for(;;)
{
printf("\n\t\t----------请按enter键返回主菜单------------\n");
if(getchar()=='\n')
return;
}
}
//-------------------------------链表节点删除的函数--------------------------------
struct Sp *shanchu(struct Sp *head)//***********************************************
{
struct Sp *p1,*p2;
struct Sp *new_head;
char new_name[10];
int flag=1;
p1=p2=head;
new_head=head;
printf("\n\n\n\t\t 信息删除\n");
printf("\t\t ------------------------------------------\n");
printf("\t\t 输入你想删除的商品名称:");
scanf("%s",new_name);
while((p1->next!=NULL)&&flag)
{
if(!strcmp(p1->name,new_name))
{
if(p1==head)
{
new_head=p1->next;
free(p1);
flag=0;
}
else
{
p2->next=p1->next;
free(p1);
flag=0;
}
}
else
{
p2=p1;
p1=p2->next;
}
}
if(flag)
{
printf("\n\n\t\t没找到你想删去的商品!");
}
getchar();
for(;;)
{
printf("\n\t\t ----------请按enter键返回主菜单------------\n");
if(getchar()=='\n')
return new_head;
}
}
//--------------------------------链表节点的增加的函数-----------------------------
void add(struct Sp *head)//********************************************************
{
struct Sp *p,*new_p;
p=head;
while(1)
{
if(!strcmp(p->name,"0"))
{
new_p=(struct Sp *)malloc(LEN);
printf("\n\n\n\t\t 输入你想增加的商品信息\n");
printf("\t\t --------------------------------------------\n");
printf("\n\t\t 请输入商品名称:");
scanf("%s",p->name);
printf("\n\t\t 请输入商品价格(元):");
scanf("%s",p->price);
printf("\n\t\t 请输入商品最初库存量(个):");
scanf("%s",p->manyin);
printf("\n\t\t 请输入商品出货(出仓)量(个):");
scanf("%s",p->manyout);
p->next=new_p;
strcpy(new_p->name,"0");
strcpy(new_p->price,"0");
strcpy(new_p->manyin,"0");
strcpy(new_p->manyout,"0");
new_p->next=NULL;
getchar();
for(;;)
{
printf("\n\t\t----------请按enter键返回主菜单------------\n");
if(getchar()=='\n')
return;
}
}
p=p->next;
}
}
//-------------------------------搜索商品信息的函数----------------------------------
void sousuo(struct Sp *head)
{
struct Sp *p1,*p2;
char findname[10];
int flag=1;
p1=p2=head;
printf("\n\n\n\t\t 搜搜商品信息\n");
printf("\t\t --------------------------------------------\n");
printf("\t\t 请输入你想搜索的商品名称:");
scanf("%s",findname);
while((p1->next!=NULL)&&flag)
{
if(!strcmp(p1->name,findname))
{
printf("\t\t 商品名称: %-s\n",p1->name);
printf("\t\t 商品价格(元): %-s\n",p1->price);
printf("\t\t 入仓的量(个): %-s\n",p1->manyin);
printf("\t\t 出仓的量(个): %-s\n",p1->manyout);
flag=0;
}
else
{
p1=p2->next;
p2=p1;
}
}
if(flag)
{
printf("\n\t\t 无此商品信息!!!\n");
}
getchar();
for(;;)
{
printf("\n\t\t----------请按enter键返回主菜单------------\n");
if(getchar()=='\n')
return;
}
}
//-------------------------------开机页面的安全登陆----------------------------------
int first_load(void)//*******************************************************************
{
FILE *fp;
int i;
char ch[2][20];
char load[2][20];
if((fp=fopen("C:\\rao.din","r+"))==NULL)//注意这里的文件保存位置---------<<<<<<<<<<<<<
{
printf("cannot open the file!");
exit(0);
}
fgets(ch[0],20,fp);
fgets(ch[1],20,fp);
i=strlen(ch[0]);
ch[0][i-1]='\0';
printf("\n\n\t\t 【用户登录】\n");
printf("\t\t ---------------------------------\n\n");
printf("\t\t 请输入账号:");
scanf("%s",load[0]);
printf("\n\t\t 请输入密码:");
scanf("%s",load[1]);
if((!strcmp(load[0],ch[0]))&&(!strcmp(load[1],ch[1])))
{
printf("\n\t\t 正在验证用户信息...\n");
_sleep(2000);
system("cls");
fclose(fp);
return 1;
}
else
{
printf("\n\t\t 正在验证用户信息...\n");
_sleep(2000);
system("cls");
fclose(fp);
return 0;
}
}
//---------------------------------用户账号密码动态修改------------------------------------
/*****************************************************************************************
** **
** 要事先运行一个创建初始密码的小函数 **
*****************************************************************************************/
void two_load(void)//**************************************************
{
FILE *fp;
char ch[2][10];
if((fp=fopen("C:\\rao.din","w+"))==NULL)
{
printf("打开文件失败!");
exit(0);
}
printf("\n\n\n\t\t 账户密码修改\n");
printf("\n\t\t -----------------------------------------------\n");
printf("\n\t\t 请输入账号:");
scanf("%s",ch[0]);
printf("\n\t\t 请输入密码:");
scanf("%s",ch[1]);
fputs(ch[0],fp);
fputc('\n',fp);
fputs(ch[1],fp);
fclose(fp);
getchar();
for(;;)
{
printf("\n\t\t----------请按enter键返回主菜单------------\n");
if(getchar()=='\n')
return;
}
}
//----------------------------------把商品信息打印成txt文件的函数----------------------------
/******************************************************************************************
** **
** 在C盘会创建一个“商品信息.txt”文件 **
******************************************************************************************/
void press(struct Sp *head)//*******************************************************
{
FILE *fp;
struct Sp *headf;
char name_sp[1][10];
char price_sp[1][10];
char many_in[1][10];
char many_out[1][10];
headf=head;
if((fp=fopen("C:\\商品信息.txt","w+"))==NULL)
{
printf("error!\n");
exit(0);
}
do
{
strcpy(name_sp[0],headf->name);
strcpy(price_sp[0],headf->price);
strcpy(many_in[0],head->manyin);
strcpy(many_out[0],head->manyout);
fputs(name_sp[0],fp);
fputc(' ',fp);
fputs(price_sp[0],fp);
fputc(' ',fp);
fputs(many_in[0],fp);
fputc(' ',fp);
fputs(many_out[0],fp);
fputc('\n',fp);
headf=headf->next;
}while(headf->next!=NULL);
fclose(fp);
printf("\n\n\t\t-------------------------------------------------");
printf("\n\t\t 已经保存在C盘的“商品信息.txt”文件中\n");
getchar();
for(;;)
{
printf("\n\t\t ----------请按enter键返回主菜单------------\n");
if(getchar()=='\n')
return;
}
}
//--------------------------------------------------------------------------------
|