C语言编程题,急求,(要求用C语言编写)(题目二选一) C语言二选一题

C\u8bed\u8a00\u7f16\u7a0b\uff0c2\u90091\uff0c\u6025\u6025

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int shoudsave=0; //
struct student
{
char num[10];//\u5b66\u53f7
char name[20];
char sex[4];
int cgrade;
int mgrade;
int egrade;
int totle;
int ave;
char neartime[10];//\u6700\u8fd1\u66f4\u65b0\u65f6\u95f4
};

typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;

void menu()
{
printf("********************************************************************************");
printf("\t1\u8f93\u5165\u5b66\u751f\u8d44\u6599\t\t\t\t\t2\u5220\u9664\u5b66\u751f\u8d44\u6599\n");
printf("\t3\u67e5\u8be2\u5b66\u751f\u8d44\u6599\t\t\t\t\t4\u4fee\u6539\u5b66\u751f\u8d44\u6599\n");
printf("\t5\u663e\u793a\u5b66\u751f\u8d44\u6599\t\t\t\t\t6\u7edf\u8ba1\u5b66\u751f\u6210\u7ee9\n");
printf("\t7\u6392\u5e8f\u5b66\u751f\u6210\u7ee9\t\t\t\t\t8\u4fdd\u5b58\u5b66\u751f\u8d44\u6599\n");
printf("\t9\u83b7\u53d6\u5e2e\u52a9\u4fe1\u606f\t\t\t\t\t0\u9000\u51fa\u7cfb\u7edf\n");
printf("********************************************************************************\n");
}

void printstart()
{
printf("-----------------------------------------------------------------------\n");
}
void Wrong()
{
printf("\n=====>\u63d0\u793a:\u8f93\u5165\u9519\u8bef!\n");
}

void Nofind()
{
printf("\n=====>\u63d0\u793a:\u6ca1\u6709\u627e\u5230\u8be5\u5b66\u751f!\n");
}

void printc() // \u672c\u51fd\u6570\u7528\u4e8e\u8f93\u51fa\u4e2d\u6587
{
printf(" \u5b66\u53f7\t \u59d3\u540d \u6027\u522b \u82f1\u8bed\u6210\u7ee9 \u6570\u5b66\u6210\u7ee9 C\u8bed\u8a00\u6210\u7ee9 \u603b\u5206 \u5e73\u5747\u5206\n");
}

void printe(Node *p)//\u672c\u51fd\u6570\u7528\u4e8e\u8f93\u51fa\u82f1\u6587
{
printf("%-12s%s\t%s\t%d\t%d\t%d\t %d\t %d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave);
}

Node* Locate(Link l,char findmess[],char nameornum[]) //\u8be5\u51fd\u6570\u7528\u4e8e\u5b9a\u4f4d\u8fde\u8868\u4e2d\u7b26\u5408\u8981\u6c42\u7684\u63a5\u70b9\uff0c\u5e76\u8fd4\u56de\u8be5\u6307\u9488
{
Node *r;
if(strcmp(nameornum,"num")==0) //\u6309\u5b66\u53f7\u67e5\u8be2
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findmess)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) //\u6309\u59d3\u540d\u67e5\u8be2
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findmess)==0)
return r;
r=r->next;
}
}
return 0;
}

void Add(Link l) //\u589e\u52a0\u5b66\u751f
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next; //\u5c06\u6307\u9488\u7f6e\u4e8e\u6700\u672b\u5c3e
while(1)
{
printf("\u8bf7\u4f60\u8f93\u5165\u5b66\u53f7(\u4ee5'0'\u8fd4\u56de\u4e0a\u4e00\u7ea7\u83dc\u5355:)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====>\u63d0\u793a:\u5b66\u53f7\u4e3a'%s'\u7684\u5b66\u751f\u5df2\u7ecf\u5b58\u5728,\u82e5\u8981\u4fee\u6539\u8bf7\u4f60\u9009\u62e9'4 \u4fee\u6539'!\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}

p=(Node *)malloc(sizeof(Node));

strcpy(p->data.num,num);
printf("\u8bf7\u4f60\u8f93\u5165\u59d3\u540d:");
scanf("%s",p->data.name);
getchar();
printf("\u8bf7\u4f60\u8f93\u5165\u6027\u522b:");
scanf("%s",p->data.sex);
getchar();
printf("\u8bf7\u4f60\u8f93\u5165c\u8bed\u8a00\u6210\u7ee9:");
scanf("%d",&p->data.cgrade);
getchar();
printf("\u8bf7\u4f60\u8f93\u5165\u6570\u5b66\u6210\u7ee9:");
scanf("%d",&p->data.mgrade);
getchar();
printf("\u8bf7\u4f60\u8f93\u5165\u82f1\u8bed\u6210\u7ee9:");
scanf("%d",&p->data.egrade);
getchar();
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle / 3;
//\u4fe1\u606f\u8f93\u5165\u5df2\u7ecf\u5b8c\u6210
p->next=NULL;
r->next=p;
r=p;
shoudsave=1;

}
}

void Qur(Link l) //\u67e5\u8be2\u5b66\u751f
{
int sel;
char findmess[20];
Node *p;

if(!l->next)
{
printf("\n=====>\u63d0\u793a:\u6ca1\u6709\u8d44\u6599\u53ef\u4ee5\u67e5\u8be2!\n");
return;
}
printf("\n=====>1\u6309\u5b66\u53f7\u67e5\u627e\n=====>2\u6309\u59d3\u540d\u67e5\u627e\n");
scanf("%d",&sel);
if(sel==1)//\u5b66\u53f7
{
printf("\u8bf7\u4f60\u8f93\u5165\u8981\u67e5\u627e\u7684\u5b66\u53f7:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("\t\t\t\t\u67e5\u627e\u7ed3\u679c\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else if(sel==2) //\u59d3\u540d
{
printf("\u8bf7\u4f60\u8f93\u5165\u8981\u67e5\u627e\u7684\u59d3\u540d:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
printf("\t\t\t\t\u67e5\u627e\u7ed3\u679c\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
Wrong();

}

void Del(Link l) //\u5220\u9664
{
int sel;
Node *p,*r;
char findmess[20];
if(!l->next)
{
printf("\n=====>\u63d0\u793a:\u6ca1\u6709\u8d44\u6599\u53ef\u4ee5\u5220\u9664!\n");
return;
}
printf("\n=====>1\u6309\u5b66\u53f7\u5220\u9664\n=====>2\u6309\u59d3\u540d\u5220\u9664\n");
scanf("%d",&sel);
if(sel==1)
{
printf("\u8bf7\u4f60\u8f93\u5165\u8981\u5220\u9664\u7684\u5b66\u53f7:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>\u63d0\u793a:\u8be5\u5b66\u751f\u5df2\u7ecf\u6210\u529f\u5220\u9664!\n");
shoudsave=1;
}
else
Nofind();
}
else if(sel==2)
{
printf("\u8bf7\u4f60\u8f93\u5165\u8981\u5220\u9664\u7684\u59d3\u540d:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>\u63d0\u793a:\u8be5\u5b66\u751f\u5df2\u7ecf\u6210\u529f\u5220\u9664!\n");
shoudsave=1;
}
else
Nofind();
}
else
Wrong();
}

void Modify(Link l)
{
Node *p;
char findmess[20];
if(!l->next)
{
printf("\n=====>\u63d0\u793a:\u6ca1\u6709\u8d44\u6599\u53ef\u4ee5\u4fee\u6539!\n");
return;
}
printf("\u8bf7\u4f60\u8f93\u5165\u8981\u4fee\u6539\u7684\u5b66\u751f\u5b66\u53f7:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("\u8bf7\u4f60\u8f93\u5165\u65b0\u5b66\u53f7(\u539f\u6765\u662f%s):",p->data.num);
scanf("%s",p->data.num);
printf("\u8bf7\u4f60\u8f93\u5165\u65b0\u59d3\u540d(\u539f\u6765\u662f%s):",p->data.name);
scanf("%s",p->data.name);
getchar();
printf("\u8bf7\u4f60\u8f93\u5165\u65b0\u6027\u522b(\u539f\u6765\u662f%s):",p->data.sex);
scanf("%s",p->data.sex);
printf("\u8bf7\u4f60\u8f93\u5165\u65b0\u7684c\u8bed\u8a00\u6210\u7ee9(\u539f\u6765\u662f%d\u5206):",p->data.cgrade);
scanf("%d",&p->data.cgrade);
getchar();
printf("\u8bf7\u4f60\u8f93\u5165\u65b0\u7684\u6570\u5b66\u6210\u7ee9(\u539f\u6765\u662f%d\u5206):",p->data.mgrade);
scanf("%d",&p->data.mgrade);
getchar();
printf("\u8bf7\u4f60\u8f93\u5165\u65b0\u7684\u82f1\u8bed\u6210\u7ee9(\u539f\u6765\u662f%d\u5206):",p->data.egrade);
scanf("%d",&p->data.egrade);
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle/3;
printf("\n=====>\u63d0\u793a:\u8d44\u6599\u4fee\u6539\u6210\u529f!\n");
shoudsave=1;
}
else
Nofind();

}

void Disp(Link l)
{
int count=0;
Node *p;
p=l->next;

if(!p)
{
printf("\n=====>\u63d0\u793a:\u6ca1\u6709\u8d44\u6599\u53ef\u4ee5\u663e\u793a!\n");
return;
}
printf("\t\t\t\t\u663e\u793a\u7ed3\u679c\n");
printstart();
printc();
printf("\n");
while(p)
{
printe(p);
p=p->next;
}
printstart();
printf("\n");
}

void Tongji(Link l)
{
Node *pm,*pe,*pc,*pt,*pa; //\u7528\u4e8e\u6307\u5411\u5206\u6570\u6700\u9ad8\u7684\u63a5\u70b9
Node *r=l->next;
if(!r)
{
printf("\n=====>\u63d0\u793a:\u6ca1\u6709\u8d44\u6599\u53ef\u4ee5\u7edf\u8ba1!\n");
return ;
}
pm=pe=pc=pt=pa=r;
while(r!=NULL)
{
if(r->data.cgrade>=pc->data.cgrade)
pc=r;
if(r->data.mgrade>=pm->data.mgrade)
pm=r;
if(r->data.egrade>=pe->data.egrade)
pe=r;
if(r->data.totle>=pt->data.totle)
pt=r;
if(r->data.ave>=pa->data.ave)
pa=r;
r=r->next;
}
printf("------------------------------\u7edf\u8ba1\u7ed3\u679c--------------------------------\n");
printf("\u603b\u5206\u6700\u9ad8\u8005:\t%s %d\u5206\n",pt->data.name,pt->data.totle);
printf("\u5e73\u5747\u5206\u6700\u9ad8\u8005:\t%s %d\u5206\n",pa->data.name,pa->data.ave);

printf("\u82f1\u8bed\u6700\u9ad8\u8005:\t%s %d\u5206\n",pe->data.name,pe->data.egrade);
printf("\u6570\u5b66\u6700\u9ad8\u8005:\t%s %d\u5206\n",pm->data.name,pm->data.mgrade);
printf("c\u8bed\u8a00\u6700\u9ad8\u8005:\t%s %d\u5206\n",pc->data.name,pc->data.cgrade);
printstart();
}

void Sort(Link l)
{
Link ll;
Node *p,*rr,*s;

ll=(Link)malloc(sizeof(Node)); //\u7528\u4e8e\u505a\u65b0\u7684\u8fde\u8868
ll->next=NULL;

if(l->next==NULL)
{
printf("\n=====>\u63d0\u793a:\u6ca1\u6709\u8d44\u6599\u53ef\u4ee5\u6392\u5e8f!\n");
return ;
}
p=l->next;
while(p)
{
s=(Node*)malloc(sizeof(Node)); //\u65b0\u5efa\u63a5\u70b9\u7528\u4e8e\u4fdd\u5b58\u4fe1\u606f
s->data=p->data;
s->next=NULL;

rr=ll;
while(rr->next!=NULL && rr->next->data.totle>=p->data.totle)
rr=rr->next;
if(rr->next==NULL)
rr->next=s;
else
{
s->next=rr->next;
rr->next=s;
}
p=p->next;
}
free(l);
l->next=ll->next;
printf("\n=====>\u63d0\u793a:\u6392\u5e8f\u5df2\u7ecf\u5b8c\u6210!\n");
}

void Save(Link l)
{
FILE* fp;
Node *p;
int flag=1,count=0;
fp=fopen("c:\\student","wb");
if(fp==NULL)
{
printf("\n=====>\u63d0\u793a:\u91cd\u65b0\u6253\u5f00\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef!\n");
exit(1);
}
p=l->next;

while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
printf("\n=====>\u63d0\u793a:\u6587\u4ef6\u4fdd\u5b58\u6210\u529f.(\u6709%d\u6761\u8bb0\u5f55\u5df2\u7ecf\u4fdd\u5b58.)\n",count);
shoudsave=0;
}
fclose(fp);
}

void main()
{
Link l;//\u8fde\u8868
FILE *fp; //\u6587\u4ef6\u6307\u9488
int sel;
char ch;
char jian;

int count=0;
Node *p,*r;
printf("\t\t\t\t\u5b66\u751f\u6210\u7ee9\u7ba1\u7406\u7cfb\u7edf\n\t\t\t\t-------01\u8f6f\u4ef6\u5b66\u9662 \u5434\u6d77\u677e(200155304)\n");
l=(Node*)malloc(sizeof(Node));
l->next=NULL;
r=l;

fp=fopen("C:\\student","rb");
if(fp==NULL)
{
printf("\n=====>\u63d0\u793a:\u6587\u4ef6\u8fd8\u4e0d\u5b58\u5728\uff0c\u662f\u5426\u521b\u5efa\uff1f(y/n)\n");
scanf("%c",&jian);
if(jian=='y'||jian=='Y')
fp=fopen("C:\\student","wb");
else
exit(0);
}
printf("\n=====>\u63d0\u793a:\u6587\u4ef6\u5df2\u7ecf\u6253\u5f00,\u6b63\u5728\u5bfc\u5165\u8bb0\u5f55......\n");

while(!feof(fp))
{
p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp)) //\u5c06\u6587\u4ef6\u7684\u5185\u5bb9\u653e\u5165\u63a5\u70b9\u4e2d
{
p->next=NULL;
r->next=p;
r=p; //\u5c06\u8be5\u63a5\u70b9\u6302\u5165\u8fde\u4e2d
count++;
}
}

fclose(fp); //\u5173\u95ed\u6587\u4ef6
printf("\n=====>\u63d0\u793a:\u8bb0\u5f55\u5bfc\u5165\u5b8c\u6bd5,\u5171\u5bfc\u5165%d\u6761\u8bb0\u5f55.\n",count);

while(1)
{
menu();
printf("\u8bf7\u4f60\u9009\u62e9\u64cd\u4f5c:");
scanf("%d",&sel);

if(sel==0)
{
if(shoudsave==1)
{ getchar();
printf("\n=====>\u63d0\u793a:\u8d44\u6599\u5df2\u7ecf\u6539\u52a8,\u662f\u5426\u5c06\u6539\u52a8\u4fdd\u5b58\u5230\u6587\u4ef6\u4e2d(y/n)?\n");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(l);
}
printf("\n=====>\u63d0\u793a:\u4f60\u5df2\u7ecf\u9000\u51fa\u7cfb\u7edf,\u518d\u89c1!\n");
break;
}
switch(sel)
{
case 1:Add(l);break; //\u589e\u52a0\u5b66\u751f
case 2:Del(l);break;//\u5220\u9664\u5b66\u751f
case 3:Qur(l);break;//\u67e5\u8be2\u5b66\u751f
case 4:Modify(l);break;//\u4fee\u6539\u5b66\u751f
case 5:Disp(l);break;//\u663e\u793a\u5b66\u751f
case 6:Tongji(l);break;//\u7edf\u8ba1\u5b66\u751f
case 7:Sort(l);break;//\u6392\u5e8f\u5b66\u751f
case 8:Save(l);break;//\u4fdd\u5b58\u5b66\u751f
case 9:printf("\t\t\t==========\u5e2e\u52a9\u4fe1\u606f==========\n");break;
default: Wrong();getchar();break;
}
}
}

\u9009\u62e9B\uff0c\u53ea\u56e0\u4e3asizeof\u662f\u8fd0\u7b97\u7b26\u800c\u4e0d\u662f\u51fd\u6570\u540d\u3002\u6240\u4ee5\u4e0d\u53ef\u80fd\u662f\u51fd\u6570\u8c03\u7528\u3002\u4e3a\u4ec0\u4e48\u4f1a\u8fd9\u4e48\u786e\u5b9asizeof\u662f\u8fd0\u7b97\u7b26\uff0c\u56e0\u4e3a\u5728C\u8bed\u8a00\u4e2d\u6709\u3002\u800c\u4e14\u5173\u952e\u540d\u662f\u4e0d\u53ef\u4ee5\u505a\u53d8\u91cf\u540d\u6216\u8005\u51fd\u6570\u540d\u3002\u6240\u4ee5\u6700\u540e\u53ea\u80fd\u9009\u62e9B\u3002

# include <iostream>
# include <fstream>
# include <string.h>
#include <conio.h>//用getch();
using namespace std;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Student
{
public:
char name[20];
char Id[20];
int Cnum; //C++课程得分
int Mnum; //汇编课程得分
int Enum; //嵌入式操作系统课程得分
int sum; //总分
Student * Next;
void Input()
{
cout<<"\t\t请输入学生的姓名:"; cin>>name;
cout<<"\t\t请输入学生的学号:"; cin>>Id;
cout<<"\t\t请输入C++课程的成绩:"; cin>>Cnum;
cout<<"\t\t请输入汇编课程的成绩:"; cin>>Mnum;
cout<<"\t\t请输入嵌入式操作系统课程的成绩:"; cin>>Enum;
sum=Cnum+Mnum+Enum;
}
void ReadFile(istream & in)
{
in>>name>>Id>>Cnum>>Mnum>>Enum>>sum;
}
void Show()
{
cout<<"姓名:"<<name<<endl<<"学号:"<<Id<<endl<<"C++:"<<Cnum<<endl
<<"汇编:"<<Mnum<<endl<<"嵌入式操作系统:"<<Enum<<endl<<"总成绩:"<<sum<<endl<<endl<<endl;
}
};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Studentmassage
{
public:
Studentmassage();
~Studentmassage();
void ShowMenu();
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Student *,Student *);
void Sort();
//void Unpass();
int ListCount();
//void Average();
void Display()
{
for(Student * p=Head->Next;p!=End;p=p->Next)
p->Show();
cout<<"输入任意字符!继续……";
getch();
}
void AddItem()
{
End->Input();
End->Next=new Student;
End=End->Next;
cout<<"添加成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
private:
Student * Head,* End;
ifstream in;
ofstream out;
Student *FindItem(char * name)
{
for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->name,name))return p;
return NULL;
}
Student *FindID(char * Id)
{
for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->Id,Id))return p;
return NULL;
}
};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::Studentmassage()
{
Head=new Student;
Head->Next=new Student;
End=Head->Next;
in.open("sort.txt");
if(!in)
cout<<"这是一个新系统,无学生信息。请先输入。"<<endl;
else
{
while(!in.eof())
{
End->ReadFile(in);
if(End->name[0]=='\0')break;
End->Next=new Student;
End=End->Next;
}
in.close();
cout<<"\t\t读取学生信息成功!"<<endl;
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::~Studentmassage()
{
Save();
for(Student * temp;Head->Next!=End;)
{
temp=Head->Next;
Head->Next=Head->Next->Next;
delete temp;
}
delete Head,End;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ShowMenu()
{
cout<<"********************************************************************************"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 学 生 成 绩 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增加学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.显示学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.排序统计成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查找学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.删除学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.修改学生信息 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;

cout<<"\n\t\t\n\t\t请选择:";
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Find()
{
char name[20] ,Id[10];
int x;
Student * p=NULL;
cout<<"\n\t\t*********************************\n";
cout<<"\t\t※ 1.按学生的姓名查找\n\t\t※ 2.按学生学号查找";
cout<<"\n\t\t*********************************\n请选择:";
cin>>x;
switch(x)
{
case 1:{cout<<"\t\t请输入要查找的学生的姓名:";cin>>name;
if(p=FindItem(name))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"\t\t没有找到该姓名的学生!"<<'\n'<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}break;
case 2:
{
cout<<"\t\t请输入要查找的学生的学号:";cin>>Id;
if(p=FindID(Id))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"\t\t没有找到该学好的学生!"<<'\n'<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}break;
}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ModifyItem() //修改信息
{
char name[20];
Student * p=NULL;
cout<<"\t\t请输入要修改的人的姓名:";cin>>name;
if(p=FindItem(name))
{
cout<<"\t\t已找到学生的信息,请输入新的信息!"<<endl;
p->Next->Input();
cout<<"修改成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"\t\t没有找到!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::RemoveItem() // 删除信息
{
char name[20];
Student * p=NULL,*temp=NULL;
cout<<"\t\t请输入要删除的学生的姓名:"<<endl;cin>>name;
if(p=FindItem(name))
{
temp=p->Next;
p->Next=p->Next->Next;
delete temp;
cout<<"\t\t删除成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"\t\t没有找到!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Swap(Student *p1, Student *p2)//交换两个combox变量的数据域
{
Student *temp=new Student;
strcpy(temp->name,p1->name);
strcpy(temp->Id,p1->Id);
temp->Cnum=p1->Cnum;
temp->Mnum=p1->Mnum;
temp->Enum=p1->Enum;
temp->sum=p1->sum;

strcpy(p1->name,p2->name);
strcpy(p1->Id,p2->Id);
p1->Cnum=p2->Cnum;
p1->Mnum=p2->Mnum;
p1->Enum=p2->Enum;
p1->sum=p2->sum;

strcpy(p2->name,temp->name);
strcpy(p2->Id,temp->Id);
p2->Cnum=temp->Cnum;
p2->Mnum=temp->Mnum;
p2->Enum=temp->Enum;
p2->sum=temp->sum;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int Studentmassage::ListCount()//统计当前链表的记录总数,返回一个整数
{
if(! Head)
return 0;
int n=0;
for(Student * p=Head->Next;p!=End;p=p->Next)
{
n++;
}
return n;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Sort()//对当前链表进行排序
{
cout <<"Sorting..."<<endl;
Student *p=NULL,*p1=NULL,*k=NULL;
int n=Studentmassage::ListCount();
if(n<2)
return;
for(p=Head->Next;p!=End;p=p->Next)
for(k=p->Next;k!=End;k=k->Next)
{
if(p->sum>k->sum)
{
Studentmassage::Swap(p,k);
}
}
cout <<"排序完成!"<<endl;
getch();
return;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Save()
{
out.open("sort.txt");
for(Student *p=Head->Next;p!=End;p=p->Next)
out<<p->name<<"\t"<<p->Id<<"\t"<<p->Cnum<<"\t"
<<p->Mnum<<"\t"<<p->Enum<<"\t"<<p->sum<<'\n';
out.close();
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int main()
{
int x,i=0;
bool quit=false;
cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;
for(i=0;i<3;i++)
cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl;
cout<<"\t\t◎★★★★【 欢迎进入学生成绩管理系统 】★★★★◎"<<endl;
for(i=0;i<3;i++)
cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl;
cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<<endl;;
Studentmassage Grade;
cout<<"按任意键开始……";
getch();
while(!quit)
{
system("cls");
Grade.ShowMenu();
cin>>x;
switch(x)
{
case 0:quit=true;break;
case 1:Grade.AddItem();break;
case 2:Grade.Display();break;
case 3:Grade.Sort();break;
case 4:Grade.Find();break;
case 5:Grade.RemoveItem();break;
case 6:Grade.ModifyItem();break;
}
}
return 0;
}

学生成绩管理系统代码

你好!

 给你一个成绩管理的看看吧,三门课成绩,根据学生三门课程成绩进行排序并输出显示



晚上有时间看看,
#include "stdio.h"
#include "string.h"
void add(float m,float n)
{
printf("%g\n",m+n);
}
void sub(float m,float n)
{
printf("%g\n",m-n);
}
void mult(float m,float n)
{
printf("%g\n",m*n);
}
void div(float m,float n)
{
if(n==0)
printf("0不能做除数");
else
printf("%g\n",m/n);
}
void main()
{
float m,n;
char a[10];
printf("运算法则:A 加, B 减, C 乘, D 除\n请输入两个数,用空格隔开:");
scanf("%f%f",&m,&n);
printf("请输入运算法则:A , B , C或者 D\n");
getchar();
while(1)
{
gets(a);
if(strlen(a)==1)
{
switch(a[0])
{
case 'A': add(m,n);break;
case 'B': sub(m,n);break;
case 'C': mult(m,n);break;
case 'D': div(m,n);break;
default:printf("输入不规范,请重新输入!\n");break;
}
}
else
printf("输入不规范,请重新输入!\n");
}
}

  • C璇█缂栫▼棰,澶т緺浠府甯繖鍟(蹇冭瘯浜,鎸囩潃鏁戝懡鐨,鎮祻涓嶄綆鍟)
    绛旓細鍞夛紒杩欎簺棰橀兘杩樿洰绠鍗曠殑鍟婏紝鐪嬩綘闇瑕佸府鍔╋紝杩樻槸姹熸箹鏁戞祹涓嬪搱锛岃嚜宸卞ソ濂戒綋浼氫笅鍟婏紝浠g爜鍙洿鎺ヨ繍琛岀殑锛岀浣犲ソ杩 绗竴棰 include <stdio.h> int main(){ int n,sum;while(scanf("%d",&n)){ sum = 0;if((n>=0)&&(n<=10)){ sum = n * 60;} else if((n>=11)&&(n<=39)){ su...
  • C璇█缂栫▼棰
    绛旓細鑰屽悗鏉ョ殑C++灏卞湪璇硶鏂归潰鏀规椂浜嗚澶氾紝涓嶄絾鑷韩璇硶鍒楄鑼 锛岃屼笖鎶C璇█鐨勮娉曚篃鍋氫簡瑙勮寖銆傛墍浠ワ紝杩欎袱涓湪C璇█缂栬瘧鍣ㄦ椂鏄竴鏍风殑锛屼絾鍦–++缂栬瘧鍣ㄩ噷锛屽厛鑰呬細鍑虹幇璇硶閿欒锛佷絾鏄垜闂ㄧ幇鍦ㄧ敤鐨勫ぇ澶氶兘鏄疌++缂栬瘧鍣紝鍥犱负C++缂栬瘧鍣ㄦ槸瀹屽叏鍏煎C鐨勩傝屼笖濂芥洿濂界敤锛屽叧閿槸寰堝绛夌骇鑰冭瘯閲岀敤鐨勬槸C++缂栬瘧鍣紝鏁欐潗...
  • C璇█缂栫▼棰,鑰冭瘯鎬ョ敤,璇烽珮鎵嬪府蹇欏晩!!!
    绛旓細1.include<stdio.h> long fun(long int x){ long ret=0;while(x){ if(x%10%2){ ret= ret*10+ x%10;} x=x/10;} return ret;} void main(){ long a,b;printf("Please input a long int num:");scanf("%ld",&a);b=fun(a);printf("b=%ld\n",b);} 2.include<math.h...
  • c璇█缂栫▼棰,鐢for寰幆!鎬ユユ
    绛旓細include<stdio.h>int main(){int hg,bhg;for(hg=1;hg<2000;hg++)for(bhg=0;bhg<2000;bhg++)if(hg*5-bhg*18==9931){printf("%d",hg);}return 0;}
  • 鎬!!!瑕佹眰鐢╟璇█缂栫▼瀹炵幇涓涓烦鐏湀鐨勯棶棰
    绛旓細TC2.0閲屾湁涓涓猙gidemo.c鐨勫浘褰缂栫▼绀轰緥绋嬪簭銆傚叾涓湁涓涓紨绀哄睆骞曡创鍥剧殑瀛绋嬪簭锛涓涓鏄熶汉鐨勯鑸瑰湪灞忓箷涓婇鏉ラ鍘汇傝繖涓▼搴忓彲浠ョ畝鍗曞湴淇敼涓涓嬪氨鍙互鐢ㄤ簬浣犵殑闇姹備簡銆傜▼搴忎笉闅剧湅鎳傘傝繖涓唬鐮佹垜鎵惧埌浜嗐傚ぇ姒傝涓涓嬨侺Z闇瑕佽嚜宸卞幓鎵句竴涓嬪畬鏁寸殑浠g爜鐮旂┒锛岃繖閲屾垜鍙创鍑虹浉鍏崇殑涓娈点倂oid PutImageDemo(...
  • 璇锋暀鍑犻亾C璇█缂栫▼棰,鎬ョ敤
    绛旓細int a,b,c,d,max,temp;max=0;temp=0;printf("please input the value of a,b,c,d:\n");scanf("%d%d%d",&a,&b,&c,&d);/*浠ヤ笅鍏鍙杩欎竴琛屼唬鏇: max=(a>b?a:b)>(c>d?c:d)?(a>b?a:b):(c>d?c:d); */ if(a>=b)max=a;else max=b;if(c>=d)temp=c;e...
  • 鐢–璇█缂栫▼,杩欓亾棰樻庝箞缂?
    绛旓細include<stdio.h>void Input (int value[],int n){ printf("杈撳叆鏁板垪\n"); for(int i=0;i<n;i++){ printf("杈撳叆绗%d涓猏n",i+1); scanf("%d",&value[i]); }}void Output(int value[],int n){ for(int i=0;i<n;i++){ printf("绗%d涓 = %d\n",i+1,v...
  • 銆愭ャ!C璇█C++缂栫▼棰,甯繖缂栦竴涓嬫簮绋嬪簭
    绛旓細else if(c>='A' && c<='Z') letter++;else if(c>='0' && c<='9') number++;else if(c==' ') space++;else other++;} printf("\nletter=%d,number=%d,space=%d,other=%d\n",letter,number,space,other);} 2.浠庨敭鐩樿緭鍏ヤ换鎰忚嚜鐒舵暟N(N>10)瑕佹眰锛1.绛涢夊嚭3~N涔嬮棿鐨勭礌鏁 2...
  • c璇█缂栫▼棰:瑕佹眰鐢娉板嫆绾ф暟姹俥鐨勮繎浼煎笺傜洿鍒版渶鍚庝竴椤瑰皬浜1e鈥6涓烘...
    绛旓細include<stdio.h>int main(){ float i=1,e=0; int p = 1; e+=1/i; do { i*=(p++); e+=1/i; }while((1/i)>1e-9); printf("%f",e); FILE* fp = fopen("result.txt","w"); fprintf(fp,"%f",e); fclose(fp);} 浼氳緭鍑哄埌res...
  • C璇█缂栫▼棰,姹傝В绛
    绛旓細鍛冿紝娌$湅鍑烘潵鍟ラ棶棰橈紝鏄笉鏄祴璇曟槸涓娆¤繘琛岋紝鑰屼笉鏄垎娆$殑锛屾槸寰幆杈撳叆鍟婏紝涓嶅彲鑳芥湁闂鍟婂簲璇 灏辨槸璇存湁鍙兘鍦ㄧ嚎绋嬪簭鍙繍琛屼竴娆′綘鐨绋嬪簭锛鐒跺悗杩炵画杈撳叆涓や釜鏁版嵁锛岀湅杈撳嚭鏄惁姝g‘锛岃屼綘鐨勭▼搴忓彧鍒ゆ柇涓涓暟瀛楋紝鎵浠ョ涓涓暟瀛楁纭紝鑰屽綋鍦ㄧ嚎绋嬪簭杈撳叆绗簩涓暟瀛楁椂浣犵殑绋嬪簭宸茬粡缁撴潫閫鍑猴紝鎵浠ユ棤娉曢氳繃娴嬭瘯...
  • 扩展阅读:学编程一年大概多少钱 ... c十十入门编程 ... 小程序开发收费价目表 ... c++和python先学哪个 ... c++编程适合几岁学 ... 初学编程必背50个 ... c十十编程要学多久 ... c语言基础练习100题 ... cnc编程必背50个程序 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网