三道题老师上课都讲了,这样做起来就好了很多,知道自己该往哪个样子去做了,但是虽然讲了,还是有很多不明白的地方,下课以后还是要自己琢磨,
才真的能做作业!
1.定义结构体类型student,要求其中包括学号,姓名,年龄,性别,电话,系别,成绩等信息
这道题写了好久,也问了助教,一些基本的知识还是掌握的不扎实,还是缺乏练习。还有就是一种方法运行不了,要换另一种方式去试一试也许就能行得通。以后还要多请教老师,多看书,才能懂得更多。
#include<stdio.h> struct student { int a;//学号 char name[20]; int age; char b;//性别 男:M 女:F int phone; char c[20]; int text; }; int main() { student s1= { 160809316, "guoyuxin", 20, 'F' , 1343990636 , "computer" , 90, }; printf("学号:%d 姓名:%s 年龄:%d 性别:%c 电话:%d 系别:%s 成绩:%d \n",s1.a,s1.name,s1.age,s1.b,s1.phone,s1.c,s1.text); return 0; }
2、用fscanf和fprintf语句实现将input.txt文件中存储的学生信息复制到output.txt文件中。
这道题能运行,但是输出的信息都是乱码,不知道哪里有问题。
#include<stdio.h> #include<stdlib.h> struct student { int a;//学号 char name[20]; int age; char b;//性别 男:M 女:F int phone; char c[20]; int text; }; int main() { student class3[31]; FILE *fp=fopen("D:\\input.txt","w");//"r".为读而打开文本文件.(不存在则出错) fscanf(fp,"学号:%d 姓名:%s 年龄:%d 性别:%c 电话:%d 系别:%s 成绩:%d \n",class3[0].a,class3[0].name,class3[0].age,class3[0].b,class3[0].phone,class3[0].c,class3[0].text); fclose(fp); FILE *fd=fopen("D:\\output.txt","w");//"w".为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖) fprintf(fd,"学号:%d 姓名:%s 年龄:%d 性别:%c 电话:%d 系别:%s 成绩:%d \n",class3[0].a,class3[0].name,class3[0].age,class3[0].b,class3[0].phone,class3[0].c,class3[0].text); fclose(fd); printf("学号:%d 姓名:%s 年龄:%d 性别:%c 电话:%d 系别:%s 成绩:%d \n"); return 0; }
3、实现课上讲解的”学生管理系统“中第一个菜单“”添加学生信息“”模块的功能,即当用户选择“添加学生信息”菜单时,提示用户输入学生的学号、姓名、年龄等信息,并将输入的信息添加到student.txt文件中。
这题,运行到一半就退出了,感觉自己编的很混乱!
#include<stdio.h> struct student { char a;//学号 char name[20]; int age; char b;//性别 男:M 女:F }; int ch; student s1; void addStudent() { FILE *fp=fopen("D:\\input.txt","a+");//a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留) do { printf("请输入学号:"); scanf("%d",s1.a) ; printf("请输入姓名:"); scanf("%s",s1.name) ; printf("请输入年龄:"); scanf("%d",s1.age) ; printf("请输入性别(男:M,女:F):"); scanf("%c",s1.b) ; fprintf(fp,"\n %d %s %d %c ",s1.a,s1.name,s1.age,s1.b); printf("信息添加成功,是否继续添加学生信息(1(Yes)/2(No)?"); scanf("%d",&ch); } while(ch==1); printf("提示:输入完毕!") ; } int main() { printf("--------------------\n"); printf("添加学生信息"); printf("请输入(1(Yes)/2(No):\n"); int c,s1; scanf("%d",&c); if(c==1) addStudent(); return 0; }