c语言学生信息管理系统
程序员文章站
2022-05-06 09:09:31
...
超简单的学生信息管理系统
使用顺序表实现~~适合入门,新手学习使用
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define N 20
int count=0;
typedef struct{
int score;//成绩
char name[12];//姓名
char number[20]; //学号
int grade; //年级
}student;
typedef struct{
student list[N];
int last;
}Sqlist;
void create(Sqlist &stu){ //录入学生数据
char flag;//接收信号是否停止录入
int i=0;
do{
system("cls");
printf("请输入第%d个学生的学号:",count+1);
scanf("%s",&stu.list[count].number);
for(i=0;i<count;i++){ //判断是否有输入错误
if(strcmp(stu.list[count].number,stu.list[i].number)==0){
printf("学号已存在,检查是否输出错误,目前该学号为:%s",stu.list[count].number);
return;
}
}
printf("\n请输入该学生年级:");
scanf("%d",&stu.list[count].grade);
printf("\n请输入该学生姓名:");
scanf("%s",&stu.list[count].name);
printf("\n请输入该学生成绩:");
scanf("%d",&stu.list[count].score);
count++;
printf("\n录入成功");
printf("\n是否继续录入?(y/n)");
fflush(stdin);
scanf("%c",&flag);
}while(flag=='y'||flag=='Y');
}
void browse(Sqlist &stu){ //浏览学生数据
int i=0;
system("cls");
printf("\n\t学号\t\t年级\t\t姓名\t\t成绩");
while(i<count){
if(strlen(stu.list[i].number)>=8)
printf("\n%s\t\t%d\t\t%s\t\t%d",stu.list[i].number,stu.list[i].grade,stu.list[i].name,stu.list[i].score);
else
printf("\n\t%s\t\t%d\t\t%s\t\t%d",stu.list[i].number,stu.list[i].grade,stu.list[i].name,stu.list[i].score);
i++;
}
printf("\n\n");
printf("\n\n\n\n\n按任意键继续!");
getch();
}
void find(Sqlist &stu){ //查找学生数据
char findNumber[20];
int i;
system("cls");
printf("请输入需要查找学生的学号:\n");
scanf("%s",&findNumber);
for(i=0;i<count;i++){
if(strcmp(findNumber,stu.list[i].number)==1){
printf("\n\t 学号:%s",stu.list[i].number);
printf("\n\t 年级:%d",stu.list[i].grade);
printf("\n\t 姓名:%s",stu.list[i].name);
printf("\n\t 成绩:%d",stu.list[i].score);
break;
}
}
if(i>=count){
printf("\n查询不到该学号,请重新核实!");
printf("\n任意键返回!");
getch();
}else{
printf("\n任意键返回!");
getch();
}
}
void del(Sqlist &stu){ //删除学生数据
char delNumber[10];
char c;
int i;
int flag=0;
system("cls");
printf("请输入要删除学生数据的学号:\n");
scanf("%s",&delNumber);
for(i=0;i<count;i++){
if(strcmp(delNumber,stu.list[i].number)==1)
flag=1;
break;
}
if(flag==1){
system("cls");
printf("\n学号为:%s",stu.list[i].number);
printf("\n年级为:%d",stu.list[i].grade);
printf("\n姓名为:%s",stu.list[i].name);
printf("\n成绩为:%d",stu.list[i].score);
printf("\n是否确认删除(y/n)?");
fflush(stdin);
c=getch();
if(c=='y'||'Y'){
for(int j=i;j<count-1;j++)
stu.list[j]=stu.list[j+1];
printf("\n删除成功!");
count--;
}
}else{
printf("\n并无此学生,重新核实!");
}
printf("\n按任意键继续!");
getch();
}
void quit(){
printf("\n\n谢谢使用!");
exit(0);
}
int menu(){
int flag;
system("cls");
printf("\n\n\t欢迎使用学生信息管理系统!");
printf("\n**********目前共有%d个学生信息***********",count);
printf("\n\t 按[1]录入学生数据");
printf("\n\t 按[2]浏览学生数据");
printf("\n\t 按[3]查找学生数据");
printf("\n\t 按[4]删除学生数据");
printf("\n\t 按[5]退出系统");
printf("\n*****************************************");
do{
printf("\n\t 请输入(1~5)!\n");
scanf("%d",&flag);
}while(flag<1||flag>5);
return flag;
}
void create(Sqlist &stu);
void browse(Sqlist &stu);
void find(Sqlist &stu);
void del(Sqlist &stu);
void quit();
int menu();
int main(){
Sqlist stu;
while(1){
switch(menu()){
case 1: create(stu); break;
case 2: browse(stu); break;
case 3: find(stu); break;
case 4: del(stu); break;
case 5: quit(); break;
}
}
getch();
}
上一篇: 《HTML5 与CSS3 权威指南》(第四版 上册)学习笔记
下一篇: C#-值类型和引用类型的区别