C语言课设题目要求:
根据自己所在班级人数,通过该系统实现对该班级学生的档案信息的管理,信息包括:学号,姓名,性别,年龄,身高,体重,省份,专业,学分绩,备注。
基本功能要求:
用户管理(操作用户数据文件)。
1.高级用户(管理者):具有所有功能,同时可以添加用户、删除用户。创建新用户后,将普通用户信息存储到文件中。
2.普通用户(查询者):可执行查询功能。
信息录入:本班级学生基本信息的录入。
信息显示:显示基本信息。
信息修改:对基本信息进行修改。
信息删除:能够删除基本信息。
信息查询:按照不同条件可以进行信息查询。
信息保存
退出系统
人数不低于15人
高级要求:
查询到的信息能够保存到文件中,可以根据学分绩进行排序并保存到文件中,对于学分绩低于60分的学生能够标记,信息的录入等通过界面操作。
背景:
随着高校规模及学生数量的不断扩大,学生的各种信息量也越来越繁琐,班级档案管理系统能够为高校学生信息管理提供一种更加高效实用的管理手段及安全快捷的信息平台,保证学生信息数据的安全性、完整性以及可靠性,使学生管理人员能够轻松地完成各项工作,为学生管理工作服务提供便捷服务。保证信息的准确性和时效性,通过计算机对系统管理,使得学生信息处于最新状态,保证统计数据和分析的准确。提高档案管理工作高效率化和减少人工劳动量,降低管理成本,提高系统工作的准确率,从而实现学生管理工作规范化。
系统程序模块全部函数组成:
系统主要代码:
函数声明:
//函数声明
void menu(); //主界面函数
void administrator(); //管理端界面
void student(); //学生端界面
void color(short x); //改变字体颜色
void _signin(); //学生端密码登录
void save_mess(mp a); //将a所指向的内容写入文件中
mp sss(); //将文件中的内容读出到链表中
passw ff(); //将文件中的内容读入链表,返回值为表头地址
void amend_password(); //管理端修改密码
void signin(); //管理端密码登陆
void save_password(passw p); //管理端保存密码
void loadsystem(); //管理端用户管理
void delete_mess(); //管理端删除用户
void input_mess(); //管理端用户录入信息
void input(); //登记学生信息
void delete_(); //删除学生信息
void search(); //查询学生信息
void change(); //修改学生信息
void show(); //打印学生信息
void add(); //添加学生信息
void print_table(); //列表头
void read(); //从文件中读取信息
void back_a(); //管理端返回上一界面
void back_s(); //学生端返回上一界面
void save(); //保存学生信息函数
void back_sort_a(); //管理端排序功能 返回界面
void sort_a(); //管理端排序学生学分绩
void sort_sum(); //按学分绩排序
void search_a(); //管理端查询学生信息
void search_s(); //学生端查询学生信息
void search_id(); //按学号查询
void search_name(); //按姓名查询
void back_search_a(); //管理端查询功能 返回界面
void back_search_s(); //学生端查询功能 返回界面
主函数
int main() //主函数
{
menu();
signin();
return 0;
}
管理端界面
void administrator() //管理端的界面
{
int l;
read();
printf("-----------------------------------------\n");
printf("\t**【欢迎使用管理端系统】**\t\n");
printf("\t 1.显示学生信息 \t\n");
printf("\t 2.登记学生信息 \t\n");
printf("\t 3.添加学生信息 \t\n");
printf("\t 4.排序学生信息 \t\n");
printf("\t 5.查询学生信息\t\n");
printf("\t 6.修改学生信息 \n");
printf("\t 7.删除学生信息 \n");
printf("\t 8.修改管理端用户密码 \n");
printf("\t 9.管理学生端用户账号 \n");
printf("\t 10.返回 \n");
printf("\t 11.退出 \n");
printf("-----------------------------------------\n");
printf("请输入要执行的操作: ");
scanf("%d",&l);
switch(l)
{
case 1:
system("cls"); //清屏
show(); //打印
back_a(); //管理端返回上一界面
break;
case 2:
system("cls"); //清屏
input(); //登记
back_a(); //管理端返回上一界面
break;
case 3:
system("cls");
add(); //添加学生信息();
back_a();
break;
case 4:
system("cls");
sort_a(); //管理端学分绩排序
back_a();
break;
case 5:
system("cls");
search_a(); //查询
back_a();
break;
case 6:
system("cls");
change(); //修改
back_a();
break;
case 7:
system("cls");
delete_(); //删
back_a();
break;
case 8:
system("cls");
amend_password(); //修改密码
back_a();
break;
case 9:
system("cls");
loadsystem(); //用户账号管理
back_a();
break;
case 10:
system("cls");
menu(); //主界面
break;
case 11:
system("cls");
color(9);
printf("感谢您的使用,已退出系统!\n");
color(6);
exit(0);
default:
color(772);
printf("[输入错误]请3秒后重新输入有效数字!\n");
Sleep(3000);
color(7);
system("cls");
administrator();
break;
}
}
按总学分绩排序及标记低于60分的同学
void sort_sum() //按总学分绩排序及标记低于60分的同学
{
int flag=0; //若学生中有符合条件的,flag为1
int k,j,min=0,max=0;
int i=0;
struct student temp;
for (k = 0; k< number ; k++)//冒泡法排序
{
for (j = 0; j < number - 1 - k; j++)
{
if (stu[j].XFJ < stu[j + 1].XFJ)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
for(i=0;i<number;i++)
{
if(stu[i].XFJ<stu[min].XFJ)
min=i;
if(stu[i].XFJ>stu[max].XFJ)
max=i;
}
save();
print_table();//列表头
show();
printf("\n");
printf("\n");
printf("\n");
printf("\t【输出学分绩最高分和最低分】\n");
printf("\t-------------------------------------------------------------------------------------------------\n");
printf("最高分: ");
printf("%-10d %-10s%-10s%-10.0f%-10.0f%-10.0f%-10s%-10s%-10.0f %-10s\n",
stu[max].id,stu[max].name,stu[max].sex,stu[max].age,stu[max].height,stu[max].weight,stu[max].shen,stu[max].ZY,stu[max].XFJ,stu[max].BZ);
printf("最低分: ");
printf("%-10d %-10s%-10s%-10.0f%-10.0f%-10.0f%-10s%-10s%-10.0f %-10s\n",
stu[min].id,stu[min].name,stu[min].sex,stu[min].age,stu[min].height,stu[min].weight,stu[min].shen,stu[min].ZY,stu[min].XFJ,stu[min].BZ);
printf("\n");
printf("\n");
printf("\n");
printf("\t【学分绩低于60分的学生】\n");
printf("\t-------------------------------------\n");
for(i=1;i<=number;i++)//在stu结构体数组中循环遍历符合条件的学生
{
if(stu[i].XFJ<=59)//符合条件时
{
printf("\t%-10s%.0f ",stu[i].name,stu[i].XFJ);
printf("\n");
flag=1;
}
}
if(flag==0)
{
printf("\t无学分绩低于60分的学生!\n");
}
}
系统功能运行结果:
本次班级档案管理系统是借鉴了很多博客大佬的文章及自己查阅资料才得以完成及改善此次C语言课设,虽然有一点点的小缺陷,但是总体上还是完成了题目要求。