c语言作业 大佬进 急求

sheldon敲代码 2020-05-14 11:17:14
大佬求助 c语言作业

如下结构体类型:
struct student
{ char name[10];
int num;
int age;
char addr[30];};
(1)自定义函数void input(struct student *p) 函数功能是完成学生数据的输入并存放到结构体数组中;
(2)自定义函数void save(struct student *p)函数的功能是将存放在结构体数组中的学生信息写入文件中;
(3)自定义函数void load()函数的功能是从文件中读入学生的信息,并屏幕输出
(4)自定义函数struct student get_stu(int n)函数的功能是从文件中读入(获取)第n个学生的信息
(5)主函数main()的内容框架如下:
int main(){ struct student stu[N],stu_i; // N是符号常量
int n;
input(stu);
save(stu);
load();
printf("\n获取第几个学生的信息:");
scanf("%d",&n);
stu_i=get_stu(n); //输出第n个学生的信息
return 0;}
...全文
144 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
鹏哥C语言 2020-05-14
  • 打赏
  • 举报
回复
https://github.com/sanguonaigao/2020_code/tree/master/84%E7%8F%AD/ContactFile/ContactFile 看看这个代码是否能帮到你 你可以稍微改造一下
Simple-Soft 2020-05-14
  • 打赏
  • 举报
回复
什么问题啊?关键是
sheldon敲代码 2020-05-14
  • 打赏
  • 举报
回复
老哥谢谢了很棒
chxchxkkk 2020-05-14
  • 打赏
  • 举报
回复
午休时间帮写一份供参考

#include <stdio.h>
#include <stdlib.h>
#define N 5         //结构体数组长度

struct student
{
    char name[10];
    int num;
    int age;
    char addr[30];
};

/* 输入 */
void input(struct student *p);
/* 保存 */
void save(struct student *p);
/* 载入 */
void load();
/* 读取特定学生信息 */
struct student get_stu(int n);

int main()
{
    struct student stu[N], stu_i;
    int n;
    input(stu);
    save(stu);
    load();
    printf("\n获取第几个学生的信息:");
    scanf("%d", &n);
    stu_i = get_stu(n);
    printf("\n姓名\t编号\t年龄\t住址\n");
    printf("%s\t%d\t%d\t%s",stu_i.name, stu_i.num, stu_i.age, stu_i.addr);

    getchar();
    return 0;
}

/* 输入 */
void input(struct student *p)
{
    int i;
    for (i = 0; i < N; i++)
    {
        printf("输入第%d个学生的姓名 编号 年龄 住址:\n", i+1);
        scanf("%s%d%d%s", p[i].name, &p[i].num, &p[i].age, p[i].addr);
    }
}

/* 保存 */
void save(struct student *p)
{
    int i;
    FILE *fp;
    if ((fp=fopen("student.txt", "w")) == NULL)
    {
        printf("不能保存文件!\n");
        exit(1);
    }

    for ( i = 0; i < N; i++)
    {
        fprintf(fp, "%s\t%d\t%d\t%s", p[i].name, p[i].num, p[i].age, p[i].addr);
        fprintf(fp, "\r\n");
    }
    printf("保存文件成功!\n\n");
    fclose(fp);
}

/* 载入 */
void load()
{
    struct student f[N];
    int i;
    FILE *fp;
    if ((fp = fopen("student.txt", "r")) == NULL)
    {
        printf("不能打开文件!\n");
        exit(1);
    }
    for ( i = 0; i < N; i++)
    {
        fscanf(fp, "%s\t%d\t%d\t%s\n", f[i].name, &f[i].num, &f[i].age, f[i].addr);
        printf("%s\t%d\t%d\t%s\n", f[i].name, f[i].num, f[i].age, f[i].addr);
    }
    fclose(fp);
}

/* 读取特定学生信息 */
struct student get_stu(int n)
{
    int i;
    struct student f[N];
    FILE *fp;
    if ((fp = fopen("student.txt", "r")) == NULL)
    {
        printf("不能打开文件!\n");
        exit(1);
    }
    for ( i = 0; i < N; i++)
    {
        fscanf(fp, "%s\t%d\t%d\t%s", f[i].name, &f[i].num, &f[i].age, f[i].addr);
    }

    if ( n < 0 || n > N)
    {
        printf("超出范围!");
        exit(1);
    }

    for ( i = 0; i < N; i++)
    {
        if (i == (n-1))
            return f[n-1];
    }

    fclose(fp);
};

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧