简单实现了一个学生成绩信息管理系统
来源:互联网 发布:如何修改4g网络设置 编辑:程序博客网 时间:2024/04/27 13:24
要求:
1.该程序以链表的形式存储信息;
2.系统实现添加,查找,修改,删除,遍历操作的基本功能;
总结:
1.最大的问题没有建立一个管理系统的类,把各个功能当做管理类的成员函数,通过调用函数来操作,有待进一步改进!!!!
//************************************学生信息管理系统********************#include<stdlib.h>#include<string.h>#include<iostream>#include<conio.h>#include<stdio.h>#include<fstream>using namespace std;class stu{public: stu (); //构造函数 void show(); //显示学生信息 char num[20]; char name[20]; char score[10];public: stu *next; static int Count ; //记录创建个数 int w ; //存储创建次序}; int stu :: Count = 1 ;stu::stu() { cout<<"请输入第"<<Count<<"个学生的信息:"<<endl; cout<<" 姓名 ="; cin>>name; cout<<" 学号 = "; cin>>num; cout<<" 成绩 ="; cin>>score; w = Count; Count++;}void stu::show(){ cout<<"第"<<w<<"个学生的信息为:"<<endl; cout<<" 姓名 ="<<name<<endl <<" 学号 ="<<num<<endl <<" 成绩 ="<<score<<endl;}//------------------------创建输入第一个信息----------------------------------------stu *create() { stu *head, *tail, *New; cout<<"按任意键开始输入:"<<endl; getch(); New = new stu; head = tail = New; tail->next = 0; system("cls"); cout<<"录入完成!!!按任意键进入系统···"<<endl; getch(); system("cls"); return head;}//-------------------------查找修改模块-------------------------------------------------------------stu *chazhao(stu *head){ fflush(stdin); cout<<"按学号查找选:1 姓名查找选:2: "<<endl <<"输入查找方式 = "; int chance; cin>>chance;switch (chance) { case 1: { char Num[20]; cout<<"要查找学生的学号为:"; cin>>Num; stu *p = head; for (p ; p ; p = p->next) { if (strcmp(p->num , Num) == 0) { p->show(); cout<<endl; cout<<"是否修改数据?Yes 1 No 0"<<endl; int chance; cin>>chance; if (chance) { cout<<"新学号为:"; cin>>p->num; cout<<"修改姓名为:"; cin>>p->name; cout<<"修改成绩为:"; cin>>p->score; cout<<"修改成功!"<<endl; cout<<"按任意键继续···"<<endl; getch(); return head; } else { return head; } } } return head; } case 2: { char Name[20]; cout<<"要查找学生的姓名为:"; cin>>Name; stu *p = head; for ( ; p ; p = p->next) { if (strcmp(p->name,Name) == 0) { p->show(); cout<<endl; cout<<"是否修改数据?Yes 1 No 0"<<endl; int chance; cin>>chance; if (chance) { cout<<"新学号为:"; cin>>p->num; cout<<"修改姓名为:"; cin>>p->name; cout<<"修改成绩为:"; cin>>p->score; cout<<"修改成功!"<<endl; cout<<"按任意键继续···"<<endl; getch(); return head; } else { return head; } } } return head; } }}//------------------------------------遍历信息----------------------------stu *bianli(stu *head){ stu *p = head; int i = 1; for (; p ;p = p->next) { p->show(); cout<<endl; } cout<<"按任意键继续···"<<endl; getch(); return head;}//------------------------------------添加信息---------------------------------stu *tianjia(stu *head){ int flag; cout<<"插入到第几个位置:"; fflush(stdin); cin>>flag; stu *p = head; if (flag == 1) { stu *New = new stu; New->next = head; cout<<"添加成功!!"<<endl; return New; } else { int i = 1; while(i < flag - 1) { p = p->next; ++i; } stu *New = new stu; New->next = p->next; p->next = New; cout<<"添加成功!!"<<endl; cout<<"按任意键继续···"<<endl; getch(); return head; } for ( int i = 1 ;i == (flag - 1); p = p->next,++i) { stu *New = new stu; New->next = p->next; p->next = New; cout<<"添加成功!!"<<endl; cout<<"按任意键继续···"<<endl; getch(); return head; }}//----------------------------删除模块---------------------------------stu *shanchu(stu *head){// system("cls"); fflush(stdin); cout<<"删除操作:"<<endl <<"按学号查找选:1 按姓名查找选:2 "<<endl <<"输入查找方式 = "; int chance; cin>>chance;switch (chance) { case 1: { char Num[20]; cout<<"要删除学生的学号为:"; cin>>Num; stu *p = head; int count = 1; for (p ; p ;p = p->next, count++) { if (strcmp(p->num , Num) == 0) { p->show(); cout<<endl; cout<<"是否删除数据?Yes 1,No 0"<<endl; int chance; cin>>chance; if (chance) { if (p->next == 0) //删除的为最后一个节点 { int i = 1; p= head; while (i < count - 1) { p = p->next; i++; } // delete p->next; p->next = NULL; stu::Count--; cout<<"删除成功!最后一个"<<endl; cout<<"按任意键继续···"<<endl; getch(); return head; } else if (p == head) //删除的第一个节点 { stu *node = p->next; delete p; stu::Count--; cout<<"删除成功!第一个节点"<<endl; cout<<"按任意键继续···"<<endl; getch(); return node; } else //删除中间节点 { stu *node = p->next; strcpy(p->num ,node->num); strcpy(p->name ,node->name); strcpy(p->score,node->score); p->w =node->w; p->next = node->next; delete node; stu::Count--; cout<<"删除成功!中间节点"<<endl; cout<<"按任意键继续···"<<endl; getch(); return head; } } else { return head; } } } return head; } case 2: { char Name[20]; cout<<"要删除学生的学生姓名为:"; cin>>Name; stu *p = head; int count = 1; for (p ; p ; p = p->next, count++) { if (strcmp(p->name ,Name) == 0) { p->show(); cout<<endl; cout<<"是否删除数据?Yes 1,No 0"<<endl; int chance; cin>>chance; if (chance) { if (p->next == 0) //删除的为最后一个节点 { int i = 1; p= head; while (i < count - 1) { p = p->next; i++; } // delete p->next; p->next = NULL; stu::Count--; cout<<"删除成功!最后一个"<<endl; cout<<"按任意键继续···"<<endl; getch(); return head; } else if (p == head) //删除的第一个节点 { stu *node = p->next; delete p; stu::Count--; cout<<"删除成功!第一个节点"<<endl; cout<<"按任意键继续···"<<endl; getch(); return node; } else //删除中间节点 { stu *node = p->next; strcpy(p->num ,node->num); strcpy(p->name ,node->name); strcpy(p->score,node->score); p->next = node->next; delete node; stu::Count--; cout<<"删除成功!中间节点"<<endl; cout<<"按任意键继续···"<<endl; getch(); return head; } } else { return head; } } } return head; } }}//-----------------------------主函数-------------------------------------int main(){ stu *Head ; int begin; cout<<" " <<"欢迎进入新系统"<<endl<<"按任意键进入···"<<endl; int y = getch(); system("cls"); Head = create(); int x; x = getchar(); while(x != 0) { cout<<" "<<"菜单"<<endl <<" 1.查询修改 2.添加信息 "<<endl <<" 3.删除信息 4.遍历学生信息 "<<endl <<" 5.统计学生总个数 6.退出系统"<<endl <<" 选择操作: "; cin>>x; fflush(stdin); switch(x) { case 1: Head = chazhao(Head); break; case 2: Head = tianjia(Head); break; case 3: Head = shanchu(Head); break; case 4: Head = bianli(Head); break; case 5: cout<<"学生个数为:"<<stu::Count-1<<endl; break; case 6: return 0; } } system("pause");}
0 0
- 简单实现了一个学生成绩信息管理系统
- 学生成绩信息管理系统
- 一个简单的学生信息管理系统-python实现
- 使用python实现一个简单的学生信息管理系统
- 使用python实现一个简单的学生信息管理系统
- jsp学生成绩信息管理系统
- 学生成绩信息管理系统(c++)
- 一个简单的学生信息管理系统
- java 一个简单的学生信息管理系统
- java实现简单的学生信息管理系统
- C语言实现一个学生信息管理系统
- 简单学生信息管理系统
- Python实现一个学生成绩系统
- 终于完成了一个小型系统---学生信息管理系统
- 急需学生成绩信息管理系统~~嗷嗷
- 简单的学生信息管理系统
- 简单的学生信息管理系统
- 简单的学生信息管理系统
- 49 款人脸检测/识别的API、库和软件(转)
- 使用WinPcap抓包分析网络协议
- HDU1875:畅通工程再续【Kruskal & Prim】
- Group By的简单用法
- uva10943(球放盒子问题)
- 简单实现了一个学生成绩信息管理系统
- hdu1671
- what-to-tune-in-mysql-56-after-installation.html
- 关闭对话框重启还保留着上次的数据--MFC中如何把数据保存到注册表
- poj 2421 Constructing Roads【kruskal & prim】
- MVC设计模式,预处理,转码(2015.8.11)
- BZOJ1011
- 做一个像向日葵一样的项目经理——激励你的团队
- POJ 3617 Best Cow Line(贪心)