简单的实现了信息录入、信息查询和信息删除共三个功能
#include<stdio.h>
#include<windows.h>
#define N 999
struct Student{
char name[20];
char num[5];
};
//函数定义
void studentinput(struct Student stu[]);
void studentshow(struct Student stu[]);
void studentdelect(struct Student stu[]);
//全局变量
int renshu = 0;
//定义指针
struct Student stu[N],*p=stu;
int main(){
int i;//i循环参数
//显示菜单 (利用do while 使菜单循环)
do{
printf("\t*******************************\n");
printf("\t* 1、学生信息录入 *\n");
printf("\t* 2、学生信息查询 *\n");
printf("\t* 3、学生信息删除 *\n");
printf("\t*******************************\n");
//菜单选择
printf("\t请输入你需要功能的序号:");
scanf("%d",&i);
switch(i){
case 1:printf("\n\t欢迎进入学生信息录入功能!\n");system("cls");studentinput(p);break;
case 2:printf("\n\t欢迎进入学生信息查询功能!\n");system("cls");studentshow(p);break;
case 3:printf("\n\t欢迎进入学生信息删除功能!\n");system("cls");studentdelect(p);break;
}
}while (i!=4);
printf("the program is over!!!\n");
return 0;
}
void studentinput(struct Student stu[]){
int i,x;//i用来循环,x是输入的人数
printf("\n\t你需要输入多少个学生的信息:");
scanf("%d",&x);
printf("\n\t请输入学生的姓名和学号(空格隔开):\n");
for(i=0;i<x;i++){
scanf("%s %s",&stu[i].name,&stu[i].num);
renshu++;
}
// printf("%d",renshu);
}
void studentshow(struct Student stu[]){
int i;
if(renshu == 0){
printf("\n\t当前已存学生信息为0个,无法查询!!!\n\n\n\n");
return;
}
else{
printf("\t姓名\t学号\n");
for(i=0;i<renshu;i++){
printf("\t%s\t%s\t\t\n", stu[i].name,stu[i].num);
}
}
}
void studentdelect(struct Student stu[]){
int i,flag;
char dnum[5];
printf("请输入你要删除该学生信息的学号:");
scanf("%s",&dnum);
for(i=0;i<renshu;i++){
if(strcmp(stu[i].num,dnum)==0){ //strcmp为比较函数 如相同返回TURE,不同返回FALSE
flag=i;
for(i=flag;i<renshu;i++)
stu[i]=stu[i+1];
renshu--;
}
}
}
初始界面
信息录入