1、编程实习报告指导老师:朱胜利 王春林专业: 班级: 姓名: 学号: 1.实训目的通过本次编程实训,让我们更好的掌握对C语言知识的运用,加深对C语言的理解。2.实训任务通过使用 Visual C+这个软件,编写一个能存储学生信息(姓名,成绩)的简单程序例如:编写控制台程序,将班级学生信息通过创建链表保存,可以添加、删除、查找某一学生的信息,显示所有学生的信息,信息保存到文件中,从文件中读出信息。3.程序代码#include #include #include struct studentchar name10;int score;struct student *next;struct stude
2、nt* create()struct student *head,*pn,*pt;int i,n;printf(“创建多少个学生信息 :“);scanf(“%d“,pn=(struct student *)malloc(sizeof(struct student);printf(“请输入学生的姓名和成 绩n“);scanf(“%s%d“,pn-name,head=pt=pn;for(i=1;iname,pt-next=pn;pt=pn;pt-next=NULL;return head;printf(“n“);printf(“n“);printf(“*n“);struct student *in
3、sert(struct student *head)struct student *pn;pn=(struct student *)malloc(sizeof(struct student);printf(“请输入学生的姓名和成 绩n“);scanf(“%s%d“,pn-name,pn-next=head;head=pn;return head;printf(“n“);printf(“n“);printf(“*n“);struct student *clear(struct student *head)struct student *p,*pold;int grade;printf(“请输入您
4、要删除学 生的成绩:“);scanf(“%d“,p=head;while(head!=NULLfree(p);p=head;if(head=NULL) return head;p=head-next;pold=head;while(p!=NULL)if(p-score=grade)pold-next=p-next;free(p);p=pold-next;elsepold=p;p=p-next;return head;printf(“n“);printf(“n“);printf(“*n“);void found(struct student *head) struct student *p;in
5、t grade;printf(“请输入您要查找学 生的成绩:“);scanf(“%d“,p=head;while(p!=NULL)if(p-score=grade)printf(“ 姓名 成绩n“);printf(“ %s %dn“,p-name,p-score);p=p-next;else p=p-next;printf(“n“);printf(“n“);printf(“*n“);void print(struct student *head)struct student *p;p=head;printf(“ 姓名 成绩 n“);while(p!=NULL)printf(“ %s %dn“,
6、p-name,p-score);p=p-next;struct student *save(struct student *head)struct student *p;FILE *fp;p=head;fp=fopen(“C:UsersAdministratorDesktop学生信息.txt“,“w“);while(p!=NULL)fprintf(fp,“%s %dn“,p-name,p-score);p=p-next;fclose(fp);return head;struct student *read()struct student *head,*pn,*pt;int i=1;FILE *
7、fp;fp=fopen(“C:UsersAdministratorDesktop学生信息.txt“,“r“);printf(“ 姓名 成绩 n“);while(!feof(fp)if(i=1)pn=(struct student *)malloc(sizeof(struct student);head=pn;pt=pn;fscanf(fp,“%s %dn“,pn-name,printf(“ %s %dn“,pn-name,pn-score);i-;elsepn=(struct student *)malloc(sizeof(struct student);fscanf(fp,“%s %dn“,
8、pn-name,printf(“ %s %dn“,pn-name,pn-score);pt-next=pn;pt=pn;pt-next=NULL;fclose(fp);return head;void main()struct student *head;while(1)int choice;printf(“ 学生信息系统n“);printf(“ 1.创建学 生信息链表n“);printf(“ 2.添加学 生信息n“);printf(“ 3.删除学 生信息n“);printf(“ 4.查找学 生信息n“);printf(“ 5.显示所有 学生信息n“);printf(“ 6.保存链 表数据到文
9、件n“);printf(“ 7.从文件 读取链表n“);printf(“ 8.退出程序 n“);printf(“n“);printf(“n“);printf(“*n“);printf(“请输入您的选择 :“);scanf(“%d“,switch(choice)case 1:head=create();break;case 2:head=insert(head);break;case 3:head=clear(head);break;case 4:found(head);break;case 5:print(head);break;case 6:save(head);break;case 7:head=read();break;case 8:exit(0);default:printf(“请您从18 之间选择n“);return;4.程序运行部分截图5.心得体会这个就自己写呗,每个人不一样的!