用c语言编写的一个学生信息管理系统
- 格式:docx
- 大小:11.39 KB
- 文档页数:7
路漫漫其修远兮,吾将.上F而求索・百度文库
用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、 数据输出、数据处理等操作。在主函数里能实现以下功能。
运行后出现一个选择提示。
可选择的功能有1)创建新的学生信息链表
2)增加一个新的学生信息
3)按学号删除某个学生信息
4)按学号查找某个学生信息
5)可以按照学生成绩对■链表排序
6)退出系统
#include "stdio.h"
#include "stdlib.h"
#include "string.hn
#include ,,conio.hH
jiemian();
struct student
(
char name[50];
char sex[5];
int age;
char num[50];
float scorel;
float score2;
float score3;
float sum;
float ave;
}stu[50],del;
void gnl()
(
int i=0;
char numl;
for(i=0;i<50;i++)
(
printf「请输入要添加的学生资料:\n“);
printf(“学号巧;
scanf("%s",stu[i].num);
printf("姓名巧;
scanf("%s",stu[i].name);
printf(“性别巧;
scanf("%s",&stu[i].sex);
printf(“年龄巧;
scanf("%d",&stu[i].age); 11
目上下而求索•百度文库
printf(”请输入学生的三门成绩:'俏;
printf("语文门;
scanf(,,%f,,,&stu[i].scorel);
printf(“数学门;
scanf(,,%f,,,&stu[i].score2);
printf("英语巧;
scanf(,,%f,,,&stu[i].score3);
printf("是否继续添加:y/n\n“); scanf(,,%c,,,&numl);
scanf(,,%c,,,&numl);
if(numl==,N, 11 numl=="n,)
{
system(,,cls"); jiemian();
)
)
)
void gn2()
(
int i;
char num[50];
printf「请输入要查找的学生学号:\n“);
scanf(,,%s,,/num);
for(i=0;i<50;i++)
if(strcmp(stu[i].num,num)==O) (
stu[i].sum=stu[i].scorel+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum^;
printf(',%s\t%s\t%s\t%d\t%,2f\t%.2f\t%.2f\t%.2f\t%.2f:\n'l/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,stu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);
break;
)
if(i==50)
printf("查找不到!请重新输入!\n");
22 路漫漫其修远兮,吾将上F而求索・百度文库
getch(); systemf'cls"); jiemian();
)
void gn3()
(
char numlJ=0;
printf("请输入要修改的学生学号:\n“);
scanf(,,%s,,/stu[i].num);
printf(,l%s\t%s\t%s\t%d\t%,2f\t%.2f\t%.2f\t%.2f\t%.2f:\n'l/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,stu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);
printf("姓名门;
scanf(,,%s,,/stu[i].name);
printf(“性别门;
scanf(,,%s,,/stu[i].sex);
printf("年龄门;
scanf(,,%d,,,&stu[i].age);
printf(“请输入学生的三门成绩:\n“);
printf("语文门;
scanf(,,%f,,,&stu[i].scorel);
printf(“数学门;
scanf(,,%f,,,&stu[i].score2);
printf("英语门;
scanf(,,%f,,,&stu[i].score3);
printf("是否继续修改:y/n?\n“);
scanf(,,%c"/&numl);
scanf(,,%c,\&numl);
if(numl==,N, 11 numl==,n,)
systemf'cls"); jiemian();
)
void gn4()
(
int i;
char num[50];
printf("请输入要删除的学生学号:\n“);
scanf(,,%s,,,num);
for(i=0;i<50;i++) 33
if(strcmp(num,stu[i].num)==O)
( printf(,,%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n,,/stu[i].num/stu[i].name/stu[i].sex/stu[i]
.age,stu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);
stu[i]=del;
printf("信息已删除,按任意键返回..\n“); break;
)
if(i==50)
printf ("您输入的信息不存在!\n”);
getch();
system("cls"); jiemian();
)
void gn5()
(
int i=0;
stu[i].sum=stu[i].scorel+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t平均成绩\n");
for(i=0;i<50;i++)
(
if(stu[i].age==O)
break;
printf(,,%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n,,/stu[i].num/stu[i].name/stu[i].sex/stu[i]
.age,stu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);
)
printf("按任意键返回.
getch();
system(,,clsn);
jiemian();
)
void gn6()
(
FILE *fp;
int i;
char filename[50];
printf(,,\nN); 44
路漫漫其修远兮,吾将上F而求索・百度文库
printf(,,\nM);
printf(“请输入要保存的文件名:");
scanf(”%s”,filename);
if((fp=fopen(filename/,wb,,))==NULL)
printf("文件名为空,不能保存!\n"); for(i=0;i<50;i++)
(
if(fwrite(&stu[i],sizeof(struct student),l,fp)!=l) printf("文件保存失败!\n”);
)
fclose(fp);
printf (“文件己保存!\n“);
printf。按任意键返回
getch();
system(l,cls,,);
jiemian();
)
void gn7()
(
FILE *fp;
int i=0; 〃打开文件流
char filename[50];
printf(“请输入文件名:");
scanf("%s",filename); 〃输入要载入的文件名
if((fp=fopen(filename,"rb"))==0) 〃如果当前目录下不存在相对应的文件,输出文件不存 在,退出系统。 (
printf("文件不存在! \n"); exit(O);
)
while(fread(&stu[i]/sizeof(struct student),l,fp)!=O)〃若存在,读取系统
(
i++;
)
fclose(fp); 〃程序结束后,关闭流。printf("
信息已载入! \n");
printf(“按回车键返回");
getchar();
getchar();
system(l,cls,,);
jiemian();
)
55