根据课设要求,我们需要给我们的管理系统增加以下功能:1,菜单方式工作;2,录入功能;3,浏览功能;4,查询功能;5,排序功能;6,删除功能;7,修改功能;8,保存功能。
我们将用模块化的思想一步步的完成编写。
结构体的构建我们已经知道了课设的要求,根据要求我们可以构建如下的结构体:
#include
#include
#include
#define N 30
int n=0; //创建全局变量方便控制已输入人数
struct student{ //定义结构体
char sumber[10]; //学号
char name[15]; //姓名
int age; //年龄
char gender; //性别
char birthday; //出生年月
char site; //地址
int sum; //电话号码
char mail; //电子邮箱
}stu[N];
构建好结构体后,我们将对功能进行模块话的编写;
菜单首先是菜单的编写:
void show() //显示菜单
{
printf(" ----------1.录入学生信息----------\n");
printf(" ----------2.查询学生信息----------\n");
printf(" ----------3.浏览学生信息----------\n");
printf(" ----------4.修改学生信息----------\n");
printf(" ----------5.保存学生信息----------\n");
printf(" ----------6.删除学生信息----------\n");
printf(" --------------0.退出--------------\n");
}
使用连续的几个输出完成对菜单的编写。
录入学生信息我们使用entering函数:
int entering() //录入学生信息
{
int a;
printf("请输入添加学生人数:");
scanf("%d",&a);
int i;
for(i=n;i
浏览学生信息
使用browse函数:
void browse() //浏览学生信息
{
if(n==0) //当n为0时给出提示:暂无信息
{
printf("当前并无学生信息\n");
return;
}
printf("学号 姓名 年龄 性别 出生年月 地址 电话号码 电子邮箱\n");
for(int i=0;i<=n;i++)
{
printf("%s %s %d %s %s %s %d %s", stu[i].sumber, stu[i].name, stu[i].age, stu[i].gender, stu[i].birthday, stu[i].site, stu[i].sum, stu[i].mail);
}
system("pause");
}
如果n=0的话会给出没有信息的提示;
查询学生信息这里我使用的是利用学生学号去进行查找:
void inquire() //查询学生信息
{
char num[10];
printf("请输入你要查询学生的学号:");
scanf("%s",&num);
int i;
for(i=0;i
保存信息
void save(){
int i;
FILE *fp;
char filename[16];
printf("请输入要保存的文件名:\n");
scanf("%s", filename);
fp = fopen(filename, "w");
for (i = 0; i < n; i++){
fprintf(fp, "%s%s%d%s%s%s%d%s\n", stu[i].sumber, stu[i].name, stu[i].age, stu[i].gender,
stu[i].birthday, stu[i].site, stu[i].sum, stu[i].mail);
}
printf("保存成功!!!\n");
fclose(fp);
system("pause");
}
这一部分我也不是太理解,如果有懂得可以一起探讨一下。
删除信息利用学生学号去搜索,对该学号进行删除,并且使后面的位置向前移动。
void del() //删除
{
int i, j, flag;
char s1[10];
printf("请输入需要删除的学生学号:\n");
scanf("%s", s1);
flag = 0;
for (i = 0; i < n; i++)
{
if (strcmp(s1, stu[i].sumber) == 0)
{
flag = 1;
for (j = i; j < n - 1; j++)
{
stu[j] = stu[j + 1];//直接把后面的学生都往前移动一位
}
}
if (flag == 1) break;//说明已经找到了需要删除的学生,结束循环
}
if (0 == flag)
{
printf("该学号不存在!!!\n");
}
if (1 == flag)
{
printf("删除成功\n");
n--;
}
system("pause");
修改信息
利用子菜单去修改目标的信息。
void remove() //修改
{
int i,g;
char name[15],number[9],sex,birthday,site,mail;
int age,sum;
printf("请输入需要修改学生的姓名: \n");
getchar();
gets(name);
while(1)
{
g=0;
for(i=0;i
选择
利用switch语句对所使用功能进行跳转,与修改中利用选择子菜单功能类似。
void choose(int i)
{
switch(i){
case 1:entering();break;
case 2:inquire();break;
case 3:browse();break;
case 4:remove();break;
case 5:save();break;
case 6:del();break;
case 0:return;break;
default :printf("输入有误");
}
}
下面是该管理系统的全部代码:
#include
#include
#include
#define N 30
int n=0; //创建全局变量方便控制已输入人数
struct student{ //定义结构体
char sumber[10]; //学号
char name[15]; //姓名
int age; //年龄
char gender; //性别
char birthday; //出生年月
char site; //地址
int sum; //电话号码
char mail; //电子邮箱
}stu[N];
//定义函数
int entering() //录入学生信息
{
int a;
printf("请输入添加学生人数:");
scanf("%d",&a);
int i;
for(i=n;i
有什么不对的地方欢迎大家指正。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)