C语言 学生管理系统代码
实现功能
功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名、学号、专业、 性别、年龄、 电话、家庭住址。还可以继续拓展
系统要求实现以下功能:
1、输入功能:录入学生信息(包括学生姓名、学号、专业、 性别、年龄、 电话、家庭住址等);
2、显示功能:完成学生记录的显示。
3、查找功能:完成按学号或姓名查找学生的相关记录,并显示。
编程创建文件,输入学生信息并可将文件内容显示出来)
4.设置登录模块
4.1、在获得管理员权限后才可完成查询功能,即输入学号,可查询该学生的信息
4.2、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。
C语言作业要求:
1、用C语言实现程序设计;
2、利用结构体数组、链表等实现学生信息表达、查询等,充分体现数据结构的知识;
3、系统的各个功能模块要求用函数的形式实现;
4、界面友好(良好的人机交互),程序要有注释。
5、程序中所用到的查找方法需采用数据结构中所学方法实现,要求方法实用效率高。
学生管理系统是具有统计,管理学生各种在校相关信息,方便学校对于学生信息的统一管理的系统。由于需要处理的学生信息日趋加大,为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它解决了学生管理数据信息量大,修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息,成为管理高校中必不可少的管理工具。
管理员对系统的功能需求:
有关学生信息的输入功能
有关学生信息的显示功能
有关学生信息的查找功能
有关学生信息的修改功能
有关学生信息的修改加密功能
有关界面的人机交互友好化功能
有关学生信息文件的存储和读取功能
完整版代码https://download.csdn.net/download/weixin_40933653/66274749
下面是程序展示
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.展示查询功能