c语言高考志愿填报信息管理系统 c语言技能高考

龙途教育 1次浏览

摘要:c语言学生成绩管理系统? p=p->next; #include outfile.write( (char )p,sizeof(ji_ke_1_class)); c语言高考志愿填报信息管理系统 c语言

c语言学生成绩管理系统?

p=p->next;

#include outfile.write( (char )p,sizeof(ji_ke_1_class));

c语言高考志愿填报信息管理系统 c语言技能高考c语言高考志愿填报信息管理系统 c语言技能高考


c语言高考志愿填报信息管理系统 c语言技能高考


#include

int n;

struct Student {

int no;

char name[10];

int score[5];

int erage;

}student[100000];

void Sort(Student s){

for(int i=0;i

for(int j=i+1;j

if(s[j].sum>s[i].sum){

char ns[100];

strcpy(ns,s[i].name);

strcpy(s[i].name,s[j].name);

strcpy(s[j].name,ns);

int snum=s[i].sum,se=s[i].erage;

s[i].sum=s[j].sum,s[i].erage=s[j].erage;

s[j].sum=snum,s[j].erage=se;

{cout<<"tt找不到你要查找的内容!"<

}void printInfo() {

for (int i = 0; i < n; i++) {

printf("%s,%d,%dn", student[i].name, student[i].sum, student[i].erage);

}}

int main()

{printf("请输入学生的数量n:");

scanf("%d",&n);

for (int i = 0; i < n; i++) {

printf("请分别输入第%d名同学的id,名字,成绩1,成绩2,成绩3,成绩4", i + 1);

scanf("%d%s%d%d%d%d", &student[i].no, student[i].name, &student[i].score[0], &student[i].score[1], &student[i].score[2],&student[i].score[3]);

student[i].sum=student[i].score[0]+student[i].score[1]+student[i].score[2]+student[i].score[3];

student[i].erage=student[i].sum/4;

}Sort(student);

printInfo();

return 0;

}

C语言编写学生信息管理系统,不要报错的......

void display(;

struct Student

for(i=0;i{long number;

char nam<<" 及格率:"<

int score;

}stu[N],t;

C语言课程设计:学生学籍管理系统。有谁有代码给我做个参考吗?谢谢了,C语言和C++的都可以。

}/=============================================

#includep1=p1->next;

}/清空键盘缓冲/

#include

#include

class stu

{char name[20];

double math,chinese,english,erage,sum;

public:

stu()

{}

stu(char n[20],double ma,double chin,double eng)

{strcpy(name,n);

math=ma;

chinese=chin;

english=eng;

}double getsum()

{sum=chinese+english+math;

return sum;

}double geter()

{erage=getsum()/3;

return erage;

}friend void main();

};

void main()

{cout<<"请选择您需要的作!"<

cout<<"作:"<

cout<<"(0)数据录入"<

cout<<"(1)增加人员"<

cout<<"(2)删除人员"<

cout<<"(3)修改数据"<

cout<<"查询:"<

cout<<"(4)按总成绩查询"<

cout<<"(5)按姓名查询"<

cout<<"(6)输出所有学生的数据"<

cout<<"成绩名词"<

cout<<"(7)按总分查询排名"<

cout<<"(8)按语文查询排名"<

cout<<"(y)按英语查询排名"<

cout<<"选择相关作请输入相对的括号里的数字!"<

char p;char w;

stu s[50];

ofstream file[50];

int i=0;

int j=0;

bool flag2=0;

do

{cin>>p;

if((p>='0'&&p<='10'))

flag2=1;

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

}while(flag2==0);

do{

switch(p)

{case '0':

{char c;

char name[20];double math,chinese,english;

do{

cout<<"请输入姓名"<

cin>>name;

cout<<"请输入数学成绩:"<

cin>>math;

cout<<"请输入语文成绩:"<

cin>>chinese;

cout<<"请输入外语成绩:"<

cin>>english;

file[j]=new ofstream("d:document",ios::ate);

file[j]<<"姓名"<

j++;

s[i]=new stu(name, math, chinese, english);

i++;

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

cin>>c;

flag2=0;

do

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

{cout<<"指令错误!请重新输入!"<

cin>>c;

}else

flag2=1;

}while(flag2==0);

}while(c=='y');

break;

}case '4':

{double t;char c;

do

{int flag1=0;

cout<<"请输入你要查询学生的总成绩"<

cin>>t;

for(int q=0;q

{if(s[q]->getsum()==t)

{flag1=1;

cout<<"您要查询的学生是:"<<(s[q]).name<

}}

if(flag1==0)

cout<<"对不起!您要查询的学生不存在!"<

cout<<"您想继续查询吗?(y/n)"<

cin>>c;

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

{cout<<"指令错误!请重新输入!"<

cin>>c;

}}

while(c=='y');

break;

}case '5':

{char n[20];int j=0;char c;

do{

int flag=0;

cout<<"请输入你要查询的学生姓名"<

cin>>n;

for(int j=0;j

{if(strcmp(n,(s[j]).name)==0)

{flag=1;

cout<<"您要查询的学生是:"<<(s[j]).name<

cout<<(s[j]).name<<"的总成绩成绩是"<<(s[j]).getsum()<

}}

if(flag==0)

cout<<"对不起!您要查询的学生不存在!"<

cout<<"您想继续查询吗?(y/n)"<

cin>>c;

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

{cout<<"指令错误!请重新输入!"<

cin>>c;

}}

while(c=='y');

break;

}case '1':

{char name[20];double math,chinese,english;

char c;

do

{cout<<"请输入您要增加的学生的姓名:"<

cin>>name;

cout<<"请输入数学成绩:"<

cin>>math;

cout<<"请输入语文成绩:"<

cin>>chinese;

cout<<"请输入外语成绩:"<

cin>>english;

file[j]=new ofstream("d:document",ios::ate);

file[j]<<"姓名"<

j++;

s[i]=new stu(name, math, chinese, english);

i++;

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

cin>>c;

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

{cout<<"指令错误!请重新输入!"<

cin>>c;

}}while(c=='y');

break;

}case '2':

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

do{

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

cin>>name;

for(int h=0;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)"<

cin>>c;

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

{cout<<"指令错误!请重新输入!"<

cin>>c;

}}while(c=='y');

break;

}case '3':

{char name[20];double mat,chin,eng;flag2=0;

char c;

do

{cout<<"请输入您要修改的学生的姓名:"<

cin>>name;

for(int h=0;h

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

{flag2=1;

cout<<"请输入新的数学成绩:"<

cin>>mat;

cout<<"请输入新的语文成绩:"<

cin>>chin;

cout<<"请输入新的外语成绩:"<

cin>>eng;

s[h]->chinese=chin;

s[h]->math=mat;

s[h]->english=eng;

cout<<"数据修改成功!";

}}

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

}cout<<"想继续修改吗(y/n)"<

cin>>c;

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

{cout<<"指令错误!请重新输入!"<

cin>>c;

}}while(c=='y');

break;

}case '6':

{cout<<"本系统所有如下:"<

if(i==0)

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

for(int k=0;k

{cout<name<<

"语文:"<<" "<chinese<<"数学:"<<" "<math

<<"外语:"<<" "<english<<"总分:"<<" "<<(s[k]).getsum()

<<"平均分:"<<" "<<(s[k]).geter()<

}break;

}case '7':

{int t;stu b;

cout<<"本系统所以学生排名如下:"<

for(int x=0;x

{t=x;

for(int y=x+1;y

{if((s[t]->getsum())<(s[y]->getsum()))

t=y;

if(t!=x)

{b=s[x];

s[x]=s[t];

s[t]=b;

}}

}if(i==0)

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

for(int k=0;k

{cout<name<<

"语文:"<<" "<chinese<<"数学:"<<" "<math

<<"外语:"<<" "<english<<"总分:"<<" "<getsum()

<<"平均分:"<<" "<geter()<

}break;

}case '8':

{int t;stu b;

cout<<"本系统所以学生语文排名如下:"<

for(int x=0;x

{t=x;

for(int y=x+1;y

{if((s[t]->chinese)<(s[y]->chinese))

t=y;

if(t!=x)

{b=s[t];

s[t]=s[x];

s[x]=b;

}}

}if(i==0)

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

for(int k=0;k

{cout<name<<

"语文:"<<" "<chinese<<"数学:"<<" "<math

<<"外语:"<<" "<english<<"总分:"<<" "<getsum()

<<"平均分:"<<" "<geter()<

}break;

}case '9':

{int t;stu b;

cout<<"本系统所以学生数学排名如下:"<

for(int x=0;x

{t=x;

for(int y=x+1;y

{if((s[t]->math)<(s[y]->math))

t=y;

if(t!=x)

{b=s[t];

s[t]=s[x];

s[x]=b;

}}

}if(i==0)

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

for(int k=0;k

{cout<name<<

"语文:"<<" "<chinese<<"数学:"<<" "<math

<<"外语:"<<" "<english<<"总分:"<<" "<getsum()

<<"平均分:"<<" "<geter()<

}break;

}case 'y':

{int t;stu b;

cout<<"本系统所以学生英语排名如下:"<

for(int x=0;x

{t=x;

for(int y=x+1;y

{if((s[t]->english)<(s[y]->english))

t=y;

if(t!=x)

{b=s[t];

s[t]=s[x];

s[x]=b;

}}

}if(i==0)

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

for(int k=0;k

{cout<name<<

"语文:"<<" "<chinese<<"数学:"<<" "<math

<<"外语:"<<" "<english<<"总分:"<<" "<getsum()

<<"平均分:"<<" "<geter()<

}}

break;

}cout<<"您想继续进行其他作吗?(y/n)"<

bool flag4=0;

do

{cin>>w;

if(w!='y'&&w!='n')

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

flag4=1;

}while(flag4==0);

if(w=='y')

cout<<"请输入作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"<

cin>>p;

}while(w=='y');

for(int x=0;x

{delete s[x];

cout<<"delete all members!"<

}}

用C语言?还是ASP+SQL动态?

问题模糊,不好回答,如果是C语言,你问题发错地方了。

估计这个版面没有人能回答你。

请问步骤是什么?

用C语言编程实现学生基本信息管理系统

{school pp;

以前做过的类似的一个 你拿去看看改改

printf("要查找的学生相关信息如下:n");

#include

#include

#include

#define BUFSIZE 1024

#define WORDSIZE 32

#define DESTSIZE 512

#define NR 26

struct node_st {

struct node_st arr[NR];

char str;

};

static int _hash(char ch)

{return ch - 'a';

}static int read_file(FILE fp, char word, char dest)

{char buf[BUFSIZE] = {};

if (fgets(buf, BUFSIZE, fp) == NULL)

return -1;

buf[strlen(buf)-1] = 0;

sscanf(buf, "%s %s", word, dest);

return 0;

}static void tree_insert(struct node_st root, const char word, const char dest)

{struct node_st new;

int i;

if (root == NULL) {

new = malloc(sizeof(new));

//if error

for (i = 0; i < NR; i++)

(new->arr)[i] = NULL;

new->str = NULL;

root = new;

}if (word == '0') {

(roocase '7':pp.se(); break;t)->str = strdup(dest);

return;

}tree_insert(&((root)->arr)[_hash(word)], word+1, dest);

}static char tree_search(struct node_st root, char word)

{if (root == NULL)

return NULL;

if (word == '0')

return root->str;

tree_search((root->arr)[_hash(word)], word+1);

}int main(int argc, char argv)

{FILE fp;

struct node_st root = NULL;

char word[WORDSIZE] = {};

char dest[DESTSIZE] = {};

char ret;

if (argc < 3)

return 1;

fp = fopen(argv[1], "r");

//if error

while (1) {

if (read_file(fp, word, dest) < 0)

break;

tree_insert(&root, word, dest);

memset(word, '0', WORDSIZE);

memset(dest, '0', DESTSIZE);

}#if 1

if ((ret = tree_search(root, argv[2])) == NULL)

printf("the word is wrong

");

printf("%s: %s

", argv[2], ret);

#endif

return 0;

} 悬赏50也来求。送个红包吧

C语言怎么编一个简单的成绩管理系统?

}fclose(fp);

一个简单的成绩管理系统通常包括以下功能:

else

添加学生信息和成绩;

显示所有学生的信息和成绩;

根据学号或姓名查询学生信息和成绩;

根据学号或姓名修改学生信息和成绩;

根据学号或姓名删除学生信息和成绩。

下面是一个基于控制台的C语言实现的示例代码,演示了如何实现上述功能:

cCopy code

#include

#include

#include

#define MAX_STUDENTS 100 // 最多可管理的学生数

#define MAX_NAME_LEN 20 // 姓名长度

// 学生信息结构体

typedef struct {

int id; // 学号

char name[MAX_NAME_LEN];// 姓名

int score; // 成绩

} Student;

Student students[MAX_STUDENTS]; // 学生信息数组

int num_students = 0; // 当前学生数量

void add_student() {

if (num_students >= MAX_STUDENTS) {

printf("已达到可管理的学生数!n");

return;

}printf("请输入学生的学号:");

scanf("%d", &students[num_students].id);

printf("请输入学生的姓名:");

scanf("%s", students[num_students].name);

string qq,name[20],name0[20];printf("请输入学生的成绩:");

scanf("%d", &students[num_students].score);

num_students++;

printf("添加成功!n");

}// 显示所有学生的信息和成绩

void show_all_students() {

if (num_students == 0) {

printf("暂无学生信息!n");

return;

}printf("%-10s %-20s %-10sn", "学号", "姓名", "成绩");

for (int i = 0; i < num_students; i++) {

printf("%-10d %-20s %-10dn", students[i].id, students[i].name, students[i].score);

}}

C语言程序设计题目:学生信息管理系统设计

printf("请输入学生名次:");

这个是我以前编的,有些小错误,你参考一下:

{ struct studentpa,pb; int fp;

#include"stdio.h"

#include"stdlib.h"

#include"malloc.h"

#include"string.h"

typedef struct stud

{long int number;

char name[20];

int grade;

char other[30];

char [10];

struct stud next;

}T;

T creat()

{T p,q,head;

long int number;

int grade;

char name[20],other[30],[10];

head=(T )malloc(sizeof(T));

q=head;

printf("Please input the data:(num,name,,grade,other,0:end)n");

scanf("%ld",&number);fflush(stdin);

if(number)

{gets(name);

gets();

scanf("%d",&grade);fflush(stdin);

gets(other);

}while(number)

{p=(T )malloc(sizeof(T));

q->number=number;

strcpy(q->name,name);

strcpy(q->,);

q->grade=grade;

strcpy(q->other,other);

q->next=p;

q=p;

scanf("%ld",&number);fflush(stdin);

if(number)

{gets(name);

gets();

scanf("%d",&grade);fflush(stdin);

gets(other);

}}

q->next=NULL;

fflush(stdin);

return head;

}void print(T head)

{T p;

p=head;

if(p)

printf("Number name t grade othern");

while(p->next)

{printf("%08ld %-15s%-6s %-8d %sn",p->number,p->name,p->,p->grade,p->other);

}printf("nEND!n");

}void fprint(T head,FILE fp)

{T p;

p=head;

if(p)

fprintf(fp,"Number name t grade othern");

while(p->next)

{fprintf(fp,"%08ld %-15s%-6s %-8d %sn",p->number,p->name,p->,p->grade,p->other);

}fprintf(fp,"nEND!n");

}T range(T head)

{T p,q,s;

int key;

printf("Please input the key you want to range:n1.number,2.name,3.,4.grade,5.other.nYour cho:[ ]bb");

scanf("%d",&key);fflush(stdin);

s=q=head;

switch(key)

{case 1:

while(p)

{if(s->number>p->number) s=p;

}if(s!=head)

{s->next=head;

head=s;

}for(s=q=head->next;s;s=q=s->next)

{for(p=q->next;p;p=p->next)

if(s->grade>p->grade) s=p;

if(s!=q)

{s->next=q;

q=s;

}}

break;

case 2:

while(p)

{if(strcmp(s->name,p->name)>0) s=p;

}if(s!=head)

{s->next=head;

head=s;

}for(s=q=head->next;s;s=q=s->next)

{for(p=q->next;p;p=p->next)

if(s->grade>p->grade) s=p;

if(s!=q)

{s->next=q;

q=s;

}}

break;

case 3:

while(p)

{if(strcmp(s->,p->)>0) s=p;

}if(s!=head)

{s->next=head;

head=s;

}for(s=q=head->next;s;s=q=s->next)

{for(p=q->next;p;p=p->next)

if(s->grade>p->grade) s=p;

if(s!=q)

{s->next=q;

q=s;

}}

break;

case 4:

while(p)

{if(s->grade>p->grade) s=p;

}if(s!=head)

{s->next=head;

head=s;

}for(s=q=head->next;s;s=q=s->next)

{for(p=q->next;p;p=p->next)

if(s->grade>p->grade) s=p;

if(s!=q)

{s->next=q;

q=s;

}}

break;

case 5:

while(p)

{if(strcmp(s->other,p->other)>0) s=p;

}if(s!=head)

{s->next=head;

head=s;

}for(s=q=head->next;s;s=q=s->next)

{for(p=q->next;p;p=p->next)

if(s->grade>p->grade) s=p;

if(s!=q)

{s->next=q;

q=s;

}}

break;

}return head;

}T range_1(T head)

{T p,q,s;

s=q=head;

while(p)

{if(s->number>p->number) s=p;

}if(s!=head)

{s->next=head;

head=s;

}for(s=q=head->next;s;s=q=s->next)

{for(p=q->next;p;p=p->next)

if(s->grade>p->grade) s=p;

if(s!=q)

{s->next=q;

q=s;

}}

return head;

}T insert(T head)

{T p,q,s;

s=(T )malloc(sizeof(T));

printf("Please input the insert data:(num,name,,grade,other)n");

scanf("%ld",&s->number);fflush(stdin);

if(s->number==0)

{printf("ERROR!nPlease input number again.n");

scanf("%ld",&s->number);fflush(stdin);

}gets(s->name);

gets(s->);

scanf("%d",&s->grade);fflush(stdin);

gets(s->other);

q=head;

if(q->number>s->number)

{s->next=head;

head=s;

}while(q->numbernumber&&p)

{q=p;

}/if(!q)

{q->next=s;

s->next=NULL;

printf("%-6s%-6s%-6s%-6sn", putout[4],putout[5],putout[6],putout[7]);}else

{s->next=p;

}/

s->next=p;

return head;

}T del(T head)

{T p,q;

long int x;

int key=2;

print(head);

printf("Please input the data you want to delete:(num)n");

scanf("%ld",&x);fflush(stdin);

for(;key==2;)

scanf("%d",&key);fflush(stdin);

if(key==3) return head;

if(key==2) scanf("%ld",&x);

}q=head;

if(q->number==x)

{head=p;return(head);}

while(q&&p->number!=x)

{q=p;

}if(q)

{q->next=p->next;

free(p);

}else printf("NOT Found!!!n");

return head;

}void prt()

{printf(" welcome to use!!! tt========================n");

printf(" tt Linklist Student n");

printf(" tt by czj n");

printf(" tt 2008 10 4 n");

printf(" tt========================n");

}void fprt(FILE p)

{fprintf(p," welcome to use!!! tt========================n");

fprintf(p," tt Linklist Student n");

fprintf(p," tt by czj n");

fprintf(p," tt 2008 10 4 n");

fprintf(p," tt========================n");

}void main()

{T head=NULL;

int key=1;

FILE p;

prt();

head=creat();

print(head);

printf("1.INSERT.n2.DLETE.n3.CORRECT.n4.RANGE.n0.EXIT.nYour cho[ ]bb");

scanf("%d",&key);fflush(stdin);

for(;key;)

{("cls");

prt();

if(key==1) insert(head);

if(key==2||key==3) del(head);

if(key==3) insert(head);

if(key==4) range(head);

print(head);

printf("1.INSERT.n2.DELETE.n3.CORRECT.n4.RANGE.n0.EXIT.nYour cho[ ]bb");

scanf("%d",&key);fflush(stdin);

}if((p=fopen("d:linklist1.dat","w"))==NULL)

{printf("Can't open the file.n");

exit(0);

}fprt(p);

fprint(head,p);

fclose(p);

}/

一个不用。

fflush(stdin);清除缓存。

insert中输入有问题,range。

/

学生成绩管理系统 c语言

while(p1->num!=u&&p1->next !=NULL )

这p=q->next;个问题 只能用链表或者文件来实现

#include

#include

#include

using namespace std;

struct lx

{long num;

char name[20];

struct lx link;

};

struct lx addlist(struct lx head,long x);//添加;

void listclear(struct lx head);

struct lx creaist(void );

void listprintf(struct lx p);

int main(int argc,char argv)

{long x;

struct lx p = creaist();

listprintf(p);

cout<<"输入学号"<

cin>> x;

struct lx head = addlist(p,x);

listprintf(head);

listclear(head);

//listprintf(temp);

return 0;

}struct lx creaist(void )

{struct lx head ;

struct lx tail ;

struct lx p;

char buf[20];

head = NULL;

p = (struct lx )malloc(sizeof (struct lx));

// cout<< "内存分配失败!!!!"<< endl;

cout<< "请输入学号:";

cin>> p->num;

cout<< "请输入姓名:";

cin>> p->name;

//cout<

//strcpy(p->name, buf);

while(1)

{if(head == NULL)

{head = p;

tail = p;

}else

{tail->link = p;

tail = p;

}p = (struct lx)malloc(sizeof(struct lx));

// cout<<"内存分配失败!!!!!"<< endl;

cout<< "请输入学号:";

cin>> p->num;

if(p->num == 0)

break;

cout<< "请输入姓名:";

cin>> p->name;

//strcpy(p->name,buf);

}tail->link = NULL;

return head;

}void listprintf(struct lx p)

{struct lx q = p;

while(q!= NULL)

{cout<< q->num<

cout<< q->name<

q = q->link;

}}

struct lx addlist(struct lx head,long x)//添加

{struct lx p = head;

struct lx q,temp,temp1;

q = NULL;

if(p->link == NULL )

{if((p->num ) > x )

{q=(struct lx )malloc(sizeof(struct lx));

cout<<"输入姓名:"<

cin>>q->nint size=sizeof(struct stud_node);ame;

q->num = x;

q->link = p;

p = q;

}else

{q=(struct lx )malloc(sizeof(struct lx));

cout<<"输入姓名:"<

cin>>q->name;

q->num = x;

temp1 = p->link;

p->link = q;

q->link = temp1;

temp1->link = NULL;

}}

else if(((p->num) > x)&&((p->link)->link == NULL))

{q=(struct lx )malloc(sizeof(struct lx));

cout<<"输入姓名:"<

cin>>q->name;

q->num = x;

p->link = q;

q->link = p;

q->link = NULL;

}else

{while(1)

{if((p->num < x)&&((p->link)->num > x))

break;

p = p->link;

}q=(struct lx )malloc(sizeof(struct lx));

cout<<"输入姓名:"<

cin>>q->name;

q->num = x;

temp = p->link;

p->link = q;

q->link = temp;

}return p;

}void listclear(str

这是当初我做的那个,用链表做的,各项都能实现好好熟悉一下,希望对你有帮助

#include

#include

#include

struct stud_node{

int num;

char name[20];

int score;

struct stud_node next;

};

struct stud_node Create_Stu_Doc(); //新建链表

struct stud_node InsertDoc(struct stud_node head,struct stud_node stud); //插入

struct stud_node DeleteDoc(struct stud_node head,int num); //删除

void Print_Stu_Doc(struct stud_node head); //遍历

int main(void)

{struct stud_node head,p;

int cho,num,score;

char name[20];

do{

printf("1:Create 2:Insert 3:Delete 4:Print 0:Exitn");

scanf("%d",&cho);

switch(cho){

case 1:

head=Create_Stu_Doc();

break;

case 2:

printf("Input nun,nameand score:n");

scanf("%d%s%d",&num,name,&score);

p=(struct stud_node )malloc(size);

p->num=num;

strcpy(p->name,name);

p->score=score;

head=InsertDoc(head,p);

break;

case 3:

printf("Input num:n");

scanf("%d",&num);

head=DeleteDoc(head,num);

break;

case 4:

Print_Stu_Doc(head);

break;

case 0:

break;

}}while(cho!=0);

return 0;

}//新建链表

struct stud_node Create_Stu_Doc()

{struct stud_node head,p;

int num,score;

char name[20];

head=NULL;

printf("Input num,name,score:n");

scanf("%d%s%d",&num,name,&score);

while(num!=0){

p=(struct stud_node )malloc(size);

p->num=num;

strcpy(p->name,name);

p->score=score;

head=InsertDoc(head,p);

scanf("%d%s%d",&num,name,&score);

}return head;

}//插入作

struct stud_node InsertDoc(struct stud_node head,struct stud_node stud)

{struct stud_node ptr,ptr1, ptr2;

ptr2=head;

ptr=stud; //ptr指向待插入的新的学生记录结点

//原链表为空时的插入

if(head==NULL){

head=ptr; //新插入结点成为头结点

head->next=NULL;

}else{ //原链表不为空时的插入

while((ptr->num>ptr2->num)&&(ptr2->next!=NULL)){

ptr1=ptr2;

ptr2=ptr2->next;

}if(ptr->num<=ptr2->num){

if(head==ptr2) head=ptr;

else ptr1->next=ptr;

ptr->next=ptr2;

}else{ //新插入结点成为尾结点//

ptr2->next=ptr;

ptr->next=NULL;

}}

return head;

}//删除作//

struct stud_node DeleteDoc(struct stud_node head,int num)

{struct stud_node ptr1,ptr2;

//要被删除的结点为表头结点

while(head!=NULL && head->num==num){

ptr2=head;

head=head->next;

free(ptr2);

}if(head==NULL) //链表空

return NULL;

//要被删除的结点为非表头结点

ptr1=head;

ptr2=head->next; //从表头的下一个结点搜索所有符合删除要求的结点

while(ptr2!=NULL){

if(ptr2->num==num){

ptr1->next=ptr2->next;

free(ptr2);

}else

ptr1=ptr2;

ptr2=ptr1->next;

}return head;

}//遍历作

void Print_Stu_Doc(struct stud_node head)

{struct stud_node ptr;

if(head==NULL){

printf("nNo Recordn");

return;

}printf("nThe Student Records Are: n");

printf(" Num name scoren");

for(ptr=head;ptr;ptr=ptr->next)

printf("%8d %20s %6dn",ptr->num,ptr->name,ptr->score);

}

两年前做的,现在都不会C语言了。

下面的代码应该是对的。没有注释,但应该能看的懂,起名字也很不规范。只有信息输入、和查询,还有平均成绩。不求得分,只是拿出来共享一下,提供个参考。

#include

#include

#define pl 64

void fine(int size[][6],char xh[][5],char name[][9])

{int i,a,b;

char d[5];

for(;;)

{printf("请输入要查找的学号或姓名:");

scanf("%s",d);

for(i=0;i

if(strcmp(d,xh[i])==0||strcmp(d,name[i])==0)

{printf("学号:%st",xh[i]);

printf("姓名:%sn",name[i]);

printf("成绩:");

for(a=0;a<5;a++)

{printf("%d ",size[i][a]);

}printf("n平均成绩:%dnn",size[i][5]);

}}

}void main()

{int size[pl][6],a,i;

char b, name[pl][9], xh[pl][5];

for(i=0;i

{printf("学号:");

scanf("%s",xh[i]);

printf("姓名:");

scanf("%s",name[i]);

printf("成绩:");

size[i][5]=0;

for(a=0;a<5;a++)

{scanf("%d",&size[i][a]);

size[i][5]+=size[i][a];

}size[i][5]/=5;

}for(i=0;i

{printf("学号:%st",xh[i]);

printf("姓名:%sn",name[i]);

printf("成绩:");

for(a=0;a<5;a++)

{printf("%d ",size[i][a]);

}printf("n平均成绩:%dn",size[i][5]);

}fflush(stdin);

printf("是否要查找:y or n:n");

scanf("%c",&b);

if(b=='y'||b=='Y')

fine(size,xh,name);

}

用c语言编写一个学生管理系统

{printf("Are you sure?n1.OK.n2.Input new.n3.Exit delete.nYour cho:[ ]bb");

#include(8); fclose(fp); input(1); }}

q->next=s;

#include

#include

#include

using namespace std;

class student

{protected:

int number;

char name[20];

char [6];

char place[20];

char nation[6];

char birth[20];

char party[10];

char id[20];

double score[3];

public:

student next;

student(){ }

~student(){ }

char getname(){ return name; }

int getnumber(){ return number;}

double getscore(int i) { return score[3];}

float getg(){ return (score[0]+score[1]+score[2]); }

void input()

{int e=1;

cout<<"ttt按提示输入:"<

cout<<"tt输入编号: ";

cin>>number;

cout<<"tt输入姓名: ";

cin>>name;

do

{cout<<"tt输入性别: ";

cin>>;

if(strcmp(,"男")==0 || strcmp(,"女")==0)

{cout<<"tt输入籍贯: ";

cin>>place;

cout<<"tt输入民族: ";

cin>>nation;

cout<<"tt输入生日: ";

cin>>birth;

cout<<"tt输入面貌: ";

cin>>party;

cout<<"tt输入号: ";

cin>>id;

cout<<"tt输入数学分数: ";

cin>>score[0];

cout<<"tt输入英语分数: ";

cin>>score[1];

cout<<"tt输入计算机分数: ";

cin>>score[2];

e=0;

}else

{cout<<"ttt无此类型性别!重新输入!"<

e=1;

}}while(e);

return ;

}void input(ifstream & is)

{is>>number>>name>>>>place>>nation>>birth>>party>>id

>>score[0]>>score[1]>>score[2];

is.get();

}void output()

{cout<<"学生基本信息如下:"<

cout<<"编号:"<

<<" 姓名:"<

<<" 性别:"<<

<<" 籍贯:"<

<<" 民族:"<

<<" 生日:"<

<<" 面貌:"<

<<"号:"<

<<" 数学:"<

<<" 英语:"<

<<" 计算机:"<

<<" 总分:"<

}void output(ofstream & os)

{os<

<

<

<

<

<

<

<

<

<

<

}};

class school

{public:

school(){ head=new student; head->next=NULL; key=0; }

~school(){ delete head; }

void input();

void mend();

void del();

int find(student p,int num,char pn="^");

void found();

void show();

void count();

void se();

void begin();

void clear();

char mainmenu();

int getkey(){ return key;}

void setkey(int k){ key=k; }

private:

student head;

int key;

};

//录入函数

void school::input()

{student p,p2=NULL;

p=head;

int n;

while(p->next)

while(n)

{p2=new student;

p2->input();

p->next=p2;

p2->next=NULL;

school::setkey(1);

cout<<"ttt按1继续,按0返回 : ";

cin>>n;

}}

//子查找函数

int school::find(student p1,int num,char pn)

{student p;

p=head;

while(p->next)

{(p1)=p;

if( (p->next)->getnumber()==num||!strcmp( (p->next)->getname(),pn ) )

return 1;

}return 0;

}//查找函数

void school::found()

{student p;

int num=-1,n=9;

char name[20]="^";

do

{cout<<"tt1:按编号查找,2:按姓名查找: ";

cin>>n;

}while(n<1||n>2);

if(n==1)

{cout<<"ttt输入编号: ";

cin>>num;

}if(n==2)

{cout<<"ttt输入姓名: ";

cin>>name;

}if(!find(&p,num,name) )

return;

}(p->next)->output();

}//删除函数

void school::del()

{student p,p2;

int num;

cout<<"ttt输入编号: ";

cin>>num;

if( !find(&p,num,"^") )

{cout<<"tt找不到你要删除的内容!"<

return;

}(p->next)->output();

p2=p->next;

p->next=p2->next;

delete p2;

school::setkey(1);

}//显示函数

void school::show()

{student p;

p=head;

while(p->next)

{(p->next)->output();

}}

//修改函数

void school::mend()

{student p;

int num=-1,n;

char name[20]="^";

do

{cout<<"tt1:按编号修改,2:按姓名修改: ";

cin>>n;

}while(n<1||n>2);

if(n==1)

{cout<<"ttt输入编号: ";

cin>>num;

}if(n==2)

{cout<<"ttt输入姓名: ";

cin>>name;

}if( !find(&p,num,name) )

{cout<<"tt找不到你要修改的内容!"<

return;

}(p->next)->output();

(p->next)->input();

school::setkey(1);

}//保存函数

void school::se()

{student p;

p=head;

ofstream os("student.txt",ios::out);

if (school::getkey()==1)

{while(p->next)

{(p->next)->output(os);

}}

cout<<"ttt文件已保存! "<

school::setkey(0);

}//初始化函数

void school::begin()

{student p,p2;

p=head;

clear();

long t;

ifstream is("student.txt",ios::in);

if(!is)

{ofstream os("student.txt",ios::out);

os.close();

return ;

}int num=-1;

while(1)

{num=-1;

t=is.lg();

is>>num;

is.seekg(t);

if(num<0)

{is.close();

return;

}p2=new student;

p2->input(is);

p->next=p2;

p2->next=NULL;

}}

//清空函数

void school::clear()

{student p,p2;

p=head->next;

while( p )

{p2=p;

delete p2;

}}

//统计函数

void school::count()

{student p;

p=head;

int n=0;

double g[3]={0,0,0};

float j[3]={0,0,0};

while(p->next)

{p=p->next;

n++;

for(int i=0;i<3;i++)

{g[++i]=g[i]+( p->getscore(i) );

(p->getscore(i) )>=60? j[i++] : 0 ;

}}

cout<<"ttbbbb数学总分:"<

<<" 平均分:"<

<<"ttbbbb计算机总分: "<

<<" 及格率:"<

}//主选菜单函数

char school::mainmenu()

{char n[6];

cout<<"nn ☆☆☆☆欢迎进入高校学籍管理系统☆☆☆☆"<

<<" "<

<<" "<

<<" 1: 录入学生信息 "<

<<" 2: 显示学生信息 "<

<<" 3: 查找学生信息 "<

<<" 4: 删除学生信息 "<

<<" 5: 修改学生信息 "<

<<" 6: 统计学生成绩 "<

<<" 7: 保存学生信息 "<

<<" 0: 退出系统 "<

<<" "<

<<" "<

<<" 请选择:";

cin>>n;

return n[0];

}//主函数

void main()

int k=1;

char n;

pp.begin();

while(k==1)

{n=pp.mainmenu();

switch(n)

{case '1':pp.input(); break;

case '2':pp.show(); break;

case '3':pp.found(); break;

case '4':pp.del(); break;

case break;

case '6':pp.count(); break;

case '0':

if(pp.getkey()==1)

{cout<<"ttt是否保存? 1 : 保存 0:不保存 : ";

cin>>k;

if(k==1)

pp.se();

}pp.clear();

k=0;

break;

}}

}

c语言学生成绩管理系统的代码

}/输入学号为字符或小于0时,程序报错,提示重新输入学号/

#include

#include

#include

#define MENU_NUM 7

#define N 3

typedef struct s1

{char no[11]; /学号由10个字符组成/

char name[15]; /学生姓名/

float score[N]; /各门课成绩/

float sum; /总分/

float erage; /平均分/

int order; /名次/

struct s1 next; /指向后继结点的指针/

}STUDENT; /定义结构体类型/

STUDENT head=NULL;

void InputData( STUDENT ptr );

void PrintMenu( );

int Menu_Select( );

void Init( );

void create( );

void print( ) ;

void Delete( );

void append();

void comrcout<<"(9)按数学查询排名"<

main()

{int key;

while(1) {

key=Menu_Select();

switch(key)

{case 0: Init();

//初试化链表。也就是若链表不为空则释放链表中所有数据,将head置为空(NULL)

brstudentArray[i]=studentArray[j];eak;

case 1: create();

//创建链表,输入数据

break;

case 2: Delete();

//删除一个指定学号的记录数据

break;

case 3: print();

//打印链表中所有数据

break;

case 4: comr();

//计算链表中所有人的总分和平均分

break;

case 5: append();

//追加一个数据到链表的尾部

break;

case 6: Init();

//释放链表

exit(0);

}};

}void PrintMenu( )

{int i;

char menu[]={

"0. Init list",

"1. Enter list",

"2. Delete a record from list",

"3. Print list",

"4. Com the score",

"5. Insert record to list",

"6. Quit"

};

printf("nn");

for (i=0;i

printf("%sn",menu[i]);

printf("nEnter your cho(0-6):");

}int Menu_Select( )

{int key;

PrintMenu( );

scanf("%d",&key);

return key;

}void Init( ) //初始化单链表。也就是释放链表中的所有数据

{STUDENT p,ptr;//定义两个临时指针变量p,ptr

p=head;ptr=head;//将两个临时变量指向头指针head ;

while(ptr!=NULL)

{ptr=ptr->next;//ptr指向下一个结构数据

free(p);//释放p所指向的结构数据的内存

p=ptr;//将p指向ptr所指向的数据

}head=NULL;//将head指向NULL

}void create( ) //创建单链表

{STUDENT pt, pth=NULL; //定义两个指针变量:pt指向即将申请新的数据内存,pth指向当前数据

while(1)

{pt=(STUDENT )malloc(sizeof(STUDENT));//让pt指向新申请的内存空间

InputData(pt);//输入数据,存放到pt所指向的结构数据。注意让pt的next指向NULL

if (strcmp(pt->no,"@")==0)

{free(pt);//释放pt所指向的内存空间

break;//退出循环

}else if (head==NULL)

{pth=pt;

head=pt;//将头指针head和pth指向pt

}else

{pth->next=pt; //将pth的next指向pt;

pth=pt; //将pth指向pt;

}};

}void print( ) //打印单链表中所有数据

{ int i=0;

STUDENT p;//个指针p

printf("n");

printf("STUDENTn");

printf("|rec|no | name | sc1| sc2| sc3| sum | e |order|n");

printf("|---|----------|----------------|----|----|----|------|-----|-----|n");

//打印表头

while (p!=NULL)

{printf("|%3d|%10s|%-16s|%4.1f|%4.1f|%4.1f|%6.2f|%5.1f|%5d|n",

++i,p->no,p->name,p->score[0],p->score[1],p->score[2],

p->sum,p->erage,p->order); //打印p所指向的结构中的所有数据。注意打印数据间的分隔线

p=p->next;//将p指向p的下一个结构数据

}printf("ENDn");//打印表尾

}void Delete( ) //删除一个记录

{STUDENT p,pth;//定义两个指针p,pth

char no[11];//定义一个整数no(用来存储输入的学号)

printf("intput delete non");

scanf("%s",no);//用输入语句输入一个学号存储到no中

p=head;pth=head;//将p和pth都指向头指针

if (strcmp(p->no,no)==0) //也就是若头指针指向的数据需要删除

{head=head->next;//将head指针指向head的下一个数据;

free(p);//释放p所指向的数据

}else

{p=p->next;//将p指向p的下一个数据

while ( p!=NULL)

{if (strcmp(p->no,no)==0) //找到了要删除的数据

{pth->next=p->next;//将pth的next指向p的next

free(p);//释放p

break;//退出循环

}else

{pth=pth->next;//将pth指向pth的next 或 将pth指向p

p=p->next;//将p指向p的next

}}

}}

void append()

{STUDENT p,pth;//定义两个指针变量p,pth

pth=head;//将pth指向head

while ( pth->next!=NULL)

{pth=pth->next;//ptr指向ptr的next

}p=(STUDENT )malloc(sizeof(STUDENT));//将p指向新申请的内存空间

InputData(p);p->next=NULL;//数据数据存储到p所指向的内存空间,注意将p的next置为NULL

pth->next=p;//将ptr的next指向p

}void InputData( STUDENT ptr )

{ int i;

printf("enter no:");

scanf("%s",ptr->no);

if (strcmp(ptr->no,"@")==0 ) return;

printf("enter name:");

scanf("%s",ptr->name);

for(i=0;i<3;i++)

{printf("shuru chengjin");

scanf("%f",&ptr->score[i]);

}ptr->sum=0;

ptr->erage=0;

ptr->order=0;

ptr->next=NULL;

}void comr()

{STUDENT p;

p=head;

for(;p;p=p->next)

{p->sum=p->score[0]+p->score[1]+p->score[2];

p->erage=(p->score[0]+p->score[1]+p->score[2])/3;

}}

求C语言源代码 题目 学生成绩管理系统

#include

#include

using namespace std;

int main(int argc, char argv[])

{ #define UP 72

#define DOWN 80

#define INSERT 82

#define DEL 83

#define ENTER 28

#define KEY 12

#define KEY 23

#define KEY 34

#define KEY 45

#define KEY A 30

#define KEY B 48

#define KEY C 46

#define KEY D 32

#define KEY E 18

#define KEY F 33

#define KEY G 34

#define KEY H 35

#define KEY I 23

#define KEY K 37

#define KEY L 38

#define KEY M 50

#define KEY N 49

#define KEY O 24

#define KEY P 25

#define KEY Q 16

#define KEY R 19

#define KEY S 31

#define KEY T 20

#define KEY U 22

#define KEY V 47

#define KEY W 17

#define KEY X 45

#define KEY Y 21

#define KEY Z 44

#define ALT F2 105

#define ALT F6 109

#define CTRL 4

#define SHIFT 1

#define ESC 1

#define BACKSPACE 14

#define LEN sizeof(struct student)

/菜单选项。下拉标志/

int menu x yes=1;

int menu y yes=0;

int menu x=1;

int menu x old=0;

int menu y1=1, menu y3=1;

/保存文件名/

char filename[43]="NONAME.dat";

/开辟保存数据的空间/

void buf=0;

int left,top,right,bottom;

/开辟保存数据的空间/

struct student

{ long num;

char name[15];

float h maths;

float english;

float c;

float sum;

int s sum;

struct studentnext;

};

struct studenthead=0,p1,p2;

int record n;

char key buf[50];

long student number=0;

char student name[13];

float student score=0;

/读键扫描码/

char get key(void)

{ AH=0; int (0X16); return( AH); }

/显示字符/

void show char(char z)

{ AL=z; AH=0x0e; int (0x10);}

/测试是否有键输入/

int key pressed(void)

{ AH=0x0b; int (0x21); if( AL==0) return(0); else return(1);}

/退出程序/

voidquit(void)

{ void free data(void);void restore menu(void); free data();

restore menu(); window(1,1,80,25,0x0f);

cur show(); gotoxy(1,1); exit(1);

}/回到dos提示符/

void os shell(void)

{void mainmenu show(void);

window(1,1,80,25,0x0f);

cur show(); gotoxy(1,1); ("");

mainmenu show();

}/主窗口文字/

void main menu 1(void)

{ int i,j; charp;

charmainmenu word[]={"File ","Se ","Options ","About me"};

if(menu x!=menu x old||!menu y yes)

{p=mainmenu word[0];

putstr(4,1,0x70,p,35);

for(i=0;i<35;i++) if(p++<='Z') putchar(i+4,1,(p-1),0x74);

p=mianmenu word[0];

if(menu x yes)

for(i=0;j=0;i<35;i++)

{it('A'<=p&&(p+1)=='')break;

putchar(i+4,1,p,0x0f); }

p++; }

}}

void main menu 2(void)

{ int i; int len; char p;

charmainmenu word[6]={"F1-Help","F2-Se","F5-OS shell","F10-Menu","Message"};

void main box(void); main box();

p=mainmenu word[0]; putstr(2,25,0x70,p,42);

for(i=0;i<42;i++) {if(p=='F'||('0'<=p&&p<='9'))putchar(i+2,p,0x74); p++; }

p=mainmenu word[4]; putstr(36,22,0x17,p,9); len=strlen(filename);

putchar(40-len/2-1,2,'',0x17);

for(p=filename,i=0;p!=0;p++;i++) putchar(40-len/2+i,2,p,0x17);

putchar(40-len/2+len,2,'',0x17);

}/主窗口线框/

void main box(void)

{ int i;

for(i=1;i<=80;I++) {putchar(i,2,205,0x17); putchar(i,22,196,0x17);putchar(i,24,196,0x17);}

for(i=1;i<=80;i++) {putchar(1,i,179,0x17); putchar(80,i,179,0x17); }

putchar(1,2,213,0x17); putchar(80,2,184,0x17); putchar(1,22,195,0x17);

putchar(80,22,180,0x17); putchar(1,24,192,0x17); putchar(80,24,217,0x17);

}/显示主窗口菜单/

voidmianmenu show (void)

{ textmode set(); cur hide();

window(1,1,80,25,0x1e);

window(1,1,80,1,0x70);

window(1,25,80,25,0x70);

main menu 10; main menu 20;

}/显示下拉菜单/

void menu show (void)

{ int i;

charsubmenu word[][5]={{"New file F4","Open file F3","OS shell F5","Quit Alt-X"},

p"Input F6","Delete F8","Update F9","query F11","Sort F12"}};

switch(menu x)

{case 1:

if(menu x!=mechar [6];//性别nu x old)

{menu x old=menu x; menu window(3,2,18,8); menu box(3,2,18,8,3,0);}

for(i=0;i<2;i++)

{putstr(4,3+i,0x70,submenu word[0][i],14);

putchar(5,3+i,(submenu word[0][i]+1),0x74); }

for(i=3;i<5;i++) putstr(4,3+i,0x7-,submenu word[0][i-1],14);

putchar(6,6,(submenu word[0][2]+2),0x74);

putchar(5,7,(submenu word[0][3]+1),0x74);

window(4,2+menu y1,17,2+menu y1,0x0f);

if(menu y1<=2)

putstr(4,2+menu y1,0x0f,submenu word[0][menu y1-1],14);

putstr(4,2+menu y1,0x0f,submenu word[0][menu y1-2],14); break;

case 2:menu x old=menu x; menu window(19,2,44,8);}

for(i=0;i<5;i++)

{putstr(20,3+i,0x70,submenu word[1][i],24);

putchar(21,3+i,(submenu word[1][i]+1,0x74); }

window(20,2+menu y3,43,2+menu y3,0x0f);

putstr(20,2+menu y3,0x0f,submenu word[1][menu y3-1],24); break;

case 4:menu x old=menu x; }

void clr buf(void){ key buf[1]=0;}

void free data(void)

{ struct studentpa,pb;

if(head)

{pb=pa=head;

do{ pb=pa; pa=pb->next; free(pb);}while(pa!=0);head=0; }

}/姓名处理/

int string name(void)

{ int i,j;

if(key buf[1]==0) return(0);

for(i=2,j=0;i<=key buf[1]+1;i++;j++)

student name[j]='0'; return(1);}

/输入数据/

voidinput(int flag)

{ int i; chars1="NO. Name H maths English CC++ ";

chars2=" | | | | ";

chartitle="INPUT"; menu window(15,10,64,14); window(17,12,62,12,0x17);

putstr(37,10,0x70,title,7); putstr(17,11,0x70,s1,46);

if(head==0)

{ head=p1=p2=(struct student)malloc(LEN);if(!head)memory error();

p1->next=0;

else{

for(p1=head,record n=0;p1!=0;record n++)

{ p2=p1; p1=p2->next; }

p1=(struct student)malloc(LEN);

if(!p1)memory error();

p2->next=p1; }

while(1)

{record n++; putstr(17,12,0x07,s2,46);

if(flag==1)

{gotoxy(52,13); printf("Record%d",record n); }

do{ window(17,12,26,12,0x07);

if(!getstring(17,12,10))goto out ;

}while(!getstring number());

p1->num=student number;

do{ if(!getstring(28,12,12)) goto out;

}while(!string name());

strcpy(pi->name,student name);

for(i=1;i<=3;i++)

{ do{ window(41+(i-1)8,12,0x07);

if(!getstring(41+(i-1)8,12,5)) gotoout;

}while(!string score());

if(i==1)p1->h maths=student score;

if(i==2)pi->english=student score;

if(i==3)p1->c=student score; }

p1->sum=0.0; p1->s num=0;

if(flag==2){record n--;goto out;}

p2=p1;

p1=(struct student)malloc(LEN);

if(!p1)memory error();

p1->next=0; p2->next=p1; }

out: cur hide(); window(15,10,65,15,0x1e);

if(flag==1) {if(head==p1)head=0; free(p1); p2->next=0; (1); record n--; }

menu x yes=1; main menu 1();

}/查看是否有该成绩/

struct student search(int flag)

{ struct student8pa,pb; if(head==0)return(0); pb=pa=head;

if(flag==1)

{if(head->num==student number) return(head-1);

do{ if(pa->num==student number) return(pb);

pb=pa; pa=pb->next;} while(pa!=0); }

return (0);

}/查询,删除,修改对话框/

struct studentmsg box(int which)

{ int flag; int key; charp="<-A B->"; menu window(22,10,60,14); gotoxy(29,11);

printf("Number OR Name"); window(24,12,58,12,0x07); gotoxy(24,12);

printf(" | "); gotoxy(37,10);

switch(which)

{ case 1:printf("Delete");break;

case 2:printf("Update");break;

case 3:printf("Query");break; }

do{ while(!key pressed())

now time();

key=get key(); if(key==KEY A) {flag=1;break;}

if(key==KEY B) {flag=2;break;} printf("07");

}while(1);

putstr(37,13,0x64,p,7);

if(flag==1)

{ do{

gotoxy(24,12); printf(" | "):

if(!getstring(24,12,10)) goto out;

}while(!string number());

window(22,10,61,15,0x1e); return(search(1)); }

{do{ gotoxy(24,12); printf(" | ");

if(!getstring(41,12,12)) goto out;

}while(!string name());

window(22,10,61,15,0x1e); return(0);}

/删除记录/

void delete(void)

{ struct studentpa,pb; pb=msg box(1); if(pb==0)(3);

{ if(pb==(head-1))

{ pb=head; if(pb->next==0) head=0;

else head=pb->next; }

{ if(pb->next->next==0) {pb->next=pa; } }

record n--; (2); }}

/删除记录/

void update(void)

{int i; struct studentp; i=record n; p=msg box(2;

if(p==0)(3);

{ input(2);

if(i==record n)

{if(p==(head-1)){

head->num=p1->num; strcpy(head->name,p1->name);

head->h maths=p1->h maths; head->english=p1->english;

head->c=p1->c; free(p1); p2->next=0; }

else { p->next->num=p1->num; strcpy(p->next->name,p1->name);

p->next->h maths=p1->h maths; p->next->english=p1->english;

p->next->c=p1->c; free(p1); p2->next=0; }

(4); }

else {record n--;p2->next=0;free(p1);(5);} }}

/查询成绩/

void query(void)

{ struct studentp,pa,pb; int key ,flag,i,j;

charstr="NO. Name H matns English CC++ Sum S NO.";

char="NO. Name h maths English CC++ (who fails)";

menu window(26,10,56,12); gotoxy(28,11); printf("Find Fail");

putchar(33,11,'A',0xe4); putchar(49,11,'B',0xe4);

do{if(!key pressed()) now time();

key=get key();

if(key==KEY A){flag=1;break;}

if(key==KEY B){flag=2;break;}

printf("07"); }while(1);

window(26,10,57,13,0x1e); if(flag==1)

{ p=msg box(3); if(p==0) (3);

else{window(6,5,76,21,0x0e); window(5,4,75,20,0x5e); window(6,5,74,19,0x0e);

putstr(13,4,0x5a,str,58); gotoxy(6,6);

if(p!=(head-1)){pa=p->next;p=pa;}

else p=head;

printf("%101d%13s%8.1f%9.1f%9.1f%9.1f%6dn",

p->num,p->name,p->h maths,p->english,p->c,p->sum,p->s sum);

}}

if(flag==2)

{ window(6,5,76,21,0x0e);window(5,4,75,20,0x5e); window(6,5,74,19,0x0e);

putchar(13,4,0x5a,,59); if(head)

{ pa=head; j=0;

do{ j++; i=0; window(6,5,74,19,0x0e); gotoxy(65,20);

printf("Page%d",j);

do

{ if(pa->c<60||pa->h maths<60||pa->english<60)

{gotoxy(6,6+i); i++;

printf("%101d%13s%8.1f%9.1f%9.1f%9.1f%6dn",

p->num,p->name,p->h maths,p->english,p->c,p->sum,p->s sum);}

pb=pa; pa=pb->next; }while(i!=13&&pa!=0);

while(!key pressed()) now time();

get key(); }while(pa!=0);

goto out;}}

while(!key pressed())

now time();get key();

out:window(5,4,76,21,0x1e);}

/成绩排名/

void sort(void)

{ int i,j,n,flag; struct studentpa=0,pb=0;

struct studentp[500],pmin;

charstr="NO. Name H maths English CC++ Sum S NO.";

window(6,5,76,21,0x0e); window(5,4,75,20,0x5e); window(6,5,74,19,0x0e);

putstr(13,4,0x5a,str,58); window(60,20,73,20,0x5b);

if(head!=0)

{ i=0; pb=pa=head;

do

{p[i]=pa; i++; pa->sum=pa->h maths+pa->english+pa->c;

pb=pa; pa=pb->next; }while(pa!=0);

for(n=record n-1,i=0;i

{ flag=0;

for(j=0;j

if(p[j]->sum

sum)

{ pmin=p[j]; p[j]=p[j+1]; p[j+1]=pmin; flag=1; }

if(flag==0)break; }

head=pb=pa=p[0]; head->s sum=1;

if(record n>1)

for(i=1;is sum=i; pb=pa; pa=pb->next=p[i];}

p2=p1=p[record n-1]; p1->s sum=record n;

p1->next=0; pb=pa=head;

j=0;

do{

j++;i=0; window(6,5,74,19,0x0e); gotoxy(65,20); printf("Page%d",j);

do

{gotoxy(6,6+i); i++;

printf("%101d%13s%8.1f%9.1f%9.1f%9.1f%6dn",

p->num,p->name,p->h maths,p->english,p->c,p->sum,p->s sum);}

pb=pa; pa=pb->next; }while(i!=13&&pa!=0);

while(!key pressed()) now time();

get key(); }while(pa!=0);

goto out;}

while(!key pressed())

now time();get key();

out:window(5,4,76,21,0x1e);}

/输入文件名/

int input filename(int m)

{ charp; int fp; menu window(19,10,64,12);

window(20,11,63,11,0x07);

gotoxy(35,10); printf("File name");

if(!getstring(20,11,40)) goto no;

if(key buf[1]==0) goto no;

p=key buf+2; key buf[key buf[1]+2]='0';

if(fp=fopen(p,"rb+"))==0)

{if(m==2) goto no; if(fp=fopen(p,"wb+"))==0 goto no; }

fclose(fp); strcpy(filename,p);

yes: window(19,10,65,13,0x1e);

return(1);

no: window(19,10,65,13,0x1e);

return(0);

}/新建文件/

void new file(void)

{ int fp;

if(input filename(1)==0) (9;

{main menu 2(); free data(); fp=fopen(filename,"wb+"); fclose(fp); (10); }

}/打开文件/

void open file(void)

if(input filename(2)==0)(6);

{free data(); head=pb=pa=(struct student)malloc(LEN); fp=fopen(filename,"rb+";

fread(&pa->num,LEN,1,fp);}

/保存文件/

void se fiel(void)

{ struct student8pa,pb; int fp;

if((fp=fopen(filename,"rb+"))==0) fp=fopen(filename,"wb+");

pb=pa=head;

if(fp!=0&&head!=0)

{do{fwrite(&pa->num,LEN,1,fp); pb=pa; pa=pb->next;}while(pa!=0);

fclose(fp); }

(7);

}void about me(void)

{ int i; chartitle="About Me"; charstr[]={" I'M A BIG.BIG WORLD. "};

menu window(20,5,58,18); putstr(35,5,0x70,title,10);

for(i=0;i<12;i++)putstr(25,6+i,0x75,str[i],29);

while(!key pressed()) now time();

get key(); window(20,5,59,19,0x1e);

}("PAUSE");

return EXIT_SUCCESS;

}

#include

#include

#include

#include

struct student

{int num;//学号

char name[20];//名字

int foxscore;//fox成绩

int cscore;//C语言

int englishscore;//英语成绩

float zong;//总成绩

int mingci;//名次

struct student next;

};

int n=0;

struct student begin()//开辟一个存储空间

{struct student head;

head=(struct student )malloc(sizeof(struct student));

if(head==NULL)

{printf("没有足够空间!n");

}head->next=NULL;

return(head);

}struct student input(struct student head)//输入函数

{int k=1;

struct student student,p1;

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

while(k)

{ printf("输入学生信息:n");

n++;

printf("请输入学生学号:");

scanf("%d",&student->num);

printf("请输入学生姓名:");

scanf("%s",&student->name);

printf("请输入学生性别:");

scanf("%s",&student->);

printf("请输入学生fox成绩:n");

scanf("%d",&student->foxscore);

printf("请输入学生c语言成绩:n");

scanf("%d",&student->cscore);

printf("请输入学生英语成绩:n");

scanf("%d",&student->englishscore);

/ printf("是否继续?是按1 否按0n");

scanf("%d",&k);

p1=(struct student )malloc(sizeof(struct student));

if(k!=0)

{student->next=p1;

student=p1;

}}

student->next=NULL;

return(head);

}/

if(n==1) {student->next=NULL; head=student;}

else {student->next=head;head=student;}

printf("是否继续?是按1 否按0n");

scanf("%d",&k);

p1=(struct student )malloc(sizeof(struct student));

if(k!=0)

{p1->next=student;

student=p1;

}}

return(head);

}struct student revise(struct student head)//修改函数

{ struct student p1,p2;int u,t;

printf("请输入要修改学生学号:");

scanf("%d",&u); p1=head;

if(u==p1->num)

{printf("学号:%dn",p1->num);

printf("姓名: "); puts(p1->name);//printf("n");

printf("性别: "); puts(p1->);//printf("n");

printf("fox成绩:%dn",p1->foxscore);

printf("c语言成绩:%dn",p1->cscore);

printf("英语成绩:%dn",p1->englishscore);

}printf("1.修改学号n");

printf("2.修改姓名n");

printf("3.修改性别n");

printf("4.n");

printf(" please input cho(0-4):");

scanf("%d",&t);

switch(t)

{ case 1: {printf("请输入学生学号:");

scanf("%d",&p1->num);} break;

case 2: {printf("请输入学生姓名:");

scanf("%s",&p1->name);} break;

case 3: {printf("请输入学生性别:");

scanf("%s",&p1->);} break;

case 4: { printf("请输入学生fox成绩:n");

scanf("%d",&p1->foxscore);

printf("请输入学生c语言成绩:n");

scanf("%d",&p1->cscore);

printf("请输入学生英语成绩:n");} break;

}return(head);

}void print(struct student head)//输出函数

{struct student p;

p=head;

do

{printf("学号:%dn",p->num);

printf("姓名: "); puts(p->name);

printf("性别: "); puts(p->);

printf("fox成绩: %dn",p->foxscore);

printf("c语言成绩: %dn",p->cscore);

printf("英语成绩: %dn",p->englishscore);

p->zong=(float)(p->foxscore+p->cscore+p->englishscore);

printf("总成绩: %.1fn",p->zong);

printf("n");

p=p->next; }while(p!=NULL);

}void paiming(struct student head)//排名次

{int i; struct student p0,p1,p2;

for(i=1;i

{p2=head;p1=p2;

p0=(struct student )malloc(sizeof(struct student));

while(p2->next!=NULL)

{ p1=p2->next;

if(p2->zong

zong)

{p0->num=p2->num;strcpy(p0->name,p2->name);strcpy(p0->,p2->);

p0->zong=p2->zong;p0->mingci=p2->mingci;

p0->foxscore=p2->foxscore;p0->cscore=p2->cscore;p0->englishscore=p2->englishscore;

p2->num=p1->num;strcpy(p2->name,p1->name);strcpy(p2->,p1->);

p2->zong=p1->zong;p2->mingci=p1->mingci;

p2->foxscore=p1->foxscore;p2->cscore=p1->cscore;p2->engofstream outfile(cc.c_str(),ios::binary);lishscore=p1->englishscore;

p1->num=p0->num;strcpy(p1->name,p0->name);strcpy(p1->,p0->);

p1->zong=p0->zong;p1->mingci=p0->mingci;

p1->foxscore=p0->foxscore;p1->cscore=p0->cscore;p1->englishscore=p0->englishscore; }

//交换结点内容

}}

p1=head;

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

{p1->mingci=i; p1=p1->next;

}}

void chaxun(struct student head)//查询函数

{int t,nu,mc;char na[20];struct student p1,p2;

printf("1.按学号查询n");

printf("2.按姓名查询n");

printf("3.按名次查询n");

printf("0.退出n");

printf(" please input cho(0-3):");

scanf("%d",&t);

switch(t)

{case 1: {printf("请输入学生学号:");

scanf("%d",&nu);

if(head==NULL) printf("无数据n");

p1=head;

while(nu!=p1->num&&p1->next!=NULL)

{printf("学号:%dn",p1->num);

printf("姓名: "); puts(p1->name);

printf("性别: "); puts(p1->);

printf("fox成绩: %dn",p1->foxscore);

printf("c语言成绩: %dn",p1->cscore);

printf("英语成绩: %dn",p1->englishscore);

printf("n");

}else printf("学号%d 的学生未找到n",nu);};break;

case 2: { printf("请输入学生姓名:");

scanf("%s",na);

if(head==NULL) {printf("无数据n");}

p1=head;

while(strcmp(na,p1->name)!=0&&p1->next!=NULL)

if(strcmp(na,p1->name)==0)

{printf("学号:%dn",p1->num);

printf("姓名: "); puts(p1->name);

printf("性别: "); puts(p1->);

printf("fox成绩: %dn",p1->foxscore);

printf("c语言成绩: %dn",p1->cscore);

printf("英语成绩: %dn",p1->englishscore);

}else printf("该学生未找到n");} break;

case 3: {paiming(head);

scanf("%d",&mc);

if(head==NULL) {printf("无数据n");}

p1=head;

while(mc!=p1->mingci&&p1->next!=NULL)

if(mc==p1->mingci)

{printf("学号:%dn",p1->num);

printf("姓名: "); puts(p1->name);

printf("性别: "); puts(p1->);

printf("fox成绩: %dn",p1->foxscore);

printf("c语言成绩: %dn",p1->cscore);

printf("英语成绩: %dn",p1->englishscore);

}else printf("名次%d 的学生未找到n",mc);} break;

case 0:break;

}}

struct student shanchu(struct student head)//删除函数

{int t,nu,mc;char na[20];struct student p1,p2;

printf("1.按学号删除n");

printf("2.按姓名删除n");

printf("3.按名次删除n");

printf("0.退出n");

printf(" please input cho(0-3):");

scanf("%d",&t);

switch(t)

{case 1: {printf("请输入学学号:");

scanf("%d",&nu);

if(head==NULL) {printf("无数据n");return NULL;}

p1=head;

while(nu!=p1->num&&p1->next!=NULL)

{if(p1==head)head=p1->next;

else p2->next=p1->next;

n=n-1;

free(p1);printf("已删除");

}else printf("学号%d 的学生未找到n",nu);} break;

case 2: { printf("请输入学生姓名:");

scanf("%s",na);

if(head==NULL) {printf("无数据n");return NULL;}

p1=head;

while(strcmp(na,p1->name)!=0&&p1->next!=NULL)

if(strcmp(na,p1->name)==0)

{if(p1==head)head=p1->next;

else p2->next=p1->next;

n=n-1;

free(p1);printf("已删除");

}else printf("该学生未找到n");} break;

case 3: { paiming(head);

scanf("%d",&mc);

if(head==NULL) {printf("无数据n");return NULL;}

p1=head;

while(mc!=p1->mingci&&p1->next!=NULL)

if(mc==p1->mingci)

{if(p1==head)head=p1->next;

else p2->next=p1->next;

n=n-1;

free(p1);printf("已删除");

}else printf("名次%d 的学生未找到n",mc);} break;

case 0:break;

}return(head);}

struct student paixu(struct student head)//排序函数

{int i,s,t;struct student p1,p2,p0;

printf("1.按学号排序n");

printf("2.按姓名排序n");

printf("3.按成绩排序n");

printf("0.退出n");

printf(" please input cho(1-3):");

scanf("%d",&t);

switch(t)

{case 1:

{printf("1.按学号升续n");

printf("2.按学号降续n");

scanf("%d",&s);

for(i=1;i

{p2=head;p1=p2;

p0=(struct student )malloc(sizeof(struct student));

if(s==1)

{while(p2->next!=NULL)

{ p1=p2->next;

if(p2->num>p1->num)

{p0->num=p2->num;strcpy(p0->name,p2->name);strcpy(p0->,p2->);

p0->zong=p2->zong;p0->mingci=p2->mingci;

p0->foxscore=p2->foxscore;p0->cscore=p2->cscore;p0->englishscore=p2->englishscore;

p2->num=p1->num;strcpy(p2->name,p1->name);strcpy(p2->,p1->);

p2->zong=p1->zong;p2->mingci=p1->mingci;

p2->foxscore=p1->foxscore;p2->cscore=p1->cscore;p2->englishscore=p1->englishscore;

p1->num=p0->num;strcpy(p1->name,p0->name);strcpy(p1->,p0->);

p1->zong=p0->zong;p1->mingci=p0->mingci;

p1->foxscore=p0->foxscore;p1->cscore=p0->cscore;p1->englishscore=p0->englishscore; }

//交换结点内容

}}

else if(s==2)

{while(p2->next!=NULL)

{ p1=p2->next;

if(p2->num

num)

{p0->num=p2->num;strcpy(p0->name,p2->name);strcpy(p0->,p2->);

p0->zong=p2->zong;p0->mingci=p2->mingci;

p0->foxscore=p2->foxscore;p0->cscore=p2->cscore;p0->englishscore=p2->englishscore;

p2->num=p1->num;strcpy(p2->name,p1->name);strcpy(p2->,p1->);

p2->zong=p1->zong;p2->mingci=p1->mingci;

p2->foxscore=p1->foxscore;p2->cscore=p1->cscore;p2->englishscore=p1->englishscore;

p1->num=p0->num;strcpy(p1->name,p0->name);strcpy(p1->,p0->);

p1->zong=p0->zong;p1->mingci=p0->mingci;

p1->foxscore=p0->foxscore;p1->cscore=p0->cscore;p1->englishscore=p0->englishscore; }

//交换结点内容

}}

}}

break;

case 2:

{printf("1.按姓名升续n");

printf("2.按姓名降续n");

scanf("%d",&s);

for(i=1;i

{p2=head;p1=p2;

p0=(struct student )malloc(sizeof(struct student));

if(s==1)

{while(p2->next!=NULL)

{ p1=p2->next;

if(strcmp(p1->name,p2->name)<0)

{p0->num=p2->num;strcpy(p0->name,p2->name);strcpy(p0->,p2->);

p0->zong=p2->zong;p0->mingci=p2->mingci;

p0->foxscore=p2->foxscore;p0->cscore=p2->cscore;p0->englishscore=p2->englishscore;

p2->num=p1->num;strcpy(p2->name,p1->name);strcpy(p2->,p1->);

p2->zong=p1->zong;p2->mingci=p1->mingci;

p2->foxscore=p1->foxscore;p2->cscore=p1->cscore;p2->englishscore=p1->englishscore;

p1->num=p0->num;strcpy(p1->name,p0->name);strcpy(p1->,p0->);

p1->zong=p0->zong;p1->mingci=p0->mingci;

p1->foxscore=p0->foxscore;p1->cscore=p0->cscore;p1->englishscore=p0->englishscore; }

//交换结点内容

}}

else if(s==2)

{while(p2->next!=NULL)

{ p1=p2->next;

if(strcmp(p1->name,p2->name)>0)

{p0->num=p2->num;strcpy(p0->name,p2->name);strcpy(p0->,p2->);

p0->zong=p2->zong;p0->mingci=p2->mingci;

p0->foxscore=p2->foxscore;p0->cscore=p2->cscore;p0->englishscore=p2->englishscore;

p2->num=p1->num;strcpy(p2->name,p1->name);strcpy(p2->,p1->);

p2->zong=p1->zong;p2->mingci=p1->mingci;

p2->foxscore=p1->foxscore;p2->cscore=p1->cscore;p2->englishscore=p1->englishscore;

p1->num=p0->num;strcpy(p1->name,p0->name);strcpy(p1->,p0->);

p1->zong=p0->zong;p1->mingci=p0->mingci;

p1->foxscore=p0->foxscore;p1->cscore=p0->cscore;p1->englishscore=p0->englishscore;}

//交换结点内容

}}

}}

break;

case 3:

{ printf("1.按成绩升续n");

printf("2.按成绩降续n");

scanf("%d",&s);

for(i=1;i

{p2=head;p1=p2;

p0=(struct student )malloc(sizeof(struct student));

if(s==1)

{while(p2->next!=NULL)

{ p1=p2->next;

if(p2->zong>p1->zong)

{p0->num=p2->num;strcpy(p0->name,p2->name);strcpy(p0->,p2->);

p0->zong=p2->zong;p0->mingci=p2->mingci;

p0->foxscore=p2->foxscore;p0->cscore=p2->cscore;p0->englishscore=p2->englishscore;

p2->num=p1->num;strcpy(p2->name,p1->name);strcpy(p2->,p1->);

p2->zong=p1->zong;p2->mingci=p1->mingci;

p2->foxscore=p1->foxscore;p2->cscore=p1->cscore;p2->englishscore=p1->englishscore;

p1->num=p0->num;strcpy(p1->name,p0->name);strcpy(p1->,p0->);

p1->zong=p0->zong;p1->mingci=p0->mingci;

p1->foxscore=p0->foxscore;p1->cscore=p0->cscore;p1->englishscore=p0->englishscore;}

//交换结点内容

}}

else if(s==2)

{while(p2->next!=NULL)

{ p1=p2->next;

if(p2->zong

zong)

{p0->num=p2->num;strcpy(p0->name,p2->name);strcpy(p0->,p2->);

p0->zong=p2->zong;p0->mingci=p2->mingci;

p0->foxscore=p2->foxscore;p0->cscore=p2->cscore;p0->englishscore=p2->englishscore;

p2->num=p1->num;strcpy(p2->name,p1->name);strcpy(p2->,p1->);

p2->zong=p1->zong;p2->mingci=p1->mingci;

p2->foxscore=p1->foxscore;p2->cscore=p1->cscore;p2->englishscore=p1->englishscore;

p1->num=p0->num;strcpy(p1->name,p0->name);strcpy(p1->,p0->);

p1->zong=p0->zong;p1->mingci=p0->mingci;

p1->foxscore=p0->foxscore;p1->cscore=p0->cscore;p1->englishscore=p0->englishscore;}

//交换结点内容

}}

}}

break;

case 0:break;

}print(head);

return(head);}

//作文件

void se(struct student l)

{struct student y;

FILE fp;

char ch[20];

cout<<"请输入文件名!"<

scanf("%s",ch);

if((fp=fopen(ch,"wb+"))==NULL)

{cout<<"打开失败!"<

exit(0);}

for(y=l;y!=NULL;y=y->next)

fwrite(y,sizeof(struct student),1,fp);

fclose(fp);

cout<<"保存成功!"<

}void readfl()

{struct student k,st;

char ch[20];

FILE fp;

k=&st;

cout<<"请输入您要打开的文件名!"<

scanf("%s",ch);

if((fp=fopen(ch,"rb+"))==NULL)

{cout<<"打开失败!"<

exit(0);}

fread(&st,sizeof(struct student),1,fp);

while(!feof(fp))

{printf("学号:%dn",k->num);

printf("姓名: "); puts(k->name);//printf("n");

printf("性别: goto loop;"); puts(k->);//printf("n");

printf("fox成绩: %dn",k->foxscore);

printf("c语言成绩: %dn",k->cscore);

printf("英语成绩: %dn",k->englishscore);

k->zong=(float)(k->foxscore+k->cscore+k->englishscore);

printf("总成绩: %.1fn",k->zong);

fread(&st,sizeof(struct student),1,fp);

}void main()

{int c; struct student head;

head=begin();

printf("ntt学生成绩管理系统nn");

while(1)

{printf("ntt菜单nn");

printf( "ttt1.建立信息 n");

printf( "ttt2.信息修改 n");

printf("ttt3.信息显示 n");

printf("ttt4.信息查询 n");

printf("ttt5.信息删除 n");

printf("ttt6.按学生信息排序 n");

printf("ttt7.信息保存 n");

printf("ttt8.信息输出 n");

printf( "ttt0.退出 n");

printf("ttn");

do {

printf("ntt please input cho(0-9):");

scanf("%d",&c);

}while(c<0||c>8);

//return c;

switch (c)

{ case 1:head=input(head);break;

case 2:if(n==0) printf("请先输入信息");

else head=revise(head);break;

case 3:if(n==0) printf("请先输入信息");

else print(head); break;

case 4:chaxun(head);break;

case 5:head=shanchu(head);break;

case 6:if(n==0) printf("请先输入信息");

else head=paixu(head);break;

case 7:se(head);break;

case 8:if(n==0) printf("请先输入信息");

else readfl();break;

case 0:exit(0);break;}

}}

版权声明:本文发布于龙途教育 图片、内容均来源于互联网 如有侵权联系836084111@qq.com删除
随机内容