C语言程序设计:学分管理程序

作者&投稿:照泼 (若有异议请与网页底部的电邮联系)
C语言编程题:学分管理程序~

#include
#include
#include
#include
#include
#include
#define null '\0'
int shoudsave=0;

struct student /*声明一个结构体类型struct student*/
{
char clas[20]; /*定义成员班级号*/
char name[20]; /*定义成员学生姓名*/
char classnum[20]; /*定义成员学生学号*/
float basis; /*定义成员基础学分*/
float major; /*定义成员专业学分*/
float elective; /*定义成员选修学分*/
float humanity; /*定义成员人文学分*/
float laboratory; /*定义成员实验学分*/
float sum; /*定义成员学分总和*/
float average; /*定义成员平均学分*/
};

typedef struct node /*声明一个节点类型struct node*/
{
struct student data; /*定义节点数据*/
struct node *next; /*定义节点指针*/
}Node,*Link;

void menu1() /*输出系统名称及简介*/
{
printf("
学生学分管理系统
");
printf("********************************************************************************");
printf("说明:本系统旨在帮助师生方便,快捷地统计,管理学分。您可以进行输入,修改,查看,排序等操作,界面清爽,操作简单,欢迎您的使用。
");
printf("********************************************************************************");
}//menu1

void menu2() /*输出主菜单*/
{
printf(" 菜 单
");
printf("0:退出本次登入5:清除屏幕内容
");
printf("1:输入学生信息6:修改学生学分
");
printf("2:删除学生信息7:显示学生学分
");
printf("3:查询学生学分8:统计学生信息
");
printf("4:排序学生学分9:保存学生学分
");
}//menu2

void menu3() /*输出排序菜单,供void sort(Link l)函数调用*/
{
printf("
A:基础学分B:专业学分
");
printf("C:选修学分D:人文学分
");
printf("E:实验学分F:学分总和
");
printf("G:平均学分
");
printf("
请选则您要排序的课程代码:");
}//menu3

void menu4() /*输出菜单上下限制符*/
{
printf("================================================================================");
}//menu4

void title() /*输出显示菜单,供void display(Link l)函数调用*/
{
printf(" 班级学号姓名基础专业选修人文试验总分平均
");
}//title

void data(Node *p,char find[]) /*输出按姓名查找的结果,供void search(Link l)函数调用*/
{
if(strcmp(p->data.name,find)==0)
printf(" %s %s%s%3.1f%3.1f%3.1f%3.1f%3.1f%3.1f%3.1f
",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);
}//data

void data1(Node *p) /*输出按学号查找的结果,供void search(Link l)函数调用*/
{
printf(" %s %s%s%3.1f%3.1f%3.1f%3.1f%3.1f%3.1f%3.1f
",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);
}//data1

void data2(Node *p,char find[]) /*输出按班级查找的结果,供void search(Link l)函数调用*/
{
if(strcmp(p->data.clas,find)==0)
printf(" %s %s%s%3.1f%3.1f%3.1f%3.1f%3.1f%3.1f%3.1f
",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);
}//data2

Node* Locate(Link l,char find[],char match[]) /*查找匹配函数定义,该函数用于定位链表中符合要求的节点,并返回该指针*/
{
Node *r; /*定义节点指针r*/
if(strcmp(match,"classnum")==0) /*按学号查询*/
{
r=l->next; /*初始化r,指向第一个节点*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r->data.classnum,find)==0) /*查询成功*/
return r;
r=r->next; /*节点后移*/
} //while
} //if
else if(strcmp(match,"name")==0) /*按姓名查询*/
{
r=l->next; /*初始化r,指向第一个节点*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r->data.name,find)==0) /*查询成功*/
return r;
r=r->next; /*节点后移*/
} //while
} //else if
else if(strcmp(match,"clas")==0) /*按班级号查询*/
{
r=l->next; /*初始化r,指向第一个节点*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r->data.clas,find)==0) /*查询成功*/
return r;
r=r->next; /*节点后移*/
}//while
}//else if
return 0;
}//Locate

void input(Link l) /*输入函数定义,用于增加学生信息*/
{
char clas[10];
Node *r,*p; /*定义节点r和p*/
r=l; /*将r指向头结点*/
while(r->next!=NULL)
r=r->next; /*将指针置于最末尾*/
while(l)
{
printf("
友情提示:输入'#'返回上一菜单
");
printf("
输入学生的班级号:");
scanf("%s",clas);
if(strcmp(clas,"#")==0)
break;
p=(Node *)malloc(sizeof(Node)); /*生成新的节点*/
strcpy(p->data.clas,clas); /*将clas字符串复制到p->data.clas中*/
printf("输入学生的学 号:");
scanf("%s",&p->data.classnum);
getchar();
printf("输入学生的姓 名:");
scanf("%s",&p->data.name);
getchar();
printf("输入学生的基础分:");
scanf("%3.1f",&p->data.basis);
getchar();
printf("输入学生的专业分:");
scanf("%3.1f",&p->data.major);
getchar();
printf("输入学生的选修分:");
scanf("%3.1f",&p->data.elective);
getchar();
printf("输入学生的人文分:");
scanf("%3.1f",&p->data.humanity);
getchar();
printf("输入学生的实验分:");
scanf("%3.1f",&p->data.laboratory);
getchar();
p->data.sum=p->data.basis+p->data.major+p->data.elective+p->data.humanity+p->data.laboratory; /*计算学分总和*/
p->data.average=p->data.sum/5; /*计算平均学分*/
p->next=NULL; /*p节点的下一个节点为空*/
r->next=p; /*节点前移*/
r=p;
}//while
}//input

void delet(Link l) /*删除函数定义*/
{
char find[10];
Node *p,*r; /*定义节点r和p*/
if(!l->next) /*删除位置不合理*/
{ printf("
\a对不起,无信息可删除!");
printf("
");
return;
}//if
printf("
请输入要删除学生的学号:");
scanf("%s",find);
p=Locate(l,find,"classnum");
if(p)
{ r=l; /*r指向头结点*/
while(r->next!=p) /*r的下一个节点不是p,一直循环*/
r=r->next; /*顺指针向后查找,直到r指向p的前一个节点*/
r->next=p->next; /*删除节点p*/
free(p); /*释放节点p*/
printf("
\a系统提示:信息删除成功!
");
shoudsave=1; /*保存资料*/
}//if
else
{ printf("
\a对不起,无信息可删除!");
printf("
");
}//else
}//delet

void search(Link l) /*查询函数定义*/
{
char temp; /*定义单字符temp*/
char find[10]; /*定义字符串find[]*/
Node *p; /*定义节点p*/
if(!l->next)
{
printf("
\a对不起,无信息可查询!");
printf("
");
return;
}//if
printf("
1:按学号查询 2:按姓名查询 3:按班级查询
");
printf("
请输入您要查询的方式:");
scanf("%s",&temp);
if(temp!='1' && temp!='2' && temp!='3')
printf("
\a\a系统提示:您输入错误!
");
else if(temp=='1')
{
printf("
请输入要查询的学号:");
scanf("%s",find);
p=Locate(l,find,"classnum"); /*按学号进行查找匹配*/
}//else if
else if(temp=='2')
{
printf("
请输入要查询的姓名:");
scanf("%s",find);
p=Locate(l,find,"name"); /*按名字进行查找匹配*/
}//else if
else if(temp=='3')
{
printf("
请输入您要查询的班级:");
scanf("%s",find);
p=Locate(l,find,"clas"); /*按班级号进行查找匹配*/
}//else if
if(p)
{
printf("
==============>查询结果<==============
");
menu4();
title();
if(temp=='1')
data1(p); /*输出按学号查找的结果*/
else if(temp=='2')
while(p)
{
data(p,find); /*输出按名字查找的结果*/
p=p->next; /*节点后移*/
}//while
else if(temp=='3')
while(p)
{
data2(p,find); /*输出按班级号查找的结果*/
p=p->next; /*节点后移*/
}//while
menu4();
}//if
else
{
printf("
\a对不起,无信息可查询!");
printf("
");
}//else
}//search

Link sortH(Link l,char ch) /*分类排序函数定义*/
{
Node *p,*q,*wei,*s,*p1; /*定义节点p,q,wei,s,p1*/
wei=NULL; /*将尾节点置空*/
char temp;
temp=ch;
if(!l->next)
{
printf("
\a对不起,无信息可排序!");
printf("
");
return 0;
}//if
while(l->next!=wei)
{
p=l;
q=p->next;
while(q->next!=wei)
{
if(temp=='A') /*按基础学分由高到低进行排序*/
{
if(p->next->data.basisnext->data.basis)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//if
else if(temp=='B') /*按专业学分由高到低进行排序*/
{
if(p->next->data.majornext->data.major)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='C') /*按选修学分由高到低进行排序*/
{
if(p->next->data.electivenext->data.elective)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='D') /*按人文学分由高到低进行排序*/
{
if(p->next->data.humanitynext->data.humanity)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='E') /*按实验学分由高到低进行排序*/
{
if(p->next->data.laboratorynext->data.laboratory)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='F') /*按学分总和由高到低进行排序*/
{ if(p->next->data.sumnext->data.sum)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='G') /*按平均学分由高到低进行排序*/
{
if(p->next->data.averagenext->data.average)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
p=p->next;
q=q->next;
}//while
wei=q;
}//while
p1=l->next;
printf("
==============>排序结果<==============
");
menu4();
if(temp=='A') /*输出按基础学分排序的结果*/
{ printf("班级学号姓名基础学分
");
while(p1)
{
printf("
%s %s%s %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.basis);
p1=p1->next;
}//while
}//if
if(temp=='B') /*输出按专业学分排序的结果*/
{
printf("班级学号姓名专业学分
");
while(p1)
{
printf("
%s %s%s %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.major);
p1=p1->next;
}//while
}//if
if(temp=='C') /*输出按选修学分排序的结果*/
{
printf("班级学号姓名选修学分
");
while(p1)
{
printf("
%s %s%s %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.elective);
p1=p1->next;
}//while
}//if
if(temp=='D') /*输出按人文学分排序的结果*/
{
printf("班级学号姓名人文学分
");
while(p1)
{
printf("
%s %s%s %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.humanity);
p1=p1->next;
}//while
}//if
if(temp=='E') /*输出按实验学分排序的结果*/
{
printf("班级学号姓名实验学分
");
while(p1)
{
printf("
%s %s%s %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.laboratory);
p1=p1->next;
}//while
}//if
if(temp=='F') /*输出按学分总和排序的结果*/
{
printf("班级学号姓名学分总和
");
while(p1)
{
printf("
%s %s%s %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.sum);
p1=p1->next;
}//while
}//if
if(temp=='G') /*输出按平均学分排序的结果*/
{
printf("班级学号姓名平均学分
");
while(p1)
{
printf("
%s %s%s %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.average);
p1=p1->next;
}//while
}//if
printf("
");
menu4();
printf("
");
return l;
}//sortH

void sort(Link l) /*排序函数定义*/
{
menu3();
char temp;
scanf("%s",&temp);
switch(temp) /*对要排序的类别进行选择*/
{
case 'A':sortH(l,'A');break;
case 'B':sortH(l,'B');break;
case 'C':sortH(l,'C');break;
case 'D':sortH(l,'D');break;
case 'E':sortH(l,'E');break;
case 'F':sortH(l,'F');break;
case 'G':sortH(l,'G');break;
default:printf("
\a\a系统提示:您输入错误!
");getchar();break;
}//switch
}//sort

void modify(Link l) /*修改函数定义*/
{
char temp;
char find[10];
Node *p; /*定义节点p*/
if(!l->next)
{
printf("
\a\a对不起,无信息可修改!");
printf("
");
return;
}//if
printf("
1:按学号修改 2:按姓名修改
");
printf("
请输入您要修改的方式:");
scanf("%s",&temp);
if(temp!='1'&&temp!='2')
{
printf("
\a\a系统提示:您输入错误!
");
return;
}//if
else if(temp=='1') /*按学号修改*/
{
printf("请输入要修改的学号:");
scanf("%s",find);
p=Locate(l,find,"classnum"); /*按学号查找匹配*/
}//else if
没有空间了 邮箱给我 发你邮箱去

题目很简单,建议自己写。不想写可以标明金额花钱雇人写,你就这样放这里没人理你的

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
#define null '\0'
int shoudsave=0;

struct student /*声明一个结构体类型struct student*/
{
char clas[20]; /*定义成员班级号*/
char name[20]; /*定义成员学生姓名*/
char classnum[20]; /*定义成员学生学号*/
float basis; /*定义成员基础学分*/
float major; /*定义成员专业学分*/
float elective; /*定义成员选修学分*/
float humanity; /*定义成员人文学分*/
float laboratory; /*定义成员实验学分*/
float sum; /*定义成员学分总和*/
float average; /*定义成员平均学分*/
};

typedef struct node /*声明一个节点类型struct node*/
{
struct student data; /*定义节点数据*/
struct node *next; /*定义节点指针*/
}Node,*Link;

void menu1() /*输出系统名称及简介*/
{
printf("\n 学生学分管理系统 \n");
printf("********************************************************************************");
printf("说明:本系统旨在帮助师生方便,快捷地统计,管理学分。您可以进行输入,修改,查看,排序等操作,界面清爽,操作简单,欢迎您的使用。\n");
printf("********************************************************************************");
}//menu1

void menu2() /*输出主菜单*/
{
printf(" 菜 单 \n");
printf("\t\t0:退出本次登入\t\t\t5:清除屏幕内容\n");
printf("\t\t1:输入学生信息\t\t\t6:修改学生学分\n");
printf("\t\t2:删除学生信息\t\t\t7:显示学生学分\n");
printf("\t\t3:查询学生学分\t\t\t8:统计学生信息\n");
printf("\t\t4:排序学生学分\t\t\t9:保存学生学分\n");
}//menu2

void menu3() /*输出排序菜单,供void sort(Link l)函数调用*/
{
printf("\n\t\tA:基础学分\t\t\tB:专业学分\n");
printf("\t\tC:选修学分\t\t\tD:人文学分\n");
printf("\t\tE:实验学分\t\t\tF:学分总和\n");
printf("\t\tG:平均学分\t\t\t\n");
printf("\n请选则您要排序的课程代码:");
}//menu3

void menu4() /*输出菜单上下限制符*/
{
printf("================================================================================");
}//menu4

void title() /*输出显示菜单,供void display(Link l)函数调用*/
{
printf(" 班级\t学号\t姓名\t基础\t专业\t选修\t人文\t试验\t总分\t平均\n");
}//title

void data(Node *p,char find[]) /*输出按姓名查找的结果,供void search(Link l)函数调用*/
{
if(strcmp(p->data.name,find)==0)
printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);
}//data

void data1(Node *p) /*输出按学号查找的结果,供void search(Link l)函数调用*/
{
printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);
}//data1

void data2(Node *p,char find[]) /*输出按班级查找的结果,供void search(Link l)函数调用*/
{
if(strcmp(p->data.clas,find)==0)
printf(" %s\t %s\t%s\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\t%3.1f\n",p->data.clas,p->data.classnum,p->data.name,p->data.basis,p->data.major,p->data.elective,p->data.humanity,p->data.laboratory,p->data.sum,p->data.average);
}//data2

Node* Locate(Link l,char find[],char match[]) /*查找匹配函数定义,该函数用于定位链表中符合要求的节点,并返回该指针*/
{
Node *r; /*定义节点指针r*/
if(strcmp(match,"classnum")==0) /*按学号查询*/
{
r=l->next; /*初始化r,指向第一个节点*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r->data.classnum,find)==0) /*查询成功*/
return r;
r=r->next; /*节点后移*/
} //while
} //if
else if(strcmp(match,"name")==0) /*按姓名查询*/
{
r=l->next; /*初始化r,指向第一个节点*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r->data.name,find)==0) /*查询成功*/
return r;
r=r->next; /*节点后移*/
} //while
} //else if
else if(strcmp(match,"clas")==0) /*按班级号查询*/
{
r=l->next; /*初始化r,指向第一个节点*/
while(r!=NULL) /*r非空*/
{
if(strcmp(r->data.clas,find)==0) /*查询成功*/
return r;
r=r->next; /*节点后移*/
}//while
}//else if
return 0;
}//Locate

void input(Link l) /*输入函数定义,用于增加学生信息*/
{
char clas[10];
Node *r,*p; /*定义节点r和p*/
r=l; /*将r指向头结点*/
while(r->next!=NULL)
r=r->next; /*将指针置于最末尾*/
while(l)
{
printf("\n友情提示:输入'#'返回上一菜单\n");
printf("\n输入学生的班级号:");
scanf("%s",clas);
if(strcmp(clas,"#")==0)
break;
p=(Node *)malloc(sizeof(Node)); /*生成新的节点*/
strcpy(p->data.clas,clas); /*将clas字符串复制到p->data.clas中*/
printf("输入学生的学 号:");
scanf("%s",&p->data.classnum);
getchar();
printf("输入学生的姓 名:");
scanf("%s",&p->data.name);
getchar();
printf("输入学生的基础分:");
scanf("%3.1f",&p->data.basis);
getchar();
printf("输入学生的专业分:");
scanf("%3.1f",&p->data.major);
getchar();
printf("输入学生的选修分:");
scanf("%3.1f",&p->data.elective);
getchar();
printf("输入学生的人文分:");
scanf("%3.1f",&p->data.humanity);
getchar();
printf("输入学生的实验分:");
scanf("%3.1f",&p->data.laboratory);
getchar();
p->data.sum=p->data.basis+p->data.major+p->data.elective+p->data.humanity+p->data.laboratory; /*计算学分总和*/
p->data.average=p->data.sum/5; /*计算平均学分*/
p->next=NULL; /*p节点的下一个节点为空*/
r->next=p; /*节点前移*/
r=p;
}//while
}//input

void delet(Link l) /*删除函数定义*/
{
char find[10];
Node *p,*r; /*定义节点r和p*/
if(!l->next) /*删除位置不合理*/
{ printf("\n\a对不起,无信息可删除!");
printf("\n");
return;
}//if
printf("\n请输入要删除学生的学号:");
scanf("%s",find);
p=Locate(l,find,"classnum");
if(p)
{ r=l; /*r指向头结点*/
while(r->next!=p) /*r的下一个节点不是p,一直循环*/
r=r->next; /*顺指针向后查找,直到r指向p的前一个节点*/
r->next=p->next; /*删除节点p*/
free(p); /*释放节点p*/
printf("\n\a系统提示:信息删除成功!\n");
shoudsave=1; /*保存资料*/
}//if
else
{ printf("\n\a对不起,无信息可删除!");
printf("\n");
}//else
}//delet

void search(Link l) /*查询函数定义*/
{
char temp; /*定义单字符temp*/
char find[10]; /*定义字符串find[]*/
Node *p; /*定义节点p*/
if(!l->next)
{
printf("\n\a对不起,无信息可查询!");
printf("\n");
return;
}//if
printf("\n\t\t1:按学号查询\t 2:按姓名查询\t 3:按班级查询\n");
printf("\n请输入您要查询的方式:");
scanf("%s",&temp);
if(temp!='1' && temp!='2' && temp!='3')
printf("\n\a\a系统提示:您输入错误!\n");
else if(temp=='1')
{
printf("\n请输入要查询的学号:");
scanf("%s",find);
p=Locate(l,find,"classnum"); /*按学号进行查找匹配*/
}//else if
else if(temp=='2')
{
printf("\n请输入要查询的姓名:");
scanf("%s",find);
p=Locate(l,find,"name"); /*按名字进行查找匹配*/
}//else if
else if(temp=='3')
{
printf("\n请输入您要查询的班级:");
scanf("%s",find);
p=Locate(l,find,"clas"); /*按班级号进行查找匹配*/
}//else if
if(p)
{
printf("\n ==============>查询结果<==============\n");
menu4();
title();
if(temp=='1')
data1(p); /*输出按学号查找的结果*/
else if(temp=='2')
while(p)
{
data(p,find); /*输出按名字查找的结果*/
p=p->next; /*节点后移*/
}//while
else if(temp=='3')
while(p)
{
data2(p,find); /*输出按班级号查找的结果*/
p=p->next; /*节点后移*/
}//while
menu4();
}//if
else
{
printf("\n\a对不起,无信息可查询!");
printf("\n");
}//else
}//search

Link sortH(Link l,char ch) /*分类排序函数定义*/
{
Node *p,*q,*wei,*s,*p1; /*定义节点p,q,wei,s,p1*/
wei=NULL; /*将尾节点置空*/
char temp;
temp=ch;
if(!l->next)
{
printf("\n\a对不起,无信息可排序!");
printf("\n");
return 0;
}//if
while(l->next!=wei)
{
p=l;
q=p->next;
while(q->next!=wei)
{
if(temp=='A') /*按基础学分由高到低进行排序*/
{
if(p->next->data.basis<q->next->data.basis)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//if
else if(temp=='B') /*按专业学分由高到低进行排序*/
{
if(p->next->data.major<q->next->data.major)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='C') /*按选修学分由高到低进行排序*/
{
if(p->next->data.elective<q->next->data.elective)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='D') /*按人文学分由高到低进行排序*/
{
if(p->next->data.humanity<q->next->data.humanity)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='E') /*按实验学分由高到低进行排序*/
{
if(p->next->data.laboratory<q->next->data.laboratory)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='F') /*按学分总和由高到低进行排序*/
{ if(p->next->data.sum<q->next->data.sum)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
else if(temp=='G') /*按平均学分由高到低进行排序*/
{
if(p->next->data.average<q->next->data.average)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}//if
}//else if
p=p->next;
q=q->next;
}//while
wei=q;
}//while
p1=l->next;
printf("\n ==============>排序结果<==============\n");
menu4();
if(temp=='A') /*输出按基础学分排序的结果*/
{ printf("\t\t\t班级\t学号\t姓名\t基础学分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.basis);
p1=p1->next;
}//while
}//if
if(temp=='B') /*输出按专业学分排序的结果*/
{
printf("\t\t\t班级\t学号\t姓名\t专业学分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.major);
p1=p1->next;
}//while
}//if
if(temp=='C') /*输出按选修学分排序的结果*/
{
printf("\t\t\t班级\t学号\t姓名\t选修学分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.elective);
p1=p1->next;
}//while
}//if
if(temp=='D') /*输出按人文学分排序的结果*/
{
printf("\t\t\t班级\t学号\t姓名\t人文学分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.humanity);
p1=p1->next;
}//while
}//if
if(temp=='E') /*输出按实验学分排序的结果*/
{
printf("\t\t\t班级\t学号\t姓名\t实验学分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.laboratory);
p1=p1->next;
}//while
}//if
if(temp=='F') /*输出按学分总和排序的结果*/
{
printf("\t\t\t班级\t学号\t姓名\t学分总和\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.sum);
p1=p1->next;
}//while
}//if
if(temp=='G') /*输出按平均学分排序的结果*/
{
printf("\t\t\t班级\t学号\t姓名\t平均学分\n");
while(p1)
{
printf("\n\t\t\t %s\t %s\t%s\t %3.1f",p1->data.clas,p1->data.classnum,p1->data.name,p1->data.average);
p1=p1->next;
}//while
}//if
printf("\n");
menu4();
printf("\n");
return l;
}//sortH

void sort(Link l) /*排序函数定义*/
{
menu3();
char temp;
scanf("%s",&temp);
switch(temp) /*对要排序的类别进行选择*/
{
case 'A':sortH(l,'A');break;
case 'B':sortH(l,'B');break;
case 'C':sortH(l,'C');break;
case 'D':sortH(l,'D');break;
case 'E':sortH(l,'E');break;
case 'F':sortH(l,'F');break;
case 'G':sortH(l,'G');break;
default:printf("\n\a\a系统提示:您输入错误!\n");getchar();break;
}//switch
}//sort

void modify(Link l) /*修改函数定义*/
{
char temp;
char find[10];
Node *p; /*定义节点p*/
if(!l->next)
{
printf("\n\a\a对不起,无信息可修改!");
printf("\n");
return;
}//if
printf("\n\t\t1:按学号修改\t 2:按姓名修改\n");
printf("\n请输入您要修改的方式:");
scanf("%s",&temp);
if(temp!='1'&&temp!='2')
{
printf("\n\a\a系统提示:您输入错误!\n");
return;
}//if
else if(temp=='1') /*按学号修改*/
{
printf("请输入要修改的学号:");
scanf("%s",find);
p=Locate(l,find,"classnum"); /*按学号查找匹配*/
}//else if
没有空间了 邮箱给我 发你邮箱去
以上回答你满意么?


C语言程序设计求助
C语言程序设计求助 题目:假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得... 题目:假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或...

大学数学专业学哪些内容
19.课程名称:C语言程序设计ProgramminginCLanguage总学时:54(36+18)周学时:2+1学分:3开课学期:五修读对象:必修预修课程:大学计算机基础Ⅰ-Ⅱ内容简介:《C语言程序设计》是素质拓展课程。 它是一种常用的程序设计语言,是编程人员最广泛使用的工具。 20.课程名称:模糊数学FuzzyMathematics总学时:54周学时:3学分:...

浙江广播电视大学江山分校专业介绍
计算机应用专业致力于培养具备软件开发技能的实用型人才,课程包括开放教育入学指南、邓小平理论概论、高等数学、计算机电路基础、英语、计算机数学基础、计算机组成原理、C++语言程序设计、操作系统、计算机网络、多媒体技术基础、数据结构、VisualBasic程序设计、软件工程等。该专业学分总计114分。法学专业着重于培养...

大学数学专业学哪些内容
19.课程名称:C 语言程序设计 Programming in C Language 总学时:54(36+18) 周学时:2+1 学分: 3 开课学期:五 修读对象:必修 预修课程:大学计算机基础Ⅰ-Ⅱ 内容简介: 《C 语言程序设计》是素质拓展课程。它是一种常用的程序设计语言,是编程人 员最广泛使用的工具。20.课程名称:模糊数学 Fuzzy Mathematics...

c语言程序设计
试设计一个成绩管理程序,按要求显示输出学生的记录和相关的成绩... 要求假设有一个班级学生n人,期末考试老师要对成绩从高到低列出,并对各科的考试成绩求出其最高分、最低分和平均成绩。试设计一个成绩管理程序,按要求显示输出学生的记录和相关的成绩。 (1)学生成绩的数据来源于程序的结构数组,定义若干个(不少于...

电子商务具体是学什么?
本课程主要从计算机基础知识、常用操作系统、办公软件的应用、多媒体和网络等几个部分进行介绍,教师讲解与实际界面相结合,使学生更加容易理解和掌握。\\x0d\\x0a2、电子商务概论(4学分)\\x0d\\x0a3、C语言程序设计(4学分)\\x0d\\x0a本课程是本专业的基础课程,主要讲述C基本语法,运算符与表达式,...

清华大学工程力学系要学哪些课程
20220044 电工与电子技术 4学分 (2) 信息技术 30310584 信号与系统 4学分(航天航空方向必修)(3) 计算机应用基础类课程 20740042 计算机文化基础 2学分 20740073 计算机程序设计基础 3学分 20220233 计算机硬件技术基础 3学分 30310462 Fortran 语言程序设计 2学分(力学、热学方...

c语言程序设计 请用普通C帮我解答 谢谢了!
简单写了点,不知是否符合要求,程序比较简单,就没给注释 \/*#include<stdio.h> void main(){ int id,score,kind,money;printf("请输入学号:\\n");scanf("%d",&id);printf("请输入学分:\\n");scanf("%d",&score);printf("请选择学生类型:1,本校全日制本科生;2,本校夜大学生;3,外校...

C++程序关于车辆工程
说起来很简单,涉及的东西不少的,一般估计没人来做,除非。。。

急!!!C语言帮忙写个程序!!!
急!!!C语言帮忙写个程序!!! 编一个成绩编译器1.成绩输入(包括姓名学号语文数学英语成绩)2.成绩输出3成绩插入4成绩删除5成绩排序6退出还有能通过VC++我...printf("序号 姓名 理论力学 线性代数 大学物理 机械制图 C语言设计\\n"); fprintf(fp2,"序号 姓名 理论力学 线性代数 大学物理 机械制图 C语言设计\\n"...

宜章县17726297415: C语言学分管理系统源程序 -
竺绿舒萨: c语言课程设计_学生成绩管理系统/*学生成绩管理*//*Borland C下编译通过,调试过程中不要输入大数字*/#include <stdio.h>#include <stdlib.h>#include <conio.h> int INDEX[32]; struct STUDENT { int id,age,chinese,math,english; char name[21]; }...

宜章县17726297415: C语言 学分管理程序怎么设计啊
竺绿舒萨: 学分管理? 你说详细点啊. 我想得有这么几个函数: adddate()/*添加学生资料*/ update()/*修改学生资料*/ deletedate()/*删除学生资料*/ 另外弄一个窗体可以了.

宜章县17726297415: C语言编程题:学分管理程序 -
竺绿舒萨: #include #include #include #include #include #define null '\0&#...

宜章县17726297415: c语言:学生成绩简单管理程序 -
竺绿舒萨: 给你一个模板吧:#include"stdio.h"#include"stdlib.h"#include"string.h"#include#include typedef struct list { ...

宜章县17726297415: 用C语言编译程序学生成绩管理系统 -
竺绿舒萨: #include "stdio.h" #include "stdlib.h" #include "string.h" int shoudsave=0; /* */ struct student { char num[10];/* 学号 */ ...

宜章县17726297415: 学生成绩管理程序设计C语言设计 -
竺绿舒萨: #include"stdio.h" #include"stdlib.h" #include"string.h" #define N 3 typedef struct z1 { char no[11]; char name[15]; int score[N]; float sum; float average; int order; struct z1 *next; }STUDENT; STUDENT *init(); STUDENT *create(); STUDENT *...

宜章县17726297415: 急需求用C语言编程的学生管理系统 -
竺绿舒萨: //课程类 class course { int courseno; //课程编号 string cname;//课程名字 int credit; //学分 int score; //成绩 public: void set_cname(string na){cname=na;} //设置课程名 string get_cname(){return cname;} //获取课程名 int get_credit(){return ...

宜章县17726297415: 用c语言做一个程序,实现选修课程管理中的查询功能,包括:按学分、课程性质、学生等查询 -
竺绿舒萨: 定义一个结构体就好了!!struct stu_Class { ...... //包含你课程的性质等... .....}; 然后把结构体当作一个变量就好!

宜章县17726297415: 用C语言编写学生成绩管理系统 设计程序.一级菜单显示:1输入,2查询,3删除,4排序,5退出 -
竺绿舒萨: #include<stdio.h> /*引用库函数*/ #include<stdlib.h> #include<ctype.h> #include<string.h> typedef struct /*定义结构体数组*/ { char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ }Student; Student stu[80]; /*结构体数组变量*/ int ...

宜章县17726297415: 用c语言编写控制台下简单的学籍管理程序
竺绿舒萨: 太长,剩下的联系我,发给你!nbsp;/*11.3.2nbsp;源程序*/nbsp;/***********xuesheng.c***********/nbsp;/******头文件(.h)***********/nbsp;#includenbsp;“stdio.h“nbsp;/*I/O函数*/nbsp;#includenbsp;“stdlib.h“nbsp;/*其它说明*/nbsp;#...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网