C语言实战

成绩查询系统

#include "stdio.h"  //标准输入输出函数库
#include "stdlib.h"  //标准函数库
#include "string.h"  //字符串函数库
#include "conio.h"  //屏幕操作函数库

#define HEADER1 "-------------学生成绩---------------\n"
#define HEADER2 "  | number  | name | come|math|Eng | sum
ave| mici |\n"
#define HEADER3 "|-----------|---------|--------|-------|-------| "
#define FORMAT "|%-10s|%-15s|%4d|%4d|%4d|%4d|%.2f|%4d|\n"
#define                                     DATA
p->data.num,p->data.name, p->data.egrade,p->data.mgrade, p->data.cgrade,p->data.taotal,p->data.ave,p->data.mingci
#define END"-----------------------------------------"
//定义需要存盘的标志量
int saveflag = 0;
//定义与用户有关的数据结构
typedef struct student  //标记为student
{
char num[10];
char name[15];
int cagrade;//C语言成绩
int mgrade;//数学成绩
int egrade;
int total;
float ave;
int mingci;//名次
};
//定义每条记录的数据结构,标记为node*
typedef struct node
{
struct student data; //数据域
struct student *next; //指针域
}Node,*Link;
//*Node 为node类型的结构变量,*Link为node类型的指针变量*
//主函数
void main()
{
Link l;//定义链表
FILE *fp; //文件指针
int select;//保存选择结果的变量
char ch;//保存(y,Y,n,N)
NOde *p,*r;//保存文件中的节点个数
L=(Node*)malloc(sizeof(Node));
if(!L)
{
    printf("\n allocate money failure");//没有申请到地址,打印提示信息
    return ;//返回主页面
}
L->next = NULL;
r = L;
//追加一个二进制文件,可读可写,若不存在,则新建一个
fg=fopen("C:\\srudent","ab+");
if(fp = NULL)
{
    printf("\n=========>不能打开文件");
    exit(0);
}

while(!feof(fp))
{
    p = (Node*)malloc(sizeof(Node));
    if(!p)
    {
        printf("memory malloc failure!\n");//没有申请成功
        exit(0);
    }
//一次从文件中读取一条记录
    {
    p->next = NULL;
    r -> next = p;
    r = p;//指针向后移动一个位置
    count++;
    }
}
fclose(fp);//关闭文件
printf("\n===========>成功打开文件,编码是:",count);
meanu();
while(1)
{
    system("cls");
    mean();
    p=r;
    //显示提示信息
    printf("\n       请选择         :");
    scanf("%d,&select");
    if(select == 0)
    {
    //若对链表的数据有修改但没有进行存盘,此标志为1

if(saveflag==1)
{
    getehar();
    printf("\n============>是否保存这个记录(y/n)");
    scanf("%c",&ch);
    if(ch == 'y'|| ch = 'y')
        Save(1);
}
printf("=============>感谢使用============");
getchar();
break;
}
switch(select)
{
case 1:Add(1);break;
case 2:Del(1);break;
case 3:Qur(1);break;
case 4:Modify(1);break;
case 5:Insert(1);break;
case 6:Tongji(1);break;
case 7:Sort(1);break;
case 8:Save(1);break;
case 9:system("cls");Disp(1);break;
default:Wrong();getchar();break;//输入无效
}
}
}
//主函数
posted @ 2018-01-17 11:22  oifengo  阅读(203)  评论(0编辑  收藏  举报