问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

学生信息管理系统设计(C语言)

发布网友 发布时间:2022-04-19 23:06

我来回答

1个回答

热心网友 时间:2023-06-27 20:10

/*【学生管理系统】*/
//modify
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>

#define N 100
typedef struct student
{
int num; //学号,姓名,年龄,性别,出生年月,地址,电话,
char name[18];
char sex;
int age;
int y,m;
int tel;
char add[30];
char mail[20];
int res;
int stu;
} SDate;
int PassWord();
void Menu();
int Input_Choice(); //函数声明
void Info_Paixu(SDate *student,int n);
void Info_print(SDate *stu,int n);
int Input_file(SDate *stu1);
int Info_Input(SDate *stu,int count);
void Info_Seach(SDate *stu,int n);
void Info_Change(SDate *stu,int n,int Num);
void Exit();
void Print_file(SDate *stu,int n);
int Info_Del(SDate *stu, int n, int del);
void Info_Change(SDate *stu, int res, int choice);
int Info_Add(SDate *stu, int count);
int main()
{
SDate stu[N];
int ret=0,res=0,choice=0;
char ch;
loop:
ret=PassWord(); //登录函数 默认密码为admin
if(!ret)
{
system("cls");
printf("\n\t\t密码错误或验证码错误!\n"); //默认密码:admin
system("pause");
system("cls");
goto loop;
}
system("cls");
e:
Menu(); //菜单显示函数
printf("你的选择是?\n");
scanf("%d",&ret);
switch(ret)
{
case 1:
choice=Input_Choice(); //InputChoice()数据输入方式选择函数
if(choice==1)
res=Info_Input(stu,res); //键盘输入函数
else if(choice==2)
res=Input_file(stu); //文件读取函数
else
{
system("cls");
goto e;
}
break;
case 2:
if(res==0)
{
system("cls");
printf("没有数据输入,请重新选择!\n");
goto e;
}
else
Info_print(stu,res);
break;
case 3:
if(res==0||res==1)
{
system("cls");
printf("没有需要排序数据,请重新选择!\n");
goto e;
}
else
Info_Paixu(stu,res);
break;
case 4:
Info_Seach(stu,res);
break;
case 5:
res=Info_Add(stu,res);
break;
case 6:
Info_print(stu,res);
printf("输入学号进行删除:");
scanf("%d",&choice);
res=Info_Del(stu, res, choice);
break;
case 7:
printf("请输入需要修改的学号:");
scanf("%d",&choice);
Info_Change(stu,res,choice);
break;
case 8:
Print_file(stu, res);
break;
case 9:
Exit();
break;
default :
printf("您的选泽有误!\n");
}
getchar();
printf("返回主菜单重新选择y/n?");
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
{
system("cls");
goto e;
}
return 0;
}

int yanzheng() //验证码模块
{
int a,b,c,d;
srand((unsigned)time(NULL));
a=rand()%100;
b=rand()%100;
c=a+b;
printf("\n\t **************************\n");
printf("\t\t验证码: %d+%d=?\n",a,b);
printf("\t\t 答案为:");
scanf("%d",&d);
if(c==d)
return 1;
else
return 0;
}
int PassWord() //登录模块
{
int i=0;
char passWord[18];
char p[]="admin"; //默认密码设置
char ch;
printf("\t 欢迎使用学生信息管理系统\n");
printf("\n");
printf("\t\t用户名:Admin\n");
printf("\n");
printf("\t\t密码:");
while((ch=getch())!=13)
{
putchar('*');
passWord[i]=ch;
i++;
}
passWord[i]='\0';
if(strcmp(p,passWord)==0)
yanzheng();
else
return 0;
}

void Menu() //菜单模块
{
printf("\t 欢迎使用学生信息管理系统\n");
printf("\n*******************************************\n");
printf("** \t\t1、学生信息录入\t\t **\n");
printf("** \t\t2、学生信息浏览\t\t **\n");
printf("** \t\t3、学生信息排序\t\t **\n");
printf("** \t\t4、学生信息查找\t\t **\n");
printf("** \t\t5、学生信息添加\t\t **\n");
printf("** \t\t6、学生信息删除\t\t **\n");
printf("** \t\t7、学生信息修改\t\t **\n");
printf("** \t\t8、学生信息保存\t\t **\n");
printf("**\t\t9、退出\t\t\t **\n");
printf("*******************************************\n");
}

int Input_Choice() //数据输入方式选择
{
int i;
system("cls");
printf("\t 欢迎使用学生信息管理系统\n");
printf("\t\t1、键盘录入\n");
printf("\t\t2、文件读取\n");
printf("\t\t0、返回\n");
printf("\t你的选择是?");
scanf("%d",&i);
return i;
}

int Info_Input(SDate *stu,int count) //信息从键盘输入模块
{
SDate *p;
p=stu;
system("cls");
printf("请输入第%d个学生学号(输入0结束):\n",count+1);
scanf("%d",&p->num);
while(p->num!=0)
{
printf("请输入该学生姓名:\n");
scanf("%s",p->name);
printf("请输入该学生年龄:\n");
scanf("%d",&p->age);
getchar();
printf("请输入该学生性别:\n");
scanf("%c",&p->sex);
printf("请输入该学生出生年月:\n");
scanf("%d%d",&p->y,&p->m);
printf("请输入该学生住址:\n");
scanf("%s",p->add);
printf("请输入该学生联系电话:\n");
scanf("%d",&p->tel);
printf("请输入该学生E-Mail:\n");
scanf("%s",p->mail);
count++;
p++;
system("cls");
printf("请输入第%d个学生学号(输入0结束):\n",count);
scanf("%d",&p->num);
}
return count;
}

int Input_file(SDate *stu1) //信息从文件输入模块
{
int rin=0;
SDate *p;
FILE *fp;
p=stu1;

if((fp=fopen("StuInfo.txt","r"))==NULL)
printf("该文件不存在!\n");
while(!feof(fp))
{
fscanf(fp,"%d %s %c %d %d %d %d %s %s\n",&p->num,p->name,&p->sex,&p->age,&p->y,&p->m,&p->tel,p->add,p->mail);
p++;
rin++;
}
fclose(fp);
printf("文件读取成功!\n");
return rin;
}

void Info_print(SDate *stu,int n) //信息输出至屏幕模块
{
SDate *p;
if(n==0) //学号,姓名,年龄,性别,出生年月,地址,电话,
printf("没有录入信息!\n");
else
{
printf("\n以下是%d个同学的信息\n",n);
printf("学号 姓名 性别 年龄 出生年月 电话 地址 E-Mail\n");
for(p=stu; p<stu+n; p++)
printf("%d %s %c %d %d-%d %d %s %s\n",p->num,p->name,p->sex,p->age,p->y,p->m,p->tel,p->add,p->mail);
}
}

void Print_file(SDate *stu,int n) //信息保存至文件模块
{
FILE *fp;
SDate *p;
p=stu;
if((fp=fopen("StuInfo.txt","a"))==NULL)
printf("文件读取失败!\n");
else
{
for(; p<stu+n; p++)
fprintf(fp,"%d %s %c %d %d %d %d %s %s\n",p->num,p->name,p->sex,p->age,p->y,p->m,p->tel,p->add,p->mail);
fclose(fp);
printf("\n保存成功!\n");
}
}

void Info_Paixu(SDate *stu,int n) //学号排序模块
{
int i,j;
SDate p;
for(i=0; i<n-1; i++)
{
for(j=0; j<n-1-i; j++)
{
if((stu[j].num)>(stu[j+1].num))
{
p=stu[j];
stu[j]=stu[j+1];
stu[j+1]=p;
}
}
}
printf("排序完成!\n");
}

void Exit() //退出模块
{
printf("谢谢使用!\n");
exit(1);
}

void Info_Seach(SDate *stu,int n) //查询模块,目前仅支持学号或姓名的精准查询
{
int num,choice;
char name[10];
int flag=-1,i;
system("cls");
printf("请输入查询方式:\t1、学号查询\n\t \t2、名字查询\n");
printf("您的选择是?");
scanf("%d",&choice);
if(choice==1)
{
lab1:
printf("请输入需要查找的学号:\n");
scanf("%d",&num);
for(i=0; i<n; i++)
{
if(num==stu[i].num)
{
flag=i;
printf("%d %s %c %d %d-%d %d %s %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].y,stu[i].m,stu[i].tel,stu[i].add,stu[i].mail);
}
}
if(flag==-1)
{
printf("未找到!请重新选择\n");
printf("1、返回继续查询\n2、退出查询,返回主菜单\n3、退出程序你的选择是?");
scanf("%d",&choice);
if(choice==1)
{
system("cls");
goto lab1;
}
if(choice==2)
goto end;
else
Exit();
}
}
else if(choice==2)
{
lab2:
printf("请输入需要查找的姓名:\n");
scanf("%s",name);
for(i=0; i<n; i++)
if(strcmp(name,stu[i].name)==0)
{
flag=i;
printf("%d %s %c %d %d-%d %d %s %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].y,stu[i].m,stu[i].tel,stu[i].add,stu[i].mail);
}
if(flag==-1)
{
printf("您的输入有误!请重新选择\n");
printf("\t\t1、返回继续查询\n\t\t2、退出查询,返回主菜单\n\t\t3、退出程序\t\t\n你的选择是?");
scanf("%d",&choice);
if(choice==1)
{
system("cls");
goto lab2;
}
if(choice==2)
goto end;
else
Exit();
}
}
end:
;
}

void Info_Change(SDate *stu,int n,int Num) //信息修改模块
{
int i;
for(i=0; i<n; i++)
if(stu[i].num==Num)
{
printf("请输入该学生姓名:\n");
scanf("%s",stu[i].name);
printf("请输入该学生年龄:\n");
scanf("%d",&stu[i].age);
getchar();
printf("请输入该学生性别:\n");
scanf("%c",&stu[i].sex);
printf("请输入该学生出生年月:\n");
scanf("%d%d",&stu[i].y,&stu[i].m);
printf("请输入该学生住址:\n");
scanf("%s",stu[i].add);
printf("请输入该学生联系电话:\n");
scanf("%d",&stu[i].tel);
printf("请输入该学生E-Mail:\n");
scanf("%s",stu[i].mail);
printf("学号为%d的同学信息修改完成!\n",Num);
}
}

int Info_Del(SDate *stu, int n, int del) //信息删除模块
{
int i,j;
for(i=0; i<n; i++)
if(stu[i].num==del)
for(j=i; j<n-1; j++)
stu[j]=stu[j+1];
n--;
printf("删除成功!\n");
return n;
}

int Info_Add(SDate *stu,int count) //信息添加模块
{
SDate *p;
system("cls");
printf("当前共有%d个数据\n",count+1);
p=stu+(count);
printf("请输入第%d个学生学号(输入0结束):\n",count+1);
scanf("%d",&p->num);
while(p->num!=0)
{
printf("请输入该学生姓名:\n");
scanf("%s",p->name);
printf("请输入该学生年龄:\n");
scanf("%d",&p->age);
getchar();
printf("请输入该学生性别:\n");
scanf("%c",&p->sex);
printf("请输入该学生出生年月:\n");
scanf("%d%d",&p->y,&p->m);
printf("请输入该学生住址:\n");
scanf("%s",p->add);
printf("请输入该学生联系电话:\n");
scanf("%d",&p->tel);
printf("请输入该学生E-Mail:\n");
scanf("%s",p->mail);
count++;
p++;
system("cls");
printf("请输入第%d个学生学号(输入0结束):\n",count+1);
scanf("%d",&p->num);
}
return count;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 C语言课程设计学生信息管理系统 如何做学生信息管理系统战略规划 设计一个简单的学生信息管理系统 C语言 学生信息管理系统设计 3.学生信息管理系统设计(用C语言编写) 如何c++设计一个学生信息管理系统?具体要求如下。 用c语言设计一个学生信息管理系统,急啊.谢谢 学生信息管理系统设计与实现 学生信息管理系统毕业论文设计怎么做? 题目:学生信息管理系统设计 学生信息管理系统设计 (来帮忙) 设计一个简易学生信息管理系统该怎么做 学生信息管理系统程序设计的需求分析的大概内容和格式 设计一个学生信息管理系统 学生管理信息系统总体设计怎么写? 学生信息管理系统设计 学美容有什么前途? 美容的真相是什么? 美容是做什么呢? 什么是美容? 设计一个学生管理系统能够添加和查询学生信息 设计一个学生信息管理系统,要求实现以下的基本功能: 你认为新入职的教师需要提升哪些方面的能力? 新教师培训内容有哪些? 新教师上岗前应具备的知识技能有哪些? 教学上从哪些方面培训新上岗教师 新入职教师最急培训的内容以及如何组织开展培训 在教学中,新教师如何提高课堂教学能力?有什么捷... 新任职教师,如何打好基础和能力? 如何提高高校青年教师教学能力 作为新时期一名合格的教师,应该具备哪些基本能力 新教师培训的内容包括哪些 教师应具备哪些教育教学能力 新时期教师应具备哪些基本能力 如何培养新上岗的青年教师 作为刚入职的小学数学教师,怎样提升自己的讲课技能? 新教师如何提升自己的能力 做为一名教师需要的基本能力有哪些? 教师的必备教学能力有哪些 新教师如何提升教学技能促进专业发展