c语言major函数 c major是什么意思

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

#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.basisq-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.majorq-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.electiveq-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.humanityq-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.laboratoryq-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.sumq-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.averageq-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语言在线等 missing function header old-style formal list?

AddStudent和DisplayStudents函数要先声明噻,放到你调用函数的前面声明哈

C语言求助。急急

#includeiostream.h

#includestring.h

#includefstream.h

#includeiomanip.h

class stu

{

char name[20];

double age,homephone,telphone;

char sex;

public:

stu(){}

stu(char n[20],char se,double ag,double ho,double te)

{

strcpy(name, n);

age=ag;

homephone=ho;

telphone=te;

}

friend void main();

};

void main()

{

cout"请选择您需要的操作!"endl;

cout"操作:"endl;

cout"(0)通讯录录入"endl;

cout"(1)增加人员"endl;

cout"(2)删除人员"endl;

cout"(3)修改数据"endl;

cout"(4)显示记录"endl;

cout"(5)退出"endl;

cout"选择相关操作请输入相对的括号里的阿拉伯数字!"endl;

stu *s[50];

int i=0;

int j=0;

bool flag2=0;

char p;

do

{

cinp;

if((p='0'p='5'))

flag2=1;

else

cout"指令错误!请重新输入:"endl;

}while(flag2==0);

switch(p)

{

case '0': //(0)通讯录录入

{

char name[20];

double age,homephone,telphone;

char sex,c;

do{

cout"请输入姓名:"endl;

cinname;

cout"请输入性别:"endl;

cinsex;

cout"请输入年龄:"endl;

cinage;

cout"请输入家里的电话号码:"endl;

cinhomephone;

cout"请输入移动电话号码:"endl;

cintelphone;

j++;

s[i]=new stu(name, sex, age, homephone , telphone);

i++;

cout"数据录入成功,想继续录入吗(y/n)"endl;

cinc;

flag2=0;

do

{

if(c!='y'c!='n')

{

cout"指令错误!请重新输入!"endl;

cinc;

}

else

flag2=1;

}while(flag2==0);

}while(c=='y');

break; }

////////////////////////////////////////////////////////////////////

case '1': //(1)增加人员(Add)

{

char name[20];

double age,homephone,telphone;

char sex,c;

do{

cout"请输入姓名:"endl;

cinname;

cout"请输入性别:"endl;

cinsex;

cout"请输入年龄:"endl;

cinage;

cout"请输入家里的电话号码:"endl;

cinhomephone;

cout"请输入移动电话号码:"endl;

cintelphone;

j++;

s[i]=new stu(name, sex, age, homephone , telphone);

i++;

cout"数据录入成功,想继续录入吗(y/n)"endl;

cinc;

flag2=0;

do

{

if(c!='y'c!='n')

{

cout"指令错误!请重新输入!"endl;

cinc;

}

else

flag2=1;

}while(flag2==0);

}while(c=='y');

break; }

case '2': //(2)删除人员(Delete)

{

char name[20];bool flag3=0;char c;

do{

cout"请输入您要删除的学生姓名:"endl;

cinname;

for(int h=0;hi;h++)

{

if(strcmp(name,s[h]-name)==0)

{

flag3=1;

i--;

do{

s[h]=s[h+1];

h++;

}while(h=i);

}

}

if(flag3==0)

cout"您要求删除的对象本来就不存在!请检查输入的正确性!";

cout"要继续删除吗?(y/n)"endl;

cinc;

if(c!='y'c!='n')

{

cout"指令错误!请重新输入!"endl;

cinc;

}

}while(c=='y');

break; }

case '3': //(3)修改数据(Alter)

{

char name[20],se;double ag,ho,te;flag2=0;

char c;

do

{

cout"请输入您要修改的学生的姓名:"endl;

cinname;

for(int h=0;hi;h++)

{

if(strcmp(name,s[h]-name)==0)

{

flag2=1;

cout"请输入性别:"endl;

cinse;

cout"请输入年龄:"endl;

cinag;

cout"请输入家里的电话号码:"endl;

cinho;

cout"请输入移动电话号码:"endl;

cinte;

s[h]-sex=se;

s[h]-age=ag;

s[h]-homephone=ho;

s[h]-telphone=te;

cout"数据修改成功!";

}

}

if(flag2==0)

{

cout"您要修改的学生本来就不存在!请检查重新输入!"endl;

}

cout"想继续修改吗(y/n)"endl;

cinc;

if(c!='y'c!='n')

{

cout"指令错误!请重新输入!"endl;

cinc;

}

}while(c=='y');

break; }

case '4': //(4)显示记录(List)

{

cout"本系统所有通讯录的数据如下:"endl;

if(i==0)

cout"管理系统中没有录入数据或者数据已经被删除!"endl;

for(int k=0;ki;k++)

{

coutk+1" ""姓名:"" "s[k]-name

"性别:"" "s[k]-sex"年龄:"" "s[k]-age

"家里的电话号码:"" "s[k]-homephone"移动电话号码:"

" "s[k]-telphoneendl;

}

break; } }

cout"您想继续进行其他操作吗?(y/n)"endl;

bool flag4=0;

do

{

cinp;

if(p!='y'p!='n')

cout"指令错误!请重新输入!"endl;

else

flag4=1;

}while(flag4==0);

if(p=='y')

cout"请输入操作代码(0 通讯录录入/1 增加人员(Add)/2 删除人员(Delete)/3 修改数据(Alter)/4 显示记录(List)/ 5 退出(Exit))"endl;

cinp;

for(int x=0;xi;x++)

{

delete s[x];

cout"删除所有成员!"endl;

}

}

回答者:little_goblin - 初入江湖 三级 7-11 09:35

评价已经被关闭 目前有 1 个人评价

100% (1) 不好

0% (0)

对最佳答案的评论 共 1 条

看不懂

评论者: hanrenhui88 - 试用期 一级

其他回答 共 1 条

我自己前不久编写的一个通讯录,呵呵.

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

struct student

{

int no; /*学号*/

char name[20]; /*姓名*/

char acdamic[20]; /*院系*/

char major[20]; /*专业*/

char province[20]; /*籍贯*/

char address[40]; /*家庭地址*/

long phone; /*联系电话*/

struct student *next;

};

struct student *input();

void print(struct student *h);

struct student *insert(struct student *h);

struct student *del(struct student *h);

void find4(struct student *h);

void find3(struct student *h);

void find2(struct student *h);

void find1(struct student *h);

struct student *head=NULL;

char ch,*menu[]={"------------------通讯录菜单------------",

"1.----------建立学生通讯录---------------",

"2.----------输出全部学生通讯录---------------",

"3.----------增加的学生的个数---------------",

"4.----------删除指定学号的学生--------------",

"5.----------按系别查找学生信息-------------",

"6.----------按专业查找学生信息-------------",

"7.----------按姓名查找学生信息-------------",

"8.----------按学号查找学生信息--------------",

"9.----------退出通讯录-----------------------"};

struct student *input() /*输入函数*/

{

int n;

printf("请输入你要建立的学生通讯录的学生个数:\n");

scanf("%d",n);

struct student *h=NULL,*p,*q;

int i;

for(i=1;i=n;i++)

{

printf("请依次输入第%d个学生的学号,姓名,系别,专业,籍贯,家庭住址和联系电话:\n",i);

p=(struct student *)malloc(sizeof(struct student));

if(p==NULL)

{

printf("内存不足!\n");

exit(0);

}

scanf("%d%s%s%s%s%s%ld",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);

if(i==1)h=p;

else q-next=p;

q=p;

}

q-next=NULL;

return h;

}

void print(struct student *h) /*输出函数*/

{

struct student *p=h;

while(p)

{

printf("学生信息:\n%d,%s,%s,%s,%s,%s,%ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);

p=p-next;

}

}

struct student *insert(struct student *h) /*增加学生信息*/

{

int n;

printf("请输入你要增加的学生的个数:\n");

scanf("%d",n);

struct student *p,*r;

int i;

for(i=1;i=n;i++)

{

r=(struct student *)malloc(sizeof(struct student));

printf("请输入第%d个你要插入的学生的信息:\n",i);

scanf("%d%s%s%s%s%s%ld",r-no,r-name,r-acdamic,r-major,r-province,r-address,r-phone);

p=h;

h=r;

r-next=p;

}

return h;

}

struct student *del(struct student *h) /*按学号进行删除*/

{

int n;

printf("请输入要删除的学生的学号:\n");

scanf("%d",n);

struct student *p,*q;

if(h=NULL)printf("empty list!\n");

else

{

p=h;

while(p-no!=np-next)

{q=p;p=p-next;}

if(p-no==n)

{

if(h==p)h=p-next;

else q-next=p-next;

}

else printf("%d is not found!\n");

}

return h;

}

void find1(struct student *h) /*按院系查找学生信息*/

{

char s[40];

printf("请输入要查找的学生的院系:\n");

scanf("%s",s);

struct student *p;

if(h==NULL)printf("empty list!\n");

else

{

p=h;

while(p)

{

if(strcmp(p-acdamic,s)==0)

printf("学生信息:\n%d %s %s %s %s %s %ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);

p=p-next;

}

}

}

void find2(struct student *h) /*按专业查找*/

{

char s[20];

printf("请输入要查找的学生的专业名:\n");

scanf("%s",s);

struct student *p;

if(h==NULL)printf("empty list!\n");

else

{

p=h;

while(p)

{

if(strcmp(p-major,s)==0)

printf("学生信息:\n%d %s %s %s %s %s %ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);

p=p-next;

}

}

}

void find3(struct student *h) /*按姓名查找*/

{

char ss[10];

printf("请输入要查找的学生的姓名:\n");

scanf("%s",ss);

struct student *p;

if(h==NULL)printf("empty list!\n");

else

{

p=h;

while(p)

{

if(strcmp(p-name,ss)==0)

printf("学生信息:\n%d %s %s %s %s %s %ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);

p=p-next;

}

}

}

void find4(struct student *h) /*按学号查找*/

{

int num;

printf("请输入要查找的学生的学号:\n");

scanf("%d",num);

struct student *p;

if(h==NULL)printf("empty list!\n");

else

{

p=h;

while(p)

{

if(p-no==num)

printf("学生信息:\n%d %s %s %s %s %s %ld\n",p-no,p-name,p-acdamic,p-major,p-province,p-address,p-phone);

else

printf("没有你要查找的学生信息!\n");

p=p-next;

}

}

}

int menu_select()

{

int i,s;

char c[3];

for(i=0;i10;i++)

printf("%s\n",menu[i]);

do

{

scanf("%s",c);

s=atoi(c);

}while(s0||s9);

return s;

}

main()

{

for(;;)

{

switch(menu_select())

{

case 1:head=input();break;

case 2:print(head);break;

case 3:head=insert(head);break;

case 4:head=del(head);break;

case 5:find1(head);break;

case 6:find2(head);break;

case 7:find3(head);break;

case 8:find4(head);break;

case 9:exit(0);

}

}

}


分享标题:c语言major函数 c major是什么意思
分享地址:http://scyanting.com/article/docjjho.html