| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1491 人关注过本帖
标题:课程设计桶装水管理系统,运行不了,求教!
只看楼主 加入收藏
chenhaihao
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-12-9
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
课程设计桶装水管理系统,运行不了,求教!
程序代码:
#include<stdio.h>
#include<stdlib.h>
#define SIZE 10
#include<string.h>
//#include<WinBase.h>
#include<windows.h>
struct user_date   //用户信息类型

{
    char name[10];//用户名字
    char tel[13]; //用户电话
    char Add[10]; //用户地址
    int amount;   //剩余桶装水数

    //float id;       //用户注册账号

    char secret[20];   //用户注册密码

}user[SIZE],zhuce,denglu;
int yonghu;
/************************主函数******************************************/

int main()
{
    void jiemian();
    jiemian();
    return 0;
   

}
/***************************子函数********************************************/

void jiemian()
    {

    int a1;
    void jiemianxiugai();//界面修改函数
    void printfmessege1();
    void printfmessege2();
    void printfmessege3();
    void yonghudenglu();//用户登录

    void yonghuzhuce();//用户注册
    void guangliyuandenglu();//管理员登录

    void yonghujiemian();//用户界面
    a1=0;
    jiemianxiugai();
    printfmessege1();
    printfmessege2();
    printfmessege1();
    printfmessege3();
    while(!a1)
    {
    scanf("%d",&a1);//选择功能1管理员登陆2用户登录3用户注册
    system("cls");//清屏

    switch(a1)
    {
        case 1:guangliyuandenglu();break;
        case 2:yonghudenglu();break;
        case 3:yonghuzhuce();break;
        default:printf("输入错误,请重新输入:"),a1=0;
    }
    }
    }
void jiemianxiugai()//界面修改

{
    system("color F5"); //修改窗口颜色0=黑色,8=灰色,1=蓝色,9=淡蓝色,2=绿色,A=淡绿色,
    //3=湖蓝色,B=浅绿色,4=红色,C=红色,5=紫色,D=淡紫色,6=黄色,E=淡黄色,7=白色,F=亮白色
}
void yonghudenglu()//用户登录

{
    void printfmessege1();
    printfmessege1();
    printf("\t用户登陆界面\n");
    printfmessege1();
    int i,ch,sh1;
    FILE *fp;

    if((fp=fopen("data.dat","rb"))==NULL)
    {
        printf("不能打开文件");
        exit(0);
    }
    void yonghujiemian();

    printf("账号:");
    scanf("%s",denglu.tel);
    printf("\n密码:");

    scanf("%s",denglu.secret);
    system("cls");//清屏
    for(i=0;i<SIZE;i++)
    {
        fread(&user[i],sizeof(struct user_date),1,fp);
        if(strcmp(user[i].tel,denglu.tel)==0) break;
        else if(i==SIZE-1)

        {
            printf("没有该用户的信息!请重新输入!\n");
            yonghudenglu();
        }
    }
    fclose(fp);
    if(strcmp(user[i].secret,denglu.secret)==0)

    {
        yonghu=i;
        yonghujiemian();
    }
    else

    {
        printf("密码错误,请重新输入!\n");
        yonghudenglu();

    }
}
void yonghuzhuce()//用户注册

{   

   FILE *fp;
   int ch;
   //char Linedata[50]={0},User[20],Pass[20];
   //char Linedata[70]={0},name[10], Add[10],secret[20],tel[20];
   if((fp=fopen("data.dat","rb+"))==NULL)//向文件写数据
    {
        if((fp=fopen("data.dat","wb"))==NULL)//向文件写数据
    {
        printf("不能打开文件");
        exit(0);
    }
    }
   fseek(fp,0,2);
   printf("注册信息登记:\n");
   printf("请输入你的名字:\n");
   fflush(stdin);
   gets(zhuce.name);
   printf("请输入你的电话号码:\n");
   fflush(stdin);
   gets(zhuce.tel);
   printf("请输入你的地址:\n");
   fflush(stdin);
   gets(zhuce.Add);
   printf("请输入你的密码:\n");
   fflush(stdin);
   gets(zhuce.secret);
   if(fwrite(&zhuce,sizeof(struct user_date),1,fp)!=1)//将修改后的信息写入文件

        printf("写入文件错误!");

    fclose(fp); //关闭文件
    printf("恭喜!注册成功!\n");
    Sleep(1000);   //界面持续时间是1S,在VC编译器常用
    printf("请选择:\n1.返回主界面");
    scanf("%d",&ch);
    system("cls");
    switch(ch)
    {
        case 1:main();break;
        default:exit(0);break;
    }

    system("cls");//清屏
   

}

void guangliyuandenglu()//管理员登录

{
    FILE *fp1;
    void guangliyuanjiemian();
    //system("cls");//清屏
    if((fp1=fopen("secret.dat","rb+"))==NULL)//打开存储密码的文件secret.dat

    {
        printf("不能打开文件");
        exit(0);
    }
    char secret1[20],guanliyuanmima[20];
    fread(secret1,20,1,fp1);
    printf("请输入管理员密码:");
    scanf("%s",guanliyuanmima);
    system("cls");

    if(strcmp(secret1,guanliyuanmima)==0) guangliyuanjiemian();
    else
    {
        printf("密码错误,请重新输入!\n");
        guangliyuandenglu();
    }
}
void guangliyuanjiemian()//管理员界面
{
    void xiugaiguangliyuanmima();//修改管理员密码
    void chazhaoyonghuziliao();//查找用户资料
    void readallmessege();//查看所有用户资料
    void printfmessege1();
    printfmessege1();
    printf("\t管理员界面\n");
    printfmessege1();
    int t2;
    printf("1.修改管理员密码\n");
    printf("2.查找用户资料\n");
    printf("3.查看所有用户资料\n");
    printf("4.返回主界面\n");
    scanf("%d",&t2);
    system("cls");//清屏
    switch(t2)
    {
        case 1:xiugaiguangliyuanmima();break;
        case 2:chazhaoyonghuziliao();break;
        case 3:readallmessege();break;
        case 4:main();break;
        default:printf("请重新输入!");

    }
}
void xiugaiguangliyuanmima()//修改管理员密码

{
    void printfmessege1();
    printfmessege1();
    printf("\t修改管理员密码\n");
    printfmessege1();
    char secret2[20];

    printf("请输入更改的密码:\n");
    fflush(stdin);
    gets(secret2);
    FILE *fp1;
    if((fp1=fopen("secret.dat","rb+"))==NULL)
    {
        printf("文件打开失败");
        return;
    }
    //system("cls");//清屏
    //fwrite(secret2,20,1,fp2);
    fwrite(secret2,20,1,fp1);
    fclose(fp1); //关闭文件
    //system("cls");
    printf("恭喜!修改成功\n");
    Sleep(1000);
    printf("即将返回管理员界面");
    Sleep(1000);
    system("cls");
    guangliyuanjiemian();//管理员界面
}
void readallmessege()//读取所有用户信息

{
    int i,ch;
    FILE*fp;

    if((fp=fopen("data.dat","rb"))==NULL)
    {
        printf("不能打开文件");
        exit(0);
    }
    printf("用户名\t  联系电话\t 地址\t    剩余水桶数\n");
    for(i=0;i<SIZE;i++)
    {
        if(fread(&user[i],sizeof(struct user_date),1,fp)!=1) break;
        printf("%-10s%-13s  %-10s %-5d\n",user[i].name,user[i].tel,user[i].Add,user[i].amount);
    }
    fclose(fp);
    printf("请选择:\n1.返回上一步\n2.返回主界面");
    scanf("%d",&ch);
    system("cls");//清屏

    switch(ch)
    {
        case 1:guangliyuanjiemian();break;
        case 2:main();break;
        default:readallmessege();break;
    }

}
void chazhaoyonghuziliao()//查找用户资料

{
    void changemessege(int x);
    void shanchu();//删除用户信息

    system("cls");//清屏
    int i,ch,sh1;
    FILE*fp;
    if((fp=fopen("data.dat","rb"))==NULL)
    {
        printf("不能打开文件");
        exit(0);
    }
    printf("请输入要查看的账号:");
    scanf("%s",zhuce.tel);
    for(i=0;i<SIZE;i++)
    {
        fread(&user[i],sizeof(struct user_date),1,fp);
        if(strcmp(user[i].tel,zhuce.tel)==0) break;
        else if(i==SIZE-1)

        {
            printf("没有该用户的信息!\n请选择1.重新查找\n2.返回管理员界面\n3.返回主界面\n");
            scanf("%d",&sh1);
            system("cls");//清屏
            switch(sh1)
            {
                case 1:chazhaoyonghuziliao();break;
                case 2:guangliyuanjiemian();break;
                case 3:main();break;
                default:exit(0);
            }
        }
    }
    fseek(fp,i*sizeof(struct user_date),0);
    fread(&user[i],sizeof(struct user_date),1,fp);
    printf("用户名\t  联系电话\t 地址\t    剩余水桶数\n");
    printf("%-10s%-13s  %-10s %-5d\n",user[i].name,user[i].tel,user[i].Add,user[i].amount);
    fclose(fp);
    printf("请选择:\n1.修改用户资料\n2.删除该用户\n3.返回上一步\n4.返回主界面\n");
    scanf("%d",&ch);
    system("cls");//清屏
    switch(ch)
    {
        case 1:changemessege(i);break;       //修改用户资料

        case 2:shanchu(i);break;             //删除该用户

        case 3:guangliyuanjiemian();break;  //返回管理员界面

        case 4:main();break;                //返回主界面

        default:chazhaoyonghuziliao();break;//错误,重新输入

    }
}
void changemessege(int x)//修改用户信息

{
    FILE*fp;
    int ch,sh1;
    if((fp=fopen("data.dat","rb+"))==NULL)
    {
        printf("文件打开失败");
        return;
    }
    printf("请选择要修改的信息:\n");
    printf("1.用户名\n2.用户电话\n3.用户地址\n4.剩余桶装水数\n");
    scanf("%d",&ch);
    system("cls");
    switch(ch)
    {
        case 1:printf("用户名:");scanf("%s",user[x].name);break;
        case 2:printf("用户电话:");scanf("%f",&user[x].tel);break;
        case 3:printf("用户地址:");scanf("%s",user[x].Add);break;//重新输入用户信息
        case 4:printf("剩余桶装水数:");scanf("%d",&user[x].amount);break;
        default:printf("请重新选择!"),changemessege(x);
    }
        fseek(fp,x*sizeof(struct user_date),0);//将文件跳到特定位置
        //fseek(fp,0,SEEK_END); //文件跳到未见你最后

    if(fwrite(&user[x],sizeof(struct user_date),1,fp)!=1)//将修改后的信息写入文件

        printf("写入文件错误!");

    fclose(fp);
    printf("请选择:1.返回主界面");
    scanf("%d",&sh1);
    system("cls");
    if(sh1==1) main();
    else exit(0);
}
void shanchu(int x)//删除用户信息

{
    FILE *fp;
    int i,j;
    printf("确定要删除该用户吗\n请选择:1.是    2.否");
    scanf("%d",&i);
    switch(i)
    {
        case 1:;break;
        case 2:guangliyuanjiemian();break;
        default:exit(0);
    }
    for(j=x;j<SIZE-1;j++) 

    {
        if(fread(&user[j],sizeof(struct user_date),1,fp)!=1) break;
        user[j]=user[j+1];  

    }
    if((fp=fopen("data.dat","wb+"))==NULL) 

    {    

    printf("cannot open file\n");  

    exit(0);
    }
    else
    {
    for(i=0;i<SIZE-1;i++)     

    fwrite(&user[i],sizeof(struct user_date),1,fp);//从结构体向文件输入数据   

    }
    fclose(fp);  

}
void yonghujiemian()//用户界面

{
    void printfmessege1();
    printfmessege1();
    printf("\t用户界面\n");
    printfmessege1();
    int ch;

   void xiugaigerenxinxi();//修改个人信息
   printf("用户信息:\n");
   printf("用户名\t  联系电话\t 地址\t    剩余水桶数\n");
   printf("%-10s%-13s  %-10s %-5d\n",user[yonghu].name,user[yonghu].tel,user[yonghu].Add,user[yonghu].amount);
   printf("请选择:\n");
   printf("1.修改个人信息\n2.返回上一步\n");
   scanf("%d",&ch);
   system("cls");//清屏
   switch(ch)
   {
         case 1:xiugaigerenxinxi();break;
         case 2:jiemian();break;
         case 3:main();
   }
}
void xiugaigerenxinxi()//修改个人信息
{
    void printfmessege1();
    printfmessege1();
    printf("\t用户信息修改\n");
    printfmessege1();
   printf("修改个人信息\n");
   FILE*fp;
    int ch;
    if((fp=fopen("data.dat","rb+"))==NULL)
    {
        printf("文件打开失败");
        return;
    }
    //fread(&user[y],sizeof(struct user_date),1,fp);
    printf("请选择要修改的信息:\n");
    printf("1.用户名\n2.用户电话\n3.用户地址\n4.用户密码\n");
    scanf("%d",&ch);
    system("cls");
    switch(ch)
    {
        case 1:printf("用户名:");scanf("%s",user[yonghu].name);break;
        case 2:printf("用户电话:");scanf("%f",&user[yonghu].tel);break;
        case 3:printf("用户地址:");scanf("%s",user[yonghu].Add);break;//重新输入用户信息
        case 4:printf("用户密码:");scanf("%s",user[yonghu].secret);break;
        default:printf("请重新选择!"),xiugaigerenxinxi(yonghu);
    }
    fseek(fp,yonghu*sizeof(struct user_date),0);//将文件跳到特定位置
    if(fwrite(&user[yonghu],sizeof(struct user_date),1,fp)!=1)//将修改后的信息写入文件

        printf("写入文件错误!");

    fclose(fp);
    printf("恭喜!修改成功\n");
    Sleep(1000);
    print ("即将返回用户界面\n");
    Sleep(1000);
    system("cls");
    yonghujiemian(yonghu);
   

}
void printfmessege1()
{    printf("|******************************|\n");
}
void printfmessege2()
{
    printf("欢迎登录桶装水用户管理系统\n");
}
void printfmessege3()
{
    printf("请选择:\n1.管理员登录\n2.用户登录\n3.用户注册\n");
}

提示下面的错误
--------------------Configuration: Barrelledwater - Win32 Debug--------------------
Compiling...
Barrelledwater.cpp
c:\program files (x86)\microsoft visual studio\vc98\include\windef.h(322) : warning C4091: 'typedef ' : ignored on left of 'struct tagSIZE' when no variable is declared
c:\program files (x86)\microsoft visual studio\vc98\include\windef.h(322) : error C2143: syntax error : missing ';' before 'constant'
c:\program files (x86)\microsoft visual studio\vc98\include\windef.h(322) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

Barrelledwater.exe - 1 error(s), 0 warning(s)



搜索更多相关主题的帖子: user 用户 void printf break 
2017-12-11 15:54
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:20 
从调试信息爆出的错误来看。
1.第一个,typedef 定义使用错误
2.语法错误,大概是标点符号错误
3.文件使用错误。

然而这些错误都是基本错误,认真调试更改相对简单。
代码太长,错误价值不高,还是自己认真调试吧。
如果调试后还有问题,请从大段的代码中摘取出有问题的包含完整意义的代码段,再看。

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2017-12-11 20:48
chenhaihao
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-12-9
收藏
得分:0 
回复 2楼 Alien_Lee
好的,谢谢,现在还在调试中
2017-12-12 16:33
快速回复:课程设计桶装水管理系统,运行不了,求教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027532 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved