学生成绩管理系统基本C语言编写汇编
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习-----好资料
//代码版权所有,不要copy,仅供参考学习。
#include stdio.h //标准输入输出函数库
#include stdlib.h //标准函数库
#include string.h //字符串函数库
#include conio.h //屏幕操作函数库
#define HEADER1 ***************************学生成绩信息
****************************** \n\n
#define HEADER2 学号姓名计算机数学英语总分平均分名次\n\n
#define FORMAT %-10s %-10s ] ] ] ] %.3f M \n
#define DATA
p->data.num,p->,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.ave,p->data.mingci
int saveflag=0; //是否需要存盘的标志变量
//定义与学生有关的数据结构
typedef struct student //标记为student
{
char num[12]; //学号
char name[15]; //姓名
int cgrade; //计算机成绩
int mgrade; //数学成绩
int egrade; //英语成绩
int total; //总分
float ave; //平均分
int mingci; //名次
}sqlist;
//定义每条记录或结点的数据结构,标记为:node
typedef struct node
{
struct student data;//数据域
struct node *next; //指针域
}Node,*Link; //Node为node类型的结构变量,*Link为node类型的指针变量
void menu() //主菜单
{
system(cls); //调用DOS命令,清屏.与clrscr()功能相同
printf( \n);
printf( 学生成绩管理信息系统主菜单\n\n);
printf( **************************************************\n);
printf( $ 1、添加记录6、统计记录$\n);
printf( $ 2、删除记录7、排序记录$\n);
更多精品文档.
学习-----好资料
printf( $ 3、查找记录8、保存记录$\n);
printf( $ 4、修改记录9、显示记录$\n);
printf( $ 5、插入信息0、退出系统$\n);
printf( **************************************************\n);
}
void printheader() //格式化输出表头
{
printf(HEADER1);
printf(HEADER2);
}
void printdata(Node *pp) //格式化输出表中数据
{
Node* p;
p=pp;
printf(FORMAT,DATA);
}
void Wrong() //输出按键错误信息
{
printf(\
\n\n\n\n**********Error:输入错误!请按任意键继续!!**********\n);
getchar();
}
void Nofind() //输出未查找此学生的信息
{
printf(\
=====>未查找此学生的信息!\n);
}
void Disp(Link l) //显示单链表l中存储的学生记录,内容为student结构中定义的内容
{
Node *p;
p=l->next; //l存储的是单链表中头结点的指针,该头结点没有存储学生信息,指针域指向的后继结点才有学生信息
if(!p) //p==NULL,NUll在stdlib中定义为0
{
printf(\
=====>无学生的记录!\n);
getchar();
return;
}
printf(\
\n);
printheader(); //输出表格头部
更多精品文档.
学习-----好资料
while(p) //逐条输出链表中存储的学生信息
{
printdata(p);
p=p->next; //移动直下一个结点
}
getchar(); getchar();
}
/*作用:用于定位链表中符合要求的节点,并返回指向该节点的指针
参数:findmess[]保存要查找的具体内容; nameornum[]保存按什么查找;在单链表l中查找;*/
Node* Locate(Link l,char findmess[],char nameornum[])
{
Node *r;
if(strcmp(nameornum,
um)==0) //按学号查询
{
r=l->next;
while(r)
{
if(strcmp(r->data.num,findmess)==0) //若找到findmess值的学号
return r;
r=r->next;
}
}
else if(strcmp(nameornum,
ame)==0) //按姓名查询
{
r=l->next;
while(r)
{
if(strcmp(r->,findmess)==0) //若找到findmess值的学生姓名
return r;