(C语⾔实现)班级学⽣成绩管理系统
⽬录
前⾔
哈喽⼤家好!我⼜来写博客啦! 因为⼤⼀要结束了,我也要写课设了,我们⽼师其实给了⼗⼏个选择的课设内容,因为我太菜了,班级成绩管理系统也算是⽐较简单好学的⼀个了,所以我就选择了这个,肝了⼀周之后,我终于完成了这个系统,放松下来的我就打算把这个系统写成⼀篇博客,供更多⼈借鉴。我们⽼师要求写的报告是有模板的,课设报告我是按模板来写的,为了⽅便点,写这篇博客我也按照这个模板写好了。最后提醒下初学者:因为这个系统⽤到的库函数⽐较多,所以我不可能每⼀个都要讲清楚它的作⽤、头⽂件,所以就需要你们动动勤快的⼩⼿去百度啦!(我是这么过来的,这样真的很有⽤!)
⼀、设计题⽬与要求
简单概括需求:1、学⽣成绩录⼊
2、从⾼到低输出成绩排名(按总分)
3、查学⽣成绩(按学号或姓名)
4、修改学⽣成绩
5、删除学⽣成绩
⾮必须需求:密码登录、修改密码、隐藏密码输⼊
⼆、设计软硬件环境
开发环境为C语⾔环境,开发软件为Dev-C++,所⽤电脑为戴尔Windows11,没有⽤到数据库。
三、功能设计与描述
(1)登录界⾯
void enter(){//登录界⾯
system("cls");//清屏
time_t t;
struct tm *p;
time(&t);
p=gmtime(&t);
printf("\t\t\t\t**********************************************\n");
printf("\t\t\t\t**--------------%d年%02d⽉%02d⽇--------------**\n",1900+p->tm_year,1+p->tm_mon,p->tm_mday); printf("\t\t\t\t****************当前时间%02d时%02d分%***************\n",8+p->tm_hour,p->tm_min);
printf("\t\t\t\t**********************************************\n");
printf("\t\t\t\t** **\n");
printf("\t\t\t\t** 学⽣成绩管理系统 **\n");
printf("\t\t\t\t** **\n");
printf("\t\t\t\t**********************************************\n");
printf("\t\t\t\t** 感谢使⽤本系统,希望您使⽤愉快! **\n");
printf("\t\t\t\t**********************************************\n");
printf("\t\t\t\t** 制作者:⼩菜鸟学号:1008965223 **\n");
printf("\t\t\t\t** 班级:计算机类201班 **\n");
printf("\t\t\t\t** 学院:计算机与电⼦信息学院 **\n");
printf("\t\t\t\t**********************************************\n");
printf("请输⼊密码(初始密码为:123456):\n");
int sum2=0;
while(1){
hide_password(key,21);
printf("\n");
FILE *fpr=fopen("","r");
fgets(password, 21, fpr);
fclose(fpr);
int n=strlen(key),m=strlen(password);
if(n!=m){
sum2++;
c语言listinsert函数if(sum2>=5){
printf("多次输⼊密码错误!系统关闭!\n");
sum2=0;
exit(0);
}
printf("密码错误!请重新输⼊!你还有%d次机会!\n",5-sum2);
}else{
int sum1=0;
for(int i=0;i<n;i++){
if(key[i]!=password[i]){
sum1++;
}
}
if(sum1==0){
printf("登录成功!\n");
break;
}else{
sum2++;
if(sum2>=5){
printf("多次输⼊密码错误!系统关闭!\n");
sum2=0;
exit(0);
}
printf("密码错误!请重新输⼊!你还有%d次机会!\n",5-sum2);
}
}
}
}
⽤⽔平制表符(\t,也说跳格符)将界⾯移到中间,在开头定义全局字符串变量来设置初始密码123456(为字符串类型),通过利
⽤getch()定义函数可以实现隐藏密码输⼊,⽤strlen()函数获取输⼊的密码长度进⾏循环判断密码是否正确。通过时间函数time()获取当前时间并进⾏转换输出年⽉⽇时分。
通过⼀个死循环while(1),密码输⼊正确⽤break退出,连续输错5次后结束程序。
隐藏输⼊函数代码:
void hide_password(char *pswd, unsigned maxlen){//隐藏密码进⾏输⼊
int index = 0;
char buff = '\0';
while ((buff = getch()) != '\r'){
if (buff == '\b' && index != 0){
index--;
printf("\b \b");
} else if (index < maxlen - 1 && buff != '\b'){
pswd[index++] = buff;
putchar('*');
}
}
pswd[index] = '\0';
}
(2)菜单界⾯
system("cls");//清屏
time_t t;
struct tm *p;
time(&t);
p=gmtime(&t);
printf("\t\t\t\t**********************************************\n");
printf("\t\t\t\t**--------------%d年%02d⽉%02d⽇--------------**\n",1900+p->tm_year,1+p->tm_mon,p->tm_mday);
printf("\t\t\t\t****************当前时间%02d时%02d分%***************\n",8+p->tm_hour,p->tm_min);
printf("\t\t\t\t**********************************************\n");
printf("\t\t\t\t** **\n");
printf("\t\t\t\t** 欢迎进⼊! **\n");
printf("\t\t\t\t** **\n");
printf("\t\t\t\t**********************************************\n");
printf("\t\t\t\t**---------------功能菜单-------------------**\n");
printf("\t\t\t\t** 增加学⽣信息 ------------1 **\n");
printf("\t\t\t\t** 删除学⽣信息 ------------2 **\n");
printf("\t\t\t\t** 修改学⽣信息 ------------3 **\n");
printf("\t\t\t\t** 查询学⽣信息 ------------4 **\n");
printf("\t\t\t\t** 输出成绩排名 ------------5 **\n");
printf("\t\t\t\t** 修改登录密码 ------------6 **\n");
printf("\t\t\t\t** 退出管理系统 ------------0 **\n");
printf("\t\t\t\t**********************************************\n");
printf("请输⼊你想要进⾏的操作(数字): ");
}
通过system()函数(头⽂件为#include<windows.h>)进⾏清屏。在主函数中,通过while(1)的死循环,可以不断输⼊choice,进⾏功能的选择。⽤switch条件语句对choice的值进⾏判断,每个选择设置相应的函数。当不继续执⾏时⽤break语句跳出死循环或
⽤exit(0)语句(写在goodbye函数中)直接结束程序。
程序结束出⼝goodbye函数和打印爱⼼函数(程序结束时打印爱⼼):
float a,x,y;
for(y=1.5f; y>-1.5f; y-=0.1f){
for(x=-1.5f; x<1.5f; x+=0.05f){
a = x*x+y*y-1;
char ch = a*a*a-x*x*y*y*y<=0.0f?'*':' ';
putchar(ch);
}
printf("\n");
printf("\t\t\t ");
}
}
void goodbye(){//结束程序
system("cls");
printflove();
printf("\t**********************************************\n");
printf("\t\t\t\t** **\n");
printf("\t\t\t\t** 欢迎下次使⽤!~再见!~~ **\n"); printf("\t\t\t\t** **\n");
printf("\t\t\t\t**********************************************\n");
exit(0);
}
主函数代码:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论