C语言 学生管理系统代码

实现功能

功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名、学号、专业、  性别、年龄、   电话、家庭住址。还可以继续拓展

系统要求实现以下功能:
1、输入功能:录入学生信息(包括学生姓名、学号、专业、  性别、年龄、   电话、家庭住址等);
2、显示功能:完成学生记录的显示。
3、查找功能:完成按学号或姓名查找学生的相关记录,并显示。

编程创建文件,输入学生信息并可将文件内容显示出来)

4.设置登录模块

4.1、在获得管理员权限后才可完成查询功能,即输入学号,可查询该学生的信息

4.2、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。
C语言作业要求:

1、用C语言实现程序设计;
2、利用结构体数组、链表等实现学生信息表达、查询等,充分体现数据结构的知识;
3、系统的各个功能模块要求用函数的形式实现;
4、界面友好(良好的人机交互),程序要有注释。
5、程序中所用到的查找方法需采用数据结构中所学方法实现,要求方法实用效率高。

学生管理系统是具有统计,管理学生各种在校相关信息,方便学校对于学生信息的统一管理的系统。由于需要处理的学生信息日趋加大,为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它解决了学生管理数据信息量大,修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息,成为管理高校中必不可少的管理工具。

管理员对系统的功能需求:
有关学生信息的输入功能
有关学生信息的显示功能
有关学生信息的查找功能
有关学生信息的修改功能
有关学生信息的修改加密功能
有关界面的人机交互友好化功能
有关学生信息文件的存储和读取功能

完整版代码学生管理系统.zipC语言链表设置密码_C语言系统如何设置密码-C++文档类资源-CSDN下载
下面是程序展示

1.部分菜单功能展示

    printf("\t\t0.退出系统\n");printf("\t\t1.插入信息\n");printf("\t\t2.浏览信息\n");printf("\t\t3.修改信息\n");printf("\t\t4.删除信息\n");printf("\t\t5.查找信息\n");

2.学生管理系统的增删查找:

2.1   增:插入学生信息


void insertNodeByHead(struct Node *headNode,struct student data)  //表头法插入
{struct Node* newNode=createNode(data);newNode->next=headNode->next ;headNode->next=newNode;
}

2.2    删:删除学生信息

void deleteNodeByName(struct Node *headNode,char *name)
{struct Node *posNode=headNode->next;  //初始化,从链表头结点开始寻找删除的节点struct Node *posNodeFront=headNode;if(posNode==NULL){printf("无法删除链表,为空\n");}else{while(strcmp(posNode->data.name,name)){posNodeFront=posNode;posNode=posNodeFront->next ;if(posNode==NULL){printf("无法找到相关信息,无法删除\n");//   break;return ;}     }   posNodeFront->next=posNode->next ;free(posNode);}
}

2.3  查:按照学号查找学生信息

void printNode(struct Node *CurNode)  //查找时单独打印数据
{printf("姓名\t学号\t专业\t   性别\t  年龄\t   电话\t\t家庭住址\n");printf("%s\t%s\t%s\t   %s\t  %d\t%s\t  %s\t\n",CurNode->data.name,CurNode->data.num,CurNode->data.major ,CurNode->data.sex ,CurNode->data.age,CurNode->data.tel,CurNode->data.addr);}

2.4    找:浏览学生信息

void printList(struct Node *headNode)  //打印,浏览信息
{struct Node *pMove=headNode->next ;printf("姓名\t学号\t专业\t   性别\t  年龄\t   电话\t\t家庭住址\n");while(pMove){printf("%s\t%s\t%s\t   %s\t  %d\t%s\t  %s\t\n",pMove->data.name,pMove->data.num,pMove->data.major, pMove->data.sex,pMove->data.age,pMove->data.tel,pMove->data.addr);pMove =pMove->next ;//printf("\n");}}

3.      文件操作

3.1      读取文件操作

//读文件操作
void readfromFile(char *Filename,struct  Node *HeadNode)
{FILE *fp=fopen(Filename,"r");if(fp==NULL){fp=fopen(Filename,"w");//没有现有文件,就创建文件 以写的方式打开文件}struct student FileData;while(fscanf(fp,"%s\t%s\t%d\t%s\t  %s\t\n",FileData.name,FileData.num,&FileData.age,FileData.tel,FileData.addr) !=EOF )  //不到文件结束的时候{insertNodeByHead(HeadNode,FileData);memset(&FileData,0,sizeof (FileData));}fclose(fp);//关闭文件
}

3.2     保存文件操作

//存储文件操作
void saveinFile(char *Filename,struct  Node *headNode)
{FILE *fp=fopen(Filename,"w");//写文件struct Node *pMove=headNode->next ;//初始化,从链表头结点开始寻找的节点while(pMove){fprintf(fp,"%s\t%s\t%d\t%s\t  %s\t\n",pMove->data.name,pMove->data.num,pMove->data.age,pMove->data.tel,pMove->data.addr);pMove =pMove->next ; //移动指针 不然始终跳不出循环}//数据写入到文件fclose(fp);}

4.功能函数

4.1    设置菜单函数

void systemMeum()
{//几个菜单,通常情况下就是几个函数//菜单--功能//隐藏功能:同步文件操作:保存到文件 增删查改printf("----------------------------[学生管理系统]------------------------\n");printf("\t\t0.退出系统\n");printf("\t\t1.插入信息\n");printf("\t\t2.浏览信息\n");printf("\t\t3.修改信息\n");printf("\t\t4.删除信息\n");printf("\t\t5.查找信息\n");printf("-----------------------------------------------------------------\n");printf("请输入0~5:\n"); //程序交互,需要及时提示}

5.     主函数代码

int main()
{//struct  Node *list=createList();loginSystemJudge();readfromFile("student.txt",list);while(1){systemMeum();keyDown();system("pause");system("cls");//清屏}system("pause");return 0;
}

完整版代码:学生管理系统.zipC语言链表设置密码-C++文档类资源-CSDN下载

展示结果

1.登录失败

2.登录成功

3.展示查询功能

学生管理系统 C语言 动态链表 结构体 文件操作 设置密码 输入密码回显星号相关推荐

  1. 字符设备驱动高级篇5——静态映射表、动态映射结构体方式操作寄存器

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.静态映射表建立过程分析 1.建立映射表的三个关键部分 (1)映射表描述 具体物理地址和虚拟地址的值相关的宏定义 ...

  2. C语言编程中实现输入密码回显星号

    众所周知,一个良好的密码输入程序是在用户输入密码时不显示密码本身,只回显星号.或者,在安全性要求更高的某些程序中,什么都不显示.那么,在C语言中如何实现它呢? getc()和getchar()函数想必 ...

  3. c语言中回显,C语言编程中实现输入密码回显星号

    C语言编程中实现输入密码回显星号 众所周知,一个良好的密码输入程序是在用户输入密码时不显示密码本身,只回显星号. 或者,在安全性要求更高的某些程序中,什么都不显示.那么,在C语言中如何实现它呢? ge ...

  4. 在Windows和Linux系统上,用C语言实现命令行下输入密码回显星号和完全隐藏密码

    本篇目录 引子 在Windows 上实现 在Linux上实现 回显星号 代码解读 运行 完全隐藏 运行 引子 在Windows系统上,当我们使用命令行和MySQL进行交互时,第一步就是要输入密码: - ...

  5. c语言动态生成结构体结构,C语言实现动态结构体数组

    C语言实现动态结构体数组 原因是因为以前使用C++来实现的,主要用VERCTOR C++标准库的失代器 而不是纯C:C++是C语言的超集,除了包含C外,还有C++各种新语法,新库! 不过虽然C++用起 ...

  6. c语言动态分配输出学生成绩,C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)...

    题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...

  7. c语言通讯录链表结构体排序,写个通讯录 想要简单就全用的是结构体数组要求改成用链表的...专业的朋友看能不能最简洁的改一下...

    已结贴√ 问题点数:20 回复次数:10 写个通讯录 想要简单就全用的是结构体数组要求改成用链表的...专业的朋友看能不能最简洁的改一下 写个通讯录 想要简单就全用的是结构体数组...不符合要求 要改 ...

  8. 结构体,文件操作,指针,简单练习

    #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h&g ...

  9. c语言实现 输入密码回显星号(删除密码去掉星号)

    相关函数介绍 getch() 所在头文件:#include< conio.h> 函数原型:int getch(void) 返回值:读取的字符的ASCII码值(整数) 功能介绍:直接读取字符 ...

最新文章

  1. Java实现接收数组参数
  2. http get extension information - another way to get host url and port number of current application
  3. centos7安装nginx和php,centos7安装nginx1.10和php7
  4. C语言中的三目运算符是啥?有何用处?
  5. 自主可控的安全关键领域国产工业软件SkyEye
  6. exhaustion java_Java Player.setExhaustion方法代碼示例
  7. 病毒侵袭(HDU-2896)
  8. 奥数 python_奥数赛事china夺得冠军!简单思路用Python解经典数学题
  9. Python使用多进程批量判断素数
  10. 生活大爆炸之何为光速
  11. 关于Nginx里面的配置文件里面的location参数的意思
  12. 使用Unity3D的50个技巧:Unity3D最佳实践
  13. 基于JWT的API权限鉴定
  14. 百里挑一:ICLR 2021杰出论文奖出炉!
  15. 北师大1903计算机在线答案,[南开大学(本部)]20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业-2...
  16. 算法珠玑-变位词的四种解法
  17. USB UVC实战笔记第1篇—UVC设备枚举过程详细分析
  18. UICollectionView Header footer
  19. mbedtls安装与入门
  20. 【无标题】基于51单片机和DHT11的温湿度检测系统

热门文章

  1. 一步步教你使用Proguard混淆Java源代码
  2. 一、CentOS7.4下Elastic Stack 6.2.4日志系统搭建
  3. 为什么系统测试超出软件工程范围测试,软件工程系统测试
  4. Revit二开 批量链接模型
  5. 互联网产品经理技能树
  6. 如何实现自适应布局的?
  7. u盘复制到计算机的文档打不开怎么办,为什么我的U盘拷word文档到别的电脑就打不开了呢...
  8. Domino NSD日志诊断/分析
  9. 2023年房企数字化预算该往哪些场景投?(附爱分析报告下载)
  10. Iceberg 合并小文件并删除历史(Flink)