很小的成绩管理程序 我有些问题请教
设计一个简单的学生成绩管理程序,要求根据菜单处理相应功能。(1)管理功能包括列表,求平均成绩、查找最高分。
(3)可以实现按平均成绩排序;
(4)求平均成绩可按个人或科目进行;
(5)查找可按最高个人平均分进行,或按指定科目的最高分进行;
(6)每个学生的信息包括:学号、性别、成绩1、成绩2、成绩3、成绩4;
(7)基本功能为:建立文件、增加学生记录、新建学生信息文件、删除/修改学生记录
程序我还未完成 部分函数已经写了 如下
#include"stdio.h"
#include"stdlib.h"
enum gender {male,female};
typedef struct studentinfo
{
int studentnum;/*学生学号*/
enum gender sex;
float score[4];
studentinfo *next;
}
studentinfo *last;
studentinfo *head;
studentinfo *p;
void average-single(int x)/*单人平均分*/
{
p=head;
p=p.next;
while(p.studentnum!=x&&p.next!=NULL)
p=p.next;
if(p.studentnum!=x&&p.next==NULL)
printf("wrong student number");
else printf("%f",(p.score[0]+p.score[1]+p.score[2]+p.score[3])/4);
}
void average-subject(int x)/*科目平均分*/
{
float sum=0;
int count=0;
p=head;
p=p.next;
while(p.next!=NULL)
{
sum+=p.score[x];
count++;
p=p.next;
}
sum+=p.score[x];
count++;
printf("%f",sum/count);
}
void highestscore(int x)/*查找单科最高分*/
{
p=head;
p=p.next;
float curhiest;
curhiest=p.score[x];
while(p.next!=NULL)
{
if(p.score[x]>curhiest)
curhiest=p.score[x];
p=p.next;
}
if(p.score[x]>curhiest)
curhiest=p.score[x];
printf("%f",curhiest);
}
void modify(int x)/*修改成绩*/
{
int a;
p=head;
p=p.next;
while(p.studentnum!=x&&p.next!=NULL)
p=p.next;
if(p.studentnum!=x&&p.next==NULL)
printf("wrong student number");
else
{
printf("请输入要修改第几项成绩");
scanf("%d",&a);
printf("请输入成绩");
scanf("%f",p.score[a]);
printf("操作成功");
}
}
void newinfo();/*新节点*/
{
studentinfo *temp;
p=last;
temp=(studentinfo *)malloc(sizeof(studentinfo));
p.next=temp;
last=temp;
printf("please input student's number");
scanf("%d",p.studentnum);
printf("please input student's gender. 0 for male, 1 for female");
scanf("%d",p.sex);
printf("please input the student`s 4 scores");
scanf("%f %f %f %f",p.score[0],p.score[1],p.score[2],p.score[3]);
printf("operation done")
}
最开始的枚举变量我不太会用 如果有错请指点
我是使用链表来储存信息
但是我不会建立文件来储存链表
也就是每次运行程序链表只有一个头节点,程序关闭所有新建的节点都回消失
这点请高手教教我
还有就是请介绍一下怎么建立图形界面阿?
我是用visual studio 2005的
谢谢了~