版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <stdio.h>/*学员信息管理系统能够打印用户选择菜单,该菜单共有6项,分别使用0-5标识菜单中的信息如程序中所列出,实现学员信息的增、删、改、查、显示等功能*/*函数声明*/ int menu();void init();void listStu();int insertNewStu(int row);int deleteByNo();void analyse();int queryByNo();int modifyInfoByNo();int getStuRowByNo(char no);/*students保存学生信息,最多50名,一行代表一个学员信息,
2、每列通过-$-字符串将各项信息分开stu_num表示已存在的学生数目,假设初始存在2名学员*/ char students50300 ;int stu_num = 2;void main()int opt;int result=1;init();while(result)if(result=0)break;opt = menu();switch(opt)case 1:/printf("t执行操作:输入学员资料n");result = insertNewStu(stu_num);stu_num=stu_num+1;break;case 2:/printf("t执行操
3、作:删除学员资料n");result=deleteByNo();stu_num=stu_num-1;break;case 3:/printf("t执行操作:查找学员资料n");result=queryByNo();break;case 4:/printf("t执行操作:修改学员资料n"); result=modifyInfoByNo();break;case 5:/printf("t执行操作:输出学员信息数据n");listStu();break;case 0:printf("nt谢谢使用!n");res
4、ult=0;break;default:printf("t您的选择有误。n");/*打印系统的菜单输出:用户选择的菜单项*/int menu() int option;printf("nt-n");printf("t|tt学员信息管理系统tt|n");printf("t-nn");printf("t1.输入学员资料n");printf("t2.删除学员资料n");printf("t3.查找学员资料n");printf("t4.修改学员资料n&qu
5、ot;);printf("t5.输出学员信息数据n");printf("t0.退出nn");printf("t请选择您要进行的操作:");scanf("%d",&option);return option;/*初始存在的学员*/void init()strcpy(students0, "2010-$-张学友-$-男-$-香港-$-$-98-$-89-$-");strcpy(students1, "2011-$-王菲-$-女-$-北京-$-$-99-$-100-$-")
6、;/*输出所有学员的信息*/void listStu()/*printf("%sn",students0);printf("%sn",students1);printf("%sn",students2);*/char temp300=""int i;printf("nt*现存的学员信息*n");printf("学号t");printf("姓名t");printf("性别t");printf("地址t");printf
7、("手机tt");printf("Javat");printf(".Netn");/针对每一行,进行解析for(i=0;i<stu_num;i+)strcpy(temp,studentsi);/打印每一行的每个信息项while(strlen(temp)!=0)analyse(temp);printf("n");/*解析学员信息行,打印c中第一个信息列输入:一个学员信息c输出:打印该行的第一个信息项,并且去掉c中第一个信息项,其他信息项前移*/void analyse(char c)int i,j;int to
8、ken;char p_temp100=""/该行第一个分隔符前的信息项解析出来for(j=0;j<strcspn(c, "-$-");j+)p_tempj=cj;printf("%st",p_temp);/去掉已经解析出的项,即把每项信息向前前移动位置token=strcspn(c, "-$-");for(j=0;j<strlen(c)-token;j+)cj=ctoken+3+j;/*增加学员的信息*/int insertNewStu(int row)int flag=0;/标识前项信息是否录入正确i
9、nt i;char stu_temp1300;/用于存储该学员的信息int i_temp;char n_temp30;char a_temp10;char c_temp10;/输入学号while(flag=0)printf("nt请输入学员学号:");scanf("%d",&i_temp);if(i_temp<1000 |i_temp>9999)printf("t学号必须是4位数字!");continue;elsesprintf(c_temp,"%d",i_temp);strcpy(stu_te
10、mp0, c_temp);strcat(stu_temp0, "-$-");flag=1;/输入姓名while(flag=1)printf("nt请输入学员姓名:");scanf("%s",&n_temp);if(strlen(n_temp) >= 20)printf("t姓名长度过长!n");continue;elsestrcat(stu_temp0, n_temp);strcat(stu_temp0, "-$-");flag=2;/输入性别while(flag=2)printf
11、("nt请输入性别(1.男 2.女):");scanf("%d",&i_temp);if(i_temp!=1 && i_temp!=2)printf("t性别选择错误,请重新选择!n");continue;elseif(i_temp=1)strcat(stu_temp0, "男");elsestrcat(stu_temp0, "女");strcat(stu_temp0, "-$-");flag=3;/输入地址while(flag=3)printf(&q
12、uot;nt请输入学员地址:");scanf("%s",&a_temp);if(strlen(a_temp) >30)printf("t地址长度过长n");continue;elsestrcat(stu_temp0, a_temp);strcat(stu_temp0, "-$-");flag=4;/输入手机号while(flag=4)printf("nt请输入手机号码:");scanf("%s",&c_temp);/判断手机号码合法性if(strlen(c_tem
13、p)!=11)printf("t手机位数不正确!");continue;elsefor(i = 0; i < strlen(c_temp); i+)if(c_tempi < '0' | c_tempi > '9')printf("t手机中包含非数字字符n");break;if(i=11)strcat(stu_temp0, c_temp);strcat(stu_temp0, "-$-");flag=5;/输入成绩while(flag=5)printf("nt请输入Java成绩:
14、");scanf("%d",&i_temp);if(i_temp<0 |i_temp>100)printf("t成绩非法!");continue;elsesprintf(c_temp,"%d",i_temp);strcat(stu_temp0, c_temp);strcat(stu_temp0, "-$-");flag=6;while(flag=6)printf("nt请输入.Net成绩:");scanf("%d",&i_temp);if
15、(i_temp<0 |i_temp>100)printf("t成绩非法!");continue;elsesprintf(c_temp,"%d",i_temp);strcat(stu_temp0, c_temp);strcat(stu_temp0, "-$-");flag=7;/确认新信息增加是否正确printf("nt*确认学员信息如下*n");printf("t%s",stu_temp);printf("nnt确认信息输入是否正确(Y/N):");scanf(&
16、quot;%s",&c_temp);if(strcmp(c_temp,"y")=0 |strcmp(c_temp,"Y")=0 )strcpy(studentsrow,stu_temp0);/写入students的第row行elseinsertNewStu(row);return flag;/*获取学员的存储位置,即所在行数输入:学号输出:pos所在行数,-1代表无此学员*/int getStuRowByNo(char no)int i,j;int pos=-1;char temp5=""/按行搜索for(i=0;i
17、<stu_num;i+)/搜索该行的列for(j=0;j<strcspn(studentsi,"-$-");j+)tempj=studentsij;/如果找到,返回所在行iif(strcmp(no,temp) = 0)pos=i;break;return pos;/*删除指定学员的信息输出:1成功,-1无此学员*/int deleteByNo()char no5;int row;int i,j;printf("nt请输入要删除的学号:");scanf("%s",no);row=getStuRowByNo(no);/获取学员
18、所在行if(row=-1)printf("tn*没有该学号学员的信息,请核实学号*n");return -1;elsefor(i=row;i<50;i+)for(j = 0; j < 300; j+)studentsij=studentsi+1j;printf("nt*删除成功*n");return 1;/*查找指定学员的信息输出:1成功,-1无此学员*/int queryByNo()char no5;int row;char temp300=""printf("nt请输入要查找的学号:");scanf("%s",no);row=getStuRowByNo(no);/获取学员所在行if(row=-1)printf("tn*没有该学号学员
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省嘉峪关市2027年高考物理一模试卷(含答案解析)
- 2027年四川省遂宁市高考仿真卷物理试卷(含答案解析)
- 2026年招投标工作上半年工作总结
- 公司资产管控主管2026年上半年固定资产盘点总结
- 幼儿园夏日清凉安全小课堂课件
- 2026年秋季高中开学第一课 行为规范 高中自律
- 2026年秋季初中开学第一课 开学适应与心理疏导
- 5.2.2 勾股定理的应用 课件-2026-2027学年湘教版数学八年级上册
- 2026年北师大版小学二年级数学上册课时《长度单位》教案
- 泌尿系统重症病人的护理
- 2026秋新版小学湘科版科学五年级上册教学设计(附目录)适用于新课标
- 2026年飞控算法工程(无人机控制技术)试题及答案
- 山东省菏泽市2025-2026学年高一下学期期末考试英语试卷
- 2026年兽医实验室安全知识培训考试题库(含答案)
- 2026年金华市公安辅警招聘知识考试题库及答案
- LY/T 3426-2025直接为林业生产经营服务工程设施用地规范
- 混凝土搅拌站设备维护保养计划
- 建设银行贷款审批制度
- DBJ50T-526-2025 住建领域基础库数据标准
- JJF(石化)078-2023激光甲烷遥测仪校准规范
- 2026年浙江中考科学试卷及答案
评论
0/150
提交评论