学生信息管理系统(c语言简版)——章节实验作业
Posted BEI_TIAN_XUAN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学生信息管理系统(c语言简版)——章节实验作业相关的知识,希望对你有一定的参考价值。
学生信息管理系统(c语言简版)——章节实验作业
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define MaxSize 50
typedef struct {
char number[20];
char name[20];
int math;
int computer;
int ad_math;
int average;
}Student;
typedef struct
{
Student student[MaxSize];
int length;
}SqList;
void Show() //菜单
{
printf("**********************************\\n");
printf(" WELCOME!\\n");
printf("\\n");
printf(" 新科院学生信息管理系统\\n\\n");
printf(" \\t 1.查询\\t 2.插入\\n\\n");
printf(" \\t 3.删除\\t 4.打印\\n\\n");
printf(" \\t 5.排序\\t 6.退出\\n\\n");
printf(".............7.录入.............\\n");
printf("\\n");
printf(" 输入相关序号实现相关功能!\\n");
printf("**********************************\\n");
}
void InitList(SqList*& L) //初始化
{
L = (SqList*)malloc(sizeof(SqList));
L->length = 0;
}
void CreateList(SqList*&L) //录入信息
{
int i = 0, n;
printf("请输入录入学生人数:");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
printf("姓名:");
scanf("%s", &L->student[i].name);
getchar(); //吸收换行符
printf("学号:");
scanf("%s", &L->student[i].number);
getchar();
printf("数学成绩,计算机成绩,高数成绩:\\n");
scanf("%d%d%d", &L->student[i].math, &L->student[i].computer, &L->student[i].ad_math);
L->student[i].average = (L->student[i].ad_math + L->student[i].computer + L->student[i].math) / 3; //平均成绩
getchar(); //吸收换行符
if (i == n - 1) //强制跳出循环
break;
}
L->length = n;
printf("录入成功!");
Sleep(3000);
}
void DispList(SqList*&L) //打印
{
int i, flag;
if (L->length==0) //判空
{
printf("抱歉!无数据,请录入!");
Sleep(3000);
return;
}
while (1) {
for (i = 0; i < L->length; i++)
{
printf("姓名:%s\\t", L->student[i].name);
printf("学号:%s\\n", L->student[i].number);
printf("数学成绩:%d\\t", L->student[i].math);
printf("计算机成绩:%d\\t", L->student[i].computer);
printf("高数成绩:%d\\t", L->student[i].ad_math);
printf("平均成绩:%d\\n", L->student[i].average);
printf("............................\\n");
}
printf("输入0退出打印!\\n");
scanf("%d", &flag);
if (flag == 0) //跳出打印结果显示
break;
}
}
void SeekElem(SqList* L) //查询
{
int i = 0, flag;
char num[MaxSize];
printf("请输入要查找学生信息的学号:\\n");
scanf("%s", num);
while (1) {
while (i < L->length && strcmp(num, L->student[i].number) != 0)
{
i++;
}
if (strcmp(num, L->student[i].number) == 0)
{
printf("姓名:%s\\t", L->student[i].name);
printf("学号:%s\\n", L->student[i].number);
printf("数学成绩:%d\\t", L->student[i].math);
printf("计算机成绩:%d\\t", L->student[i].computer);
printf("高数成绩:%d\\t", L->student[i].ad_math);
printf("平均成绩:%d\\n", L->student[i].average);
}
else
printf("查无此人!\\n");
printf("输入0退出打印!\\n");
scanf("%d", &flag);
if (flag == 0) //跳出打印结果显示
break;
}
}
void ListInsert(SqList*& L) //插入
{
int n, i, flag;
printf("请输入插入学生信息个数:");
scanf("%d", &n);
printf("请输入插入学生信息:\\n");
for (i = 0; i < n; i++)
{
printf("姓名:");
scanf("%s", &L->student[L->length + i].name);
getchar(); //吸收换行符
printf("学号:");
scanf("%s", &L->student[L->length + i].number);
getchar();
printf("数学成绩,计算机成绩,高数成绩:\\n");
scanf("%d%d%d", &L->student[L->length + i].math, &L->student[L->length + i].computer, &L->student[L->length + i].ad_math);
getchar(); //吸收换行符
L->student[i].average = (L->student[L->length + i].ad_math + L->student[L->length + i].computer + L->student[L->length + i].math) / 3; //平均成绩
}
L->length = L->length + n;
printf("\\a");
printf("插入成功!");
Sleep(2000); //显示插入成功提示
}
void ListDelete(SqList*& L) //删除
{
int i, j;
char num[MaxSize];
printf("请输入要删除学生信息的学号:\\n");
scanf("%s", num);
for (i = 0; i < L->length; i++)
{
if (strcmp(num, L->student[i].number) == 0)
{
for (j = i; j < L->length - 1; j++)
L->student[j] = L->student[j + 1];
L->length--;
printf("删除成功!");
Sleep(3000);
return; //删除成功,强制退出函数
}
}
printf("输入错误!\\a");
Sleep(3000);
}
void Sort(SqList*&L) //排序
{
int i, j;
Student temp;
printf("按照平均成绩降序输出学生的信息如下:\\n");
for (i=0; i<L->length-1; i++)
for (j = 0; j < L->length - i - 1; j++) //冒泡排序(降序排列)
{
if (L->student[j].average < L->student[j + 1].average)
{
temp = L->student[j];
L->student[j] = L->student[j+1];
L->student[j+1] = temp;
}
}
DispList(L);
}
int main()
{
int n;
SqList* L;
InitList(L);
while (1) {
system("cls"); //清屏函数
Show();
printf("请输入1-7的数:");
scanf("%d", &n);
switch (n) {
case 1:
SeekElem(L);
break;
case 2:
ListInsert(L);
break;
case 3:
ListDelete(L);
break;
case 4:
DispList(L);
break;
case 5:
Sort(L);
break;
case 6:
printf("........正在退出中........");
Sleep(3000);
system("cls");
printf("\\a退出成功!"),
exit(0);
break;
case 7:
CreateList(L);
break;
default:
printf("\\a输入错误!请重新输入(1—7)!"),
Sleep(2000);
break;
}
}
}
以上是关于学生信息管理系统(c语言简版)——章节实验作业的主要内容,如果未能解决你的问题,请参考以下文章