|
楼主 |
发表于 2020-6-17 15:56:06
|
显示全部楼层
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define LIST_INIT_SIZE 4 //线性表存储空间的初始分配量
#define MAXSIZE 100
//学生的定义
typedef struct
{
char num[20];
char name[20];
char sex[3];
int english[3];
int math[3];
int database[3];
char sum[4];
char ZY[20];
char BJ[2];
}Student;
//顺序表的定义
typedef struct
{
Student *elem;
int length;
}SqList;
int InitList(SqList &A)//构造一个空的顺序表A
{
A.elem=new Student [MAXSIZE]; //为顺序表分配空间
if(!A.elem) exit(-1); //存储分配失败
A.length=0; //空表长度为0
return 0;
}
//刷新
void update(SqList &L)
{
int j=0;
FILE*fp;
fp=fopen("d://学生信息.txt","r");
if(fp==NULL)
printf("输出错误");
while(fscanf(fp,"%s %s %s %s %s %d %d %d \n",L.elem[j].name,L.elem[j].sex ,L.elem[j].num ,L.elem[j].ZY,L.elem[j].BJ,L.elem[j].english,L.elem[j].math,L.elem[j].database)==8)
{
j++;
}
L.length=j;
printf("******************刷新成功************************************\n");
fclose(fp);
}
//保存信息
void fileWrite(SqList &L)
{
FILE*fp;
int j;
fp=fopen("d://学生信息.txt","w");
if(fp==NULL)
printf("文件打开错误\n");
for(j=0;j<L.length;j++)
{
fprintf(fp,"%s %s %s %s %s %d %d %d \n",L.elem[j].name,L.elem[j].sex ,L.elem[j].num ,L.elem[j].ZY,L.elem[j].BJ,L.elem[j].english,L.elem[j].math,L.elem[j].database );
}
fclose(fp);
printf("***********************保存成功******************************\n");
}
//显示所有员工信息
void display(SqList & L)
{
FILE*fp;
int j=0,i;
fp=fopen("d://学生信息.txt","r");
if(fp==NULL)
printf("文件打开错误\n");
while(fscanf(fp,"%s %s %s %s %s %d %d %d \n",L.elem[j].name,L.elem[j].sex ,L.elem[j].num ,L.elem[j].ZY,L.elem[j].BJ,L.elem[j].english,L.elem[j].math,L.elem[j].database)==8)
{
j++;
}
L.length=j;
for(i=0;i<L.length;i++)
{
printf("%s %s %s %s %s %d %d %d \n",L.elem[i].name,L.elem[i].sex ,L.elem[i].num ,L.elem[i].ZY,L.elem[i].BJ,L.elem[i].english,L.elem[i].math,L.elem[i].database );
}
fclose(fp);
printf(" nnbnvn\n");
}
//添加学生信息
void insert(SqList &L)
{
int j,n;
L.elem=new Student [MAXSIZE];
printf("您要添加几条学生信息?");
scanf("%d",&n);
for(j = L.length;j < L.length + n;j++)
{
printf("请输入第%d学生的信息\n", j + 1);
printf("请输入该学生的姓名\n");
scanf("%s", L.elem[j].name);
printf("请输入该学生的性别:");
scanf("%s",L.elem[j].sex);
printf("请输入该学生的学号:");
scanf("%s",L.elem[j].num);
printf("请输入该学生的专业:");
scanf("%s",L.elem[j].ZY);
printf("请输入该学生的班级:");
scanf("%s",L.elem[j].BJ);
printf("请输入该学生的英语成绩:");
scanf("%d",L.elem[j].english);
printf("请输入该学生的高数成绩:");
scanf("%d",L.elem[j].math);
printf("请输入该学生的数据结构成绩:");
scanf("%d",L.elem[j].database);
printf("\n");
}
L.length = L.length + n;
}
void menu(SqList &L)
{
int num;
int k = 1;
while(k)
{
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * *|*\n");
printf(" *| 企业信息信息管理系统 |*\n");
printf(" *| |*\n");
printf(" *| * * * * * * *系统功能菜单* * * * * * * |*\n");
printf(" *| -------------------------------------------- |*\n");
printf(" *| |*\n");
printf(" *| 0.系统帮助及说明 | 1.添加员工信息 |*\n");
printf(" *| |*\n");
printf(" *| 2.查看员工信息 | 3.修改员工信息 |*\n");
printf(" *| |*\n");
printf(" *| 4.删除员工信息 | 5.统计员工信息 |*\n");
printf(" *| |*\n");
printf(" *| 6.所有员工信息 | 7.保存员工信息 |*\n");
printf(" *| |*\n");
printf(" *| 8.退出系统 |*\n");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("------------------------------------------------------------\n");
printf("请选择菜单编号:");
scanf("%d",&num);
switch(num) {
case 0:
break;
case 1:
insert(L);
break;
case 2:
display(L);
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
fileWrite(L);
break;
case 8:
k=0;
break;
default:
printf("请在0-9之间选择\n");
}
}
}
int main()
{
SqList L;
InitList(L);
menu(L);
return 0;} |
|