搜索
查看: 1576|回复: 1
打印 上一主题 下一主题

[原创] 嘿嘿,我的C语言课程设计共享吧!

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-18 22:14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先要运行我的第一段代码,这个是我的系统的激活工具,你运行这个小代码进行登录账号和密码的初始化
#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;
}
}
//--------------------------------------------------------------------------------


沙发
发表于 2013-3-21 21:48:23 | 只看该作者
现在的我只能用仰望的角度看楼主,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表