黑马程序员技术交流社区
标题: 经典入学基础题--学生管理系统1--仅供参考 [打印本页]
作者: Micro 时间: 2015-2-6 21:32
标题: 经典入学基础题--学生管理系统1--仅供参考
严正声明:仅是给不会做的人参考一下,提供个思路。请勿原本照搬,别忘了老师也会看帖子的。
经典入学基础测试题。你做对了吗??
ps:也是某吧友发出来的。现改正了。完美运行,回复查收哦。
-----如帮助到了你,请大方打赏点黑马币,谢谢。
#include <stdio.h>
#include<string.h>
#include <stdlib.h>
#define N 500//结构体数组的大小
void caidan();/*功能浏览表,供使用者选择功能*/
void zengjia();/*学生信息的增加*/
void shanchu();/*学生信息的删除*/
void chaxun();/*学生信息的查询*/
int leve = 0;
struct Student
{
char *name;
int age;
char sex[2];
int number;
int score;
}stu[N];
int main()
{
//int leve = 0;
caidan();
return 0;
}
void caidan()
{
int x=0;
printf("\n\n\n\n\n\n\n\n\t\t\t欢迎使用学生管理系统!\n");
printf("\t\t\t*******************\n");
printf("\t\t\t 1.增加学生信息\n");
printf("\t\t\t 2.删除学生信息\n");
printf("\t\t\t 3.查询学生信息\n");
printf("\t\t\t*******************\n");
printf("\n\t退出请输入:0\n\n\n");//输入0程序执行完毕
printf("请输入功能序号:\n");
scanf("%d",&x);
switch(x)/*每个case后均有菜单函数,功能结束后返回功能表,按88结束*/
{
case 1:zengjia();caidan();break;
case 2:shanchu(stu);caidan();break;
case 3:chaxun();caidan();break;
case 0:break;
default:printf("请输入正确的序号!");caidan() ;break;
}
}
void zengjia()
{
}
}
作者: Micro 时间: 2015-2-6 21:35
void shanchu() //(struct student stu[N])
{
int i,s,l,k=1;/*k判断是否有要删除的学生*/
printf("请输入要删除学生的学号:");
scanf("%d",&s);
for(i=0;i<N;i++)
{
if(s==stu.number)
{
k=0;/*若有该学号k赋值为0*/
printf("您要删除的学生信息为:\n");
printf(" 姓 名 年龄 性别 学号 分数\n");
printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
printf("\n");
printf("确认请按:1\n按任意键返回\n");
scanf("%d",&k);
if(k==1)
{
leve--; /*删除后已录入学生个数减一*/
for(l=i;l<N;l++)
{
strcpy(stu[l].name,stu[l+1].name);
stu[l].age=stu[l+1].age;
strcpy(stu[l].sex,stu[l+1].sex);
stu[l].number=stu[l+1].number;
stu[l].score=stu[l+1].score;
}
printf(" 姓 名 年龄 性别 学号 分数\n");
for(i=0;i<=N && stu.number!=0;i++)
{
printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
printf("\n");
}
}
caidan();
}
}
if(k)/*k若未被赋值0,则说明没有需要删除的学生*/
printf("没有您要查询的学生不需要删除!");
}
作者: Micro 时间: 2015-2-6 21:37
void chaxun()
{
int y,z,i,word=1,nianling,geshu=0;/*y为查询菜单中的变量,z为要查询的学号,geshu记录查询结果中年龄相同或性别相同的学生个数,word用来判断是否有要查询的学生信息*/
char xingming[20],xingbie[10];
printf("\t\t*******************************\n");
printf("\t\t1.按学号查询\n");
printf("\t\t2.按姓名查询\n");
printf("\t\t3.按性别查询");
printf("\t\t4.按年龄查询\n");
printf("\t\t5.查询所有\n");
printf("\t\t*******************************\n");
printf("请输入功能序号:");
scanf("%d",&y);
switch(y)
{
case 1:printf("请输入要查询的学号:");
scanf("%d",&z);
printf(" 姓 名 年龄 性别 学号 分数\n");
for(i=0;i<N;i++)
{
if(z==stu.number)//由学号来寻找目标学生
{
printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
printf("\n");
word=0;/*若有要查询的学生则word赋值0 下同*/
};
}
if(word)/*判断word的值 下同*/
printf("没有您查询的学生信息!\n");
;break;
case 2:printf("请输入要查询的姓名:");
scanf("%s",xingming);
printf(" 姓 名 年龄 性别 学号 分数\n");
for(i=0;i<N;i++)
{
if(strcmp(xingming,stu.name)==0)//姓名字符比较
{
printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
printf("\n");
word=0;
};
}
if(word)
printf("没有您查询的学生信息!\n");
break;
case 3:printf("请输入要查询的性别:");
scanf("%s",xingbie);
printf(" 姓 名 年龄 性别 学号 分数\n");
for(i=0;i<N;i++)/*将结构体中信息逐一比较*/
{
if(strcmp(xingbie,stu.sex)==0)
{
printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
printf("\n");
word=0;
geshu++;/*若相等个数自增 下同*/
};
}
if(word==0)
printf("%s生的个数为:%d",xingbie,geshu);/*输出查询性别的学生个数 下同*/
if(word)
printf("没有您查询的学生信息!\n");
geshu=0;
break;
case 4:printf("请输入要查询的年龄:");
scanf("%d",&nianling);
printf(" 姓 名 年龄 性别 学号 分数\n");
for(i=0;i<N;i++)
{
if(nianling==stu.age)
{
printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
printf("\n");
word=0;
geshu++;
};
}
if(word==0)
printf("%d岁的学生个数为:%d",nianling,geshu);//输出所查询学生的个数
if(word)
printf("没有您查询的学生信息!\n");
geshu=0;
break;
case 5:
printf(" 姓 名 年龄 性别 学号 分数\n");/*顶行输出属性*/
printf("\n");
for(i=0;i<=N && stu.number!=0;i++)
{
printf("%6s%4d%4s%4d%4d",stu.name,stu.age,stu.sex,stu.number,stu.score);
printf("\n");
}
break;
default :printf("请输入正确的序号!\n");
}
}
作者: HeavenYoung 时间: 2015-2-6 21:38
记得之前做过一个图书管理系统,跟这个完全类似啊!
作者: peanutgao 时间: 2015-2-6 21:55
学习一下
作者: 恋梦 时间: 2015-2-6 22:29
感谢楼主分享
作者: 恋梦 时间: 2015-2-6 23:00
谢谢楼主分享
作者: a3563365 时间: 2015-2-6 23:35
看看~~~~~~
作者: lumingfu 时间: 2015-2-7 15:52
.....加油
作者: Melody丶Zhy 时间: 2015-2-7 22:28
来研究一下
作者: 仰望的繁华 时间: 2015-2-7 23:12
没抽到这个题,来看看~
作者: andyJerry 时间: 2015-2-8 11:39
:)感谢。楼主好人。。
作者: 萝莉最有爱 时间: 2015-2-8 13:30
:):):):):):)
作者: 俺做android开发 时间: 2015-2-8 13:33
正好5个字
作者: 头头小坏蛋 时间: 2015-2-8 14:57
谢谢楼主分享哦。。。
作者: 挑战 时间: 2015-2-9 12:32
好人啊。。。。
作者: 余先生 时间: 2015-2-9 15:07
xiexie1111111
作者: xiezhongmin 时间: 2015-2-9 15:35
看看
作者: lanyu2014sc 时间: 2015-2-9 16:37
正在为这一道题目烦恼,赶紧来看看
作者: vera 时间: 2015-2-9 18:36
很多人的题都是这个啊
作者: 殇卜泣 时间: 2015-2-10 10:06
多谢分享 看看吧
作者: dimost 时间: 2015-2-10 13:52
在转iOS,来观摩一下。
作者: 你的微笑很美 时间: 2015-2-10 14:31
很好,很强大
作者: 党静锋 时间: 2015-2-10 14:39
看看!!!!!!!!
作者: gzf201314 时间: 2015-2-10 21:37
看看学习学习。
作者: Melody丶Zhy 时间: 2015-2-11 19:38
退出之后信息不保存了吧。。。
作者: 风淡淡 时间: 2015-2-11 20:30
看看楼主的源码
作者: Kuaile天使 时间: 2015-2-11 22:50
你可以把switch等于0的那个分支提出来放在switch之前,做个判断提前结束程序。然后,你就可以把每个分支里都包含的caidan()调用提出来,放在switch之后,就不用每个分支里都写这个函数了。个人意见,可以参考一下,嘿嘿。
作者: hypoyan 时间: 2015-2-11 23:13
多谢分享...
作者: Dance小飞 时间: 2015-2-11 23:33
谢谢楼主了
作者: jiao 时间: 2015-2-11 23:58
谢谢分享!
作者: Micro 时间: 2015-2-12 12:29
不客气哈。。。
作者: superdite 时间: 2015-2-17 18:24
谢谢楼主的分享啊
作者: 坐怀不乱 时间: 2015-2-19 20:07
感谢楼主分享谢谢!
作者: 15021367785 时间: 2015-2-21 15:09
12313123123123123123
作者: PlwNs 时间: 2015-2-21 15:13
学习一下,谢谢
作者: huanxiang0220 时间: 2015-2-22 02:07
你们这是IOS的吧
作者: 陈明辉 时间: 2015-2-22 17:11
谢谢分享哦,我抽的也是这个题:lol 参考一下
作者: 为了梦想 时间: 2015-2-23 14:52
看看啊:D
作者: 殇卜泣 时间: 2015-2-23 15:42
每个人I写的应该都不同 可以学习一下
作者: zero-xiao 时间: 2015-2-23 22:16
谢谢楼主分享。
作者: Drmshow 时间: 2015-2-24 12:04
取经路过
作者: czh251 时间: 2015-2-25 04:36
:handshake:handshake
作者: 堇莫荼蘼 时间: 2015-2-25 20:52
看下喽~~
作者: moon_H 时间: 2015-2-25 21:18
看看学习一下,谢谢
作者: wangsam110 时间: 2015-2-25 22:22
6666666666666
作者: trance 时间: 2015-2-25 23:40
mark,来看看
作者: ocean45 时间: 2015-2-27 09:55
谢谢楼主分享哦。
作者: 杨辛一 时间: 2015-2-27 23:06
好贴 mark一下 等学到再来研究下
作者: wawajiayou85 时间: 2015-2-28 09:19
谢谢楼主分享
作者: cowozo 时间: 2015-2-28 10:57
学习了,O(∩_∩)O谢谢
作者: sekey1991 时间: 2015-3-2 09:13
嗯,我也有这个
作者: 雪中花 时间: 2015-3-2 10:24
很不错,谢谢楼主。
作者: 紫金飞侠雷 时间: 2015-3-2 13:44
感谢楼主分享
作者: import 时间: 2015-3-2 13:52
我也遇见了这个题目,我是用双向链表做的
作者: 吴浩友 时间: 2015-3-2 14:43
看看。。
作者: bluedevils 时间: 2015-3-2 14:53
学习学习,希望不会抽到
作者: Ann_1990 时间: 2015-3-2 20:07
谢谢楼主分享~加油加油~
作者: 黑色淘金 时间: 2015-3-3 00:05
进来看看写的程序
作者: azen 时间: 2015-3-13 20:32
哈哈~~ 看下收走~~ 谢谢楼主~
作者: 末班车i 时间: 2015-3-14 10:01
我电脑重装系统了,我之前发给你的所有成员名单信息表发给我下,那张表包括成员电话,班级,专业。
作者: zmjdd 时间: 2015-3-14 13:56
学习一下
作者: cararila 时间: 2015-3-17 16:33
赞一个哦辛苦了
作者: @小元宝@ 时间: 2015-3-19 20:13
kankan,xuexi
作者: darewolf 时间: 2015-3-20 20:19
学习一下
作者: 安若宸king 时间: 2015-3-28 17:05
这是神马题目
作者: LuciferTJD 时间: 2015-4-21 22:02
学习一下
作者: sunyang 时间: 2015-4-22 19:54
:):)太棒了 大白好给力
作者: CornerFly 时间: 2015-4-26 09:58
谢谢分享,感激
作者: CornerFly 时间: 2015-4-26 09:59
雪中送炭呀,谢谢啦
作者: CornerFly 时间: 2015-4-26 17:36
添加姓名的时候只能输入字母,不能输入汉字
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |