大一新生,听课+自学用结构体数组完成的简单管理系统,后面会用链表重新写一份。
目录
.h头文件:
main.c (用作启动函数)
body.c(功能函数)
head.h头文件:
void login();
void menu();
void watch();
void add();
void write();
void del();
void sort();
void numsort();
void baocun();
void sort();
main.c (用作启动函数)
#include
#include"head.h"
int main()
{
login();
return 0;
}
menu.c(菜单函数)
#include
#include
#include"head.h"
void menu()
{
int num;
printf("欢迎进入《学生成绩管理系统》 V3.6 n");
printf("===================================================n");
printf("1.显示学生信息√ 2.添加学生信息√n");
printf("3.修改学生信息 √ 4.删除学生信息√n");
printf("5.按学号查找学生信息√ 6.对学生信息按学号升序排序√n");
printf("7.备份系统数据√ 8.退出系统√n");
printf("===================================================n");
printf("请选择菜单编号:");
scanf_s("%d", &num);
switch (num)
{
case 1: watch();break;
case 2: add();break;
case 3: write();break;
case 4: del();break;
case 5: numsort();break;
case 6: sort();break;
case 7:baocun();break;
case 8: exit(0);
default:printf("请选择你想要的菜单项:");
}
printf("n");
system("cls");
}
body.c(功能函数)
#include
#include //字符串相关指令
#include //用于字符处理的指令
#include //包含清屏指令
#include"head.h"
//个人信息结构体的定义
typedef struct student
{
int num; //学号
char name[10]; //姓名
char sex[3]; //性别
char tel[12]; //电话
char address[50];//家庭住址
int age;//年龄
}STU;
STU stu1[5];
int count=0; //计数器
//函数功能 登录√
void login()
{
long passworld; //密码
char ac[10],i,j; //i用来保存能登录的次数
printf("欢迎登录《学生成绩管理系统》V3.2n");
printf("--------【登录账号】--------n");
for (i = 0; i<3; i++)
{
printf("请输入用户名:");
scanf("%s", &ac);
for (j = 0; j<3; j++)
{
printf("请输入密码:");
scanf("%ld",&passworld);
if(passworld==123456)
break;
else
printf("对不起,把你登陆失败,请重新进行登录!n");
}
printf("n登录成功!n");
printf("按任意键进入学生信息管理系统!n");
system("pause"); //暂停指令
system("cls"); //清屏指令
menu();
}
}
//函数功能:显示学生信息 √
void watch()
{
int i;
printf("n--------【显示学生信息】--------n");
printf("学号t姓名t性别t年龄t电话t家庭住址n");
for(i=0;istu1[j+1].num)//比较两个元素,满足条件交换,改变符号可更改所排的顺序
{
temp=stu1[j]; //交换顺序
stu1[j]=stu1[j+1];
stu1[j+1]=temp;
}
}
}
printf("恭喜,排序成功!n");
system("pause"); //暂停指令
system("cls"); //清屏指令
menu();
}
//函数功能:保存信息 √
void baocun()
{
int i;
FILE *fp; //定义文件指针
printf("n--------【保存学生信息】--------n");
if((fp=fopen("student9999.txt", "w"))==NULL); //以只写形式打开文件,若失败,则返回NULL,并新建一个文件
{
for (i=0;i
#include#include"head.h" int main() { login(); return 0; }
menu.c(菜单函数)
#include
#include
#include"head.h"
void menu()
{
int num;
printf("欢迎进入《学生成绩管理系统》 V3.6 n");
printf("===================================================n");
printf("1.显示学生信息√ 2.添加学生信息√n");
printf("3.修改学生信息 √ 4.删除学生信息√n");
printf("5.按学号查找学生信息√ 6.对学生信息按学号升序排序√n");
printf("7.备份系统数据√ 8.退出系统√n");
printf("===================================================n");
printf("请选择菜单编号:");
scanf_s("%d", &num);
switch (num)
{
case 1: watch();break;
case 2: add();break;
case 3: write();break;
case 4: del();break;
case 5: numsort();break;
case 6: sort();break;
case 7:baocun();break;
case 8: exit(0);
default:printf("请选择你想要的菜单项:");
}
printf("n");
system("cls");
}
body.c(功能函数)
#include
#include //字符串相关指令
#include //用于字符处理的指令
#include //包含清屏指令
#include"head.h"
//个人信息结构体的定义
typedef struct student
{
int num; //学号
char name[10]; //姓名
char sex[3]; //性别
char tel[12]; //电话
char address[50];//家庭住址
int age;//年龄
}STU;
STU stu1[5];
int count=0; //计数器
//函数功能 登录√
void login()
{
long passworld; //密码
char ac[10],i,j; //i用来保存能登录的次数
printf("欢迎登录《学生成绩管理系统》V3.2n");
printf("--------【登录账号】--------n");
for (i = 0; i<3; i++)
{
printf("请输入用户名:");
scanf("%s", &ac);
for (j = 0; j<3; j++)
{
printf("请输入密码:");
scanf("%ld",&passworld);
if(passworld==123456)
break;
else
printf("对不起,把你登陆失败,请重新进行登录!n");
}
printf("n登录成功!n");
printf("按任意键进入学生信息管理系统!n");
system("pause"); //暂停指令
system("cls"); //清屏指令
menu();
}
}
//函数功能:显示学生信息 √
void watch()
{
int i;
printf("n--------【显示学生信息】--------n");
printf("学号t姓名t性别t年龄t电话t家庭住址n");
for(i=0;istu1[j+1].num)//比较两个元素,满足条件交换,改变符号可更改所排的顺序
{
temp=stu1[j]; //交换顺序
stu1[j]=stu1[j+1];
stu1[j+1]=temp;
}
}
}
printf("恭喜,排序成功!n");
system("pause"); //暂停指令
system("cls"); //清屏指令
menu();
}
//函数功能:保存信息 √
void baocun()
{
int i;
FILE *fp; //定义文件指针
printf("n--------【保存学生信息】--------n");
if((fp=fopen("student9999.txt", "w"))==NULL); //以只写形式打开文件,若失败,则返回NULL,并新建一个文件
{
for (i=0;i
#include#include //字符串相关指令 #include //用于字符处理的指令 #include //包含清屏指令 #include"head.h" //个人信息结构体的定义 typedef struct student { int num; //学号 char name[10]; //姓名 char sex[3]; //性别 char tel[12]; //电话 char address[50];//家庭住址 int age;//年龄 }STU; STU stu1[5]; int count=0; //计数器 //函数功能 登录√ void login() { long passworld; //密码 char ac[10],i,j; //i用来保存能登录的次数 printf("欢迎登录《学生成绩管理系统》V3.2n"); printf("--------【登录账号】--------n"); for (i = 0; i<3; i++) { printf("请输入用户名:"); scanf("%s", &ac); for (j = 0; j<3; j++) { printf("请输入密码:"); scanf("%ld",&passworld); if(passworld==123456) break; else printf("对不起,把你登陆失败,请重新进行登录!n"); } printf("n登录成功!n"); printf("按任意键进入学生信息管理系统!n"); system("pause"); //暂停指令 system("cls"); //清屏指令 menu(); } } //函数功能:显示学生信息 √ void watch() { int i; printf("n--------【显示学生信息】--------n"); printf("学号t姓名t性别t年龄t电话t家庭住址n"); for(i=0;i stu1[j+1].num)//比较两个元素,满足条件交换,改变符号可更改所排的顺序 { temp=stu1[j]; //交换顺序 stu1[j]=stu1[j+1]; stu1[j+1]=temp; } } } printf("恭喜,排序成功!n"); system("pause"); //暂停指令 system("cls"); //清屏指令 menu(); } //函数功能:保存信息 √ void baocun() { int i; FILE *fp; //定义文件指针 printf("n--------【保存学生信息】--------n"); if((fp=fopen("student9999.txt", "w"))==NULL); //以只写形式打开文件,若失败,则返回NULL,并新建一个文件 { for (i=0;i



