#include<iostream>
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<iomanip>
using namespace std;
typedef struct
{
char num[10];
char cla[10];
char name[20];
char chian[10];
char shuxue[20];
char english[10];
char jsj[20];
}Student;
Student stu[80];
int menu()
{
char c;
for(;c<'0'||c>'9';)
{
system("cls");
cout<<"欢迎使用我们的程序。"<<endl;
cout<<"编程人员:彭正直,段传奇,赖胜莲,张弋寒,杨斌,朴惠燕,赵晨春,于鹏龙,姜淼.";
cout<<endl;
cout<<"************** 学生成绩管理系统 ************** "<<endl;
cout<<setw(15)<<" "<<"1.输入学生信息"<<endl;
cout<<setw(15)<<" "<<"2.输出学生信息"<<endl;
cout<<setw(15)<<" "<<"3.排序"<<endl;
cout<<setw(15)<<" "<<"4.插入一条记录"<<endl;
cout<<setw(15)<<" "<<"5.按姓名查找,删除一条记录"<<endl;
cout<<setw(15)<<" "<<"6.查找并显示一个记录"<<endl;
cout<<setw(15)<<" "<<"7.按姓名修改一条记录"<<endl;
cout<<setw(15)<<" "<<"8.从文件中读入数据"<<endl;
cout<<setw(15)<<" "<<"0.储存数据并退出系统"<<endl;
cout<<setfill('*')<<setw(48)<<"*"<<endl;
cout<<setw(15)<<" ";
cout<<"请选择(0-10):";
c=getchar();
}
return(c-'0');
}
int Input(Student stud[],int n) //输入数据。
{
int i=0;
char sign,x[10];
for(;sign != 'n' && sign != 'N';)
{
cout<<setw(15)<<" "<<"班级:";
cin>>stud[n+i].cla;
cout<<setw(15)<<" "<<"学号:";
cin>>stud[n+i].num;
cout<<setw(15)<<" "<<"姓名:";
cin>>stud[n+i].name;
cout<<setw(15)<<" "<<"语文:";
cin>>stud[n+i].chian;
cout<<setw(15)<<" "<<"数学:";
cin>>stud[n+i].shuxue;
cout<<setw(15)<<" "<<"英语:";
cin>>stud[n+i].english;
cout<<setw(15)<<" "<<"计算机:";
cin>>stud[n+i].jsj;
gets(x);
cout<<setw(10)<<" ";
cout<<"还有要输入的信息吗?(y/n)";
cin>>&sign;
i++;
}
return(n+i);
}
void Display(Student stud[], int n) //输出数据。
{
int i;
cout<<setw(15)<<" "<<setfill('-')<<setw(65)<<"-"<<endl;
cout<<setw(15)<<" "<<"班级 学号 姓名 语文 数学 英语 计算机"<<endl;
cout<<setw(15)<<" ";
cout<<setfill('-')<<setw(65)<<"-"<<endl;
for(i=1;i<n+1;i++)
{
printf("\t\t%-9s%-9s%-9s%-9s%-9s%-9s%-9s\n",stud[i-1].cla,stud[i-1].num,stud[i-1].name,stud[i-1].chian,stud[i-1].shuxue,stud[i-1].english,stud[i-1].jsj);
if(i>1 && i%10==0)
{
cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;
cout<<setw(15)<<" ";
system("pause");
cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;
}
}
cout<<setw(15)<<" ";
system("pause");
}
void Sort(Student stud[],int n) //按名字排序。
{
int i,j;
char t[20];
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(strcmp(stud[j].num,stud[j+1].num)>0)
{
strcpy(t,stud[j+1].cla);
strcpy(stud[j+1].cla,stud[j].cla);
strcpy(stud[j].cla,t);
strcpy(t,stud[j+1].num);
strcpy(stud[j+1].num,stud[j].num);
strcpy(stud[j].num,t);
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
strcpy(t,stud[j+1].chian);
strcpy(stud[j+1].name,stud[j].chian);
strcpy(stud[j].chian,t);
strcpy(t,stud[j+1].shuxue);
strcpy(stud[j+1].name,stud[j].shuxue);
strcpy(stud[j].shuxue,t);
strcpy(t,stud[j+1].english);
strcpy(stud[j+1].name,stud[j].english);
strcpy(stud[j].english,t);
strcpy(t,stud[j+1].jsj);
strcpy(stud[j+1].name,stud[j].jsj);
strcpy(stud[j].jsj,t);
}
cout<<setw(15)<<" "<<"排序成功!"<<endl;
}
int Insert(Student stud[],int n) //插入一条学生信息。
{
char x[10];
cout<<setw(15)<<" "<<"班级:";
cin>>stud[n].cla;
cout<<setw(15)<<" "<<"学号:";
cin>>stud[n].num;
cout<<setw(15)<<" "<<"姓名:";
cin>>stud[n].name;
cout<<setw(15)<<" "<<"语文:";
cin>>stud[n].chian;
cout<<setw(15)<<" "<<"数学:";
cin>>stud[n].shuxue;
cout<<setw(15)<<" "<<"英语:";
cin>>stud[n].english;
cout<<setw(15)<<" "<<"计算机:";
cin>>stud[n].jsj;
gets(x);
n++;
cout<<setw(15)<<" "<<"插入记录成功!"<<endl;
return(n);
}
int Delete(Student stud[],int n) //按名字查找信息,删除信息。
{
char s[20];
int i=0,j;
cin>>s;
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
printf("\t\t\t没有发现!\n"); /*返回失败信息*/
return(n);
}
for(j=i;j<n-1;j++) /*删除操作*/
{
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j].cla,stud[j+1].cla);
strcpy(stud[j].chian,stud[j+1].chian);
strcpy(stud[j].shuxue,stud[j+1].shuxue);
strcpy(stud[j].english,stud[j+1].english);
strcpy(stud[j].jsj,stud[j+1].jsj);
}
cout<<setw(15)<<" "<<"当前信息已删除成功!"<<endl; /*返回成功信息*/
return(n-1);
}
void Query(Student stud[],int n) //按名字查找信息
{
char s[20];
int i=0;
cout<<setw(15)<<" "<<"输入他(她)的姓名:";
cin>>s;
while(strcmp(stud[i].name,s)!=0&&i<n)
i++; /*查找判断*/
if(i==n)
{
printf("\t\t\t没有发现!\n"); /*输入失败信息*/
return;
}
cout<<setw(15)<<" "<<"学号:"<<stud[i].num<<endl;
cout<<setw(15)<<" "<<"语文:"<<stud[i].chian<<endl;
cout<<setw(15)<<" "<<"数学:"<<stud[i].shuxue<<endl;
cout<<setw(15)<<" "<<"英语:"<<stud[i].english<<endl;
cout<<setw(15)<<" "<<"计算机:"<<stud[i].jsj<<endl;
}
int Xiugai(Student stud[],int n) //修改信息。
{
n=Delete(stud,n);
cout<<setw(15)<<" "<<"输入你要修改的学生信息"<<endl;
n=Insert(stud,n);
cout<<setw(15)<<" "<<"修改完成"<<endl;
return(n);
}
int AddfromText(Student stud[], int n) //从文件中读入数据。
{
int i=0,num;
FILE *fp;
char filename[20];
cout<<setw(15)<<" "<<"输入文件名:";
cin>>filename;
if((fp=fopen(filename,"rb"))==NULL)
{
cout<<setw(15)<<" "<<"无法打开文件"<<endl;
cout<<setw(15)<<" ";
system("pause");
return(n);
}
fscanf(fp,"%d",&num);
for(;i<num;)
{
fscanf(fp,"%s%s%s%s%s%s%s",stud[n+i].cla,stud[n+i].num,stud[n+i].name,stud[n+i].chian,stud[n+i].shuxue,stud[n+i].english,stud[n+i].jsj);
i++;
}
n+=num;
fclose(fp);
cout<<setw(15)<<" "<<"成功!"<<endl;
cout<<setw(15)<<" ";
system("pause");
return(n);
}
void WritetoText(Student stud[],int n) //将所有记录写入文件。
{
int i=0;
FILE *fp;
char filename[20];
cout<<setw(15)<<" "<<"将记录写人文件"<<endl;
cout<<setw(15)<<" "<<"输入文件名:";
cin>>filename;
if((fp=fopen(filename,"w"))==NULL)
{
cout<<setw(15)<<" "<<"无法打开文件"<<endl;
system("pause");
return;
}
fprintf(fp,"%d\n",n);
for(;i<n;)
{
fprintf(fp,"%-6s%-5s%-5s%-5s%-5s%-5s%-5s\n",stud[i].cla,stud[i].num,stud[i].name,stud[i].chian,stud[i].shuxue,stud[i].english,stud[i].jsj);
i++;
}
fclose(fp);
cout<<setw(15)<<" "<<"成功!"<<endl;
int b;
cout<<setw(15)<<" "<<"请确定是否退出系统:"<<endl;
cout<<setw(15)<<" "<<"0.退出系统"<<endl;
cout<<setw(15)<<" "<<"1.返回"<<endl;
cin>>b;
if(b==0)
{
cout<<setw(15)<<" "<<"谢谢使用!"<<endl;
cout<<setw(15)<<" ";
system("pause");
exit(0);
}
}
void main() //主函数调用。
{
int n=0;
for(;;)
{
switch(menu())
{
case 1:
cout<<setw(15)<<" "<<"输入信息"<<endl;
n=Input(stu,n);
break;
case 2:
cout<<setw(15)<<" "<<"输出所有记录"<<endl;
Display(stu,n);
break;
case 3:
cout<<setw(15)<<" "<<"排序"<<endl;
Sort(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
case 4:
cout<<setw(15)<<" "<<"插入一条记录"<<endl;
n=Insert(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
case 5:
cout<<setw(15)<<" "<<"删除一条记录"<<endl;
cout<<setw(15)<<" "<<"输入他(她)的姓名:";
n=Delete(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
case 6:
cout<<setw(15)<<" "<<"查找"<<endl;
Query(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
case 7:
cout<<setw(15)<<" "<<"修改"<<endl;
cout<<setw(15)<<" "<<"输入你要修改的学生的姓名:";
n=Xiugai(stu,n);
system("pause");
break;
case 8:
cout<<setw(15)<<" "<<"从文件中读入数据"<<endl;
n=AddfromText(stu,n);
break;
case 0:
cout<<setw(15)<<" "<<"将所有记录写入文件"<<endl;
WritetoText(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
}
}
}
温馨提示:答案为网友推荐,仅供参考