首页 > 代码库 > 第12次作业

第12次作业

1、定义结构体类型student,要求其中包括学号,姓名,年龄,性别,电话,系别,成绩等信息。

#include<stdio.h>
struct student
{
    char sno[10];
    char name[20];
    char sex[10];
    char phone[20];
    int age;
};
int main()
{
    student s1=
    {
        "160809314",
        "liuziye",
        "?",
        "13716445586", 
        19
    };
    printf("%s\n%s\n%s\n%s\n%d\n",s1.sno,s1.name,s1.sex,s1.phone,s1.age);
    return 0;
}

2、用fscanf和fprintf语句实现将input.txt文件中存储的学生信息复制到output.txt文件中。

#include<stdio.h>
#include<stdlib.h>
struct student
{
    char sno[10];
    char sname[20];
    int age;
};
int main()
{
    int i;
    student class3[31];
    FILE *fp=fopen("d:\\input.txt","r");
    fscanf(fp,"%s%s%d",class3[i].sno,class3[i].sname,&class3[i].age);
    printf("%s\n %s\n %d\n",class3[i].sno,class3[i].sname,class3[i].age);
    return 0;
}

3、实现课上讲解的”学生管理系统“中第一个菜单“”添加学生信息“”模块的功能,即当用户选择“添加学生信息”菜单时,提示用户输入学生的学号、姓名、年龄等信息,并将输入的信息添加到student.txt文件中。

#include<stdio.h>
struct student
{
    char sno[20];
    char name[10];
    int age; 
}
void add()
{
    studnt class3;
    char i;
    FILE *fp=fopen("d:\\student.txt","a+");
    printf("请输入学号:");
    scanf("%s",class3.sno);
    printf("请输入姓名:");
    scanf("%s",class3.name);
    printf("请输入年龄:");
    scanf("%d",&class3.age);
    fprintf(fp,"%s %s %d\n",class3.sno,class3.name,class3.age);
    printf("学生信息填写成功,是否继续填写:");
    scanf("%s",&i);
    do
    {
        printf("请输入学号:");
        scanf("%s",class3.sno);
        printf("请输入姓名:");
        scanf("%s",class3.name);
        printf("请输入年龄:");
        scanf("%d",&class3.age);
        fprintf(fp,"%s %s %d\n",class3.sno,class3.name,class3.age);
        printf("学生信息填写成功,是否继续填写:(yes/no)");
        scanf("%s",&i);
    }
    while(i==yes);
}
int main()
{
    printf("学生管理系统");
    printf("1、填写学生信息");
    printf("2、其他");
    int j;
    if(j==1)
        add();
    return 0; 
     
} 

因为上节课没有去,所以这次作业是通过问同学、看老师上课的照片写的。第二题和第三题有错误,只是我不明白。

——————————————————————————————————————-------------------上周的作业补交———————————————————————————————————————————————————————————————

1.定义函数void sum(int *p)实现对给定数组a中所有元素求和并打印输出求和结果。

#include<stdio.h>//求和 
void sum(int *p)
{
    int a[10];
    printf("请输入10个整数:\n");
    int i,sum=0;
    p=&a[0]; 
    for(i=0;i<10;i++)
    {
        sum=sum+*p; 
    }
    printf("整数和为:%d",sum);
    
}
int main()
{
    int *p;
    sum(p);
    return 0;
} 

2.用指针实现函数:读入5个字符串(或是5个字符),按由小到大的顺序输出这5个字符串。

#include<stdio.h>
int main()
{
    int i,a[10],n,m;
    printf("请输入n的值:\n");
    scanf("%d",&n);
    for(i=0;i<n;i++)
       scanf("%d",&a[i]);
    for(i=0;i<n/2;i++)
    {
        m=a[i];
        a[i]=a[n-1-i];
        a[n-1-i]=m;
        
    }
    for(i=0;i<n;i++)
       printf("%d",a[i]);
    return 0; 
}

3.利用动态内存分配方式创建长度为10个int的存储空间,由用户从键盘输入数据进行空间初始化,同时打印输出空间内容。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void fsort(int a[],int n);
int main()
{
    char *p[5];
    char str[20];
    scanf("%s",str);
    int i=0;
    while(str[0]!=#)
    {
        p[i]=(char *)malloc(sizeof(char)*strlen(str));
        strcpy(p[i],str);
        scanf("%s",str);
        i++;
    }
    int j;
    for(j=0;j<i;j++)
        printf("%s    ",p[j]);
    return 0;
}

指针对我来说有点难,马马虎虎写完的,并不是很明白。

 

第12次作业