学生管理系统 C语言 动态链表 结构体 文件操作 设置密码 输入密码回显星号
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语言 动态链表 结构体 文件操作 设置密码 输入密码回显星号相关推荐
- 字符设备驱动高级篇5——静态映射表、动态映射结构体方式操作寄存器
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.静态映射表建立过程分析 1.建立映射表的三个关键部分 (1)映射表描述 具体物理地址和虚拟地址的值相关的宏定义 ...
- C语言编程中实现输入密码回显星号
众所周知,一个良好的密码输入程序是在用户输入密码时不显示密码本身,只回显星号.或者,在安全性要求更高的某些程序中,什么都不显示.那么,在C语言中如何实现它呢? getc()和getchar()函数想必 ...
- c语言中回显,C语言编程中实现输入密码回显星号
C语言编程中实现输入密码回显星号 众所周知,一个良好的密码输入程序是在用户输入密码时不显示密码本身,只回显星号. 或者,在安全性要求更高的某些程序中,什么都不显示.那么,在C语言中如何实现它呢? ge ...
- 在Windows和Linux系统上,用C语言实现命令行下输入密码回显星号和完全隐藏密码
本篇目录 引子 在Windows 上实现 在Linux上实现 回显星号 代码解读 运行 完全隐藏 运行 引子 在Windows系统上,当我们使用命令行和MySQL进行交互时,第一步就是要输入密码: - ...
- c语言动态生成结构体结构,C语言实现动态结构体数组
C语言实现动态结构体数组 原因是因为以前使用C++来实现的,主要用VERCTOR C++标准库的失代器 而不是纯C:C++是C语言的超集,除了包含C外,还有C++各种新语法,新库! 不过虽然C++用起 ...
- c语言动态分配输出学生成绩,C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)...
题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...
- c语言通讯录链表结构体排序,写个通讯录 想要简单就全用的是结构体数组要求改成用链表的...专业的朋友看能不能最简洁的改一下...
已结贴√ 问题点数:20 回复次数:10 写个通讯录 想要简单就全用的是结构体数组要求改成用链表的...专业的朋友看能不能最简洁的改一下 写个通讯录 想要简单就全用的是结构体数组...不符合要求 要改 ...
- 结构体,文件操作,指针,简单练习
#include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h&g ...
- c语言实现 输入密码回显星号(删除密码去掉星号)
相关函数介绍 getch() 所在头文件:#include< conio.h> 函数原型:int getch(void) 返回值:读取的字符的ASCII码值(整数) 功能介绍:直接读取字符 ...
最新文章
- Java实现接收数组参数
- http get extension information - another way to get host url and port number of current application
- centos7安装nginx和php,centos7安装nginx1.10和php7
- C语言中的三目运算符是啥?有何用处?
- 自主可控的安全关键领域国产工业软件SkyEye
- exhaustion java_Java Player.setExhaustion方法代碼示例
- 病毒侵袭(HDU-2896)
- 奥数 python_奥数赛事china夺得冠军!简单思路用Python解经典数学题
- Python使用多进程批量判断素数
- 生活大爆炸之何为光速
- 关于Nginx里面的配置文件里面的location参数的意思
- 使用Unity3D的50个技巧:Unity3D最佳实践
- 基于JWT的API权限鉴定
- 百里挑一:ICLR 2021杰出论文奖出炉!
- 北师大1903计算机在线答案,[南开大学(本部)]20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业-2...
- 算法珠玑-变位词的四种解法
- USB UVC实战笔记第1篇—UVC设备枚举过程详细分析
- UICollectionView Header footer
- mbedtls安装与入门
- 【无标题】基于51单片机和DHT11的温湿度检测系统
热门文章
- 一步步教你使用Proguard混淆Java源代码
- 一、CentOS7.4下Elastic Stack 6.2.4日志系统搭建
- 为什么系统测试超出软件工程范围测试,软件工程系统测试
- Revit二开 批量链接模型
- 互联网产品经理技能树
- 如何实现自适应布局的?
- u盘复制到计算机的文档打不开怎么办,为什么我的U盘拷word文档到别的电脑就打不开了呢...
- Domino NSD日志诊断/分析
- 2023年房企数字化预算该往哪些场景投?(附爱分析报告下载)
- Iceberg 合并小文件并删除历史(Flink)