pb学生成绩管理系统统C++版

学生成绩管理系统c++_百度知道
学生成绩管理系统c++
(1)能按学期1、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩.主要功能,并能根据学生的平均成绩进行排序(3) 能查询学生成绩,求学生的总分及平均分
我有更好的答案
按默认排序
&&&nbsp:&输入任意字符;&&&k;&*&Unpass();&&gt,&&{&}}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌S;&nbsp!quit)&&&p-&case&nbsp,无学生信息;cout&*p=Head-&&&&&Id;&Student&Swap(Student&&&i++)&&quot:;&&&main(){&〓〓〓〓〓〓〓〓〓★&0;&Enum&H&getch();getch(),*k=NULL;&&nbsp!=End:&p-&&&&&&cout&2;&sum&&n=0;修改成功;;★〓〓〓〓〓〓〓〓〓&&&nbsp:&&\t\t◎★★★★【&&lt:Save(){&&cout&Next)&\n'iostream&&&*&成&&if(p=FindID(Id))&getch();p-&&Id)&&char&S&生&&nbsp.open(&*;&strcpy(p1-&&&&&&&Student&&&sum=Cnum+Mnum+E&&&&Show();&lt:;&2)&4;Student&!=E&;Save();}&nbsp:&★〓〓〓〓〓〓〓〓〓&&}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌int&&&Next)//匹配成功则返回上一个指针;void&nbsp!&&lt!继续……&&&输入任意字符;&&&sum&&Studentmassage.&if(p-&Cnum&endl.h&&void&nbsp.close().排序统计成绩&&temp=p-&&\t\t请输入C课程的成绩;&★〓〓〓〓〓〓〓〓〓&&&☆&&cout&&&E&nbsp.;&&&&&★〓〓〓〓〓〓〓〓〓&&&system(&quot.安全退出系统&&&添加成功;&&cout&☆&&cout&&&\t\t已找到学生的信息;&p-&&for(k=p-&&p-&&for(Student&*&&;&break.Display():G#&&name&&//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌S&&&&&数学;&&&cout&&&&&&&&&endl&\n'using&&&&nbsp.AddItem(),Id[10];&}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌void&&}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌void&5;&&&&&case&&p-&}}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌void&&&for(Student&Mnum&case&&lt:ListCount(),temp-&Mstrcpy(temp-&Mnum=p1-&Id:;sum&&Enum&N&cout&&&lt:&〓〓〓〓〓〓〓★★★★★&&&;&n++;}&&cout&&&&&;cin&Id;sum=p2-&★★★★★〓〓〓〓〓〓〓&cout&lt!&&n=Sx;&bool&&&*&cin&temp-&&&&*FindID(char&void&&&&&//总分&;&Student&〓〓〓〓〓〓〓〓〓〓&&&&&p-&&&*&&&N}&&&quit=cout&lt.txt&&&&;}&N&cout&}&&&case&&&G&{&&&&&&&&&Next-&name[20]:;4;int&&&S&&\t\t删除成功;C&}&NULL;&void&//修改信息{&void&&&&&ReadFile(istream&nbsp!继续……&&&for(Student&Student&&lt,不成功就返回空&&欢迎进入学生成绩管理系统&&输入任意字符!&&&&&else&Next)&&lt:&Head-&&&&End-&&&Sort():{cout&&&&Np=Head-&&3;cout&&strcpy(p1-&&void&);&&&&&\t\t没有找到;&&cout&//&*temp=new&Next)&{&endl&if(End-&&if(p=FindItem(name))&&&&\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§&}&&Mnum&&M&ShowMenu();&&1;getch();&&if(;p-&&&endl&&&;&case&&&nbsp,Id))return&&&&int&&&Next-&RemoveItem();else&nbsp:&}&Mnum=p2-&&&getch();&nbsp,name))return&namespace&return&输入任意字符;&nbsp.修改学生信息&&2;&☆&{&nbsp!&sum=temp-&gt.RemoveItem();}&&\t\t请输入学生的姓名;☆&p1-&&&&lt,请输入新的信息;{&E&{&Cname[20]&ReadFile(in);cin&&#39,p2-&&&&p-&&&//C课程得分&name)&&&&cout&lt:&&cin&&ModifyItem();&&&&&&&quot:Greturn!&Enum=p2-&&&&&Next-&&lt!继续……&3;&&cout&lt:;return&p=NULL;&&&//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌class&;&void&&nbsp.ShowMenu();&endl:G&p=H&&&Next)&\n\t\t\n\t\t请选择;&S&{&&&Id;;name[0]=='void&按任意键开始……&{&p2-&Mnum!=Ep-&&&&&while(;&&lt:&&*&&6;&&nbsp!in)&&include&◎&&&N&&&S&case&&&&&sum=p1-&&&cout&&&nbsp,p1-&temp-&gt.;&cout&Head-&输入任意字符;}&{&&&&&p1-&&End-&&Id);&&&\t\t请输入要查找的学生的学号;else&&&&&cout&&p2-&&&\t\t※&nbsp!=E;&nbsp:&&&&&&&C++.显示学生成绩&*p2)//交换两个combox变量的数据域{&&name[20];Next=new&&&endl&S输入任意字符;&&&&Next)&in&&cout&ListCount()!&quot!=EScout&~Studentmassage();&*p1;&&&&nbsp.close();&&;&&&Enum=p1-&&&&p=p-&{&nbsp!&&;&〓〓〓〓〓〓〓〓〓〓&&cin&&&&&nbsp:&Mnum=temp-&\t\t请输入要修改的人的姓名;&;*&strcpy(p2-&&&&&int&void&nbsp,*temp=NULL;&&&3;&case&&&&&&&Id&gt:;&&&☆&\n\t\t*********************************\n请选择;&&S&lt!继续……&&&&&char&&N&nbsp:~Studentmassage(){&nbsp:ModifyItem()&&&nbsp!继续……&quot:Swap(p;&&&&&}&NNext)//匹配成功则返回上一个指针;cout&//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌class&Next.增加学生成绩&Average();include&i&\t\t◎\t\t\t\t\t\t&{&&&delete&&&&&&&0;总成绩;&Next=p-&Show();cout&&&delete&&nbsp:ListCount()//统计当前链表的记录总数;}&&&name&&&&k-&Mnum&Input()&&cin&&&&&p=NULL;&\t&&&&&endl&k=k-&&if(p=FindItem(name))&&int&nbsp:&&&&&End=End-&&&&nbsp,k);&p-&gt!继续……&★〓〓〓〓〓〓〓〓〓&Next=Head-&&〓〓〓〓〓〓〓〓〓★&N&&AddItem()&&&{&cout&Cnum&输入任意字符;cout&&&;name);&&{&&nbsp!=E&&NULL;;&&&nbsp!&&&&cin&getch().open(&int&cls&&&cout&endl:Studentmassage(){&&Cnum&}&&&&&&p-&Id[20];&&getch()!=E&输入任意字符:Swap(Student&&〓〓〓〓〓〓〓〓〓★&Next-&Student&char&&lt.Find();☆&&p1-&gt!&S5;&p;&&&Show();&&&*&&cout&if(;p=NULL;S&&N&&;&&&Id。请先输入;◎&&&管&\t&{&*&&&理&&Enum=temp-&gt,返回一个整数{&int&&switch(x)&&&strcpy(p2-&gt:&&&else&&&cout&p;&Student&&&nbsp,Ep=H&&&&x;&&getch();&&lt.txt&p-&&0;&cout&&delete&cout&endl.按学生的姓名查找\n\t\t※&〓〓〓〓〓〓〓〓〓★&&&&&&】★★★★◎&&}int&&&getch();&&Find():&quot!strcmp(p-&gt:&End-&p=p-&☆&C&&{&&&N&'1;&E&nbsp。&&&&p2-&&E)&&&☆&&Next=new&外语;&&&cin&&&&排序完成;&&&&&&&#39.查找学生成绩&{&;&case&ifstream&{&strcpy(temp-&&lt:RemoveItem()&&C&&switch(x)&name);&Next=new&else&&End=Head-&\n'&&#include&&Show()&cout&Student&&sum)&&nbsp.按学生学号查找&&Head)&Scout&&&&Student&{&for(i=0;Enum&&endl&cout&lt:&void&&&\t\t请输入学生的学号;&输入任意字符;&&return&统&&{&&&int&绩&Input();★〓〓〓〓〓〓〓〓〓&S&nbsp.eof())&nbsp:&&&if(;0!cin&&nbsp!继续……&&&&nbsp:&&&&nbsp!&temp=Head-&&return&cin&&★★★★★★★&name&&&\t&&&nbsp,不成功就返回空&for(p=Head-&\t\t请输入英语课程的成绩;getch();&&H★〓〓〓〓〓〓〓〓〓&&&Head-&ofstream&&&&S&{&Efstream&Id&&nbsp!&{&&p2-&i&}}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌void&nbsp:ShowMenu()&nbsp!继续……&&&cout&*&&\t\t请输入要删除的学生的姓名;&for(Student&for(Student&nbsp,i=0;&{&&&系&cout&Save();&&&//数学课程得分&Student&输入任意字符;&☆&☆&&&&;&&nbsp:;&&&&&&*FindItem(char&&#&nbsp.ModifyItem();&&cout&&p;S\n\t\t*********************************\n&&〓〓〓〓〓〓〓〓〓★&1;&Id:G\t\t请输入数学课程的成绩;&&name);&&&Sint&cout&void&Next-&for(Student&&&&&quot:quit=Cnum=p2-&gt:&Id):G&Cnum=p1-&&&End=End-&&学&&&&&cout&\t\t◎\t\t\t\t\t\t&&&}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌void&&N&&&&C&&&&nbsp,p1-&case&Id&);〓〓〓〓〓〓〓〓〓★&&&p;&&for(i=0;p1-&&&&&&nbsp:Sort()//对当前链表进行排序{&&}&&\t&p=p-&&cout&&Ncout&&&&void&&&}};&&&quot,p2-&char&*&&学号;;&nbsp!strcmp(p-&&if(n&&&&&M&6;;&&\t\t没有找到;&&&N&}&&}&Studentmassage{&name[20];&&Studentmassage&nbsp,temp-&cout&&&&&Display()&&n;&x;&cout&&&&&{&End-&p=Head-&&out&p=p-&☆&nbsp:;&&&这是一个新系统;&&Input();&gt,*&&&&nbsp:;Studentmassage():G&2;&&&Id);&Ncout&;}&&cout&cout&lt,Student&if(p=FindItem(name))&Next-&&&quot:Find(){&Next-&gt,*p1=NULL;1;M☆&p=p-&;&&i++)&&while(.删除学生成绩&☆&\t\t没有找到该姓名的学生;}};p:&{&temp-&x.Sort();&cout&lt:;}&&&&&&cin&&*&&2;\t\t读取学生信息成功;&姓名;}&&&&&cout&&&&&in)&&if(;&&&&&}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌void&getch();&&3;&&G&&☆&;\t\t没有找到该学好的学生;&&&);&&endl&&lt.h&&lt!继续……&quot:&\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n&&cout&&}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌int&*p=NULL;&Student{&&&nbsp!=E&}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌void&&{&return&\t&&删除信息{&&quot!继续……&&☆&temp-&&}&//用getch();Head=new&&{&nbsp:;&char&&p=p-&)\t\t请输入要查找的学生的姓名;&*);&N&//void&Cnum=temp-&〓〓〓〓〓〓〓〓〓★&&&E☆&getch();//英语课程得分&&&\0'cout&&//void&&&&cout&&lt#&&&p:;&include&nbsp
其他类似问题
学生成绩管理系统的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C++学生成绩管理系统_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
C++学生成绩管理系统
学​生​成​绩​管​理​系​统​课​程​设​计​论​文
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢学生成绩管理系统&C++
#include &iomanip&
#include &iostream&
#include &fstream&
#include &vector&
#include &conio.h&
#include &stdlib.h&
#include &string&
#include &process.h&
#include &algorithm&
#include &stdio.h&
struct student
name[12];&&&&&&&&
///&& 姓名
&char& id[10];&
///&& 学号
///&& c++分数
///&& 数学分数
///& 英语分数
&& ///平均分
&student *
///////////-------定义类-----------------------////////////
class stud{
&student *p1,*p2,*
/////----析构函数------------------------
&&while(head){
&&&p1=head-&
&&&head=p1;
///------------成员函数------------
&void output(student
*head);&&&&&&&&&&&&&
//& 输出学生成绩
&student * input(student
*head);&&&&&&&&
//& 增加学生记录
&student* del(student *head,
char*p);&& //&
&student* find(student *head,char *p,int
&n);& // 查找学生记录(可查找多个同名数据)
&student* stat(student
*head);&&&&&&
//排序统计学生总分
&friend void total(student*head);//统计学生总分
&friend void pingjun(student*head);//统计平均分
&student* insert(student
*head);&& //按学生总分插入记录
&student* clear(student
*head);&& // 删除当前表
&void Inputs(student
*p);&&&&&&
//用于添加数据的子函数
};//----------------------------------------------------
////---------用于添加数据的子函数-------///////
void stud::Inputs(student*p)
&cout&&setw(6)&&"姓名"&&setw(8)&&"
学号"&&setw(8)&&"C++"&&setw(8)&&"数学"&&setw(8)&&"英语"&&
&cin&&p-&name
&while(cin.fail()){
&&cerr&&"您的输入有误,请重新输入"&&&&&&
&&cin.clear ();
&&cin.sync ();
&&cin&&p-&C
&cin&&p-&S
&while(cin.fail()){&&&
&&cerr&&"您的输入有误,请重新输入"&&
cin.sync ();
&&cin.clear ();
&&cin&&p-&S
&cin&&p-&E
&while(cin.fail()){&&
&&cerr&&"您的输入有误,请重新输入"&&
&&cin.clear ();
&&cin.sync ();
&&cin&&p-&E
&total(p); //计算出总分
&pingjun(p);//计算平均分
////////-----输出学生成绩-----------------/////////////////////
void stud::output (student *head)
&while(p1!=NULL){
&&cout&&setw(6)&&p1-&name&&setw(8)&&p1-&id&&setw(8)&&p1-&Cppnum&&setw(8)&&p1-&Snum
&&setw(8)&&p1-&Enum
&&setw(7)&&p1-&number&&setw(7)&&p1-&average&&
&&p1=p1-&next
/////////------------插入学生成绩记录--------////////////////
student* stud::insert(student *head)
&&& Inputs(p1);
//调用子函数 增加数据
&student* p3=NULL;
while((p2-&number &
p1-&number ) &&
!=NULL){&&&
if(p2-&number &
p1-&number){&&
&&p1-&next=p2;
if(p3==NULL) //& 若当前值是最小的
&&p3-&next
&&& else {
&&p2-&next=p1;
&&p1-&next=NULL;
//////----------清空数据------------/////////////
student* stud::clear(student*head)
&while(head){&&
&&p1=head-&next
&&head=p1;
&&& return
//////////-----------排序统计函数-----------/////////////////
student *stud::stat(student *head)
&while(p2-&next){&
//冒泡泡法,
呵呵`~~~&&&
&&if(p2-&number
p1-&number){&&&&&&&&
// 把头指针指向当前比较小的节点
&&&p2-&next=p1-&&&&&
&&&p1-&next=&&&&&&&
&&&head=p1;&&&&&&&&&&&&
把用于比较的两个指针复位&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//p2=&&&&&
&&&p1=p2-&next
&&else{&&&&&&&&&&
// 指向下一个节点
&&&p2=p2-&next
&&&p1=p2-&next
&&}//-------------------------------------------
&cout&&"当前表以按学生总分排序成功"&&
/////-----------删除记录-----------//////////////////////
student* stud::del (student *head,char *p)
&while(strcmp(p1-&name
,p)&& p1-&next
&&p1=p1-&next
&if(!strcmp(p1-&name
&&if(p1==head)
&&&head=p1-&
&&&p2-&next=p1-&next
&&cout&&"删除成功,OK"&&
&&delete p1;
没找到姓名"&&p&&"的学生.\n";
//结点没找到
///////----------统计总分---------------///////////////
void total(student *p)
&p-&number =
p-&Cppnum + p-&Snum +
//////---------计算平均分-------------////////////////
void pingjun(student *p)
&p-&average=(p-&Cppnum+p-&Snum+p-&Enum)/3;
///////-------------查找函数----------///////////////////
student* stud::find (student *head,char *p,int&
while(strcmp(p2-&name ,p) !=0
p2-&next& !=NULL)
&&p2=p2-&next
if(0==strcmp(p2-&name,p)){
&&cout&&setw(6)&&p2-&name&&setw(8)&&p2-&id&&setw(8)&&p2-&Cppnum&&setw(8)&&p2-&Snum
&&setw(8)&&p2-&Enum
&&setw(7)&&p2-&number
&&setw(10)&&p2-&average&&
&&return p2;
&&system("cls");
&&cout&&"对不起,没有您要查找的学生数据"&&
NULL;&&&&&&&&&&&&&
///////----------------增加学生记录-----------////////////////////////////
student *stud::input (student *head)
&&& Inputs(p1);
//调用子函数 增加数据
&if(head ==NULL){
&&head=p1;
&&p1-&next
&while(p2-&next !=NULL)
&p2-&next=p1;
p1-&next=NULL;
//----------- 输出错误&&
-----------//////////
void error()
&cout&&"错误,这还是一张空表,请输入数据"&&
///////////////////------------main函数--------//////////////////-----------
int main()
&&& student
*head=NULL;
&&& student *
//临时指针, 用于查找函数
//用于存放用户的选择项
&char name[10];& //查找,删除记录的
&while(1){
&&system("cls");
&&cout&&"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓";
&&cout&&"┃****************&&
☆&& 学 生 学 籍 成 绩 管 理 系
☆&& **************┃";
&&cout&&"┃**********
★★★★★&&&&&&&
★★★★★★★&&&&&&&&
★★★★★& *********** ┃";
&&cout&&"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫";
&&cout&&"┃****************★&
☆&&&&&&&&&
1.增加学生成绩&&&&&&&
☆& ★****************┃";
&&cout&&"┃****************★&
☆&&&&&&&&&
2.显示学生成绩&&&&&&&
☆& ★****************┃";
&&cout&&"┃****************★&
☆&&&&&&&&&
3.排序统计成绩&&&&&&&
☆& ★****************┃";
&&cout&&"┃****************★&
☆&&&&&&&&&
4.查找学生成绩&&&&&&&
☆& ★****************┃";
&&cout&&"┃****************★&
☆&&&&&&&&&
5.删除学生成绩&&&&&&&
☆& ★****************┃";
&&cout&&"┃****************★&
☆&&&&&&&&&
6.插入学生成绩&&&&&&&
☆& ★****************┃";
&&cout&&"┃****************★&
☆&&&&&&&&&
7.清空所有数据&&&&&&&
☆& ★****************┃";
&&cout&&"┃****************★&
☆&&&&&&&&&
8.安全退出系统&&&&&&&
★****************┃";&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&cout&&"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛";
请输入您的选择(0--8):";
&&int n=0;
//计数器,用于在查找时计算有没有同名学生
&&fflush(stdin); //清空缓冲区
&&if(choice=='8'){&
//安全退出
&&&cout&&"谢谢使用,再见"&&
&&&exit(0);
&&}//------------------------------------------------
&&switch(choice){
&&&&head=stus.input
&&&&//------------------------------------------------
&&&&if(head==NULL){
&&&&&error();
&&&&cout&&setw(6)&&"姓名"&&setw(8)&&"
学号"&&setw(8)&&"C++"&&setw(8)&&"数学"&&setw(8)&&"英语"&&setw(8)&&"总分"&&setw(10)&&"平均分"&&
&&&&stus.output
&&&&getch();
&&&&//------------------------------------------------
&&&&if(head==NULL){
&&&&&error();
&&&&head=stus.stat(head);
&&&&getch();
&&&&//------------------------------------------------
&&&&if(head
&&&&&error();
//调用函数输出错误信息
&&&&cout&&"请输入想要查找的学生姓名"&&"
,"&&"本系统可以查找重复姓名学生"&&
&&&&cout&&setw(6)&&"姓名"&&setw(8)&&"
学号"&&setw(8)&&"C++"&&setw(8)&&"数学"&&setw(8)&&"英语"&&setw(8)&&"总分"&&setw(10)&&"平均分"&&
&&&&while(pd){&&
// 循环调用函数, 用于输出多个的同名学生成绩
&&&&&pd=stus.find
(pd,name,n);
&&&&&if(pd==NULL)
&&&&&pd=pd-&next
; //指针指向当前以找到的下一个节点,用于查找多个同名学生
&&&&getch();
&&&&//------------------------------------------------
&&&&if(head==NULL){
&&&&&error();
&&&&cout&&"请输入想要删除学生姓名"&&
&&&&head=stus.del(head,name);
&&&&getch();
&&&&//------------------------------------------------
&&&&if(head==NULL){
&&&&&error();
&&&&head=stus.stat
&&&&head=stus.insert(head);
&&&&//-----------------------------------------------
&&&&if(head==NULL){
&&&&&error();
&&&&head=stus.clear(head);
&&&&cout&&"删除表成功~"&&
&&&&getch();
&&&&//-----------------------------------------------
&&&&default
&&&&cout&&"
对不起,您的输入有误,请重新输入。\n";
&&&&getch();
&&}//------------------------------------------------------
&return 0;
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。9081人阅读
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 《C++编写 学生成绩管理系统》
* 作 者: 刘江波
* 完成日期: 2012 年 6 月 26 日
* 版 本 号: v.626
* 对任务及求解方法的描述部分
* 问题描述:
用C++编写一个学生成绩管理系统
1、可以实现以下功能:
cout&&&〓〓〓〓〓〓〓〓〓★ ☆ 1.增加学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★ ☆ 2.显示学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★ ☆ 3.排序统计成绩 ☆ ★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★ ☆ 4.查找学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★ ☆ 5.删除学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★ ☆ 6.修改学生信息 ☆ ★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓&&&
2、用链表存储信息
* 程序头部的注释结束
# include &iostream&
# include &fstream&
# include &string.h&
#include &conio.h&//用getch();
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Student
char name[20];
char Id[20];
//C++课程得分
//汇编课程得分
//嵌入式操作系统课程得分
Student * N
void Input()
cout&&&\t\t请输入学生的姓名:&;
cout&&&\t\t请输入学生的学号:&;
cout&&&\t\t请输入C++课程的成绩:&;
cout&&&\t\t请输入汇编课程的成绩:&;
cout&&&\t\t请输入嵌入式操作系统课程的成绩:&;
sum=Cnum+Mnum+E
void ReadFile(istream & in)
in&&name&&Id&&Cnum&&Mnum&&Enum&&
void Show()
cout&&&姓名:&&&name&&endl&&&学号:&&&Id&&endl&&&C++:&&&Cnum&&endl
&&&汇编:&&&Mnum&&endl&&&嵌入式操作系统:&&&Enum&&endl&&&总成绩:&&&sum&&endl&&endl&&
//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Studentmassage
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-&Np!=Ep=p-&Next)
p-&Show();
cout&&&输入任意字符!继续……&;
void AddItem()
End-&Input();
End-&Next=new S
End=End-&N
cout&&&添加成功!&&&
cout&&&输入任意字符!继续……&;
Student * Head,* E
Student *FindItem(char * name)
for(Student * p=Hp-&Next!=Ep=p-&Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p-&Next-&name,name))
return NULL;
Student *FindID(char * Id)
for(Student * p=Hp-&Next!=Ep=p-&Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p-&Next-&Id,Id))
return NULL;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::Studentmassage()
Head=new S
Head-&Next=new S
End=Head-&N
in.open(&sort.txt&);
cout&&&这是一个新系统,无学生信息。请先输入。&&&
while(!in.eof())
End-&ReadFile(in);
if(End-&name[0]=='\0')
End-&Next=new S
End=End-&N
in.close();
cout&&&\t\t读取学生信息成功!&&&
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::~Studentmassage()
for(Student *Head-&Next!=E)
temp=Head-&N
Head-&Next=Head-&Next-&N
delete Head,E
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ShowMenu()
cout&&&********************************************************************************&&&
cout&&&〓〓〓〓〓〓〓〓〓〓
学 生 成 绩 管 理 系
〓〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓★★★★★
★★★★★★★
★★★★★〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★
1.增加学生成绩
★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★
2.显示学生成绩
★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★
3.排序统计成绩
★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★
4.查找学生成绩
★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★
5.删除学生成绩
★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★
6.修改学生信息
★〓〓〓〓〓〓〓〓〓&&&
cout&&&〓〓〓〓〓〓〓〓〓★
0.安全退出系统
★〓〓〓〓〓〓〓〓〓&&&
cout&&&\n\t\t\n\t\t请选择:&;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Find()
char name[20] ,Id[10];
Student * p=NULL;
cout&&&\n\t\t*********************************\n&;
cout&&&\t\t※ 1.按学生的姓名查找\n\t\t※ 2.按学生学号查找&;
cout&&&\n\t\t*********************************\n请选择:&;
case 1:{cout&&&\t\t请输入要查找的学生的姓名:&;cin&&
if(p=FindItem(name))
p-&Next-&Show();
cout&&&输入任意字符!继续……&;
cout&&&\t\t没有找到该姓名的学生!&&&'\n'&&
cout&&&输入任意字符!继续……&;
cout&&&\t\t请输入要查找的学生的学号:&;cin&&Id;
if(p=FindID(Id))
p-&Next-&Show();
cout&&&输入任意字符!继续……&;
cout&&&\t\t没有找到该学好的学生!&&&'\n'&&
cout&&&输入任意字符!继续……&;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ModifyItem()
//修改信息
char name[20];
Student * p=NULL;
cout&&&\t\t请输入要修改的人的姓名:&;cin&&
if(p=FindItem(name))
cout&&&\t\t已找到学生的信息,请输入新的信息!&&&
p-&Next-&Input();
cout&&&修改成功!&&&
cout&&&输入任意字符!继续……&;
cout&&&\t\t没有找到!&&&
cout&&&输入任意字符!继续……&;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::RemoveItem()
// 删除信息
char name[20];
Student * p=NULL,*temp=NULL;
cout&&&\t\t请输入要删除的学生的姓名:&&&cin&&
if(p=FindItem(name))
p-&Next=p-&Next-&N
cout&&&\t\t删除成功!&&&
cout&&&输入任意字符!继续……&;
cout&&&\t\t没有找到!&&&
cout&&&输入任意字符!继续……&;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Swap(Student *p1, Student *p2)//交换两个combox变量的数据域
Student *temp=new S
strcpy(temp-&name,p1-&name);
strcpy(temp-&Id,p1-&Id);
temp-&Cnum=p1-&C
temp-&Mnum=p1-&M
temp-&Enum=p1-&E
temp-&sum=p1-&
strcpy(p1-&name,p2-&name);
strcpy(p1-&Id,p2-&Id);
p1-&Cnum=p2-&C
p1-&Mnum=p2-&M
p1-&Enum=p2-&E
p1-&sum=p2-&
strcpy(p2-&name,temp-&name);
strcpy(p2-&Id,temp-&Id);
p2-&Cnum=temp-&C
p2-&Mnum=temp-&M
p2-&Enum=temp-&E
p2-&sum=temp-&
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int Studentmassage::ListCount()//统计当前链表的记录总数,返回一个整数
if(! Head)
for(Student * p=Head-&Np!=Ep=p-&Next)
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Sort()//对当前链表进行排序
cout &&&Sorting...&&&
Student *p=NULL,*p1=NULL,*k=NULL;
int n=Studentmassage::ListCount();
for(p=Head-&Np!=Ep=p-&Next)
for(k=p-&Nk!=Ek=k-&Next)
if(p-&sum&k-&sum)
Studentmassage::Swap(p,k);
cout &&&排序完成!&&&
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Save()
out.open(&sort.txt&);
for(Student *p=Head-&Np!=Ep=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=
cout&&&\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§&&&
for(i=0;i&3;i++)
cout&&&\t\t◎\t\t\t\t\t\t
cout&&&\t\t◎★★★★【
欢迎进入学生成绩管理系统
】★★★★◎&&&
for(i=0;i&3;i++)
cout&&&\t\t◎\t\t\t\t\t\t
cout&&&\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n&&&;
Studentmassage G
cout&&&按任意键开始……&;
while(!quit)
system(&cls&);
Grade.ShowMenu();
case 0:quit=
case 1:Grade.AddItem();
case 2:Grade.Display();
case 3:Grade.Sort();
case 4:Grade.Find();
case 5:Grade.RemoveItem();
case 6:Grade.ModifyItem();
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:147672次
积分:3075
积分:3075
排名:第4819名
原创:155篇
评论:101条
文章:18篇
阅读:59187
(9)(1)(3)(3)(10)(16)(23)(8)(3)(7)(13)(15)(18)(3)(26)

我要回帖

更多关于 pb学生成绩管理系统 的文章

 

随机推荐