引言:
该系统是通过C语言实现的单机小项目。
如果有不懂得模块可以私信我或者评论区留言。
代码如下:
#include<stdio.h>
struct Student //结构体,定义学生信息(也可以自己增加信息)
{
char name[30]; //姓名
int id; //学号
float gold; //成绩
};
int n=0;
struct Student stu[30];
/* 函数声明 */
int menu(void); //菜单函数
void In(int i); //输入函数
void Add(void); //增加函数
void Prt(void); //打印函数
int Cat(void); //查找函数
void Change(void); //修改函数
void Del(void); //删除函数
void Insert(void); //插入函数
void Arr(void); //排序函数
int main()
{
int ret=0;
while(1)
{
ret=menu();
switch(ret)
{
case 0: return 0;
case 1: Add();
break;
case 2: Prt();
break;
case 3: Cat();
break;
case 4: Change();
break;
case 5: Del();
break;
case 6: Insert();
break;
case 7: Arr();
break;
default:
break;
}
}
}
int menu(void)
{
int val=0;
printf("0.退出\t");
printf("1.新增\n");
printf("2.打印\t");
printf("3.查询\n");
printf("4.修改\t");
printf("5.删除\n");
printf("6.插入\t");
printf("7.排序\n");
scanf("%d",&val);
return val;
}
void In(int i)
{
printf("请输入姓名:");
scanf("%s",stu[i].name);
while(getchar()!='\n');
printf("请输入学号:");
scanf("%d",&stu[i].id);
while(getchar()!='\n');
printf("请输入成绩:");
scanf("%f",&stu[i].gold);
while(getchar()!='\n');
}
void Add(void)
{
In(n);
n++;
printf("输入已完成\n");
}
void Prt(void)
{
if(n==0)
{
printf("无信息\n");
return ;
}
printf("%s %s %s \n","姓名","学号","成绩");
for(int i=0;i<n;i++)
{
printf("%4s %4d %4.1f\n",stu[i].name,stu[i].id,stu[i].gold);
}
printf("打印完成\n");
}
int Cat(void)
{
printf("请输入想要查询的学号:\n");
int i=0;
scanf("%d",&i);
while(getchar()!='\n');
for(int j=0;j<n;j++)
{
if(i==stu[j].id)
{
printf("%s %s %s \n","姓名","学号","成绩");
printf("%4s %4d %4.1f\n",stu[j].name,stu[j].id,stu[j].gold);
return j;
}
}
printf("无此人\n");
return -1;
}
void Change(void)
{
int ret=Cat();
if(ret==-1)
{
printf("修改失败\n");
return;
}
In(ret);
printf("修改成功\n");
}
void Del(void)
{
int ret=Cat();
if(ret==-1)
{
printf("删除失败\n");
return;
}
for(int i=ret;i<n-1;i++)
{
stu[i]=stu[i+1];
}
n--;
printf("删除成功\n");
}
void Insert(void)
{
int s=0;
int ret=Cat();
if(ret==-1)
{
printf("插入失败\n");
return;
}
printf("1.前插 2.后插\n");
scanf("%d",&s);
while(getchar()!='\n');
if(s==1)
{
s--;
}
for(int i=n;i>ret+1;i--)
{
stu[i]=stu[i-1];
}
n++;
In(ret+1);
printf("插入成功\n");
}
void Arr(void)
{
if(n==0)
{
printf("无信息\n");
return ;
}
struct Student temp={0};
printf("1.小到大 2.大到小 \n");
int s=0;
scanf("%d",&s);
while(getchar()!='\n');
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(stu[j].gold>stu[j+1].gold&&s==1)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}else if(stu[j].gold<stu[j+1].gold&&s==2)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
printf("排序成功\n");
}
总结:该项目不难理解,掌握C语言基础即可独立完成。希望可以相互学习进步!