0
点赞
收藏
分享

微信扫一扫

C语言 学生管理系统

Star英 2022-06-01 阅读 43

#include <stdio.h> 
#include <string.h>
#define NAME_LEN 64   /* 姓名字符数 */&nbsp;

typedef&nbsp;struct&nbsp;students&nbsp;{
long&nbsp;studne_id;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 学号 */
char&nbsp;name[NAME_LEN];&nbsp;/* 姓名 */
char&nbsp;sex[3];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 性别 */
int&nbsp;age;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 年龄 */
double&nbsp;height;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 身高 */
long&nbsp;long&nbsp;telephone;&nbsp;&nbsp;/* 联系电话 */
}&nbsp;Students;

void&nbsp;select_studnet_all(Students&nbsp;std[],&nbsp;int&nbsp;count);&nbsp;&nbsp;&nbsp;// 查询函数
int&nbsp;add_studnet_info(Students&nbsp;std[],&nbsp;int&nbsp;count);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 添加函数
int&nbsp;find_Students_id(Students&nbsp;std[],&nbsp;long&nbsp;studne_id,&nbsp;int&nbsp;count);&nbsp;&nbsp;// 查询学号函数
void&nbsp;update_studnet_info(Students&nbsp;std[],&nbsp;int&nbsp;count);&nbsp;&nbsp;&nbsp;//  更新函数
int&nbsp;delete_studnet_info(Students&nbsp;std[],&nbsp;int&nbsp;count);&nbsp;&nbsp;//  删除函数

int&nbsp;main(void)&nbsp;{

int&nbsp;num;
int&nbsp;count&nbsp;=&nbsp;5;
Students&nbsp;student[]&nbsp;=&nbsp;{
{202007131,&nbsp;&quot;陈二&quot;,&nbsp;&quot;&quot;,&nbsp;17,&nbsp;177,&nbsp;17100005963},
{202007132,&nbsp;&quot;张三&quot;,&nbsp;&quot;&quot;,&nbsp;18,&nbsp;175,&nbsp;17200005912},
{202007133,&nbsp;&quot;李四&quot;,&nbsp;&quot;&quot;,&nbsp;19,&nbsp;168,&nbsp;15100005934},
{202007134,&nbsp;&quot;王五&quot;,&nbsp;&quot;&quot;,&nbsp;20,&nbsp;180,&nbsp;12300005463},
{202007135,&nbsp;&quot;赵六&quot;,&nbsp;&quot;&quot;,&nbsp;21,&nbsp;170,&nbsp;11100002983},
};

while&nbsp;(1)&nbsp;{
puts(&quot;----------欢迎进入学生管理系统----------&quot;);
puts(&quot;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.查询学生信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&quot;);
puts(&quot;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.添加学生信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&quot;);
puts(&quot;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.更新学生信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&quot;);
puts(&quot;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.删除学生信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&quot;);
puts(&quot;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.退出系统&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&quot;);
puts(&quot;----------------------------------------&quot;);
printf(&quot;请输入1至5选项:&quot;);
scanf(&quot;%d&quot;,&nbsp;&amp;num);
switch&nbsp;(num)&nbsp;{
case&nbsp;1:
select_studnet_all(student,&nbsp;count);
break;
case&nbsp;2:
count&nbsp;=&nbsp;add_studnet_info(student,&nbsp;count);
break;
case&nbsp;3:
update_studnet_info(student,&nbsp;count);
break;
case&nbsp;4:
count&nbsp;=&nbsp;delete_studnet_info(student,&nbsp;count);
break;
case&nbsp;5:
puts(&quot;系统结束运行!!&quot;);
return&nbsp;0;
default:
puts(&quot;输入错误,请重新输入!&quot;);
break;
}

}

return&nbsp;0;
}

void&nbsp;select_studnet_all(Students&nbsp;std[],&nbsp;int&nbsp;count)&nbsp;{
int&nbsp;i;

puts(&quot;&nbsp;&nbsp;学号&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;姓名&nbsp;性别&nbsp;&nbsp;年龄&nbsp;&nbsp;&nbsp;身高&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;联系电话&quot;);
for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;count;&nbsp;i++)&nbsp;{
printf(&quot;%ld&nbsp;&nbsp;&nbsp;%-5s&nbsp;%s&nbsp;&nbsp;&nbsp;&nbsp;%d&nbsp;&nbsp;%6.1fcm&nbsp;&nbsp;%lld\n&quot;,&nbsp;std[i].studne_id,&nbsp;std[i].name,&nbsp;std[i].sex,&nbsp;std[i].age,&nbsp;std[i].height,&nbsp;std[i].telephone);
}
puts(&quot;\n&quot;);
}

int&nbsp;add_studnet_info(Students&nbsp;std[],&nbsp;int&nbsp;count)&nbsp;{
long&nbsp;studne_id;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 学号 */
char&nbsp;name[NAME_LEN];&nbsp;/* 姓名 */
char&nbsp;sex[3];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 性别 */
int&nbsp;age;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 年龄 */
double&nbsp;height;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 身高 */
long&nbsp;long&nbsp;telephone;&nbsp;&nbsp;/* 联系电话 */
int&nbsp;index;

printf(&quot;请输入学号:&quot;);
scanf(&quot;%ld&quot;,&nbsp;&amp;studne_id);
index&nbsp;=&nbsp;find_Students_id(std,&nbsp;studne_id,&nbsp;count);

printf(&quot;请输入姓名:&quot;);
scanf(&quot;%s&quot;,&nbsp;name);

printf(&quot;请输入性别:&quot;);
scanf(&quot;%s&quot;,&nbsp;sex);

printf(&quot;请输入年龄:&quot;);
scanf(&quot;%d&quot;,&nbsp;&amp;age);

printf(&quot;请输入身高:&quot;);
scanf(&quot;%lf&quot;,&nbsp;&amp;height);

printf(&quot;请输入联系电话:&quot;);
scanf(&quot;%lld&quot;,&nbsp;&amp;telephone);

if&nbsp;(index&nbsp;==&nbsp;-1)&nbsp;{
std[count].studne_id&nbsp;=&nbsp;studne_id;
strcpy(std[count].name,&nbsp;name);
strcpy(std[count].sex,&nbsp;sex);
std[count].age&nbsp;=&nbsp;age;
std[count].height&nbsp;=&nbsp;height;
std[count].telephone&nbsp;=&nbsp;telephone;

puts(&quot;已成功添加新的学生信息:&quot;);
printf(&quot;%ld&nbsp;&nbsp;&nbsp;%-5s&nbsp;%s&nbsp;&nbsp;&nbsp;&nbsp;%d&nbsp;&nbsp;%6.1fcm&nbsp;&nbsp;%lld\n&quot;,&nbsp;studne_id,&nbsp;name,&nbsp;sex,&nbsp;age,&nbsp;height,&nbsp;telephone);

count++;

}else&nbsp;{
puts(&quot;学号重复添加失败!&quot;);
}

return&nbsp;count;
}

int&nbsp;find_Students_id(Students&nbsp;std[],&nbsp;long&nbsp;studne_id,&nbsp;int&nbsp;count)&nbsp;{
int&nbsp;i;
int&nbsp;index;

for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;count;&nbsp;i++)&nbsp;{

if&nbsp;(std[i].studne_id&nbsp;==&nbsp;studne_id)&nbsp;{
index&nbsp;=&nbsp;i;
break;
}
else&nbsp;{
index&nbsp;=&nbsp;-1;
}

}

return&nbsp;index;
}

void&nbsp;update_studnet_info(Students&nbsp;std[],&nbsp;int&nbsp;count)&nbsp;{
long&nbsp;studne_id;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 学号 */
char&nbsp;name[NAME_LEN];&nbsp;/* 姓名 */
char&nbsp;sex[3];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 性别 */
int&nbsp;age;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 年龄 */
double&nbsp;height;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 身高 */
long&nbsp;long&nbsp;telephone;&nbsp;&nbsp;/* 联系电话 */
int&nbsp;index;

printf(&quot;请输入要修改的学生的学号:&quot;);
scanf(&quot;%ld&quot;,&nbsp;&amp;studne_id);

index&nbsp;=&nbsp;find_Students_id(std,&nbsp;studne_id,&nbsp;count);

if&nbsp;(index&nbsp;!=&nbsp;-1)&nbsp;{

puts(&quot;请进行修改操作!&quot;);
printf(&quot;请输入学号:&quot;);
scanf(&quot;%ld&quot;,&nbsp;&amp;studne_id);

printf(&quot;请输入姓名:&quot;);
scanf(&quot;%s&quot;,&nbsp;name);

printf(&quot;请输入性别:&quot;);
scanf(&quot;%s&quot;,&nbsp;sex);

printf(&quot;请输入年龄:&quot;);
scanf(&quot;%d&quot;,&nbsp;&amp;age);

printf(&quot;请输入身高:&quot;);
scanf(&quot;%lf&quot;,&nbsp;&amp;height);

printf(&quot;请输入联系电话:&quot;);
scanf(&quot;%lld&quot;,&nbsp;&amp;telephone);

puts(&quot;已更新的学生信息:&quot;);
printf(&quot;%ld&nbsp;&nbsp;&nbsp;%-5s&nbsp;%s&nbsp;&nbsp;&nbsp;&nbsp;%d&nbsp;&nbsp;%6.1fcm&nbsp;&nbsp;%lld\n&quot;,&nbsp;studne_id,&nbsp;name,&nbsp;sex,&nbsp;age,&nbsp;height,&nbsp;telephone);



std[index].studne_id&nbsp;=&nbsp;studne_id;
strcpy(std[index].name,&nbsp;name);
strcpy(std[index].sex,&nbsp;sex);
std[index].age&nbsp;=&nbsp;age;
std[index].height&nbsp;=&nbsp;height;
std[index].telephone&nbsp;=&nbsp;telephone;
puts(&quot;修改成功!&quot;);
}else&nbsp;{
puts(&quot;没有查找到该学生!&quot;);
}

}

int&nbsp;delete_studnet_info(Students&nbsp;std[],&nbsp;int&nbsp;count)&nbsp;{
long&nbsp;studne_id;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* 学号 */
int&nbsp;i;

printf(&quot;请输入要删除的学生的学号:&quot;);
scanf(&quot;%ld&quot;,&nbsp;&amp;studne_id);

for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;count;&nbsp;i++)&nbsp;{

if&nbsp;(std[i].studne_id&nbsp;==&nbsp;studne_id)&nbsp;{

while&nbsp;(1)&nbsp;{
if&nbsp;(i&nbsp;&lt;&nbsp;count)&nbsp;{
std[i]&nbsp;=&nbsp;std[i&nbsp;+&nbsp;1];
i++;
}
else&nbsp;{
break;
}
}

puts(&quot;删除成功!&quot;);
count--;
break;
}
}

if&nbsp;(count&nbsp;==&nbsp;i)&nbsp;{
puts(&quot;没有查找到该学生!&quot;);
}


return&nbsp;count;
}

运行结果:

  1. 查询功能
    C语言 学生管理系统_#define
  2. 添加功能:
    如果学号重复则添加失败:
    C语言 学生管理系统_#include_02
    学号不重复:
    C语言 学生管理系统_#define_03
  3. 更新功能:
    没有找到学号:
    C语言 学生管理系统_#include_04
    找到学号:
    C语言 学生管理系统_i++_05
  4. 删除功能:
    没有找到学号:
    C语言 学生管理系统_#include_06
    找到学号:
    C语言 学生管理系统_#include_07
  5. 退出系统
    C语言 学生管理系统_i++_08


举报

相关推荐

0 条评论