C语言 学生管理系统
程序员文章站
2022-03-08 22:49:28
...
#include <stdio.h>
#include <string.h>
#define NAME_LEN 64 /* 姓名字符数 */
typedef struct students {
long studne_id; /* 学号 */
char name[NAME_LEN]; /* 姓名 */
char sex[3]; /* 性别 */
int age; /* 年龄 */
double height; /* 身高 */
long long telephone; /* 联系电话 */
} Students;
void select_studnet_all(Students std[], int count); // 查询函数
int add_studnet_info(Students std[], int count); // 添加函数
int find_Students_id(Students std[], long studne_id, int count); // 查询学号函数
void update_studnet_info(Students std[], int count); // 更新函数
int delete_studnet_info(Students std[], int count); // 删除函数
int main(void) {
int num;
int count = 5;
Students student[] = {
{202007131, "陈二", "男", 17, 177, 17100005963},
{202007132, "张三", "男", 18, 175, 17200005912},
{202007133, "李四", "女", 19, 168, 15100005934},
{202007134, "王五", "男", 20, 180, 12300005463},
{202007135, "赵六", "男", 21, 170, 11100002983},
};
while (1) {
puts("----------欢迎进入学生管理系统----------");
puts("| 1.查询学生信息 |");
puts("| 2.添加学生信息 |");
puts("| 3.更新学生信息 |");
puts("| 4.删除学生信息 |");
puts("| 5.退出系统 |");
puts("----------------------------------------");
printf("请输入1至5选项:");
scanf("%d", &num);
switch (num) {
case 1:
select_studnet_all(student, count);
break;
case 2:
count = add_studnet_info(student, count);
break;
case 3:
update_studnet_info(student, count);
break;
case 4:
count = delete_studnet_info(student, count);
break;
case 5:
puts("系统结束运行!!");
return 0;
default:
puts("输入错误,请重新输入!");
break;
}
}
return 0;
}
void select_studnet_all(Students std[], int count) {
int i;
puts(" 学号 姓名 性别 年龄 身高 联系电话");
for (i = 0; i < count; i++) {
printf("%ld %-5s %s %d %6.1fcm %lld\n", std[i].studne_id, std[i].name, std[i].sex, std[i].age, std[i].height, std[i].telephone);
}
puts("\n");
}
int add_studnet_info(Students std[], int count) {
long studne_id; /* 学号 */
char name[NAME_LEN]; /* 姓名 */
char sex[3]; /* 性别 */
int age; /* 年龄 */
double height; /* 身高 */
long long telephone; /* 联系电话 */
int index;
printf("请输入学号:");
scanf("%ld", &studne_id);
index = find_Students_id(std, studne_id, count);
printf("请输入姓名:");
scanf("%s", name);
printf("请输入性别:");
scanf("%s", sex);
printf("请输入年龄:");
scanf("%d", &age);
printf("请输入身高:");
scanf("%lf", &height);
printf("请输入联系电话:");
scanf("%lld", &telephone);
if (index == -1) {
std[count].studne_id = studne_id;
strcpy(std[count].name, name);
strcpy(std[count].sex, sex);
std[count].age = age;
std[count].height = height;
std[count].telephone = telephone;
puts("已成功添加新的学生信息:");
printf("%ld %-5s %s %d %6.1fcm %lld\n", studne_id, name, sex, age, height, telephone);
count++;
}else {
puts("学号重复添加失败!");
}
return count;
}
int find_Students_id(Students std[], long studne_id, int count) {
int i;
int index;
for (i = 0; i < count; i++) {
if (std[i].studne_id == studne_id) {
index = i;
break;
}
else {
index = -1;
}
}
return index;
}
void update_studnet_info(Students std[], int count) {
long studne_id; /* 学号 */
char name[NAME_LEN]; /* 姓名 */
char sex[3]; /* 性别 */
int age; /* 年龄 */
double height; /* 身高 */
long long telephone; /* 联系电话 */
int index;
printf("请输入要修改的学生的学号:");
scanf("%ld", &studne_id);
index = find_Students_id(std, studne_id, count);
if (index != -1) {
puts("请进行修改操作!");
printf("请输入学号:");
scanf("%ld", &studne_id);
printf("请输入姓名:");
scanf("%s", name);
printf("请输入性别:");
scanf("%s", sex);
printf("请输入年龄:");
scanf("%d", &age);
printf("请输入身高:");
scanf("%lf", &height);
printf("请输入联系电话:");
scanf("%lld", &telephone);
puts("已更新的学生信息:");
printf("%ld %-5s %s %d %6.1fcm %lld\n", studne_id, name, sex, age, height, telephone);
std[index].studne_id = studne_id;
strcpy(std[index].name, name);
strcpy(std[index].sex, sex);
std[index].age = age;
std[index].height = height;
std[index].telephone = telephone;
puts("修改成功!");
}else {
puts("没有查找到该学生!");
}
}
int delete_studnet_info(Students std[], int count) {
long studne_id; /* 学号 */
int i;
printf("请输入要删除的学生的学号:");
scanf("%ld", &studne_id);
for (i = 0; i < count; i++) {
if (std[i].studne_id == studne_id) {
while (1) {
if (i < count) {
std[i] = std[i + 1];
i++;
}
else {
break;
}
}
puts("删除成功!");
count--;
break;
}
}
if (count == i) {
puts("没有查找到该学生!");
}
return count;
}
运行结果:
-
查询功能
-
添加功能:
如果学号重复则添加失败:
学号不重复: -
更新功能:
没有找到学号:
找到学号: -
删除功能:
没有找到学号:
找到学号: -
退出系统
下一篇: JavaScript中的事件