




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
以下是用c语言实现的学生信息管理系统,经过运行检验无误。可以新建学生信息,可以实现学生信息的增删改查, 可以输出所有学生信息。其中查询学生信息可以根据编号,姓名,班级查询。基本上用到了c语言中数组,指针,函数,结构体等所有内容。#include #include #include #include #include #define MAXSIZE 100typedef struct char num10;/*编号*/ char name15;/*姓名*/ char gender5;/*性别*/ char squad10;/*班级*/ char dorm20;/*寝室*/ char mail50;/*邮箱*/DataType;/*将DataType映射成int类型的,这里的DataType相当于int,代码为typedef DataType int*/typedef struct DataType stuMAXSIZE; int length;sequenlist;int menu_select()int sn;printf(n 学生信息管理系统n);printf(=n);printf( 1.学生信息表的建 立n);printf( 2.插 入 学 生 信 息n);printf( 3.查 询 学 生 信 息n);printf( 4.删 除 学 生 信 息n);printf( 5.修 改 学 生 信 息n);printf( 6.输出所有学生信 息n);printf( 0.退 出 管 理 系 统n);printf(=n);printf(请选择0-6:n);for(;) scanf(%d,&sn); if (sn6) printf(nt输入错误,重选0-5n); else break;return sn;void createList(sequenlist *L) int n,i; printf(有几位学生?请输入:n); fflush(stdin);/*清空输入缓冲区,通常是为了确保不影响后面的数据读取, 在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin)*/ scanf(%d,&n); printf(以下请输入这%d位学生的信息:n,n); for(i=0;istui.num,L-,L-stui.gender,L-stui.squad,L-stui.dorm,&L-stui.mail); L-length=n;void printList(sequenlist *L) int i; printf(n学号(8) 姓名(8) 性别 班级 寝室 邮箱n); printf(-n); for(i=0;ilength;i+) printf(第%d位学生:,i+1); printf(%s,%s,%s,%s,%s,%sn,L-stui.num,L-,L-stui.gender,L-stui.squad,L-stui.dorm,L-stui.mail); printf(-n); int insert(sequenlist *L,DataType *student,int i) int j; if(L-length=MAXSIZE) printf(overflow!); return 0; else if(iL-length) printf(error,please input the right i); return 0; else for(j=L-length-1;j=i;j-) strcpy(L-stuj+1.num,L-stuj.num); strcpy(L-stuj+1.name,L-); strcpy(L-stuj+1.gender,L-stuj.gender); strcpy(L-stuj+1.squad,L-stuj.squad); strcpy(L-stuj+1.dorm,L-stuj.dorm);strcpy(L-stuj+1.mail,L-stuj.mail); strcpy(L-stui.num,student-num); strcpy(L-,student-name); strcpy(L-stui.gender,student-gender); strcpy(L-stui.squad,student-squad); strcpy(L-stui.dorm,student-dorm); strcpy(L-stui.mail,student-mail); L-length=L-length+1; return 1;int findList(sequenlist *L) char num10; char name15; char squad10; int i=0,xz; printf(=n); printf(1、按学号查询n); printf(2、按姓名查询n); printf(3、按班级查询n); printf(=n); printf( 请选择: ); fflush(stdin); scanf(%d,&xz); if (xz=1) printf(请输入要查找成员的学号:); scanf(%s,num); for(i=0;ilength;i+) if(strcmp(L-stui.num,num)=0) return i; else if (xz=2) printf(请输入要查找学生的姓名:); scanf(%s,name); for(i=0;ilength;i+) if(strcmp(L-,name)=0) return i; else if (xz=3) printf(请输入要查找学生的班级:);scanf(%s,squad);for(i=0;ilength;i+) if(strcmp(L-stui.squad,squad)=0) return i; return -1;/*如果没找到,返回-1。否则直接返回,不会执行本句*/void delNode(sequenlist *L)int i,j;printf(请先查找您要删除的学生信息:n);i=findList(L);if(i=-1) printf(没有查到要删除的学生信息); return;for(j=i;jlength;j+) strcpy(L-stuj.num,L-stuj+1.num); strcpy(L-,L-stuj+1.name); strcpy(L-stuj.gender,L-stuj+1.gender); strcpy(L-stuj.squad,L-stuj+1.squad); strcpy(L-stuj.dorm,L-stuj+1.dorm); strcpy(L-stuj.mail,L-stuj+1.mail);L-length-;printf(该学生信息已被删除!n);void changeList(sequenlist *L) int i;char num_change10,name_change15,gender_change5,squad_change10,dorm_change20,mail_change50;printf(请先查找您要修改的学生信息:n);i=findList(L);if(i=-1) printf(没有查到要修改的学生信息); return; printf(请输入修改信息后该学生的编号:);scanf(%s,num_change);printf(请输入修改信息后该学生的姓名:);scanf(%s,name_change);printf(请输入修改信息后该学生的性别:);scanf(%s,gender_change);printf(请输入修改信息后该学生的班级:);scanf(%s,squad_change);printf(请输入修改信息后该学生的寝室:);scanf(%s,dorm_change);printf(请输入修改信息后该学生的邮箱:);scanf(%s,mail_change); strcpy(L-stui.num,num_change); strcpy(L-,name_change); strcpy(L-stui.gender,gender_change); strcpy(L-stui.squad,squad_change); strcpy(L-stui.dorm,dorm_change); strcpy(L-stui.mail,mail_change); printf(该学生信息已被修改!);void main()sequenlist *L;DataType *student;int i;L=(sequenlist *)malloc(sizeof(sequenlist);while(1)switch(menu_select() case 1:printf(*n);printf( 学生信息表的建立 n);printf(*n);createList(L);break; case 2:printf(*n);printf(添加学生信息n);printf(请输入要添加的学生信息:n);printf(n学号(8) 姓名(8) 性别 班级 寝室 邮箱n);printf(*n);student=(DataType *)malloc(sizeof(DataType);fflush(stdin);scanf(%s%s%s%s%s%s,student-num,student-name,student-gender,student-squad,student-dorm,&student-mail);printf(请输入要插入的位置:n);fflush(stdin);scanf(%d,&i);insert(L,student,i); break; case 3:printf(*n);printf(查询学生信息n);printf(*n);i=findList(L);if(i!=-1)printf(您要查的学生为:n学号(8) 姓名(8) 性别 班级 寝室 邮箱n);printf(-n);printf(%s,%s,%s,%s,%s,%sn,L-stui.num,L-,L-stui.gender,L-stui.squad,L-stui.dorm,L-stui.mail);printf(-n); else printf(没有您要查询的学生信息!);break; ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宿迁市中石化2025秋招笔试模拟题含答案油品分析质检岗
- 中国移动成都市2025秋招企业文化50题速记
- 开封市中石油2025秋招面试半结构化模拟题及答案炼油设备技术岗
- 白银市中石化2025秋招面试半结构化模拟题及答案油田勘探开发岗
- 儋州市中储粮2025秋招笔试粮食政策与企业文化50题速记
- 国家能源怀化市2025秋招采矿工程类面试追问及参考回答
- 国家能源深圳市2025秋招笔试题库含答案
- 鹰潭市中石油2025秋招笔试模拟题含答案市场营销与国际贸易岗
- 山南市中储粮2025秋招购销统计岗高频笔试题库含答案
- 黑河市中石油2025秋招笔试模拟题含答案安全环保与HSE岗
- 2025年AI技术在项目管理中的应用洞察报告
- 糖尿病患者健康教育讲座
- 青春期生理健康课
- 2025年铁路线路工高级技师练习题库(答案+解析)
- DB44T 2603-2025 预制菜术语及分类
- DB4201T 632-2021 岩溶地区勘察设计与施工技术规程
- 2025年高考真题-政治(湖南卷) 含答案
- 变电二次培训活动方案
- 学堂在线 管理沟通的艺术 期末考试答案
- 钢结构工程投标方案
- 护理十八项核心制度考试题及答案
评论
0/150
提交评论