当年c语言课设写这个是没写出来了的 ,现在有时间,就写了一个简易的,微微弥补一下一直以来的遗憾。
#include<iostream> using namespace std; typedef struct student{ int id;//学号 string sex; string name; int cpp;//c++成绩 struct student *next; }stu; stu *head=NULL; void test(); // 测试头指针是否为空 void record();//记录成绩 void modify();//修改成绩 void print();//打印单科成绩 void aver();//求各科的平均成绩 void Count();//成绩统计 void add();//添加学生 void delt();//删除学生 void print();//打印成绩 int main() { int choice; cout<<"\t\t\t学生成绩管理系统\n\n\n"; cout<<"0.退出系统 1.记录信息 2.修改信息 3.平均成绩 4.统计成绩 5.添加信息 6.删除信息 7.打印成绩\n"; cout<<"输入选择(0-7): "; cin>>choice; while(1) { switch(choice) { case 0: exit(0); case 1: record(); break; case 2: modify(); break; case 3: aver (); break; case 4: Count (); break; case 5: add (); break; case 6: delt (); break; case 7: print (); break; default: cout<<"输入有误!\n"; break; } cout<<"输入选择(0-7): "; cin>>choice; } return 0; } void test() { if (!head) { cout << "head NULL\n"; exit(-1); } } void record() { stu *p,*q; int i,n; cout<<"输入学生人数: "; cin>>n; i=0; cout<<"输入学生信息:姓名 学号 性别 成绩\n"; while(i<n) { p=new stu; if(head==NULL) { head=p; q=head; } else { cin>>p->name>>p->id>>p->sex>>p->cpp; q->next=p; q=p; i++; } } } void modify() { cout<<"输入要修改学生的学号: "; int id; cin>>id; stu *p; test(); p=head->next; while(p) { if(p->id==id) { cout<<"请选择要修改的内容:\n"; cout<<"1.id 2.name 3.sex 4.cpp\n"; int choice; cin>>choice; switch(choice) { case 1: { int newid; cout<<"输入新学号: "; cin>>newid; p->id=newid; break; } case 2: { string newname; cout<<"输入新名字: "; cin>>newname; p->name=newname; break; } case 3: { string newsex; cout<<"输入新性别: "; cin>>newsex; p->sex=newsex; break; } case 4: { int newcpp; cout<<"输入新成绩: "; cin>>newcpp; p->cpp=newcpp; break; } default:cout<<"输入有误!\n"; break; } break; } p=p->next; } } void aver() { stu *p; int sum,i; sum=0; i=0; test(); p=head->next; while(p) { sum+=p->cpp; i++; p=p->next; } cout<<"所有同学c++的平均成绩为: "<<sum/i<<endl; } void Count() { int max; stu *p,*q; test(); p=head->next; max=p->cpp; q=p; while(1) { p=p->next; if(p==NULL) break; if(max<p->cpp) { max=p->cpp; q=p; } } cout<<q->name<<"的c++获得了第一名\n"<<"最高分为: "<<max<<endl; } void add() { stu *p,*q; p=new stu; cout<<"输入新加同学的名字 学号 性别 c++成绩: "; cin>>p->name>>p->id>>p->sex>>p->cpp; p->next=head->next; head->next=p; } void delt() { //system("cls"); stu *p,*q; int id; cout<<"输入要删除学生的学号: "; cin>>id; test(); q=head; p=q->next; while(1) { if(p->id==id) { q->next=p->next; delete p; break; } q=p; p=q->next; } } void print() { stu *p; test(); p=head->next; while(p) { cout<<p->name<<" "<<p->cpp<<endl; p=p->next; } }