毕业生信息管理系统

2024-06-02 21:38

本文主要是介绍毕业生信息管理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
typedef struct //定义的用于表示毕业生信息
{char num[20];	//学号char name[20];	//姓名char sex[3];//性别int  age;//年龄int classno;//班级char major[20];//专业char status[20];//就业情况char more[20];//备注
}Student;typedef struct
{Student data[N];//数组int length;//顺序表长度
}SqList;//界面设计
void welcomePrint();//界面
//功能设计
void add(SqList *L1);//添加毕业生信息
void select_num(SqList *L1);//按学号查询
void select_name(SqList *L1);//按姓名查询
void select_all(SqList *L1);//查询所有毕业生
void delete_student(SqList *L1);//删除
void change(SqList *L1);//修改
void sort_no(SqList *L1);//按照学号排序void read(SqList *L1);//文件读毕业生信息
void write(SqList *L1);//文件写毕业生信息int main()
{char x;SqList *L1;L1 = (SqList*)malloc(sizeof(SqList));L1->length = 0;read(L1);//文件读while (1){welcomePrint();//界面登陆printf("请输入你的选择:");scanf("%c", &x);switch (x){case '1':add(L1);//教师信息录入write(L1);//文件写入毕业生信息break;case '2':select_all(L1);//毕业生信息浏览break;case '3':select_num(L1);//按照学号查询break;case '4':select_name(L1);//按照姓名查询break;case '5':change(L1);//修改毕业生信息write(L1);//文件写入毕业生信息break;case '6':delete_student(L1);//删除毕业生信息write(L1);//文件写入毕业生信息break;case '7':sort_no(L1);//按照学号进行排序break;case '0':return 0;default:printf("输入有误,请重新选择!\n");break;}getchar();system("pause");}return 0;
}void welcomePrint()//游客登录界面
{system("cls");//清屏//system("color f5");printf("1、毕业生信息录入\n");printf("2、毕业生信息浏览\n");printf("3、按照学号查询\n");printf("4、按照姓名查询\n");printf("5、修改毕业生信息\n");printf("6、删除毕业生信息\n");printf("7、按照学号进行排序\n");printf("0、退出\n");
}void add(SqList *L1)//添加毕业生信息
{system("cls");if(L1->length>=N){printf("顺序表满,无法添加!\n");return ;}printf("请输入毕业生学号:");scanf("%s",L1->data[L1->length].num);//信息存入表尾printf("请输入毕业生姓名:");scanf("%s",L1->data[L1->length].name);printf("请输入毕业生性别:");scanf("%s",L1->data[L1->length].sex);printf("请输入毕业生年龄:");scanf("%d",&L1->data[L1->length].age);printf("请输入毕业生班级:");scanf("%d",&L1->data[L1->length].classno);printf("请输入毕业生专业:");scanf("%s",L1->data[L1->length].major);printf("请输入毕业生就业情况:");scanf("%s",L1->data[L1->length].status);printf("请输入备注:");scanf("%s",L1->data[L1->length].more);L1->length++;//表长+1printf("新增成功!\n");
}void select_all(SqList *L1)//查询所有毕业生信息
{int i;system("cls");if(L1->length==0){printf("无毕业生信息!\n");return;}printf("%-10s%-10s%-10s%-10s%10s%-20s%-20s%-20s\n","学号","姓名","性别","年龄","班级","专业","就业情况","备注");for(i=0;i<L1->length;i++)//遍历输出{printf("%-10s%-10s%-10s%-10d%10d%-20s%-20s%-20s\n",L1->data[i].num,L1->data[i].name,L1->data[i].sex,L1->data[i].age,L1->data[i].classno,L1->data[i].major,L1->data[i].status,L1->data[i].more);}
}void select_num(SqList *L1)//按学号查询
{int i;char no[20];system("cls");printf("请输入要查询的学号:");scanf("%s",no);if(L1->length==0){printf("无毕业生信息!\n");return;}for(i=0;i<L1->length;i++)//遍历输出{if(!strcmp(no,L1->data[i].num))//如果学号一样{printf("%-10s%-10s%-10s%-10s%10s%-20s%-20s%-20s\n","学号","姓名","性别","年龄","班级","专业","就业情况","备注");printf("%-10s%-10s%-10s%-10d%10d%-20s%-20s%-20s\n",L1->data[i].num,L1->data[i].name,L1->data[i].sex,L1->data[i].age,L1->data[i].classno,L1->data[i].major,L1->data[i].status,L1->data[i].more);break;}}if(i==L1->length)//查询到表尾都没有跳出循环{printf("无该毕业生信息!\n");}
}void select_name(SqList *L1)//按姓名查询
{int i,flag=0;char name[20];system("cls");printf("请输入要查询的姓名:");scanf("%s",name);if(L1->length==0){printf("无毕业生信息!\n");return;}for(i=0;i<L1->length;i++)//遍历输出{if(!strcmp(name,L1->data[i].name))//如果姓名一样{printf("%-10s%-10s%-10s%-10s%10s%-20s%-20s%-20s\n","学号","姓名","性别","年龄","班级","专业","就业情况","备注");printf("%-10s%-10s%-10s%-10d%10d%-20s%-20s%-20s\n",L1->data[i].num,L1->data[i].name,L1->data[i].sex,L1->data[i].age,L1->data[i].classno,L1->data[i].major,L1->data[i].status,L1->data[i].more);flag=1;//设置标志 表示查询到了}}if(flag==0)//查询到表尾都没有跳出循环{printf("无该毕业生信息!\n");}}void delete_student(SqList *L1)//删除毕业生
{int i,j;char no[20];system("cls");printf("请输入要删除的学号:");scanf("%s",no);if(L1->length==0){printf("无毕业生信息!\n");return;}for(i=0;i<L1->length;i++)//遍历输出{if(!strcmp(no,L1->data[i].num))//如果学号一样{printf("%-10s%-10s%-10s%-10s%10s%-20s%-20s%-20s\n","学号","姓名","性别","年龄","班级","专业","就业情况","备注");printf("%-10s%-10s%-10s%-10d%10d%-20s%-20s%-20s\n",L1->data[i].num,L1->data[i].name,L1->data[i].sex,L1->data[i].age,L1->data[i].classno,L1->data[i].major,L1->data[i].status,L1->data[i].more);break;}}if(i==L1->length)//查询到表尾都没有跳出循环{printf("无该毕业生信息!\n");return;}for(j=i;j<L1->length-1;j++){L1->data[j]=L1->data[j+1];//用后一个覆盖前面一个 达到删除的效果}L1->length--;//人数-1printf("删除成功!\n");
}
void change(SqList *L1)//改变毕业生信息
{int i;char no[20];system("cls");printf("请输入要修改的学号:");scanf("%s",no);if(L1->length==0){printf("无毕业生信息!\n");return;}for(i=0;i<L1->length;i++)//遍历输出{if(!strcmp(no,L1->data[i].num))//如果学号一样{printf("%-10s%-10s%-10s%-10s%10s%-20s%-20s%-20s\n","学号","姓名","性别","年龄","班级","专业","就业情况","备注");printf("%-10s%-10s%-10s%-10d%10d%-20s%-20s%-20s\n",L1->data[i].num,L1->data[i].name,L1->data[i].sex,L1->data[i].age,L1->data[i].classno,L1->data[i].major,L1->data[i].status,L1->data[i].more);break;}}if(i==L1->length)//查询到表尾都没有跳出循环{printf("无该毕业生信息!\n");return;}printf("请输入毕业生姓名:");scanf("%s",L1->data[i].name);printf("请输入毕业生性别:");scanf("%s",L1->data[i].sex);printf("请输入毕业生年龄:");scanf("%d",&L1->data[i].age);printf("请输入毕业生班级:");scanf("%d",&L1->data[i].classno);printf("请输入毕业生专业:");scanf("%s",L1->data[i].major);printf("请输入毕业生就业情况:");scanf("%s",L1->data[i].status);printf("请输入备注:");scanf("%s",L1->data[i].more);printf("修改成功!\n");
}void sort_no(SqList *L1)//学号排序
{int i,j;Student temp;for(i=0;i<L1->length;i++){for(j=i+1;j<L1->length;j++)//选择排序{if(strcmp(L1->data[i].num,L1->data[j].num)>0)//如果学号需要交换 放到前面i的位置{temp=L1->data[i];L1->data[i]=L1->data[j];L1->data[j]=temp;}}}select_all(L1);//排序完显示
}void read(SqList *L1)//文件读
{FILE *fp;int a = 0;//a,用来识别到底有没有删除数据.t,用来接收fsacnf函数的返回值(为-1是说明无数据)if ((fp = fopen("student.txt", "r+")) == NULL)//‘r’允许读{printf("文件打开失败!\n");return;}else{while (!feof(fp)){a = 1;fread(&L1->data[L1->length++],sizeof(Student),1,fp);}fclose(fp);		//关闭文件if (a == 0){printf("文本无数据,毕业生信息读取失败\n");}else{L1->length--;}}
}void write(SqList *L1)//文件写
{FILE *fp;int t = 0;int i;if ((fp = fopen("student.txt", "w+")) == NULL){printf("文件打开失败!\n");return;}else{for (i = 0; i < L1->length; i++){t=1;fwrite(&L1->data[i],sizeof(Student),1,fp);}fclose(fp);										//关闭文件if (t == 1){//printf("毕业生信息写入完成\n");}else{printf("毕业生信息写入失败\n");}}
}

这篇关于毕业生信息管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025159

相关文章

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

在糖尿病患者信息管理系统中,导入病人信息功能!

在糖尿病患者信息管理系统中,导入病人信息功能!form表单提交数据(Excel文件),在后台得不到file文件,解决方法:         private File filePath; //文件         private String fileName; //文件名         private String fileType; //文件类型 注:上面filePath必须有,否则下面

在糖尿病患者信息管理系统中,交流区模块想模仿论坛那样几楼几楼的!

在糖尿病患者信息管理系统中,交流区模块想模仿论坛那样几楼几楼的! <s:if test="%{#request.page.pageData!=null}"> <s:iterator value="%{#request.page.pageData}" status="st" var="followCards"> <s:if test="%{#followCards.status==1 &&

java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频)

这是什么系统? 获取资料方式在最下方 java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频) 企业员工信息管理系统旨在为公司提供高效的员工信息管理解决方案。该系统的核心功能涵盖密码修改、员工管理、部门管理、出勤管理、工资管理、请假审核等方面,帮助企业优化人力资源管理流程。系统结构如下: (1)前端(员工端): 1.密码修改:员工可以修改自己的密码,提升账户的安全

基于ASP+ACCESS的教师信息管理系统

摘要 随着我国社会主义市场经济的发展和改革开放的不断深入,计算机的应用已遍及国民经济的各个领域,计算机来到我们的工作和生活中,改变着我们和周围的一切。在以前,学校用手工处理教师档案以及工资发放等繁多的工作和数据时,人手总会出现些不必要的错误和问题,特别是在查找,统计和保存方面。与此相适应,用计算机代替手工管理,是信息社会发展的必然趋势,也是我们计算机工作者的责任。教师信息管理系统开发主要包括数据

【2025】公司仓库管理系统的设计与实现(公司仓库信息管理系统,仓库信息系统,管理系统,信息管理系统,货物仓管系统)

博主介绍:     ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围:     我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT

基于SSM+Vue+MySQL的个人健康信息管理系统

系统背景   在当今社会,随着人们对健康的日益关注,构建一套高效、全面的个人健康信息管理系统具有迫切的现实需求。传统的健康管理方式存在信息碎片化、管理不便等问题,而本研究旨在通过基于Java Web技术的系统构建,为个人提供一种便捷而综合的健康管理解决方案。研究的意义在于通过现代技术的运用,为个人提供一个可靠的健康管理平台,促进个人健康意识的提升。与此同时,系统的建立也有望为医疗体系的优化和医患

数据结构:顺序表的应用--仓库货物管理信息管理系统

分析下列功能需求,自定义存储货物的结构体类型以及顺序表类型,并以初始化方式提供初始的一些货物信息表。 (1)并输出所有货物信息。 (2)按商品编号查询,并显示查询结果。 (3)删除某个货物(在二级菜单中选择是按商品编号还是按商品名称进行删除)。 (4)按商品库存的升序进行排序。 (5)完成入库管理:当一个货物要入库时,首先确定它是否是一个新的货物,如果不是新的,则查询到该货物并修改其数量

计算机毕业设计选题推荐-果树生长信息管理系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python项目 安卓项目 微信小程序项目 文章目录 一、前言二、开发环境三、系统界面展示四、部分代码设计五、论文参考六、系统视

学院个人信息|基于SprinBoot+vue的学院个人信息管理系统(源码+数据库+文档)

学院个人信息管理系统基于SprinBoot+vue的学院个人信息管理系统 一、前言 二、系统设计 三、系统功能设计  系统功能实现 后台模块实现 管理员模块实现 学生模块实现 教师模块实现 四、数据库设计  五、核心代码  六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平