资源描述:
《c语言程序设计实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言程序设计姓名:张露涛学号:200582503238学院:环境工程051-11问题描述:建立一个学生课程成绩的成绩分析系统:1、要求数据从文件中读取,并可将编辑数据进行保存;2、学生课程成绩其数据结构为:学号、姓名、班级、数学分析、高等代数。3、检索数据:姓名检索、学号检索,提供单个数据记录显示及多个匹配记录显示;4、提供数据输入、编辑修改界面;5、提供一个系统主界面;6、提供排序界面。2系统分析:本系统设计针对一个班级人数进行输入和输出管理。最高人数没有设定,可以采用不同结构存储数据,然后把每个函数用主还函数连接起来。可以考虑的函数包括:
2、调用创建链表函数、从文件调入记录函数、调用成绩查询函数、调用删除学生资料函数、调用追加学生资料函数、调用显示学生资料函数、调用统计函数、调用保存函数等等。调用函数前我们必须对函数进行选择,用不同的链表进行连接,考虑到学生成绩要进行排序可以增加函数进行连接。3源代码:#include#include#include#defineLENsizeof(structscorenode)#defineDEBUG#includestructscorenode{intnumber;
3、/*学号*/charname[10];/*姓名*/charname[10];/*班级*/floatyuwen;/*数学分析*/floatyingyu;/*高等代数*/structscorenode*next;};typedefstructscorenodescore;intn,k;/*n,k为全局变量,本程序中的函数均可以使用它*/score*creat2311(void){score*head;score*p1,*p2,*p3,*max;inti,j;floatfen; chart[10];n=0; p1=p2=p3=(score*)mall
4、oc(LEN);head=p3; printf("请输入学生资料,输0退出!");repeat1:printf("请输入学生学号(学号应大于0):"); scanf("%d",&p1->number); while(p1->number<0) {getchar(); printf("输入错误,请重新输入学生学号:"); scanf("%d",&p1->number);} /*输入学号为字符或小于0时,程序报错,提示重新输入学号*/if(p1->number==0) gotoend;else{p3=head;if(n>0) {for(
5、i=0;inumber!=p3->number) p3=p3->next; else {printf("学号重复,请重输!"); gotorepeat1; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ } } } } printf("请输入学生姓名:"); scanf("%s",&p1->name);/*输入学生姓名*/ printf("请输入成绩(0~100):"); scanf("%f",&p1->yuwen); while(p1->yuwen<0
6、
7、p1->yuwen>1
8、00){getchar();printf("输入错误,请重新输入成绩"); scanf("%f",&p1->yuwen);} printf("请输入成绩(0~100):"); scanf("%f",&p1->yingyu); while(p1->yingyu<0
9、
10、p1->yingyu>100){getchar(); head=NULL;while(p1->number!=0){ n=n+1;if(n==1)head=p1;else p2->next=p1; p2=p1; p1=(score*)malloc(LEN); print
11、f("请输入学生资料,输0退出!");repeat2:printf("请输入学生学号(学号应大于0):"); scanf("%d",&p1->number); while(p1->number<0) {getchar(); printf("输入错误,请重新输入学生学号:"); scanf("%d",&p1->number);} if(p1->number==0) gotoend;else{p3=head;if(n>0) {for(i=0;inumber!=p3->number) p3=p3->nex
12、t; else {printf("学号重复,请重输!"); gotorepeat2; } } } }printf("请输入学生姓名:");