,,C语言实现简易学生管理系统

,,C语言实现简易学生管理系统

本文主要详细介绍了用C语言实现的简单的学生管理系统。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

本文分享用C语言实现学生管理系统的具体代码,供大家参考。具体内容如下

首先,在做管理系统之前,我们需要知道这个学生管理系统需要哪些功能,比如:简单的增、删、改、查,也就是录入成绩、查询成绩、删除成绩、修改成绩、插入成绩。这些功能基本都包含了。当然,我们也可以添加排序和统计学生人数。

当我们知道需要什么功能的时候,就可以写系统的界面了。

效果图如下:

printf(' \ t \ t \ t-STUDENT-\ t \ t \ t \ n ');

Printf('\t\t\t0。exit \ t \ t \ t \ n ');

Printf('\t\t\t1。输入结果\ t \ t \ n ');

Printf('\t\t\t2。查询结果\ t \ t \ n ');

Printf('\t\t\t3。删除成绩\ t \ t \ n’);

Printf('\t\t\t4。修改结果\ t \ t \ n’);

Printf('\t\t\t5。插入成就\ t \ t \ n’);

Printf('\t\t\t6。sort \ t \ t \ n ');

Printf('\t\t\t7。统计学生人数\ t \ t \ n’);

printf(' \ t \ t \ t-\ t \ t \ t \ n ');

printf(' \ t \ t \ t select(0-7)\ t \ t ');

然后我们可以添加开关功能来选择功能。

定义整数变量选择

int选择;

scanf('%d ',choice);

开关(选择)

{

案例0:出口(0);打破;

案例一:in();save();系统(“暂停”);系统(“cls”);打破;//回车

案例二:show();系统(“暂停”);系统(“cls”);打破;//查询

案例三:del();save();系统(“暂停”);系统(“cls”);打破;//删除

情况四:modify();系统(“暂停”);系统(“cls”);打破;//修改

案例五:insert();save();系统(“暂停”);系统(“cls”);打破;//插入

案例6:order();系统(“暂停”);系统(“cls”);打破;//排序

情况7:合计();系统(“暂停”);系统(“cls”);打破;//统计数据

默认值:printf(' \ n输入错误,请输入0-7 \ n \ n ');系统(“暂停”);系统(“cls”);打破;

}

定义一个菜单函数将以上两者结合起来。我们添加了一个while循环来保持这个菜单在循环中出现,而不是使用一次就消失。

Void Menu()//菜单

{ while(1)

{

printf(' \ t \ t \ t-STUDENT-\ t \ t \ t \ n ');

Printf('\t\t\t0。exit \ t \ t \ t \ n ');

Printf('\t\t\t1。输入结果\ t \ t \ n ');

Printf('\t\t\t2。查询结果\ t \ t \ n ');

Printf('\t\t\t3。删除成绩\ t \ t \ n’);

Printf('\t\t\t4。修改结果\ t \ t \ n’);

Printf('\t\t\t5。插入成就\ t \ t \ n’);

Printf('\t\t\t6。sort \ t \ t \ n ');

Printf('\t\t\t7。统计学生人数\ t \ t \ n’);

printf(' \ t \ t \ t-\ t \ t \ t \ n ');

printf(' \ t \ t \ t select(0-7)\ t \ t ');

int chioce

scanf('%d ',chio ce);

开关(选择)

{

案例0:出口(0);打破;

案例一:in();save();系统(“暂停”);系统(“cls”);打破;//回车

案例二:show();系统(“暂停”);系统(“cls”);打破;//查询

案例三:del();save();系统(“暂停”);系统(“cls”);打破;//删除

情况四:modify();系统(“暂停”);系统(“cls”);打破;//修改

案例五:insert();save();系统(“暂停”);系统(“cls”);打破;//插入

案例6:order();系统(“暂停”);系统(“cls”);打破;//排序

情况7:合计();系统(“暂停”);系统(“cls”);打破;//统计数据

默认值:printf(' \ n输入错误,请输入0-7 \ n \ n ');系统(“暂停”);系统(“cls”);打破;

}

}

}

写完菜单后,我们将分析“学生”的数据

在这个系统中,学生的信息应该包括那些东西,例如:学号、姓名、选修课成绩、实验课成绩、必修课成绩、总分、平均分。然后根据这些写一个结构(我写的是数组类型结构)

结构学生

{

字符编号[20];//学生ID

char name[20];//名称

浮动电子;//选修课

浮动费用;//实验班

浮动requ//必修课

浮动总和;//总分'

浮动大街;//平均成绩

}学生[N];

然后我们开始编写函数来实现这个系统的功能。

首先是成绩的录入。

Void in()//输入信息

{

void save();

int i,n;

Printf('输入录取人数\ n ');

scanf('%d ',n);

for(I=1;I=n;我)

{printf('请输入%d学号:\n ',I);

scanf('%s ',student[i])。num);

Printf('请输入%d学生姓名:\n ',I);

scanf('%s ',student[i])。姓名);

Printf('请输入%d学生选修课的成绩:\n ',I);

scanf('%f ',student[i])。elec);

Printf('请输入学生%d: \n ',I)的实验结果;

scanf('%f ',student[i])。expe);

Printf('请输入%d学生的必修课程成绩:\n ',I);

scanf('%f ',student[i])。requ);

学生[我]。sum=学生[i]。当选学生。expe学生[i]。热曲;

学生[我]。ave=student[i]。sum/3;

数数;

}

Printf('成功输入\ n ');

}

二是结果的查询。

Void show() //查询

{

int I;

char xh[20];

Printf('请输入要查询的学号:\ n ');

getchar();

gets(xh);

for(I=0;在;我)

{

If (strcmp (student [i])。num,xh)==0)//比较两个字符串。如果它们相同,则在下面声明if;否则,继续循环。

printf(' \ n学生ID: %-5s姓名:%-5s选修课成绩:%-5.1f实验课成绩:%-5.1f必修课成绩:%-5.1f总分:%-5.1f平均分:%-5.1f\n ',

学生[我]。num,学生[我]。姓名,学生[我]。elec,student[i]。expe,学生[i]。热区,学生[我]。sum,学生[我]。ave);

}

}

第三是删除等级。

Void del()//删除

{

void save();

int j,a=0,k=count

char xh[25];

Printf('要删除的学号是:\ n ');

scanf('%s ',xh);

flush(标准输入);//缓冲区

for(j=0;jcountj)

{

if (strcmp(student[j].num,xh)==0)

{

for(j=a;jcountj)

学生[j]=学生[j 1];

count-;

if (countk)

Printf('成功删除\ n ');

}

a;

}

if (j==count-1)

Printf('没有您要删除的学生信息\ n ');

}

第四,等级的修改。

第一步。先找学生修改。

2.选择修改后的项目。

3.更改总分和平均分。

4.显示修改后的学生数据。

Void modify()//修改

{ void save();

int i,j,h;

浮动分数;

char xh[20];

Printf ('01。输入修改学生的学号:\ n ');

scanf('%s ',xh);

for(I=1;在;我)

if (strcmp(student[i])。num,xh)==0)

j=I;

Printf('请选择要修改的内容\ n ');

Printf('1。修改学生的选修课成绩\ n’);

Printf('2。修改学生的实验班成绩\ n’);

Printf('3。修改学生的必修课成绩\ n’);

scanf('%d ',h);

开关(h)

{

1: printf('请输入该生选修课的成绩\ n ');scanf('%f ',分数);学生[j]。elec=分数;打破;

2: printf('请输入学生的实验班成绩\ n ');scanf('%f ',分数);学生[j]。expe=分数;打破;

3: printf('请输入该生的必修课成绩\ n ');scanf('%f ',分数);学生[j]。requ=分数;打破;

默认值:printf(' \ n输入错误,请输入1-3 \ n \ n ');打破;

}

学生[j]。sum=学生[j]。当选学生[j]。expe学生[j]。热曲;

Printf('修改为:\ n ');

printf(' \ n学生ID: %-5s姓名:%-5s选修课成绩:%-5.1f实验课成绩:%-5.1f必修课成绩:%-5.1f总分:%-5.1f平均分:%-5.1f\n ',

学生[j]。num,学生[j]。姓名,学生[j]。elec,学生[j]。expe,student[j]。requ,学生[j]。sum,学生[j]。ave);

printf(' \ n ');

Printf('修改成功\ n ');

}

第五,成果的插入

Void insert ()//insert

{ void save();

int m,flag,i=count,j,k;

Printf('请输入要添加的学生人数:\ n ');

scanf('%d ',m);

如果(m 0)

{

k=计数1;

for(I=k;I=计数m;我)

{

flag=1;

而(旗!=0)

{

flag=0;

Printf('请输入%d学生的学号:\n ',I);

getchar();

获取(student[i])。num);

for(j=0;j I;j)

{

if (strcmp(student[i])。num,学生[j]。num)==0)

{

Printf('该学号已经存在,请重新输入!\ n’);

flag=1;

打破;

}

}

}

Printf('请输入%d学生姓名:\n ',I);

获取(student[i])。姓名);

printf('请输入第%d位学生选修课成绩:\n ',I);

scanf('%f ',student[i]).elec);

printf('请输入第%d位学生实验成绩:\n ',I);

scanf('%f ',student[i]).expe);

printf('请输入第%d位学生必修课成绩:\n ',I);

scanf('%f ',student[i]).requ);

学生[我]。总和=学生[我].当选学生expe学生[我].热曲;

学生[我]。ave=学生[i].sum/3;

}

count=m;

printf('添加完成!\ n’);

系统("暂停");

}

}

第六项,排序

无效订单()//排序

{

int i,j,m;

for(j=1;j=计数-1;j)

{ m=j;

for(I=j ^ 1;我=计数;我)

{

如果(学生[我]。暑期学生[m]的缩写.总和)

{

学生[0]=学生[I];

学生[我]=学生[m];

学生[m]=学生[0];

}

}

}

for(j=1;j=计数;j)

{

printf('\n学号:%-5s姓名:%-5s选修课成绩:%-5.1f实验课成绩:%-5.1f必修课成绩:%-5.1f总分:%-5.1f平均分:%-5.1f\n ',

学生[j]的缩写.num,学生[j]的缩写.姓名,学生[j]的缩写.当选,学生[j]的缩写.expe,student[j].热区,学生[j]的缩写.总和,学生[j]的缩写.ave);

}

}

第七项,统计学生人数

void total ()//统计

{

printf('学生人数%d\n ',计数);

}

完整的代码

# includestdio.h

#includestring.h

#includestdlib.h

#定义N 100

结构学生

{

字符编号[20];//学号

char name[20];//姓名

浮动电子;//选修课

浮动费用;//实验课

浮动requ//必修课

浮动总和;//总成绩'

浮动大街;//平均成绩

}学生[N];

void Menu();//菜单

()中的void//录入

void show();//查找

空的订单();//排序

void del();//删除

void modify();//修改

void total();//统计

void insert();//插入

int count=0;//人数

void save();//保存

int main()

{

menu();

返回0;

}

void Menu()//菜单

{ while(1)

{

printf(' \ t \ t \ t-STUDENT-\ t \ t \ t \ n ');

printf('\t\t\t0 .退出\ t \ t \ t \ n ');

printf('\t\t\t1 .录入成绩\ t \ t \ t \ n ');

printf('\t\t\t2 .查询成绩\ t \ t \ t \ n ');

printf('\t\t\t3 .删除成绩\ t \ t \ t \ n ');

printf('\t\t\t4 .修改成绩\ t \ t \ t \ n ');

printf('\t\t\t5 .插入成绩\ t \ t \ t \ n ');

printf('\t\t\t6 .排序\ t \ t \ t \ n ');

printf('\t\t\t7 .统计学生人数\ t \ t \ t \ n ');

printf(' \ t \ t \ t-\ t \ t \ t \ n ');

printf('\t\t\t选择(0-7)\ t \ t \ t ');

国际会议

scanf('%d ',chio ce);

开关(选择)

{

案例0:出口(0);打破;

案例一:in();save();系统("暂停");系统(“cls”);打破;//录入

案例二:show();系统("暂停");系统(“cls”);打破;//查询

案例三:del();save();系统("暂停");系统(“cls”);打破;//删除

情况四:modify();系统("暂停");系统(“cls”);打破;//修改

案例五:insert();save();系统("暂停");系统(“cls”);打破;//插入

案例6:order();系统("暂停");系统(“cls”);打破;//排序

情况7:合计();系统("暂停");系统(“cls”);打破;//统计

默认值:printf('\n输入错误,请输入0-7 \ n \ n’);系统("暂停");系统(“cls”);打破;

}

}

}

void save() //保存

{

文件* fp

字符文件名[100];

int I;

printf('请输入要保存的文件名:\ n’);

scanf('%s ',文件名);

if ((fp=fopen(文件名,' w ')==NULL)

{

printf('打开文件失败!\ n’);

退出(0);

}

for(I=1;我=计数;我)

{

if (fwrite(student[i],sizeof(struct student),1,fp)!=1)

printf('保存失败!\ n’);

}

printf('保存成功!\ n’);

fclose(FP);

}

在()//中无效录入信息

{

void save();

int i,n;

printf('输入录取学生的数量\ n’);

scanf('%d ',n);

for(I=1;I=n;我)

{ printf('请输入第%d位学生学号:\n ',I);

scanf('%s ',student[i]).num);

printf('请输入第%d位学生姓名:\n ',I);

scanf('%s ',student[i]).姓名);

printf('请输入第%d位学生选修课成绩:\n ',I);

scanf('%f ',student[i]).elec);

printf('请输入第%d位学生实验成绩:\n ',I);

scanf('%f ',student[i]).expe);

printf('请输入第%d位学生必修课成绩:\n ',I);

scanf('%f ',student[i]).requ);

学生[我]。总和=学生[我].当选学生expe学生[我].热曲;

学生[我]。ave=学生[i].sum/3;

数数;

}

printf('录入成功\ n’);

}

void modify()//修改

{ void save();

int i,j,h;

浮动分数;

char xh[20];

printf ('01 .输入修改的学生的学号:\ n’);

scanf('%s ',xh);

for(I=1;在;我)

if (strcmp(student[i]).num,xh)==0)

j=I;

printf('请选择修改内容\ n’);

printf('1 .修改该学生的选修课成绩\ n’);

printf('2 .修改该学生的实验课成绩\ n’);

printf('3 .修改该学生的必修课成绩\ n’);

scanf('%d ',h);

开关(h)

{

案例1:printf('请输入该学生的选修课成绩\ n’);扫描f('%f ',分数);学生[j]的缩写.elec=分数;打破;

案例2:printf('请输入该学生的实验课成绩\ n’);扫描f('%f ',分数);学生[j]的缩写.费用=分数;打破;

案例3:printf('请输入该学生的必修课成绩\ n’);扫描f('%f ',分数);学生[j]的缩写.requ=分数;打破;

默认值:printf('\n输入错误,请输入1-3 \ n \ n’);打破;

}

学生[j]的缩写.总和=学生[j]的缩写.当选学生[j]的缩写.expe学生[j]的缩写.热曲;

printf('修改后为:\ n’);

printf('\n学号:%-5s姓名:%-5s选修课成绩:%-5.1f实验课成绩:%-5.1f必修课成绩:%-5.1f总分:%-5.1f平均分:%-5.1f\n ',

学生[j]的缩写.num,学生[j]的缩写.姓名,学生[j]的缩写.当选,学生[j]的缩写.expe,student[j].热区,学生[j]的缩写.总和,学生[j]的缩写.ave);

printf(' \ n ');

printf('修改成功\ n’);

}

void show() //查询

{

int I;

char xh[20];

printf('请输入要查询的学生学号:\ n’);

getchar();

gets(xh);

for(I=0;在;我)

{

if(strcmp(student[i]).num,xh)==0)

printf('\n学号:%-5s姓名:%-5s选修课成绩:%-5.1f实验课成绩:%-5.1f必修课成绩:%-5.1f总分:%-5.1f平均分:%-5.1f\n ',

学生[我]。num,学生[我]。姓名,学生[我]。elec,student[i].expe,学生[我].热区,学生[我]。总和,学生[我]。ave);

}

}

无效订单()//排序

{

int i,j,m;

for(j=1;j=计数-1;j)

{ m=j;

for(I=j ^ 1;我=计数;我)

{

如果(学生[我]。暑期学生[m]的缩写.总和)

{

学生[0]=学生[I];

学生[我]=学生[m];

学生[m]=学生[0];

}

}

}

for(j=1;j=计数;j)

{

printf('\n学号:%-5s姓名:%-5s选修课成绩:%-5.1f实验课成绩:%-5.1f必修课成绩:%-5.1f总分:%-5.1f平均分:%-5.1f\n ',

学生[j]的缩写.num,学生[j]的缩写.姓名,学生[j]的缩写.当选,学生[j]的缩写.expe,student[j].热区,学生[j]的缩写.总和,学生[j]的缩写.ave);

}

}

void del()//删除

{

void save();

int j,a=0,k=计数

char xh[25];

printf('所要删除的学生学号为:\ n’);

scanf('%s ',xh);

齐平(标准输入);

for(j=0;jcountj)

{

if (strcmp(student[j].num,xh)==0)

{

for(j=a;jcountj)

学生[j]=学生[J1];

count-;

if (countk)

printf('删除成功\ n’);

}

a;

}

if (j==count-1)

printf('没有你所要删除的学生的信息\ n’);

}

void insert ()//插入

{ void save();

int m,flag,i=count,j,k;

printf('请输入待添加的学生人数:\ n’);

scanf('%d ',m);

如果(立方米)

{

k=计数1;

for(I=k;我=计数m;我)

{

flag=1;

而(旗!=0)

{

flag=0;

printf('请输入第%d位学生的学号:\n ',I);

getchar();

获取(学生[我]).num);

for(j=0;j I;j)

{

if (strcmp(student[i]).num,学生[j]的缩写.num)==0)

{

printf('该学号已存在,请重新输入!\ n’);

flag=1;

打破;

}

}

}

printf('请输入第%d位学生姓名:\n ',I);

获取(学生[我]).姓名);

printf('请输入第%d位学生选修课成绩:\n ',I);

scanf('%f ',student[i]).elec);

printf('请输入第%d位学生实验成绩:\n ',I);

scanf('%f ',student[i]).expe);

printf('请输入第%d位学生必修课成绩:\n ',I);

scanf('%f ',student[i]).requ);

学生[我]。总和=学生[我].当选学生expe学生[我].热曲;

学生[我]。ave=学生[i].sum/3;

}

count=m;

printf('添加完成!\ n’);

系统("暂停");

}

}

void total ()//统计

{

Printf('学生人数%d\n ',count);

}

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: