用C语言编写的一个学生信息管理系统

发布时间:2020-03-28 04:53:29   来源:文档文库   
字号:

C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。

在主函数里能实现以下功能。

运行后出现一个选择提示。

可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;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);printf("请输入学生的三门成绩:

\n");printf("语文:

");scanf("%f",&stu[i].score1);printf("数学:

");scanf("%f",&stu[i].score2);printf("英语:

");scanf("%f",&stu[i].score3);printf("是否继续添加:

y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='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)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;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].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:

\n");scanf("%s",stu[i].num);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].score1,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].score1);printf("数学:

");scanf("%f",&stu[i].score2);printf("英语:

");scanf("%f",&stu[i].score3);printf("是否继续修改:

y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:

\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){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].score1,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].score1+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==0)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].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char filename[50];printf("\n");printf("\n");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),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("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(0);}while(fread(&stu[i],sizeof(struct student),1,fp)!=0)//若存在,读取系统{i++;}fclose(fp);//程序结束后,关闭流。

printf("信息已载入!\n");printf("按回车键返回");getchar();getchar();system("cls");jiemian();}void gn8(){printf("按任意键退出...");exit(0);}void xuanze(){int num;scanf("%d",&num);switch(num){case 1

system("cls");gn1();break;case 2

system("cls");gn2();break;case 3

system("cls");gn3();break;case 4

system("cls");gn4();break;case 5

system("cls");gn5();break;case 6

system("cls");gn6();break;case 7

system("cls");gn7();break;case 8

system("cls");gn8();break;default

printf(" ");break;}}jiemian(){printf("\t\t*****************学生档案管理系统*************\n");printf("\t\t1>添加学生信息");printf("\t\t\t2>查找学生信息\n");printf("\t\t3>修改学生信息");printf("\t\t\t4>删除学生信息\n");printf("\t\t5>显示学生信息");printf("\t\t\t6>保存学生信息\n");printf("\t\t7>载入学生信息");printf("\t\t\t8>退出系统\n");printf("\t\t**********************************************\n");printf("请从1-8中选择您的操作:

\n");xuanze();}void main(){jiemian();}

本文来源:https://www.2haoxitong.net/k/doc/aa2001846bdc5022aaea998fcc22bcd127ff425e.html

《用C语言编写的一个学生信息管理系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式