| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2986 人关注过本帖
标题:一个课程设计的程序希望有好心人解答!
只看楼主 加入收藏
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
void main() {
    FILE *fp;
    fp=fopen("worker.xls","w");
    if(fp==NULL)
    {
        printf("路径不对");
        exit(0);
    }
    else  menu();
}
你把主函数修改成这样,先看路径对不对。
2016-06-23 10:47
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
他貌似没添加路径,只有文件名,不知道默认打开的是哪个路径,还是直接出错,这个我不是很懂。不过我感觉应该指定文件路径
2016-06-23 10:48
jifanjiayou
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2016-6-21
收藏
得分:0 
回复 20楼 wanglianyi1
我没改完,下课了,要离开机房,等会回到宿舍卧继续改。
2016-06-23 10:53
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
我改了下,你说的增加雇员只能输入前3个参数的问题解决了,但是我运行了下,你后面查询的模块也有毛病,你自己再继续调试吧
结构体里面是8个变量,你很多地方都是scanf和fprintf都是9个参数,你自己核对修改下
电脑原因,我把文件放到D盘了,从excel表改成了txt,不过这个影响不大,你可以改回去就是了。
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <wtypes.h>
#include <winbase.h>
#include <time.h>
#include <conio.h>
struct employeeinfo
{
    char jobno[10];
    char name[20];
    char sex;
    int age;  
    char edulevel[10]; 
    float salary;
    char addr[10];
    char tel[11];
}empinfo;
FILE*fp;
void output();
void search();
void append();
void modify();
void abc();
void exit();
void nameway();
void numway();
void menu();
int main()
{
    FILE *fp;
    fp=fopen("d:\\worker.txt","a+");
    menu();
}
void menu()
{
    int m,w;
    do 
    {
        system("color 0a");
        printf("\n\n\n                   ~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*\n\n");
        printf("                             欢迎使用职工信息管理系统\n\n");
        printf("                   ~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*\n\n");
        printf("                  |     *     |  1.添加职工信息  |     *     |     \n");
        printf("                  |     *     |  2.查找职工信息  |     *     |     \n");
        printf("                  |     *     |  3.修改职工信息  |     *     |     \n");
        printf("                  |     *     |  4.删除职工信息  |     *     |     \n");
        printf("                  |     *     |  5.输出职工信息  |     *     |     \n");
        printf("                  |     *     |  6.退出信息系统  |     *     |   \n\n");
        printf("                   ~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*\n\n");
        printf("                               请输入对应的字符[ ]\b\b");
        scanf("%d",&m);
        getchar();
        if(m<1||m>6){ 
            w=1;
        }
        else{
            w=0;
        }
    }while(w=0);
            switch(m)
            {
                case 1: append();
                break;
                case 2: search();
                break;
                case 3: modify();
                break;
                case 4: abc();
                break;
                case 5: output();
                break;
                case 6: exit(0);
                return;
            }

 }
void append()
{
    int choice;
    system("cls");
    if((fp=fopen("d:\\worker.txt","a+"))==NULL)
    {
        printf("\n对不起,无法查询信息文件。\n\n");
        exit(0);
    }
    printf("                    *********************************\n");
    printf("                         请输入需要添加的职工信息      \n");
    printf("                    *********************************\n");
    printf("         职工号,姓名,性别,年龄,学历,工资,住址,电话\n");
//    scanf("%s%s%c%d%s%f%s%s",empinfo.jobno,empinfo.name,&empinfo.sex,&empinfo.age,empinfo.edulevel,&empinfo.salary,&empinfo.addr,empinfo.tel);
    printf("jobno:");gets(empinfo.jobno);
    printf("name:");gets(empinfo.name);
    printf("sex:");scanf("%c",&empinfo.sex);getchar();
    printf("age:");scanf("%d",&empinfo.age);getchar();
    printf("edulevel:");gets(empinfo.edulevel);
    printf("salary:");scanf("%f",&empinfo.salary);getchar();
    printf("address:");gets(empinfo.addr);
    printf("telphone:");gets(empinfo.tel);
    fprintf(fp,"%-20s%-20s%-20c%-20d%-20s%-20f%-20s%-20s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
    fclose(fp);
    printf("\n\n操作完成,请按下回车继续");
    choice=getch();
    system("cls");
    menu();
}
void output()
{    
    int choice,i=1;
    system("cls");
    if((fp=fopen("d:\\worker.txt","r"))==NULL)
    {
        system("cls");
        printf("\n对不起,无法查询信息文件。\n\n");
        exit(0);
    }
    printf("                          =========================\n");
    printf("                                  职工信息\n");
    printf("                          =========================\n");
    printf("          姓名,职工号,性别,职位,工资,出生年月,学历,住址,电话\n\n");
    while(!feof(fp))
    {
        fscanf(fp,"%s%s%c%d%s%f%c%s%s\n",empinfo.jobno,empinfo.name,&empinfo.sex,&empinfo.age,empinfo.edulevel,&empinfo.salary,&empinfo.addr,empinfo.tel);
        printf("%-20s%-20s%-20c%-20d%-20s%-20f%-20c%-20s%-20s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
        i++;
        if((i%10)==0) {
        printf("按任意键继续...");
        getchar();
        puts("\n\n");
        }
    }
    fclose(fp);
    printf("\n\n显示完毕,请按下回车继续");
    choice=getch();
    system("cls");
    menu();
}

void search()
{    
    int l;
    system("cls");
    printf(" 按姓名查找请按: 1\n");
    printf(" 按工号查找请按: 2\n");
    scanf("%d",&l);
    if(l>0&&l<3)
    {
        switch(l)
        {
            case 1:nameway();
            break;
            case 2:numway();
            break;
        }
    }
    else 
    {
        printf("\n\n无效指令,请重试");
    }
}

void nameway()
{
    int choice;
    int k=0;
    char nam[50];
    printf("\n请输入您要查询的职工姓名:");
    scanf("%s",nam);
    if((fp=fopen("d:\\worker.txt","r"))==NULL)
    {
        printf("\n对不起,无法查询信息文件。");
        exit(0);
    }
    while(!feof(fp))
    {
        fscanf(fp,"%s%s%c%d%s%f%c%s%s\n",empinfo.jobno,empinfo.name,&empinfo.sex,empinfo.age,&empinfo.edulevel,&empinfo.salary,empinfo.addr,empinfo.tel);
        if(strcmp(nam,empinfo.name)==0)
        {
            printf("\n\n已查到,记录为:");
            printf("%-20s%-20s%-20c%-20d%-20s%-20f%-20c%-20s%-20s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
            k=1;
        }
    }
    if(k==0)
    {
        printf("\n\n对不起,查无此人。\n");
        fclose(fp);
    }
    printf("\n\n操作完成,请按下回车继续");
    choice=getch();
    system("cls");
    menu();
}

void numway()
{
    int i=0;
    int choice;
    char numb[50];
    printf("   输入你要查询的工号\n");
    scanf("%s",numb);
    if((fp=fopen("d:\\worker.txt","r"))==NULL)
    {
        printf("\n对不起,无法查询信息文件。");
        exit(0);
    }
    while(!feof(fp))
    {
        fscanf(fp,"%s%s%c%d%s%f%c%s%s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
        if(!strcmp(numb,empinfo.jobno))
        {
            printf("\n\n已查到,记录为:");
            printf("%-20s%-20s%-20c%-20d%-20s%-20f%-20c%-20s%-20s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
            i=1;
        }
    }
    if(!i)
    {
        printf("\n\n对不起,查无此人。");
        fclose(fp);
    }
    printf("\n\n操作完成,请按下回车继续");
    choice=getch();
    system("cls");
    menu();
}

void modify()
{
    int choice;
    int k=0;    
    long a;
    char namekey[50];
    system("cls");
    printf("\n请输入您要修改的职工姓名:");
    scanf("%s",namekey);
    if((fp=fopen("d:\\worker.txt","r+"))==NULL)
    {
        printf("\n对不起,无法查询信息文件。");
        exit(0);
    }
    while(!feof(fp))
    {
        a=ftell(fp);
        fscanf(fp,"%s%s%c%d%s%f%c%s%s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
        if(!strcmp(namekey,empinfo.name))
        {
            k=1;
            break;
        }
    }
    if(k)
    {
        printf("\n已查到,记录为:");
        printf("\n%-20s%-20s%-20c%-20d%-20s%-20f%-20c%-20s%-20s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
        printf("\n请输入需要修改的信息。\n");
        printf("(姓名,职工号,性别,职位,工资,出生年月,学历,住址,电话顺序输入)\n");
    //    scanf("%s%s%c%d%s%f%c%s%s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
    //   printf("按照:职工号,姓名,性别,年龄,学历,工资,住址,电话\n");
        scanf("%s%s%c%d%s%f%s%s",empinfo.jobno,empinfo.name,&empinfo.sex,&empinfo.age,empinfo.edulevel,&empinfo.salary,&empinfo.addr,empinfo.tel);
        fseek(fp,a,0);
        fprintf(fp,"%-20s%-20s%-20c%-20d%-20s%-20f%-20c%-20s%-20s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
    }
    else
    {
        printf("\n对不起,查无此人,无法修改。");
        fclose(fp);
    }
    printf("\n\n操作完成,请按下回车继续");
    choice=getch();
    system("cls");
    menu();
}

void abc()
{
    int m;
    int choice;
    int k=0;    
    long a;
    char namekey[50];
    char valid[50];
    system("cls");
    printf("\n请输入您要修改的职工姓名:");
    scanf("%s",namekey);
    if((fp=fopen("d:\\worker.txt","r+"))==NULL)
    {
        printf("\n对不起,无法查询信息文件。");
        exit(0);
    }
    while(!feof(fp))
    {
        a=ftell(fp);
        fscanf(fp,"%s%s%c%d%s%f%c%s%s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
        if(strcmp(namekey,empinfo.name)==0)
        {
            k=1;
            break;
        }
    }
    if(k==1)
    {
        printf("\n已查到,记录为:");
        printf("\n%-20s%-20s%-20c%-20d%-20s%-20f%-20c%-20s%-20s\n",empinfo.jobno,empinfo.name,empinfo.sex,empinfo.age,empinfo.edulevel,empinfo.salary,empinfo.addr,empinfo.tel);
        printf("\n确定删除按1,不删除按0:");
        scanf("%d",&m);
        if(m==1)
        {
            fseek(fp,a,0);
            fprintf(fp,"%-20s%-20s%-20c%-20d%-20s%-20f%-20c%-20s%-20s\n","","","","","");
        }
    }
    else
    {
        printf("\n对不起,查无此人。");
    }
    fclose(fp);
    printf("\n\n操作完成,请按下回车继续");
    choice=getch();
    system("cls");
    menu();
}

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-6-23 13:53编辑过]

2016-06-23 13:27
快速回复:一个课程设计的程序希望有好心人解答!
数据加载中...
 
   



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

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