黑马程序员技术交流社区
标题:
C语言学生管理系统实现
[打印本页]
作者:
任子杰
时间:
2015-11-8 00:56
标题:
C语言学生管理系统实现
//编写一个学生管理系统程序,用来记录学生的信息(包括姓名、年龄、性别、学号、分数),提供增加、删除、查询学生信息的入口。
#include <stdio.h>
#include <string.h>
#define stuMax 100
void init();
void addStu();
void deleteStu();
void listStu();
int validateInput(int num,int min,int max);
//定义结构体
typedef struct{
char name[10];
int age;
char sex[4];
int sid;
double score;
}student;
//定义学生数组
student stu[stuMax];
//定义学生人数
int stuCount=0;
//记录操作编号
int fno;
int main(int argc, const char * argv[]) {
init();
while (1)
{
printf("\n");
printf("系统初始化中......\n");
printf("*******************\n");
printf(" 1.增加学生信息\n");
printf(" 2.删除学生信息\n");
printf(" 3.查询学生信息\n");
printf(" 4.退出系统按任意键\n");
printf("*******************\n");
printf("\n");
// 提示用户输入
printf("请输入你要操作的功能编号\n");
scanf("%d",&fno);
validateInput(fno, 1, 4);
switch (fno)
{
case 1:
addStu();
break;
case 2:
deleteStu();
break;
case 3:
listStu();
break;
case 4:
printf("系统正在退出");
printf("系统已退出");
return 0;
break;
default:
return 0;
break;
}
}
}
//增加
void addStu(){
printf("你选择的是增加学生\n");
//获取用户输入,赋值给结构体中的相应属性
printf("请输入要增加的学生姓名\n");
scanf("%s",stu[stuCount].name);
printf("请输入要增加的学生年龄:\n");
scanf("%d",&stu[stuCount].age);
printf("请输入要增加的学生性别:\n");
scanf("%s",stu[stuCount].sex);
printf("请输入要增加的学生学号:\n");
scanf("%d",&stu[stuCount].sid);
printf("请输入要增加的学生分数:\n");
scanf("%lf",&stu[stuCount].score);
stuCount++;
}
//删除
void deleteStu(){
printf("你选择的是删除学生\n");
int no;
printf("请选择删除学生的编号\n");
scanf("%d",&no);
int result=validateInput(no, 1, stuCount);
if (result!=0)
{
//如果删除的元素是最后一个
if(no==stuCount)
{
stuCount--;
printf("删除成功\n");
}
else
{
for (int i=no; no<stuCount; i++)
{
stu[no-1]=stu[no];
}
stuCount--;
printf("删除成功....\n");
}
}
}
//查看
void listStu(){
printf("你选择的是查看学生\n");
if (stuCount==0)
{
printf("没有学生信息存在!\n");
}else
{
printf("编号\t 姓名\t 年龄\t 性别\t 学号\t 分数\t \n");
for(int i=0;i<stuCount;i++) {
printf("%d\t %s\t %d\t %s\t %d\t %f\t \n",i+1,stu[i].name,stu[i].age,stu[i].sex,stu[i].sid,stu[i].score);
}
}
}
//判断输入是否非法
int validateInput(int num,int min,int max){
if (num<min||num>max) {
printf("非法的输入");
return 0;
}
return 1;
}
复制代码
作者:
韦德460
时间:
2015-11-8 09:54
就这一点代码吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2