#include<>
#include<>
#include<>
typedef struct student
char studentnumber[10];/学生学号*/
char studentname[20];/学生姓名*/
char studentsex[10];/学生性别*/
char classname[20];/班级名称*/
float mark1;/*第1门成绩*/
float mark2;/*第2门成绩*/
float mark3;/*第3门成绩*/
float mark4;/*第4门成绩*/
float mark5;/*第5门成绩*/
struct student *next;
student;
student *headlink;/*链表表头指针*/
*以下是函数声明*/
void readinfoformfile(void);
void desplaymenu(void);
void createheadlink(void);
student *mallocnode(void);
void getinformation(student *t);
void outputinformation(void);
void desplayinfobystudentname(void);
void desplayinfobystudentnumber(void);
void desplayonenode(student *t);
void insertonenode(student *t);
void deletenodebystudentnumber(void);
void changemarkbyname(void);
void changemarkbynumber(void);
void s**elinktofile(void);
void desplaymarksegment(void);
void compositorbytotalmark(void);
int choose;/*用于接受用户的选择*/
*主函数*/
void main()
createheadlink();
readinfoformfile();
desplaymenu();
函数功能:从文件中读学生信息到链表中
void readinfoformfile(void)
file *fp;
student *p;
fp=fopen(""r");
if(!fp)
printf("文件不存在");
return;
p=mallocnode();
while(fscanf(fp,"%s%s%s%s%f%f%f%f%f",p->studentnumber,p->studentname,p->studentsex,p->classname,&(p->mark1),&p->mark2),&p->mark3),&p->mark4),&p->mark5))>0)
insertonenode(p);
p=mallocnode();
fclose(fp);
函数功能:显示菜单,根据用户的输入
完成相应的功能
void desplaymenu(void)
student *p;
printf("-请选择相应功能n");
printf("|1 显示所有学生的信息 |");
printf("|2 按姓名查询 |");
printf("|3 按学号查询 |");
printf("|4 增加学生 |");
printf("|5 删除学生 |");
printf("|6 按姓名修改学生成绩 |");
printf("|7 按学号修改学生成绩 |");
printf("|8 保存所有学生信息 |");
printf("|9 显示优秀和不及格学生成绩 |");
printf("|10 排序结果并输出成绩 |");
printf("|11 退出 |");
scanf("%d",&choose);/取得用户的选择*/
switch(choose)
case 1:
outputinformation();显示所有学生的信息*/
break;
case 2:
desplayinfobystudentname();
break;
case 3:
desplayinfobystudentnumber();根据用户输入的学号显示该学生的信息*/
break;
case 4:
p=mallocnode();先申请一个新结点*/
getinformation(p);/要求用户输入信息到新结点中*/
insertonenode(p);/将新结点加到链表中*/
break;
case 5:
deletenodebystudentnumber();根据用户输入的学号删除该学生*/
break;
case 6:
changemarkbyname();根据用户输入的姓名修改学生成绩*/
break;
case 7:
changemarkbynumber();根据用户输入的学号修改学生成绩*/
break;
case 8:
s**elinktofile();保存数据*/
break;
case 9:
desplaymarksegment();显示各分数段的学生成绩*/
break;
case 10:
compositorbytotalmark();
break;
case 11:
s**elinktofile();保存数据后再退出*/
free(headlink);
exit(1);
break;
default:
break;
desplaymenu();递归调用*/
函数功能:建立链表表头
void createheadlink(void)
student *p;
p=(student*)malloc(sizeof(student));
headlink=p;
p->next=null;
函数功能:申请一个新结点,并将其初始化
student *mallocnode(void)
student *p;
int i;
p=(student*)malloc(sizeof(student));
if(p==null)
return null;
for(i=0;i<10;i++)
p->studentnumber[i]='0';
for(i=0;i<20;i++)
p->studentname[i]='0';
for(i=0;i<10;i++)
p->studentsex[i]='0';
for(i=0;i<20;i++)
p->classname[i]='0';
p->mark1=0.0;
p->mark2=0.0;
p->mark3=0.0;
p->mark4=0.0;
p->mark5=0.0;
p->next=null;
return p;
函数功能:取得用户输入的学生信息
void getinformation(student *t)
printf("请输入学生学号:");
scanf("%s",t->studentnumber);
printf("请输入学生姓名:");
scanf("%s",t->studentname);
printf("请输入学生性别:");
scanf("%s",t->studentsex);
printf("请输入该生所在班级:");
scanf("%s",t->classname);
printf("请输入第1门成绩:");
scanf("%f",&t->mark1));
printf("请输入第2门成绩:");
scanf("%f",&t->mark2));
printf("请输入第3门成绩:");
scanf("%f",&t->mark3));
printf("请输入第4门成绩:");
scanf("%f",&t->mark4));
printf("请输入第5门成绩:");
scanf("%f",&t->mark5));
函数功能:在链表的结尾处增加一个结点
void insertonenode(student *t)
student *p;
p=headlink;
while(p->next)
学生信息管理系统课程设计
学生姓名 学号 班级 指导老师 日期 2 课程设计正文格式 1 题目及要求。学生信息管理系统。此题目要求,使用结构体静态数组存储数据,并要求使用户输入的数据或者修改后的数据能够永久保存。1.1 问题提出。详细叙述本人所要实现的题目中的问题。我编写一个学生信息管理系统,主要用来管理学生基本信息。1.2...
学生信息管理系统课程设计
该程序是一个利用j a语言编写的简单的学生信息管理系统,具有良好的界面,使用人员能快捷简单地进行操作。本系统可服务于各需要对学生信息进行电子化管理的学校机构。共有有管理员,教师和学生三类人员的操作界面,管理员具有添加,修改,删除和查询教师信息的功能 教师具有添加,删除,修改和查询学生信息,录入,删除...
学生信息管理系统课程设计
课程设计。2005 2006第1学期 课程设计类型 应用软件综合设计。题目 学生信息管理系统。学号 姓名 专业 指导教师 制。填写说明 1 一 二 三项由指导教师在课程设计开始前填写并交由学生保管 2 四项由学生在完成课程设计后填写,并将此表与课程设计一同装订成册交给指导教师 3 成绩评定由指导教师...