系统介绍:
    该系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生的各种信息进行日常管理,如查询、修改、增加、删除等。
功能介绍:
    实现学生信息的查询、修改、增加、删除、按学号删除学生信息和保存学生信息(建立文本文档)。
函数声明:
void help(); //帮助界面
void readfile(); //读入数据
void seek(); //查找信息
void modify(); //修改数据
void insert(); //插入数据
void del(); //删除数据
void display(); //显示信息
void save(); //保存信息
void menu(); // 菜单
文件读取函数实现:

void readfile()
{char filename[20];             /* 文件名*/FILE *fp;                             /* 文件指针*/int i=0;printf("请输入已经存有学生信息的文件名:\n");    scanf("%s",filename);if((fp=fopen(filename,"r"))==NULL)         /* 以只读的方式打开指定文件*/{printf("打开文件%s错误",filename);printf("请先增加学生信息在执行此操作\n");system("pause");return;}/* 循环读入学生信息*/while(fscanf(fp,"%s%s%d%s%s%s%s%s",stu[i].code,stu[i].name,&stu[i].age,&stu[i].sex,&stu[i].address ,&stu[i].e_mail,&stu[i].tel ,&stu[i].birth  )==8){i++;}n=i;if(0==i)printf("文件为空,请先选择菜单4增加学生信息\n");elseprintf("读入成功\n");fclose(fp);system("pause");
}

查找函数的实现:

void seek() /*查找*/
{int i,item,flag;char s1[20]; printf("**************************\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("**************************\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;printf("学号\t学生姓名 年龄\t性别\t地址\t\t邮箱\t\t电话\t\t出生日期  \n");             printf("--------------------------------------------------------------------\n");printf("%s\t%s\t %d\t%c\t%s\t%s\t%s\t%s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].address ,stu[i].e_mail ,stu[i].tel,stu[i].birth  );}if(0==flag)printf("该学号不存在!\n"); break;case 2:printf("请输入要查询的学生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].name,s1)==0){flag=1;printf("学号\t学生姓名 年龄\t性别\t地址\t\t邮箱\t\t电话\t\t出生日期  \n");             printf("--------------------------------------------------------------------\n");printf("%s\t%s\t %d\t%c\t%s\t%s\t%s\t%s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].address ,stu[i].e_mail ,stu[i].tel,stu[i].birth  );}if(0==flag)printf("该姓名不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}
}

修改信息函数的实现:

void modify() /*修改信息*/
{int i,item,num;                    /* item代表子菜单的编号,num是保存要修改信息的学生的序号*/char sex1,s1[20],s2[20]; char address1;char e_mail1;char tel1;char birth1;printf("请输入要要修改的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0) /*比较字符串是否相等*/num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改地址\n");printf("5.修改邮箱\n");printf("6.修改电话\n");printf("7.修改出生日期\n");printf("8.退出本菜单\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的姓名:\n");scanf("%s",s2);strcpy_s(stu[num].name,s2); break;case 2:printf("请输入新的年龄:\n");scanf("%d",stu[num].age);break;case 3:printf("请输入新的性别:\n");scanf("%s",&sex1);stu[num].sex=sex1; break;   case 4:printf("请输入新的地址:\n");scanf("%s",&address1);strcpy_s(stu[num].address ,&address1); break;case 5:printf("请输入新的邮箱:\n");scanf("%s",&e_mail1);strcpy_s(stu[num].e_mail,&e_mail1); break;case 6:printf("请输入新的电话:\n");scanf("%s",&tel1);strcpy_s(stu[num].tel,&tel1); break;case 7: printf("请输入新的出生日期:\n");scanf("%s",&birth1);strcpy_s(stu[num].birth,&birth1); break;default:printf("请在1-7之间选择\n");}}
}

插入信息函数的实现:

void insert() /*插入函数*/
{int j=n,i,flag;printf("请输入待增加的学生数:\n");scanf("%d",&m);if(m>0){do{flag=1;while(flag){flag=0;printf("请输入第%d位学生的学号(查重):\n",j+1);scanf("%s",stu[j].code);for(i=0;i<j;i++)                     /*和之前的学号比较,如果重复,重新输入*/if(strcmp(stu[j].code,stu[i].code)==0){printf("已有该学号,请重新录入\n");flag=1;break;                       /*如有重复,退出循环*/}}printf("请输入第%d 个学生的学号:\n",j+1);scanf("%s",&stu[j].code,8);printf("请输入第%d 个学生的姓名:\n",j+1);scanf("%s",&stu[j].name);printf("请输入第%d 个学生的年龄:\n",j+1);scanf("%d",&stu[j].age);printf("请输入第%d 个学生的性别:\n",j+1);scanf(" %c",&stu[j].sex);printf("请输入第%d 个学生的地址\n",j+1);scanf("%s",&stu[j].address );printf("请输入第%d 个学生的邮箱:\n",j+1);scanf("%s",&stu[j].e_mail );printf("请输入第%d 个学生的电话:\n",j+1);scanf("%s",&stu[j].tel );printf("请输入第%d 个学生的出生日期:\n",j+1);scanf("%s",&stu[j].birth );if(0==flag){j++;}}while(j<n+m);}n+=m;printf("信息增加完毕!\n\n");system("pause");
}

删除信息函数的实现:

void del()
{int i,j,flag=0;         /* flag为0表示查找失败,为1表示查找成功*/char s1[20];printf("请输入要删除学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0)  /*找到要删除的学生记录*/{flag=1;                   /*查找成功*/for(j=i;j<n-1;j++)stu[j]=stu[j+1];}if(flag==0)                /*查找失败*/printf("该学号不存在!\n");if(flag==1){printf("删除成功,显示结果请选择菜单\n");n--;}system("pause");
}

展示函数的实现:

void display()
{int i;printf("共有%d位学生的信息:\n",n);if(0!=n){printf("学号\t学生姓名 年龄\t性别\t地址\t\t邮箱\t\t电话\t\t出生日期  \n");             printf("--------------------------------------------------------------------\n");            for(i=0;i<n;i++){ printf("%s\t%s\t %d\t%c\t%s\t%s\t%s\t%s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].address ,stu[i].e_mail ,stu[i].tel,stu[i].birth  );}}system("pause");
}

保存信息函数的实现:

void save()
{int i;FILE *fp;char filename[20];printf("请命名要保存该信息的文件名:\n");      /*输入要保存的文件的名字*/scanf("%s",filename);fp=fopen(filename,"w");for(i=0;i<n;i++){fprintf(fp,"%s\t%s\t %d\t%c\t%s\t%s\t%s\t%s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].address ,stu[i].e_mail ,stu[i].tel,stu[i].birth );}printf("保存成功\n");fclose(fp);system("pause");
}

菜单界面设计:

void menu()/* 界面*/
{int num;printf("Designer by _MaL:\n\n");printf("                                       学生管理系统 V2.0                                                                   \n\n");printf("\t**********************************************************************************\n");printf("\t*                           0. 系统帮助及说明                                    *\n");printf("\t**********************************************************************************\n");printf("\t*                           1. 刷新学生信息                                      *\n");printf("\t**********************************************************************************\n");printf("\t*                           2. 查询学生信息                                      *\n");printf("\t**********************************************************************************\n");printf("\t*                           3. 修改学生信息                                      *\n");printf("\t**********************************************************************************\n");printf("\t*                           4. 增加学生信息                                      *\n");printf("\t**********************************************************************************\n");printf("\t*                           5. 按学号删除信息                                    *\n");printf("\t**********************************************************************************\n");printf("\t*                           6. 展示当前学生信息                                  *\n");printf("\t**********************************************************************************\n");printf("\t*                           7. 保存当前学生信息                                  *\n");printf("\t**********************************************************************************\n");printf("\t*                           8. 退出系统                                          *\n");printf("\t**********************************************************************************\n\n");printf("请输入您的选项(0~8):\n\n");

主函数实现:

int main()
{ while(1)//循环打印菜单{menu();printf("请输入您的选项(0~8):\n\n");scanf("%d",&num);switch(num){ case 0:help();;break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:exit(0);break;default:printf("请在0-8之间选择\n");}}system("pause");return 0;
}

完整源码:

#define _CRT_SECURE_NO_WARNINGS                  //消除  scanf/fopen  的unsafe warning
//scanf -> scanf_s       fopen -> fopen_s
#include<stdio.h>
#include<stdlib.h>
#include<string.h> struct Student
{char code[20]; /* 学号*/char name[10]; /* 姓名*/int age;          /* 年龄*/char sex;         /* 性别*/char address[80];/*地址*/char e_mail[50];/*邮箱*/char tel[11];/*电话*/char birth[40];/*出生日期*/
}stu[200];
int n = 0, m = 0;/*定义全局变量, n代表当前记录的学生总人数,m为新增加的学生人数*/
/* 函数声明*/
void help();         /* 帮助界面*/
void readfile();    /* 读入数据*/
void seek();        /* 查找信息*/
void modify();       /* 修改数据*/
void insert();       /* 插入数据*/
void del();          /* 删除数据*/
void display();       /* 显示信息*/
void save();          /* 保存信息*/
void menu();        /* 菜单*/
int main()
{while (1)//循环打印菜单{menu();}system("pause");return 0;
}
void help()      /* 帮助信息*/
{printf("_______________________________________________________\n");printf("\n欢迎使用系统帮助!\n");printf("\n首次进入系统后,请先选择增加学生信息;\n");printf("\n按照菜单提示输入数字代号;\n");printf("\n增加学生信息后记得保存;\n");printf("\n感谢您的使用!\n");printf("_______________________________________________________\n");system("pause");
}
void readfile()
{char filename[20];             /* 文件名*/FILE* fp;                             /* 文件指针*/int i = 0;printf("请输入已经存有学生信息的文件名:\n");scanf("%s", filename);if ((fp = fopen(filename, "r")) == NULL)         /* 以只读的方式打开指定文件*/{printf("打开文件%s错误", filename);printf("请先增加学生信息在执行此操作\n");system("pause");return;}/* 循环读入学生信息*/while (fscanf(fp, "%s%s%d%s%s%s%s%s", stu[i].code, stu[i].name, &stu[i].age, &stu[i].sex, &stu[i].address, &stu[i].e_mail, &stu[i].tel, &stu[i].birth) == 8){i++;}n = i;if (0 == i)printf("文件为空,请先选择菜单4增加学生信息\n");elseprintf("读入成功\n");fclose(fp);system("pause");
}void seek() /*查找*/
{int i, item, flag;char s1[20];printf("**************************\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("**************************\n");while (1){printf("请选择子菜单编号:");scanf("%d", &item);flag = 0;switch (item){case 1:printf("请输入要查询的学生的学号:\n");scanf("%s", s1);for (i = 0; i < n; i++)if (strcmp(stu[i].code, s1) == 0){flag = 1;printf("学号\t学生姓名 年龄\t性别\t地址\t\t邮箱\t\t电话\t\t出生日期  \n");printf("--------------------------------------------------------------------\n");printf("%s\t%s\t %d\t%c\t%s\t%s\t%s\t%s\n", stu[i].code, stu[i].name, stu[i].age, stu[i].sex, stu[i].address, stu[i].e_mail, stu[i].tel, stu[i].birth);}if (0 == flag)printf("该学号不存在!\n"); break;case 2:printf("请输入要查询的学生的姓名:\n");scanf("%s", s1);for (i = 0; i < n; i++)if (strcmp(stu[i].name, s1) == 0){flag = 1;printf("学号\t学生姓名 年龄\t性别\t地址\t\t邮箱\t\t电话\t\t出生日期  \n");printf("--------------------------------------------------------------------\n");printf("%s\t%s\t %d\t%c\t%s\t%s\t%s\t%s\n", stu[i].code, stu[i].name, stu[i].age, stu[i].sex, stu[i].address, stu[i].e_mail, stu[i].tel, stu[i].birth);}if (0 == flag)printf("该姓名不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}
}void modify() /*修改信息*/
{int i, item, num;                    /* item代表子菜单的编号,num是保存要修改信息的学生的序号*/char sex1, s1[20], s2[20];char address1;char e_mail1;char tel1;char birth1;printf("请输入要要修改的学生的学号:\n");scanf("%s", s1);for (i = 0; i < n; i++)if (strcmp(stu[i].code, s1) == 0) /*比较字符串是否相等*/num = i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改地址\n");printf("5.修改邮箱\n");printf("6.修改电话\n");printf("7.修改出生日期\n");printf("8.退出本菜单\n");printf("------------------\n");while (1){printf("请选择子菜单编号:");scanf("%d", &item);switch (item){case 1:printf("请输入新的姓名:\n");scanf("%s", s2);strcpy_s(stu[num].name, s2); break;case 2:printf("请输入新的年龄:\n");scanf("%d", stu[num].age); break;case 3:printf("请输入新的性别:\n");scanf("%s", &sex1);stu[num].sex = sex1; break;case 4:printf("请输入新的地址:\n");scanf("%s", &address1);strcpy_s(stu[num].address, &address1); break;case 5:printf("请输入新的邮箱:\n");scanf("%s", &e_mail1);strcpy_s(stu[num].e_mail, &e_mail1); break;case 6:printf("请输入新的电话:\n");scanf("%s", &tel1);strcpy_s(stu[num].tel, &tel1); break;case 7:printf("请输入新的出生日期:\n");scanf("%s", &birth1);strcpy_s(stu[num].birth, &birth1); break;case 8:printf("操作已经保存!");system("pause");return;default:printf("请在1-8之间选择\n");}}
}void insert() /*插入函数*/
{int j = n, i, flag;printf("请输入待增加的学生数:\n");scanf("%d", &m);if (m > 0){do{flag = 1;while (flag){flag = 0;printf("请输入第%d位学生的学号(查重):\n", j + 1);scanf("%s", stu[j].code);for (i = 0; i < j; i++)                     /*和之前的学号比较,如果重复,重新输入*/if (strcmp(stu[j].code, stu[i].code) == 0){printf("已有该学号,请重新录入\n");flag = 1;break;                       /*如有重复,退出循环*/}}printf("请输入第%d 个学生的学号:\n", j + 1);scanf("%s", &stu[j].code, 8);printf("请输入第%d 个学生的姓名:\n", j + 1);scanf("%s", &stu[j].name);printf("请输入第%d 个学生的年龄:\n", j + 1);scanf("%d", &stu[j].age);printf("请输入第%d 个学生的性别:\n", j + 1);scanf(" %c", &stu[j].sex);printf("请输入第%d 个学生的地址\n", j + 1);scanf("%s", &stu[j].address);printf("请输入第%d 个学生的邮箱:\n", j + 1);scanf("%s", &stu[j].e_mail);printf("请输入第%d 个学生的电话:\n", j + 1);scanf("%s", &stu[j].tel);printf("请输入第%d 个学生的出生日期:\n", j + 1);scanf("%s", &stu[j].birth);if (0 == flag){j++;}} while (j < n + m);}n += m;printf("信息增加完毕!\n\n");system("pause");
}void del()
{int i, j, flag = 0;         /* flag为0表示查找失败,为1表示查找成功*/char s1[20];printf("请输入要删除学生的学号:\n");scanf("%s", s1);for (i = 0; i < n; i++)if (strcmp(stu[i].code, s1) == 0)  /*找到要删除的学生记录*/{flag = 1;                   /*查找成功*/for (j = i; j < n - 1; j++)stu[j] = stu[j + 1];}if (flag == 0)                /*查找失败*/printf("该学号不存在!\n");if (flag == 1){printf("删除成功,显示结果请选择菜单\n");n--;}system("pause");
}void display()
{int i;printf("共有%d位学生的信息:\n", n);if (0 != n){printf("学号\t学生姓名 年龄\t性别\t地址\t\t邮箱\t\t电话\t\t出生日期  \n");printf("--------------------------------------------------------------------\n");for (i = 0; i < n; i++){printf("%s\t%s\t %d\t%c\t%s\t%s\t%s\t%s\n", stu[i].code, stu[i].name, stu[i].age, stu[i].sex, stu[i].address, stu[i].e_mail, stu[i].tel, stu[i].birth);}}system("pause");
}void save()
{int i;FILE* fp;char filename[20];printf("请命名要保存该信息的文件名:\n");      /*输入要保存的文件的名字*/scanf("%s", filename);fp = fopen(filename, "w");for (i = 0; i < n; i++){fprintf(fp, "%s\t%s\t %d\t%c\t%s\t%s\t%s\t%s\n", stu[i].code, stu[i].name, stu[i].age, stu[i].sex, stu[i].address, stu[i].e_mail, stu[i].tel, stu[i].birth);}printf("保存成功\n");fclose(fp);system("pause");
}void menu()/* 界面*/
{int num;printf("Designer by _MaL:\n\n");printf("                                       学生管理系统 V2.0                                                                   \n\n");printf("\t**********************************************************************************\n");printf("\t*                           0. 系统帮助及说明                                    *\n");printf("\t**********************************************************************************\n");printf("\t*                           1. 刷新学生信息                                      *\n");printf("\t**********************************************************************************\n");printf("\t*                           2. 查询学生信息                                      *\n");printf("\t**********************************************************************************\n");printf("\t*                           3. 修改学生信息                                      *\n");printf("\t**********************************************************************************\n");printf("\t*                           4. 增加学生信息                                      *\n");printf("\t**********************************************************************************\n");printf("\t*                           5. 按学号删除信息                                    *\n");printf("\t**********************************************************************************\n");printf("\t*                           6. 展示当前学生信息                                  *\n");printf("\t**********************************************************************************\n");printf("\t*                           7. 保存当前学生信息                                  *\n");printf("\t**********************************************************************************\n");printf("\t*                           8. 退出系统                                          *\n");printf("\t**********************************************************************************\n\n");printf("请输入您的选项(0~8):\n\n");scanf("%d", &num);switch (num){case 0:help();; break;case 1:readfile(); break;case 2:seek(); break;case 3:modify(); break;case 4:insert(); break;case 5:del(); break;case 6:display(); break;case 7:save(); break;case 8:exit(0); break;default:printf("请在0-8之间选择\n");}
}

运行结果:

c语言实现《学生管理系统》相关推荐

  1. C/C++语言实现 学生管理系统

    C/C++语言实现 学生管理系统 首先,让我分部分介绍本学生管理系统 本系统分为两个大板块,分别是学生版和教师版,学生版又分出三个具体功能,教师版分为七个功能,让我依次来介绍它们吧! (一)学生版 1 ...

  2. C语言实现学生管理系统

    C语言实现-学生管理系统 程序员的必经之路吧,学生管理系统.在制作过程中体会到了编写一个具体可用的软件而要做的工作,无论是编写前的准备,还是编写过程中每个细节的处理,都让我理解了这份工作是个什么样子. ...

  3. 语言学生学籍管理系统流程图_基于C语言的学生管理系统(含文件)(一)

    "点击上方"蓝色字",关注我们哦(*^▽^*)!" NO.1 篇幅较长,请空闲时观看 前言 这个项目是大一暑假完成,纯C语言编写,界面比较美观,由于当时还是一个 ...

  4. 学生管理系统c#语言代码,基于C#语言的学生管理系统的设计(ASP.NET2.0)

    摘  要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.学生管理系统是学校管理中不可少的一部分.而基于B/S架构的学生管 ...

  5. (C语言)学生管理系统

    学生管理系统 题目:编写学生管理系统,其中学生的信息有姓名(汉语拼音,最多20个字符),性别(男/女,用1表示男,2表示女). 生日(19850101(年月日)).身高(以m为单位),还需要处理C语言 ...

  6. c语言实现学生管理系统,C语言学生管理系统源代码

    <C语言学生管理系统源代码>由会员分享,可在线阅读,更多相关<C语言学生管理系统源代码(12页珍藏版)>请在人人文库网上搜索. 1.C语言学生成绩管理系统源代码,保证能用#in ...

  7. C语言强化——学生管理系统

    系统模块设计 a.预处理模块 系统在启动时会根据配置文件里的内容去相应文件里去加载账户信息和学生信息. b.登陆模块 输入用户名和密码,输密码的时候用"*" 代表用户当前输入的内容 ...

  8. 初学Go语言的学生管理系统

    package mainimport ("fmt""os" )// Student struct represents a student (一般在结构体上面加 ...

  9. c语言编程学生管理系统的代码,C语言学生管理系统源代码.doc

    C语言学生成绩管理系统源代码,保证能用-- #include "malloc.h" #include "stdio.h" #include "stdl ...

  10. C语言—班级学生管理系统

    下面是根据班级,这个人数较少的单位设计的学籍管理系统,录入时,要求班内序号由1开始  按顺序录入,其中主要用到了 结构体数组,文件处理,循环语句,选择语句等方面的知识 在设计中遇到一个问题就是  不知 ...

最新文章

  1. easyui 下拉框用法
  2. 科大星云诗社动态20210817
  3. 【CentOS8】安装 mysql 5.7
  4. 最短无序连续子数组—leetcode581
  5. Java JDBC连接SQL Server2005错误:通过port 1433 连接到主机 localhost 的 TCP/IP 连接失败...
  6. 深入理解MyBatis的原理(四):映射器的用法
  7. M1 Macbook安装MATLAB
  8. 弹窗php整人,bat整人代码,超级弹窗代码
  9. Java毕业设计_智能快递柜的设计与实现
  10. Youtube上传视频处理失败怎么办
  11. Nginx 配置多个SSL域名指向不同端口
  12. 【导数术】4.三次函数
  13. 【Android 第三方SDK】breakpad在linux下编译
  14. 计算机模拟需要什么配置电脑,网易MuMu模拟器对电脑配置的最低要求介绍
  15. python123第三单元测试卷_第三单元测试卷(带答案)
  16. 【基于微信的物品回收小程序的设计与实现】
  17. DFRobot离线语音识别模块真实测评
  18. KVM管理平台选型与开源企业级虚拟化平台oVirt详解
  19. 动态规划------走楼梯问题
  20. PM-K65 光学传感器 PM-65系列,AFEM-8245前端模块

热门文章

  1. 树状数组--前n项和;
  2. 超漂亮的CSS3按钮制作教程分享
  3. 阿里云 POSTFIX 邮件服务 PHP
  4. url中文传参乱码问题
  5. php如何获取当前的cookie,怎么获取cookie的值
  6. simplex字体下载cad_CAD字体大全【资料下载】
  7. EfficientDet 论文记录
  8. Compile syslog-win32
  9. python中字典的用法_Python中字典的详细用法
  10. linux下zip分卷z01解压,Linux下解压分包文件zip(zip/z01/z02)