赞
踩
很多大一的同学刚接触C语言都有过被课设困扰的烦恼吧,别担心,幸好你刷到了我这篇文章,本人结合C语言的学习经验和对面向过程开发的理解,特意写了一个关于学生成绩管理系统的程序,希望给还在抓耳挠腮的你一丝丝的灵感。
(一)项目需求:
(二)成品 展示:
注:背景颜色是窗口属性调节的,不是代码弄的!
(三)程序剖析
头文件:
- #include<iostream> //引用c++的输入输出流,方便输入输出字符串
- #include<conio.h> //引用控制台头文件,调用函数getch()等待键盘输入
- #include<stdlib.h> //C语言标准库头文件可调用多种基础函数
- #include<stdio.h> //C语言的输入输出头文件
-
- using namespace std; //调用c++标准库,功能强大
学生结构体:
- struct students
- {
- string name;//姓名
- string num;//学号
- int chinese;//语文成绩
- int math;//数学成绩
- int english;//英语成绩
- int sum;//总分
- int rank;//排名
- }stu[100];
中间学生结构体:
- //用于后续"删除”功能的使用,后面会详解。
-
- struct student
- {
- string name;//姓名
- string num;//学号
- int chinese;//语文成绩
- int math;//数学成绩
- int english;//英语成绩
- int sum;//总分
- int rank;//排名
- }_stu[100];
函数声明:
- void cover();//封面函数声明
- void menu_main();//主菜单函数声明
- void menu_search();//搜索菜单函数声明
- void menu_single();//单科成绩菜单函数声明
功能实现:
1、录入学生信息
- cout<<"Please enter the number of students:"<<endl;
- cin>>n;
- cout<<"Please enter student information:"<<endl;
- cout<<"INCLUDE:";
- for(int i = 1; i <= n; i++)
- {
- cout<<endl<<"Name : "; cin>>stu[i].name;
- cout<<"Numbers : "; cin>>stu[i].num;
- cout<<"Chinese score : "; cin>>stu[i].chinese;
- cout<<"Math score : "; cin>>stu[i].math;
- cout<<"English score : "; cin>>stu[i].english;
- stu[i].sum = stu[i].chinese + stu[i].math + stu[i].english;
- }
2、学生成绩排名
- //冒泡排序
- for(int i = 1; i <= n ; i++)
- {
- for(int j = i+1 ; j <= n ; j++)
- {
- if(stu[j].sum>stu[i].sum)
- {
- //根据总分排序
- int temp = stu[j].sum;
- stu[j].sum = stu[i].sum;
- stu[i].sum = temp;
- //更换学号
- string temp0 = stu[j].num;
- stu[j].num = stu[i].num;
- stu[i].num = temp0;
- //更换名字
- string temp1 = stu[j].name;
- stu[j].name = stu[i].name;
- stu[i].name = temp1;
- //更换语文成绩
- int temp2 = stu[j].chinese;
- stu[j].chinese = stu[i].chinese;
- stu[i].chinese = temp2;
- //更换数学成绩
- int temp3 = stu[j].math;
- stu[j].math = stu[i].math;
- stu[i].math = temp3;
- //更换英语成绩
- int temp4 = stu[j].english;
- stu[j].english = stu[i].english;
- stu[i].english = temp4;
- }
- }
- }
3、删除学生信息
算法:
- string del_name;
- // struct students _stu[100];
- cout<<"Please enter the name of the student whose grade you wish to delete(请输入你要删除成绩的学生的姓名):";
- cin>>del_name;
- for(int i = 1; i <= n; i++)
- {
- if(del_name == stu[i].name)//找到了
- {
- // _stu[i].name = "\\";// \ -是转义字符
- // _stu[i].num = "\\" ;
- for(int j = 1; j <= i-1; j++)
- {
- _stu[j].name = stu[j].name;//将i前面的数据转移
- _stu[j].num = stu[j].num;
- _stu[j].chinese = stu[j].chinese;
- _stu[j].math = stu[j].math;
- _stu[j].english = stu[j].english;
- _stu[j].sum = stu[j].sum;
- }
- //显然,_stu[i]中和i对应的数据是空的,但是没关系,重新排序就好了 ,此行必在最后面
- //name = ' ',num = ' ', c = 0, m = 0, e = 0 ,sum = 0,r = ?
- for(int j = i+1; j <= n; j++)
- {
- _stu[j-1].name = stu[j].name;//将i后面的数据转移
- _stu[j-1].num = stu[j].num;
- _stu[j-1].chinese = stu[j].chinese;
- _stu[j-1].math = stu[j].math;
- _stu[j-1].english = stu[j].english;
- _stu[j-1].sum = stu[j].sum;
- }
- n = n - 1;//点睛之笔, 别忘了让整体的数组元素少一
- for(int k = 1; k <= n; k++)
- {
- stu[k].name = _stu[k].name;//换回
- stu[k].num = _stu[k].num;
- stu[k].chinese = _stu[k].chinese;
- stu[k].math = _stu[k].math;
- stu[k].english = _stu[k].english;
- stu[k].sum = _stu[k].sum;
- }
-
- }
- }
4、查询学生成绩
- //基本上就是字符串比较
-
- int mark;
- do{
- menu_search();
- cin>>mark;
- if(mark == 1)
- {
- string num;
- cout<<"Input number:";
- cin>>num;
- for(int i = 1; i <= n; i++)
- {
- if(num == stu[i].num)
- {
- cout<<"Name : "<<stu[i].name<<endl;
- cout<<"Chinese score : "<<stu[i].chinese<<endl;
- cout<<"Math score : "<<stu[i].math<<endl;
- cout<<"Englsih score : "<<stu[i].english<<endl;
- cout<<"Sum of score : "<<stu[i].sum<<endl;
- cout<<"Rank of student "<<stu[i].rank<<endl;
- getch();
- }
- }
- }
- if(mark == 2)
- {
- string name;
- cout<<"Input name : ";
- cin>>name;
- for(int i = 1; i <= n; i++)
- {
- if(name == stu[i].name)
- {
- cout<<"Number : "<<stu[i].num<<endl;
- cout<<"Chinese score : "<<stu[i].chinese<<endl;
- cout<<"Math score : "<<stu[i].math<<endl;
- cout<<"Englsih score : "<<stu[i].english<<endl;
- cout<<"Sum of score : "<<stu[i].sum<<endl;
- cout<<"Rank of student "<<stu[i].rank<<endl;
- getch();
- }
- }
- }
- if(mark == 3)
- {
- int sum;
- cout<<"Input sum of score : ";
- cin>>sum;
- for(int i = 1; i <= n; i++)
- {
- if(sum == stu[i].sum)
- {
- cout<<"Number : "<<stu[i].num<<endl;
- cout<<"Name : "<<stu[i].name<<endl;
- cout<<"Chinese score : "<<stu[i].chinese<<endl;
- cout<<"Math score : "<<stu[i].math<<endl;
- cout<<"Englsih score : "<<stu[i].english<<endl;
- cout<<"Rank of student "<<stu[i].rank<<endl;
- getch();
- }
- }
- }
- if(mark == 4)
- {
- int find;
- int search;
- do{
- menu_single();
- cin>>find;
-
- if(find == 1)//查语文
- {
- for(int i = 1; i <= n; i++)
- {
- _stu[i].name = stu[i].name;
- _stu[i].num = stu[i].num;
- _stu[i].chinese = stu[i].chinese;
- }
- for(int i = 1; i <= n; i++)
- {
- for(int j = i+1; j <= n; j++)
- {
- if(_stu[i].chinese < _stu[j].chinese)
- { //更换语文成绩
- int temp2 = _stu[j].chinese;
- _stu[j].chinese = _stu[i].chinese;
- _stu[i].chinese = temp2;
- //更换学号
- string temp0 = _stu[j].num;
- _stu[j].num = _stu[i].num;
- _stu[i].num = temp0;
- //更换名字
- string temp1 = _stu[j].name;
- _stu[j].name = _stu[i].name;
- _stu[i].name = temp1;
- }
- }
- }
- cout<<"Chinese transcripts : "<<endl;
- cout<<"Name\tNumber\tChinese : "<<endl;
- for(int i = 1; i <= n; i++)
- {
- cout<<_stu[i].name<<'\t'<<_stu[i].num<<'\t'<<_stu[i].chinese<<endl;
- }
- cout<<"Failure list of Chinese grades (score < 60 ): "<<endl;
- cout<<"Name\tNumber\tChinese : "<<endl;
- for(int i = 1; i <= n; i++)
- {
- if(_stu[i].chinese < 60)
- cout<<_stu[i].name<<'\t'<<_stu[i].num<<'\t'<<_stu[i].chinese<<endl;
- }
- cout<<"For a quick search, press 5,(快捷搜索);"<<"Return to the parent directory , press 0 "<<endl;
- cin>>search;
- if(search == 5)
- {
- do{
- system("cls");
- int con;
- string S_name,S_num;
- cout<<"[Quick search]"<<endl<<endl;
- cout<<"Press '1' to continue,press '0' to stop ."<<endl;
- getch();
- cin>>con;
- if(con == 1)
- {
- cout<<"Please enter the name and student id"<<endl;
- cout<<"Name: "; cin>>S_name; cout<<"ID : "; cin>>S_num;
- for(int i = 1; i <= n; i++)
- {
- if(S_name == _stu[i].name && S_num == _stu[i].num)
- {
- cout<<"Chinese : "<<_stu[i].chinese<<endl;
- }
- }
- getch();
- }
- if(con == 0)
- search = 0;
- }while( search!= 0);
- }
- cout<<"After the display is complete, press any key to return to the parent directory (@^V^@);"<<endl;
- getch();
- }
5、修改学生成绩
- string name,_name,num;
- int chinese,math,english,sum;
- cout<<"Please enter the name of the person whose score you want to change:(你要修改谁的成绩?):";
- cin>>name;
- cout<<"Please re-enter the correct information (请重新输入正确的信息):"<<endl;
- cout<<"Name : "<<' '; cin>>_name;
- cout<<"Number : "<<' '; cin>>num;
- cout<<"Chinese : "<<' '; cin>>chinese;
- cout<<"English : "<<' '; cin>>english;
- cout<<"Math : "<<' '; cin>>math;
- sum = chinese + english + math;
- for(int i = 1; i <= n; i++)
- {
- if(name == stu[i].name)
- {
- stu[i].name = _name;
- stu[i].num = num;
- stu[i].chinese = chinese;
- stu[i].math = math;
- stu[i].english = english;
- stu[i].sum = sum;
- }
- }
6、显示学生成绩
- system("cls");//清屏函数
- cout<<"Student grades are as follows:"<<endl;
- cout<<"学号\t姓名\t语文\t数学\t英语\t总分\t名次"<<endl;
- for(int i = 1; i <= n; i++)
- {
- stu[i].rank = i;
- cout<<stu[i].num<<'\t'<<stu[i].name<<'\t'<<stu[i].
- chinese<<'\t'<<stu[i].math<<'\t'<<stu[i].english<<
- '\t'<<stu[i].sum<<'\t'<<stu[i].rank<<endl;
- }
- getch();
注:单科成绩单与不及格名单都在查询功能模块内,详细功能请参考下面完整代码。
(四)程序源代码
- #include<iostream>
- #include<conio.h>
- #include<stdlib.h>
- #include<stdio.h>
-
- using namespace std;
-
- struct students
- {
- string name;//姓名
- string num;//学号
- int chinese;//语文成绩
- int math;//数学成绩
- int english;//英语成绩
- int sum;//总分
- int rank;//排名
- }stu[100];
- //替身
- struct student
- {
- string name;//姓名
- string num;//学号
- int chinese;//语文成绩
- int math;//数学成绩
- int english;//英语成绩
- int sum;//总分
- int rank;//排名
- }_stu[100];
-
- void cover();//封面函数声明
- void menu_main();
- void menu_search();
- void menu_single();
-
- int main()
- {
- cover();
- getch();
- int n;
- int flag;
- system("cls");
- cout<<"Please enter the number of students:"<<endl;
- cin>>n;
- cout<<"Please enter student information:"<<endl;
- cout<<"INCLUDE:"<<endl;
- for(int i = 1; i <= n; i++)
- {
- cout<<"----------------the number of "<<i<<" student:-------------------"<<endl;
- cout<<"Name : "; cin>>stu[i].name;
- cout<<"Numbers : "; cin>>stu[i].num;
- cout<<"Chinese score : "; cin>>stu[i].chinese;
- cout<<"Math score : "; cin>>stu[i].math;
- cout<<"English score : "; cin>>stu[i].english;
- stu[i].sum = stu[i].chinese + stu[i].math + stu[i].english;
- }
-
- do{
- menu_main();
- cin>>flag;
- if(flag == 1)//新加一位
- {
- n = n+1;
- cout<<"Please enter new student information : "<<endl;
- cout<<"INCLUDE:";
- cout<<endl<<"Name : "; cin>>stu[n].name;
- cout<<"Numbers : "; cin>>stu[n].num;
- cout<<"Chinese score : "; cin>>stu[n].chinese;
- cout<<"Math score : "; cin>>stu[n].math;
- cout<<"English score : "; cin>>stu[n].english;
- stu[n].sum = stu[n].chinese + stu[n].math + stu[n].english;
- cout<<"Add to complete (^v^)!"<<endl;
- getch();
- }
-
- if(flag == 2)//成绩排名
- {
- //冒泡排序
- for(int i = 1; i <= n ; i++)
- {
- for(int j = i+1 ; j <= n ; j++)
- {
- if(stu[j].sum>stu[i].sum)
- {
- //根据总分排序
- int temp = stu[j].sum;
- stu[j].sum = stu[i].sum;
- stu[i].sum = temp;
- //更换学号
- string temp0 = stu[j].num;
- stu[j].num = stu[i].num;
- stu[i].num = temp0;
- //更换名字
- string temp1 = stu[j].name;
- stu[j].name = stu[i].name;
- stu[i].name = temp1;
- //更换语文成绩
- int temp2 = stu[j].chinese;
- stu[j].chinese = stu[i].chinese;
- stu[i].chinese = temp2;
- //更换数学成绩
- int temp3 = stu[j].math;
- stu[j].math = stu[i].math;
- stu[i].math = temp3;
- //更换英语成绩
- int temp4 = stu[j].english;
- stu[j].english = stu[i].english;
- stu[i].english = temp4;
- }
- }
- }
- //rank
- for(int i = 1; i <= n; i++)
- {
- stu[i].rank = i;
- }
- cout<<"The student ranking is complete !(^v^)!"<<endl;
- getch();
- }
-
- if(flag == 3)//查询学生成绩
- {
- int mark;
- do{
- menu_search();
- cin>>mark;
- if(mark == 1)
- {
- string num;
- cout<<"Input number:";
- cin>>num;
- for(int i = 1; i <= n; i++)
- {
- if(num == stu[i].num)
- {
- cout<<"Name : "<<stu[i].name<<endl;
- cout<<"Chinese score : "<<stu[i].chinese<<endl;
- cout<<"Math score : "<<stu[i].math<<endl;
- cout<<"Englsih score : "<<stu[i].english<<endl;
- cout<<"Sum of score : "<<stu[i].sum<<endl;
- cout<<"Rank of student "<<stu[i].rank<<endl;
- getch();
- }
- }
- }
- if(mark == 2)
- {
- string name;
- cout<<"Input name : ";
- cin>>name;
- for(int i = 1; i <= n; i++)
- {
- if(name == stu[i].name)
- {
- cout<<"Number : "<<stu[i].num<<endl;
- cout<<"Chinese score : "<<stu[i].chinese<<endl;
- cout<<"Math score : "<<stu[i].math<<endl;
- cout<<"Englsih score : "<<stu[i].english<<endl;
- cout<<"Sum of score : "<<stu[i].sum<<endl;
- cout<<"Rank of student "<<stu[i].rank<<endl;
- getch();
- }
- }
- }
- if(mark == 3)
- {
- int sum;
- cout<<"Input sum of score : ";
- cin>>sum;
- for(int i = 1; i <= n; i++)
- {
- if(sum == stu[i].sum)
- {
- cout<<"Number : "<<stu[i].num<<endl;
- cout<<"Name : "<<stu[i].name<<endl;
- cout<<"Chinese score : "<<stu[i].chinese<<endl;
- cout<<"Math score : "<<stu[i].math<<endl;
- cout<<"Englsih score : "<<stu[i].english<<endl;
- cout<<"Rank of student "<<stu[i].rank<<endl;
- getch();
- }
- }
- }
- if(mark == 4)
- {
- int find;
- int search;
- do{
- menu_single();
- cin>>find;
-
- if(find == 1)//查语文
- {
- for(int i = 1; i <= n; i++)
- {
- _stu[i].name = stu[i].name;
- _stu[i].num = stu[i].num;
- _stu[i].chinese = stu[i].chinese;
- }
- for(int i = 1; i <= n; i++)
- {
- for(int j = i+1; j <= n; j++)
- {
- if(_stu[i].chinese < _stu[j].chinese)
- { //更换语文成绩
- int temp2 = _stu[j].chinese;
- _stu[j].chinese = _stu[i].chinese;
- _stu[i].chinese = temp2;
- //更换学号
- string temp0 = _stu[j].num;
- _stu[j].num = _stu[i].num;
- _stu[i].num = temp0;
- //更换名字
- string temp1 = _stu[j].name;
- _stu[j].name = _stu[i].name;
- _stu[i].name = temp1;
- }
- }
- }
- cout<<"Chinese transcripts : "<<endl;
- cout<<"Name\tNumber\tChinese : "<<endl;
- for(int i = 1; i <= n; i++)
- {
- cout<<_stu[i].name<<'\t'<<_stu[i].num<<'\t'<<_stu[i].chinese<<endl;
- }
- cout<<"Failure list of Chinese grades (score < 60 ): "<<endl;
- cout<<"Name\tNumber\tChinese : "<<endl;
- for(int i = 1; i <= n; i++)
- {
- if(_stu[i].chinese < 60)
- cout<<_stu[i].name<<'\t'<<_stu[i].num<<'\t'<<_stu[i].chinese<<endl;
- }
- cout<<"For a quick search, press 5,(快捷搜索);"<<"Return to the parent directory , press 0 "<<endl;
- cin>>search;
- if(search == 5)
- {
- do{
- system("cls");
- int con;
- string S_name,S_num;
- cout<<"[Quick search]"<<endl<<endl;
- cout<<"Press '1' to continue,press '0' to stop ."<<endl;
- getch();
- cin>>con;
- if(con == 1)
- {
- cout<<"Please enter the name and student id"<<endl;
- cout<<"Name: "; cin>>S_name; cout<<"ID : "; cin>>S_num;
- for(int i = 1; i <= n; i++)
- {
- if(S_name == _stu[i].name && S_num == _stu[i].num)
- {
- cout<<"Chinese : "<<_stu[i].chinese<<endl;
- }
- }
- getch();
- }
- if(con == 0)
- search = 0;
- }while( search!= 0);
- }
- cout<<"After the display is complete, press any key to return to the parent directory (@^V^@);"<<endl;
- getch();
- }
-
- if(find == 2)//查数学
- {
- for(int i = 1; i <= n; i++)
- {
- _stu[i].name = stu[i].name;
- _stu[i].num = stu[i].num;
- _stu[i].math = stu[i].math;
- }
- for(int i = 1; i <= n; i++)
- {
- for(int j = i+1; j <= n; j++)
- {
- if(_stu[i].math < _stu[j].math)
- { //更换数学成绩
- int temp2 = _stu[j].math;
- _stu[j].math = _stu[i].math;
- _stu[i].math = temp2;
- //更换学号
- string temp0 = _stu[j].num;
- _stu[j].num = _stu[i].num;
- _stu[i].num = temp0;
- //更换名字
- string temp1 = _stu[j].name;
- _stu[j].name = _stu[i].name;
- _stu[i].name = temp1;
- }
- }
- }
- cout<<"math transcripts : "<<endl;
- cout<<"Name\tNumber\tMath : "<<endl;
- for(int i = 1; i <= n; i++)
- {
- cout<<_stu[i].name<<'\t'<<_stu[i].num<<'\t'<<_stu[i].math<<endl;
- }
- cout<<"Failure list of math grades (score < 60 ): "<<endl;
- cout<<"Name\tNumber\tMath : "<<endl;
- for(int i = 1; i <= n; i++)
- {
- if(_stu[i].math < 60)
- cout<<_stu[i].name<<'\t'<<_stu[i].num<<'\t'<<_stu[i].math<<endl;
- }
- cout<<"For a quick search, press 5,(快捷搜索);"<<"Return to the parent directory , press 0 "<<endl;
- cin>>search;
- if(search == 5)
- {
- do{
- system("cls");
- int con;
- string S_name,S_num;
- cout<<"[Quick search]"<<endl<<endl;
- cout<<"Press '1' to continue,press '0' to stop ."<<endl;
- getch();
- cin>>con;
- if(con == 1)
- {
- cout<<"Please enter the name and student id"<<endl;
- cout<<"Name: "; cin>>S_name; cout<<"ID : "; cin>>S_num;
- for(int i = 1; i <= n; i++)
- {
- if(S_name == _stu[i].name && S_num == _stu[i].num)
- {
- cout<<"Math : "<<_stu[i].math<<endl;
- }
- }
- getch();
- }
- if(con == 0)
- search = 0;
- }while( search!= 0);
- }
- cout<<"After the display is complete, press any key to return to the parent directory(@^V^@);"<<endl;
- getch();
- }
-
- if(find == 3)//查英语
- {
- for(int i = 1; i <= n; i++)
- {
- _stu[i].name = stu[i].name;
- _stu[i].num = stu[i].num;
- _stu[i].english = stu[i].english;
- }
- for(int i = 1; i <= n; i++)
- {
- for(int j = i+1; j <= n; j++)
- {
- if(_stu[i].english < _stu[j].english)
- {
- //更换英语成绩
- int temp2 = _stu[j].english;
- _stu[j].english = _stu[i].english;
- _stu[i].english = temp2;
- //更换学号
- string temp0 = _stu[j].num;
- _stu[j].num = _stu[i].num;
- _stu[i].num = temp0;
- //更换名字
- string temp1 = _stu[j].name;
- _stu[j].name = _stu[i].name;
- _stu[i].name = temp1;
- }
- }
- }
- cout<<"english transcripts : "<<endl;
- cout<<"Name\tNumber\tEnglish : "<<endl;
- for(int i = 1; i <= n; i++)
- {
- cout<<_stu[i].name<<'\t'<<_stu[i].num<<'\t'<<_stu[i].english<<endl;
- }
- cout<<"Failure list of english grades (score < 60 ): "<<endl;
- cout<<"Name\tNumber\tEnglish : "<<endl;
- for(int i = 1; i <= n; i++)
- {
- if(_stu[i].english < 60)
- cout<<_stu[i].name<<'\t'<<_stu[i].num<<'\t'<<_stu[i].english<<endl;
- }
- cout<<"For a quick search, press 5,(快捷搜索);"<<"Return to the parent directory , press 0 "<<endl;
- cin>>search;
- if(search == 5)
- {
- do{
- system("cls");
- int con;
- string S_name,S_num;
- cout<<"[Quick search]"<<endl<<endl;
- cout<<"Press '1' to continue,press '0' to stop ."<<endl;
- getch();
- cin>>con;
- if(con == 1)
- {
- cout<<"Please enter the name and student id"<<endl;
- cout<<"Name: "; cin>>S_name; cout<<"ID : "; cin>>S_num;
- for(int i = 1; i <= n; i++)
- {
- if(S_name == _stu[i].name && S_num == _stu[i].num)
- {
- cout<<"English : "<<_stu[i].english<<endl;
- }
- }
- getch();
- }
- if(con == 0)
- search = 0;
- }while( search!= 0);
- }
- cout<<"After the display is complete, press any key to return to the parent directory(@^V^@);"<<endl;
- getch();
- }
-
- }while(find != 0);
- }
- }while(mark != 0);
- cout<<"All content is displayed"<<endl;
- getch();
- }
-
- if(flag == 4)//修改成绩
- {
- string name,_name,num;
- int chinese,math,english,sum;
- cout<<"Please enter the name of the person whose score you want to change:(你要修改谁的成绩?):";
- cin>>name;
- cout<<"Please re-enter the correct information (请重新输入正确的信息):"<<endl;
- cout<<"Name : "<<' '; cin>>_name;
- cout<<"Number : "<<' '; cin>>num;
- cout<<"Chinese : "<<' '; cin>>chinese;
- cout<<"English : "<<' '; cin>>english;
- cout<<"Math : "<<' '; cin>>math;
- sum = chinese + english + math;
- for(int i = 1; i <= n; i++)
- {
- if(name == stu[i].name)
- {
- stu[i].name = _name;
- stu[i].num = num;
- stu[i].chinese = chinese;
- stu[i].math = math;
- stu[i].english = english;
- stu[i].sum = sum;
- }
- }
- cout<<"Modified completed !(^v^)!"<<endl;
- getch();
- }
- if(flag == 5)//删除成绩
- {
- string del_name;
- // struct students _stu[100];
- cout<<"Please enter the name of the student whose grade you wish to delete(请输入你要删除成绩的学生的姓名):";
- cin>>del_name;
- for(int i = 1; i <= n; i++)
- {
- if(del_name == stu[i].name)//找到了
- {
- // _stu[i].name = "\\";// \ -是转义字符
- // _stu[i].num = "\\" ;
- for(int j = 1; j <= i-1; j++)
- {
- _stu[j].name = stu[j].name;//将i前面的数据转移
- _stu[j].num = stu[j].num;
- _stu[j].chinese = stu[j].chinese;
- _stu[j].math = stu[j].math;
- _stu[j].english = stu[j].english;
- _stu[j].sum = stu[j].sum;
- }
- //显然,_stu[i]中和i对应的数据是空的,但是没关系,重新排序就好了 ,此行必在最后面
- //name = ' ',num = ' ', c = 0, m = 0, e = 0 ,sum = 0,r = ?
- for(int j = i+1; j <= n; j++)
- {
- _stu[j-1].name = stu[j].name;//将i后面的数据转移
- _stu[j-1].num = stu[j].num;
- _stu[j-1].chinese = stu[j].chinese;
- _stu[j-1].math = stu[j].math;
- _stu[j-1].english = stu[j].english;
- _stu[j-1].sum = stu[j].sum;
- }
- n = n - 1;//点睛之笔, 别忘了让整体的数组元素少一
- for(int k = 1; k <= n; k++)
- {
- stu[k].name = _stu[k].name;//换回
- stu[k].num = _stu[k].num;
- stu[k].chinese = _stu[k].chinese;
- stu[k].math = _stu[k].math;
- stu[k].english = _stu[k].english;
- stu[k].sum = _stu[k].sum;
- }
-
- }
- }
- cout<<"Delete finished, please reorder(删除完毕,请重新排序)!(^v^)!"<<endl;
- getch();
- }
-
- if(flag == 6)//显示学生成绩信息
- {
- system("cls");
- cout<<"Student grades are as follows:"<<endl;
- cout<<"学号\t姓名\t语文\t数学\t英语\t总分\t名次"<<endl;
- for(int i = 1; i <= n; i++)
- {
- stu[i].rank = i;
- cout<<stu[i].num<<'\t'<<stu[i].name<<'\t'<<stu[i].
- chinese<<'\t'<<stu[i].math<<'\t'<<stu[i].english<<
- '\t'<<stu[i].sum<<'\t'<<stu[i].rank<<endl;
- }
- getch();
- }
-
- }while(flag != 0);
-
- return 0;
- }
- void cover()
- {
- cout<<"====================================================================================="<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl<<"*"
- <<" *"<<endl;
- cout<<"* Welcome to the Student Achievement Management System *"<<endl;//欢迎使用学生成绩管理系统
- cout<<"* ( 欢 迎 使 用 学 生 成 绩 管 理 系 统 ) *" <<endl;
- cout<<"* *"<<endl<<
- "* *"<<endl
- <<"* *"<<endl
- <<"* *"<<endl
- <<"* *"<<endl
- <<"* *"<<endl
- <<"* *"<<endl
- <<"* *"<<endl
- <<"* *"<<endl
- <<"* *"<<endl
- <<"* *"<<endl
- <<"=====================================================================================";
- }
-
- void menu_main()//主页菜单
- {
- system("cls");
- cout<<endl;
- cout<<"====================================================================================="<<endl;
- cout<<"* The home page menu *"<<endl;
- cout<<"====================================================================================="<<endl;
- cout<<"* 1 : Add(添加) a new classmate information; *"<<endl;
- cout<<"* 2 : Student Achievement Ranking(排名); *"<<endl;
- cout<<"* 3 : Inquire(查询) student grades information; *"<<endl;
- cout<<"* 4 : Change(修改) student grades information; *"<<endl;
- cout<<"* 5 : Delete(删除) student grades information; *"<<endl;
- cout<<"* 6 : Display(展示) student information; *"<<endl;
- cout<<"* 0 : Pressing '0' : Exit to system ; *"<<endl;
- cout<<"====================================================================================="<<endl;
- }
- void menu_search()//查询菜单
- {
- system("cls");
- cout<<endl;
- cout<<"-------------------------------------------------------------------------------------"<<endl;
- cout<<"* Inquiry Modes: *"<<endl;
- cout<<"-------------------------------------------------------------------------------------"<<endl;
- cout<<"* 1:Student number query; *"<<endl;
- cout<<"* 2:Name query; *"<<endl;
- cout<<"* 3:Total score query; *"<<endl;
- cout<<"* 4: Single subject score(单科成绩) query *"<<endl;
- cout<<"* and fail statistics(不及格统计); *"<<endl;
- cout<<"* 0: Return main menu. *"<<endl;
- cout<<"-------------------------------------------------------------------------------------"<<endl;
- }
- void menu_single()//单科查询
- {
- system("cls");
- cout<<endl;
- cout<<"-------------------------------------------------------------------------------------"<<endl;
- cout<<"* Subjects area : *"<<endl;
- cout<<"-------------------------------------------------------------------------------------"<<endl;
- cout<<"* 1: Chinese transcript; *"<<endl;
- cout<<"* 2: Math transcript; *"<<endl;
- cout<<"* 3: English transcript; *"<<endl;
- cout<<"* 0: Return to the parent directory; *"<<endl;
- cout<<"* Attention: Press the 1 or 2 or 3 key to select; *"<<endl;
- cout<<"-------------------------------------------------------------------------------------"<<endl;
- }
注:本程序全部采用面向过程编程,思路和逻辑都属于C语言范畴,但输入输出为了方便都采用了cout,cin等高级语法,读者可自行更改;并且大量提示信息都采用英文书写更显高级感,读者觉得看着不方便也可自行改成中文;最后,谢谢大家的阅读与采纳。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。