| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9567 人关注过本帖
标题:“eh.h is only for C++!”怎么解决
只看楼主 加入收藏
yujianvic
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-2-28
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
“eh.h is only for C++!”怎么解决
#include<stdio.h>
#include<stdlib.h>
#include<string>

int a;

void find();
void creat();
void open();
void remov();
void print();
void Saveandfree();

typedef struct student                //结构体
{
    int num;
    char name[];
    int chinese;
    int math;
    int english;
    int sum;
    struct student*next;             //指针
}Struct;

Student * head;

void main()
{
    int a;
   
    menu();   
    open();
   
    scanf("%d",&a);
   
    switch(a)
    {
    case 0:print();
        break;
    case 1:find();
        break;
    case 2:creat();
        break;
    case 3:remov();
        break;
    case 4:sort();
        break;
    case 5:saveandfree();
        break;
    default:printf("输入错误!");
        break;
    }
   
}
void menu()
{
    printf("欢迎进入学生成绩管理系统");
    printf("浏览请输入0");
    printf("成绩查询请输入1");
    printf("添加信息请输入2");
    printf("删除信息请输入3");
    printf("排序请输入4");
    printf("保存请输入5");
   
}
void display()                          //显示
{
    printf("学号\t姓名\t语文\t数学\t英语\t总分\n");
    printf("学号=%d\t",p->num);
    printf("姓名=%s\t",p->name);
    printf("语文=%d\t",p->chinese);
    printf("数学=%d\t",p->math);
    printf("英语=%d\t",p->english);
    printf("总分=%d\t",p->sum);
}
void print()
{
    PER *p = NULL;
    if(head == NULL)
    {
        printf("此通讯录中无记录,请输入记录后在使用本功能!\n");
        return;
    }
    else
    {
        printf("**************成绩录系统*********************\n"); //输出信息
        for(p=head->next;p!=NULL;p=p->next)
            display();
    }
}

void find()               //按姓名查找
{
    char person[];
    Student*p=head;
    printf("请输入姓名");
    gets(person);
    while(strcmp(person,p->name)!=0 && p!=NULL)
    {
        p=p->next;
    }
    if(p==NULL)
        printf("查无此人");
    if(strcmp(person,p->name)==0)
    {
        display();
    }
}
void creat()          //创建新信息
{
    t=(Student*)malloc(size of(Student));
    t->next=head->next;
    head->next=t;
    printf("请输入该生学号");
    gets(head->num);
    printf("请输入该生姓名");
    gets(head->name);
    printf("请输入该生语文成绩");
    gets(head->chinese);
    printf("请输入该生数学成绩");
    gets(head->math);
    printf("请输入该生英语成绩");
    gets(head->english);
    printf("请输入该生总分");
    gets(head->sum);
}
void remov()         //删除信息
{
    Student*q=head;
    printf("请输入你想删除的学生的姓名");
    gets(person);
    while(strcmp(person,q->name)&&q!=NULL)
    {
        q=q->next;
    }
    if(q==null)
        printf("查无此人");
    if(!strcmp(person,q->name))
    {
        m=q->next;
        q->next=m->next;
        free(m);
    }
}
void sort()        //按总分从小到大排序
{
    int d1,d2;
    Student*y,*k;
    for(i=0;i<8;i++)
    {
        k=head;
        for(k->next!=NULL)
        {
            y=k;
            d1=k->sum;
            k=k->next;
            d2=k->sum;
            if(d1>d2)
            {
                t=k;
                k=y;
            }
        }
    }
}

//保存链表信息到文件并释放内存空间
void Saveandfree()
{
    PER *p=NULL;
    FILE *fp;
    char *Book="books.txt";
    if(head==NULL)
    {
        printf("\n(⊙o⊙)记录为空哦!\n");
        return;
    }
    else
        p=head->next;
    if((fp=fopen(Book,"wb+"))==NULL)
    {
        printf("\n(⊙o⊙)打不开文件!\n");
        return;
    }
    while(p!=NULL)                              //保存信息
    {
        fwrite(p,sizeof(PER),1,fp);
        p=p->next;
    }
    printf("保存完毕!");
    fclose(fp);
    //*****释放链表空间*****
    for(;head->next!=NULL;)
    {
        p=head->next;
        head->next=head->next->next;
        free(p);
    }
    free(head);
}
//文件信息输出到链表
void Open()
{
    FILE *fp;
    PER *p1=NULL,*p2=NULL,*temp=NULL;
    if((fp=fopen("books.txt","rb+"))==NULL)
    {
        printf("\n****************成绩管理系统O(∩_∩)O~******************\n");
        return;
    }
    head=(PER *)malloc(sizeof(PER));
    head->next=NULL;
    temp=p2=head;
    while(! feof(fp))                            //循环读取
    {
        p1=(PER *)malloc(sizeof(PER));
        temp=p2;
        p2->next=p1;
        p2=p1;
        fread(p1,sizeof(PER),1,fp);
    }
    temp->next=NULL;
    fclose(fp);                                   //关闭文件
}
搜索更多相关主题的帖子: void english include 结构体 
2013-02-28 13:14
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:7 
kk.

仰望星空...........不忘初心!
2013-02-28 13:21
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:7 
#include<string> 这是C++的头文件,如果是纯C,改成
#include<string.h>


2013-02-28 14:16
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
收藏
得分:7 
楼上正解,学习啦
2013-02-28 19:12
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
收藏
得分:0 
回复 3楼 lwei
非常感谢!应该是我保存时按照C语言给保存错了。C++应选择headerFile,我保存在了SourceFile中
2016-05-20 09:01
快速回复:“eh.h is only for C++!”怎么解决
数据加载中...
 
   



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

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