c语言 学生管理系统设计

题目四 学生管理系统设计
一、问题描述
学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。(学号不得重复)
二、功能描述
试设计一学生信息管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、能够完成对学生信息录入(学生信息用文件保存),可不定时地增加学生信息。
3、学生信息浏览功能
4、学生信息查询功能
(1)按学号查询
(2)按姓名查询
5、学生信息删除与修改
(1)输入学号,若该学生存在,删除该学生信息。
6、图书信息的修改
输入学号,查询该学生,如果存在,则修改该学生信息(不允许修改学号)。
三、算法提示
1.数据结构:用结构体类型存储一个学生信息。
2. 结构体类型:
学号 姓名 年龄 性别 出生日期 地址 电话 E-mail
char[] char[] int char[] char[] char[] char[] char[]
四、测试数据
学生人数N=10

第1个回答  2018-12-26
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 1000
/*定义学生成绩信息结构*/
struct stu
{
char id[8];
char name[8];
double Chinese;
double Math;
double English;
double average;
double total;
};
/*学生结构数组,用于存储学生成绩信息*/
struct stu students[MAX];
/*当前学生人数*/
int current;
void input()
{
int i;

printf("请输入学生人数:");
scanf("%d", & current);
for (i = 0; i < current; i++)
{
printf("\n请输入学生学号,最多为7位数: ");
scanf("%s", students[i].id);
printf("请输入学生姓名:");
scanf("%s", students[i].name);
printf("请输入语文成绩:");
scanf("%lf", &students[i].Chinese);
printf("请输入数学成绩:");
scanf("%lf", &students[i].Math);
printf("请输入英语成绩:");
scanf("%lf", &students[i].English);
students[i].total = students[i].Chinese + students[i].Math + students[i].English;
students[i].average = students[i].total / 3;
}
}
/*排名次,即对学生结构数组排序*/
void sort(struct stu array[], int n)
{
int i, j;
struct stu temp;

for (i = 0; i < n; i++)
{
for (j = i+1; j < n; j++)
{
if (array[i].average - array[j].average < 1e-16)
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
/*统计平均成绩,并输出各分数段的人数*/
void print_score(struct stu array[], int n)
{
int i;
double ave = 0;
int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0;

for (i = 0; i < n; i++)
{
ave += array[i].average;
switch ((int)(array[i].average / 10))
{
case 10:
case 9: sum1++; break;
case 8: sum2++; break;
case 7:
case 6: sum3++; break;
default: sum4++;
}
}
printf("全班的平均分为:%.1f\n", ave/n);
printf("平均分在90分以上的人数为:%d\n", sum1);
printf("平均分在80~89的人数为:%d\n", sum2);
printf("平均分在60~79的人数为:%d\n", sum3);
printf("平均分在60分以下的人数为:%d\n", sum4);
}
/*输出不及格科目及学生名单*/
void print_unreach(struct stu array[], int n)
{
int i;

printf("科目\t学号\t名字\n");
for (i = 0; i < n; i++)
{
if (array[i].Chinese < 60)
{
printf("语文\t%s\t%s\n", array[i].id, array[i].name);
}
if (array[i].Math < 60)
{
printf("数学\t%s\t%s\n", array[i].id, array[i].name);
}
if (array[i].English < 60)
{
printf("英语\t%s\t%s\n", array[i].id, array[i].name);
}
}
}
/*打印优等生名单*/
void print_good(struct stu array[], int n)
{
int i;
char mark = 0;

if (n > 3)
{
n = 3;
}
printf("学号\t姓名\t语文\t数学\t英语\t平均分\t名次\n");
for (i = 0; i < n; i++)
{
if ((array[i].Chinese > 60) && (array[i].Math > 60) && (array[i].English > 60))
{
if (array[i].average > 90) mark = 1;
else if (array[i].average > 85)
{
if (array[i].Chinese == 100) mark = 1;
if (array[i].Math == 100) mark = 1;
if (array[i].English == 100) mark = 1;
if (array[i].Chinese > 95 && array[i].English > 95) mark = 1;
if (array[i].Chinese > 95 && array[i].Math > 95) mark = 1;
if (array[i].Math > 95 && array[i].English > 95) mark = 1;
}
if (mark == 1)
{
printf("%s\t%s\t", array[i].id, array[i].name);
printf("%.f\t%.f\t%.f\t%.1f\t", array[i].Chinese, array[i].Math, array[i].English, array[i].average);
printf("%d\n", i+1);
}
}
}
}
/*按学生姓名查询成绩*/
void search_name(struct stu array[], int n, char* name)
{
int i;
char mark = 1;

for (i = 0; i < n; i++)
{
if (strcmp(name, array[i].name) == 0)
{
printf("学生姓名:%s\n", name);
printf("学生学号:%s\n", array[i].id);
printf("语文:%.f\n", array[i].Chinese);
printf("数学:%.f\n", array[i].Math);
printf("英语:%.f\n", array[i].English);
printf("平均分:%.1f\n", array[i].average);
mark = 0;
}
}

if (mark == 1) puts("不存在该学生记录");
}
/*按学生学号查询成绩*/
void search_id(struct stu array[], int n, char* id)
{
int i;
char mark = 1;

for (i = 0; i < n; i++)
{
if (strcmp(id, array[i].id) == 0)
{
printf("学生姓名:%s\n", array[i].name);
printf("学生学号:%s\n", array[i].id);
printf("语文:%.f\n", array[i].Chinese);
printf("数学:%.f\n", array[i].Math);
printf("英语:%.f\n", array[i].English);
printf("平均分:%.1f\n", array[i].average);
mark = 0;
break;
}
}
if (mark == 1) puts("不存在该学生记录");
}
void print_menu()
{
system("cls");
printf("1.输入学生信息\n");
puts("2.统计全班学生成绩");
puts("3.按学号查询学生成绩");
puts("4.按姓名查询学生成绩");
puts("5.输出不及格情况");
puts("6.输出优等生名单");
puts("0.退出本程序");
printf("\n\n 请输入你的选择:");
}
int main(int argc, char **argv)
{
char ch = 0;
char id[8], name[8];

while (ch != '0')
{
print_menu();
ch = getchar();
switch (ch)
{
case '1':
{
system("cls");
input();
sort(students, current);
break;
}
case '2':
{
system("cls");
print_score(students, current);
break;
}
case '3':
{
system("cls");
printf("请输入学号:");
scanf("%s", id);
search_id(students, current, id);
break;
}
case '4':
{
system("cls");
printf("请输入姓名:");
scanf("%s", name);
search_name(students, current, name);
break;
}
case '5':
{
system("cls");
print_unreach(students, current);
break;
}
case '6':
{
system("cls");
print_good(students, current);
break;
}
case '0': exit(0);
}
printf("\n\n按任意键返回主菜单……");
getchar();
getchar();
}
return 0;
}本回答被网友采纳
第2个回答  2018-12-26
高端大气上档次

C语言学生管理系统
学生成绩管理系统主要功能:一、当前学生信息:通过结构体structstudent来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且可以输入当前学生初始信息。二、学... 学生成绩管理系统主要功能:一、 当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并...

用C语言编写一个学生管理系统。
char putout[9][21]={"姓名","学号","专业","性别","c语言","英语","数学","总成绩","名次"}; \/\/为格式化输出做准备int count=0; \/\/用来记录学生的记录个数\/\/函数声明部分void initialStudent();void addStudent();int judge(int );void delstudent();void modifyStudent();void searchStudent()...

用C语言编写学生管理系统界面
printf(" * 0 退出管理系统 *\\n"); printf(" *** ^@^欢迎使用通讯录系统***\\n"); int flag=0; int menu; printf("请选择0-5:"); scanf("%d",&menu); while(menu!=0) { switch(menu) { case 1: { L=creatIncreLink(); printf("建立通讯录:"); printList(L); flag=1; break; }...

用C语言设计一个学生信息查询系统程序
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。2、编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。3、在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。5、在Stu源文件的In...

用标准C语言编写学生信息管理系统
printf("1.输入学生信息 \\n");printf("2.按总分进行排榜 \\n");printf("3.查找相应的学生信息 \\n");printf("4.退出学生成绩管理系统 \\n\\n");printf("请输入功能选择编号:");fflush(stdin); \/\/清空输入缓冲区 scanf("%c",&selmenu); \/\/接受用户选择的功能编号 switch(...

...数据结构-期末课程设计-大作业(学生成绩管理系统)附源码+实验文档...
在期末课程设计中,我完成了大作业——一个学生成绩管理系统,该系统涉及详细的设计和实现过程。首先,系统核心功能围绕学生信息管理,包括姓名、班级和学号,以及成绩查询、录入、修改和删除等操作。结构上,我使用了顺序表数据结构,构建了包含插入、查找、删除和排序等模块的系统。设计内容包括定义一个名为...

如何用C语言编写一个学生管理系统
printf("请输入第%d个学生的姓名:",i+1);scanf("%s",stu[i].name);printf("请输入第%d个学生的性别:f表示女生,m表示男生:",i+1);getchar();scanf("%c",&stu[i].sex);printf("请输入第%d个学生的班级:",i+1);scanf("%s",stu[i].clas);for (j=0;j<3;j++){ printf("...

怎样用c语言编写学生管理系统?
1、一定要先写好主函数的框架,然后再往上面加东西,这样说有点笼统,我把我的主函数在下面,可以借鉴下哈。我的主函数是一个while(1)的无限循环,里面一个switch选择,利用一个菜单函数,让其返回值当成switch选择的值,然后进入不同的功能主函数,其他功能主函数和主函数的套路一样。2、输入模块...

c语言课程设计 学生成绩管理系统
c语言课程设计 学生成绩管理系统 25 1、某班学生成绩管理,包括以下功能:(1)从键盘输入包括学号、姓名、各门课程成绩,并将其保存在磁盘文件student里(2)打开文件后,计算每个人的总分和平均分,排序并保存(3)具有... 1、 某班学生成绩管理,包括以下功能:(1) 从键盘输入包括学号、姓名、各门课程成绩,并将其...

学生信息管理系统C语言编程
一、学生信息管理系统1设计内容1、用户界面2、同学信息的插入3、同学信息的删除4、同学信息的查询5、同学信息的显示6、最终的同学信息写入到文件7、退出数据要求:同学信息包括:学号... 一、学生信息管理系统1 设计内容 1、用户界面2、同学信息的插入3、同学信息的删除4、同学信息的查询5、同学信息的显示6、最终的...

相似回答