# 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->Nextp!=Endp=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=Headp->Next!=Endp=p->Next)//匹配成功则返回上一个指针,不圆睁成功就返回空
if(!strcmp(p->Next->name,name))return p
return NULL
}
Student *FindID(char * Id)
{
for(Student * p=Headp->Next!=Endp=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 * tempHead->Next!=End)
{
temp=Head->Next
Head->Next=Head->Next->Next
delete temp
}
delete Head,End
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ShowMenu()
{
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请输入要删除的学生的姓名:"<<endlcin>>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->Nextp!=Endp=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->Nextp!=Endp=p->Next)
for(k=p->Nextk!=Endk=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->Nextp!=Endp=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=0i<3i++)
cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl
cout<<"\t\t◎★★★★★★★★◎"<<endl
for(i=0i<3i++)
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=truebreak
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
}
//你要的功能全部实现了~你再改改吧,有多余的功能,设计报告你就自己写写吧!能帮你的就这么多了。
可能是“冰狐浪子”的木马木马被运行后,会在系兄厅统中生成以下文件:c:/%System%/smss.exe,
c:/%System%/system33.exe,
c:/%System%/fox.exe,
c:/%System%/system32/winpass.exe,
c:/%System%/system32/pj.exe,c:/%System%/system32/winsym.exe。
(%System%为系统文件夹,xp、98用户为c:/windows,2000用户为c:/吵灶winnt)
同时在相应的注册表项写入.会在注册表中生成HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run下的smss----------c:/%System%/smss.exe,HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/RunServices下的smss----------c:/%System%/smss.exe,HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run下的smss----------c:/%System%/smss.exe,HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunServices下的smss----------c:/%System%/smss.exe
手工清除办法:
1 打开任务管理器(ctrl+alt+del),终止一个叫winsym.exe的进程
2 把上面提到的生成文件和注册表项统统删除
最升尘扮后重启机器
关于学习C++和编程高喊指的50个观点1.把C++当成一门新的语言学习(和C没啥关系!真的。);
2.看《Thinking In C++》,不要看《C++编程思想》;
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;
5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
6.会用Visual C++,并不说明你会C++;
7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没戚配有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
9.看Visual C++的书,是学不了C++语言的;
10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?
11.浮躁的人容易问:我到底该学什么;——别问,学就对了;
12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;
13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;
15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
17.C++不仅仅是支持面向对象的程序设计语言;
18.学习编程最好的方法之一就是阅读源代码;
19.在任何时刻都不要认为自己手中的书已经足够了;
20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;
21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
26.请看《程序设计实践》,并严格的按照其要求去做;
27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;
29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;
30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了渗型C++;
31.学习编程的秘诀是:编程,编程,再编程;
32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;
33.记住:面向对象技术不只是C++专有的;
34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;
35.把在书中看到的有意义的例子扩充;
36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;
38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;
39.C++语言和C++的集成开发环境要同时学习和掌握;
40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;
41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;
42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);
43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;
44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;
45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;
46.记录下在和别人交流时发现的自己忽视或不理解的知识点;
47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;
48.保存好你写过的所有的程序——那是你最好的积累之一;
49.请不要做浮躁的人;
50.请热爱C++!
世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。
1. 扎实的基础。精通一门编程语言(C#或Java等),深入理解其编程思想。之后,适当学习数据结构、离散数学、编译原理等知识。(如果你有足够多的时间可以深入学习这些知识,它们真的非常重要,但是如果没有时间或暂时学不会,放一放以后再看,也不失为一种好方法)
2. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。
3. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99% sweat and 1% coffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
4. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
5. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
6. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
7. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。
8.最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。
以上是本人从网上搜集的信息,针对高职高专学生的特点,加以整理的东东,希望能对大家有所帮助!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)