麻烦各位,帮忙编一个学生成绩管理系统。要求如下(必须用C语言编的哟),先谢谢啦。
题目:学生成绩管理系统的设计与实现功能需求:系统用于管理多门课程和多个教学班学生的成绩。课程包括课程编号、课程名称等信息;学生信息包括学生编号、姓名、性别等信息;学生选课...
题目:学生成绩管理系统的设计与实现
功能需求:
系统用于管理多门课程和多个教学班学生的成绩。课程包括课程编号、课程名称等信息;学生信息包括学生编号、姓名、性别等信息;学生选课信息由学生编号、课程编号、成绩三个信息构成。
所有信息都要使用文件保存,
学生信息保存在stud.dat文件中;
课程信息保存在cour.dat文件中;
学生选课信息保存在 cour_stud.dat文件中。
由教务处工作人员录入课程信息、学生信息、学生选课的基本信息(无成绩),由教师录入学生成绩。
其它要求:
以上信息都要使用结构体(结构体的名称要以自己的班号和学号结尾)来封装。
界面使用控制台菜单,菜单要分层设计(树状结构),并有返回、退出等选项。
明天下午就是最后的期限了,问题也将关闭了,最佳答案必将选出。 展开
功能需求:
系统用于管理多门课程和多个教学班学生的成绩。课程包括课程编号、课程名称等信息;学生信息包括学生编号、姓名、性别等信息;学生选课信息由学生编号、课程编号、成绩三个信息构成。
所有信息都要使用文件保存,
学生信息保存在stud.dat文件中;
课程信息保存在cour.dat文件中;
学生选课信息保存在 cour_stud.dat文件中。
由教务处工作人员录入课程信息、学生信息、学生选课的基本信息(无成绩),由教师录入学生成绩。
其它要求:
以上信息都要使用结构体(结构体的名称要以自己的班号和学号结尾)来封装。
界面使用控制台菜单,菜单要分层设计(树状结构),并有返回、退出等选项。
明天下午就是最后的期限了,问题也将关闭了,最佳答案必将选出。 展开
展开全部
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
class Stu //构建学生类
{
public:
friend void Input(Stu stud[]) ;
friend void Statistic(Stu stud[]);
friend void Lookup(Stu stud[]) ;
friend void Modify(Stu stud[]) ;
friend void Delete(Stu stud[]) ;
friend void Output(Stu stud[]) ;
friend void Sort(Stu stud[]) ;
friend void Insert(Stu stud[]) ;
friend void Write(Stu stud[],int n);
friend int Read(Stu stud[]);
private:
char class_0[20];
int num;
char name[8];
float elec;
float c_program;
float media;
float english;
float math;
float sport;
float polity;
float average;
int order;
}stud[100];
void Write(Stu stud[],int n) //向文件中写入数据
{
fstream myFile;
myFile.open("student.dat",ios::out|ios::binary);
if(!myFile)
{
cout<<"student.dat can't open!"<<endl;
abort();
}
int count=n;
myFile<<count<<endl<<endl;
for(int i=0;i<=count;i++)
{
myFile<<stud[i].class_0<<" "<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].elec<<" "<<stud[i].c_program<<" "<<stud[i].media<<" "<<stud[i].english
<<" "<<stud[i].math<<" "<<stud[i].sport<<" "<<stud[i].polity<<" "<<stud[i].average<<endl;
}
myFile.close();
}
int Read(Stu stud[]) //从文件中读数据
{
fstream myFile;
myFile.open("student.dat",ios::in|ios::binary);
if(!myFile)
{
cout<<"student.dat can't open!"<<endl;
abort();
}
int count;
myFile.seekg(0);
myFile>>count;
for(int i=0;i<=count;i++)
{
myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].elec>>stud[i].c_program>>stud[i].media>>stud[i].english>>stud[i].math>>stud[i].sport>>stud[i].polity>>stud[i].average;
}
myFile.close();
return count ;
}
void Input(Stu stud[]) //---------------输入学生成绩
{
system("cls"); /*运行前清屏*/
int i=0;
int flag;
char sign;
cout<<endl<<"====>> 请输入学生成绩 <<===="<<endl;
while(sign!='n'&&sign!='N') /*判断*/
{
cout<<" 班级:"; /*交互输入*/
cin>>stud[i].class_0;
loop:
cout<<" 学号:";
cin>>stud[i].num;
int c=0;
while(c<i)
{
c++;
if(stud[i].num==stud[i-c].num)
{
cout<<" 你输入的学号已经存在!请重新输入。"<<endl;
goto loop;
}
}
cout<<" 姓名:";
cin>>stud[i].name;
do{
flag=0;
cout<<" 电子技术成绩:";
cin>>stud[i].elec;
if(stud[i].elec>100 ||stud[i].elec<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" C++程序设计成绩:";
cin>>stud[i].c_program;
if(stud[i].c_program>100 ||stud[i].c_program<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 多媒体技术成绩:";
cin>>stud[i].media;
if(stud[i].media>100 ||stud[i].media<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 大学英语成绩:";
cin>>stud[i].english;
if(stud[i].english>100 ||stud[i].english<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 高等数学成绩:";
cin>>stud[i].math;
if(stud[i].math>100 ||stud[i].math<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 大学体育成绩:";
cin>>stud[i].sport;
if(stud[i].sport>100 ||stud[i].sport<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 马克思主义政治经济学成绩:";
cin>>stud[i].polity;
if(stud[i].polity>100 ||stud[i].polity<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
stud[i].average=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7;
cout<<" 平均分为:"<<stud[i].average<<endl;
cout<<"====>提示:是否继续写入学生成绩?(Y/N)";
cin>>sign; /*输入判断*/
i++;
}
Write(stud,i);
}
void Statistic(Stu stud[]) //---------------统计学生数据
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
cout<<endl<<"====>> 输出学生统计数据 <<===="<<endl;
cout<<"班级"<<"\t"<<"学号"<<"\t"<<" 姓名"<<"\t"<<" 平均分"<<endl;
for(int i=0;i<n;i++)
cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].average<<endl;
system("pause");
}
void Lookup(Stu stud[]) //---------------查找学生成绩
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
int s;
int i=0;
cout<<endl<<"====>> 查找学生成绩 <<===="<<endl;
cout<<"请输入需要查找学生的学号:"<<endl;
cin>>s;
while((stud[i].num-s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
cout<<"=====>提示:对不起,无法找到该学生的信息!"<<endl; /*输入失败信息*/
}
else
{
cout<<"---------------------------"<<endl;
cout<<"班级:"<<stud[i].class_0<<endl; /*输出该学生信息*/
cout<<"学号:"<<stud[i].num<<endl;
cout<<"姓名:"<<stud[i].name<<endl;
cout<<"电子技术:"<<stud[i].elec<<endl;
cout<<"C++程序设计:"<<stud[i].c_program<<endl;
cout<<"多媒体技术:"<<stud[i].media<<endl;
cout<<"大学英语:"<<stud[i].english<<endl;
cout<<"高等数学:"<<stud[i].math<<endl;
cout<<"大学体育:"<<stud[i].sport<<endl;
cout<<"马克思主义政治经济学:"<<stud[i].polity<<endl;
cout<<"平均分:"<<stud[i].average<<endl;
}
}
void Modify(Stu stud[]) //---------------修改学生成绩
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
int s;
int i=0;
cout<<endl<<"====>> 修改学生成绩 <<===="<<endl;
cout<<"请输入需要修改成绩学生的学号:"<<endl;
cin>>s;
while((stud[i].num-s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
cout<<"=====>提示:对不起,无该学生的成绩……"<<endl; /*输入失败信息*/
}
else
{
cout<<"----------该学生的信息----------"<<endl; /*格式头*/
cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"c++"<<"\t"<<" 多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<endl;
cout<<"---------------------------------"<<endl;
cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].elec<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[i].average<<endl;
cout<<"请重新输入该学生的信息"<<endl;
cout<<"班级:"<<endl; /*交互输入*/
cin>>stud[i].class_0;
cout<<"学号:"<<endl;
cin>>stud[i].num;
cout<<"姓名:"<<endl;
cin>>stud[i].name;
cout<<"电子技术成绩:"<<endl;
cin>>stud[i].elec;
cout<<"C++程序设计成绩:"<<endl;
cin>>stud[i].c_program;
cout<<"多媒体技术成绩:"<<endl;
cin>>stud[i].media;
cout<<"大学英语成绩:"<<endl;
cin>>stud[i].english;
cout<<"高等数学成绩:"<<endl;
cin>>stud[i].math;
cout<<"大学体育成绩:"<<endl;
cin>>stud[i].sport;
cout<<"马克思主义政治经济学成绩:"<<endl;
cin>>stud[i].polity;
stud[i].average=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7;
cout<<"平均分为:"<<stud[i].average<<endl;
char c;
cout<<"是否保存数据?(y/n)"<<endl;
cin>>c;
if(c!='n'&&c!='N')
Write(stud,n);
}
}
void Delete(Stu stud[]) //---------------按学号查找,删除学生信息
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
int s;
int i=0,j;
cout<<endl<<"====>> 删除学生成绩 <<===="<<endl;
cout<<"请输入需要删除学生的学号:"<<endl; /*交互式问寻*/
cin>>s;
while((stud[i].num-s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
cout<<"====>提示:对不起,无法找到该学生……"<<endl; /*返回失败信息*/
}
else
{
for(j=i;j<n-1;j++) /*删除操作*/
{
strcpy(stud[j].class_0,stud[j+1].class_0);
stud[j].num=stud[j+1].num;
strcpy(stud[j].name,stud[j+1].name);
stud[j].elec=stud[j+1].elec;
stud[j].c_program=stud[j+1].c_program;
stud[j].media=stud[j+1].media;
stud[j].english=stud[j+1].english;
stud[j].math=stud[j+1].math;
stud[j].sport=stud[j+1].sport;
stud[j].polity=stud[j+1].polity;
stud[j].average=stud[j+1].average;
}
cout<<"====>提示:已成功删除!"<<endl; /*返回成功信息*/
}
Write(stud,n-1);
}
void Insert(Stu stud[]) //---------------增加学生成绩
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
char s;
cout<<endl<<"====>> 增加学生成绩<<===="<<endl;
while(s!='n'&&s!='N')
{
cout<<"班级:"<<endl; /*交互输入*/
cin>>stud[n].class_0;
cout<<"学号:";
cin>>stud[n].num;
cout<<"姓名:";
cin>>stud[n].name;
cout<<"电子技术成绩:";
cin>>stud[n].elec;
cout<<"C++程序设计成绩:";
cin>>stud[n].c_program;
cout<<"多媒体技术成绩:";
cin>>stud[n].media;
cout<<"大学英语成绩:";
cin>>stud[n].english;
cout<<"高等数学成绩:";
cin>>stud[n].math;
cout<<"大学体育成绩:";
cin>>stud[n].sport;
cout<<"马克思主义政治经济学成绩:";
cin>>stud[n].polity;
stud[n].average=(stud[n].elec+stud[n].c_program+stud[n].media+stud[n].english+ stud[n].math+stud[n].sport+stud[n].polity)/7;
cout<<"平均分"<<stud[n].average;
n++;
cout<<"=====>提示:插入成功!"<<endl; /*返回成功信息*/
cout<<"是否继续输入(y/n)"<<endl;
cin>>s;
}
Write(stud,n);
}
void Sort(Stu stud[]) //---------------按平均分对学生成绩记录项进行降序排序
{
system("cls"); /*运行前清屏*/
int i,j,k;
float s;
char t[20];
cout<<endl<<"====>> 降序排序成绩 <<===="<<endl;
int n=Read(stud);
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stud[j].average<stud[j+1].average)
{
strcpy(t,stud[j+1].class_0);
strcpy(stud[j+1].class_0,stud[j].class_0);
strcpy(stud[j].class_0,t);
k=stud[j+1].num;
stud[j+1].num=stud[j].num;
stud[j].num=k;
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
s=stud[j+1].elec;
stud[j+1].elec=stud[j].elec;
stud[j].elec=s;
s=stud[j+1].c_program;
stud[j+1].c_program=stud[j].c_program;
stud[j].c_program=s;
s=stud[j+1].media;
stud[j+1].media=stud[j].media;
stud[j].media=s;
s=stud[j+1].english;
stud[j+1].english=stud[j].english;
stud[j].english=s;
s=stud[j+1].math;
stud[j+1].math=stud[j].math;
stud[j].math=s;
s=stud[j+1].sport;
stud[j+1].sport=stud[j].sport;
stud[j].sport=s;
s=stud[j+1].polity;
stud[j+1].polity=stud[j].polity;
stud[j].polity=s;
s=stud[j+1].average;
stud[j+1].average=stud[j].average;
stud[j].average=s;
}
cout<<"----------------------------------------------------"<<endl; /*格式头*/
cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"C++"<<"\t"<<"多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<"\t"<<"名次"<<endl;
cout<<"----------------------------------------------------"<<endl;
for(i=0;i<n;i++) /*循环输入*/
{
stud[i].order=i+1;
cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].elec<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t "<<stud[i].english<<" \t"<< stud[i].math<<"\t"<<stud[i].sport<<"\t "<<stud[i].polity<<"\t"<<stud[i].average<<"\t"<<stud[i].order<<endl;
}
Write(stud,n);
}
void Output(Stu stud[]) //---------------显示全部学生成绩
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
cout<<endl<<"====>> 显示全部学生成绩 <<===="<<endl;
if(!stud)
cout<<"没有记录";
else
{
cout<<"----------------------------------------------------"<<endl; /*格式头*/
cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"c++"<<"\t"<<"多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<endl;
cout<<"------------------------------------------------"<<endl;
for(int i=0;i<n;i++) /*循环输入*/
{
cout<<stud[i].class_0<<"\t "<<stud[i].num<<"\t "<<stud[i].name<<"\t "<<stud[i].elec<<" \t"<<stud[i].c_program<<"\t "<<stud[i].media<<"\t "<<stud[i].english<<"\t "<< stud[i].math<<" \t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[i].average<<endl;
}
cout<<"--------------------------------------------------------"<<endl;
}
}
int menu() /*菜单函数*/
{
char c;
do
{
system("cls"); /*运行前清屏*/
cout<<"*************************************************************\n"<<endl;
cout<<" -----------------<<欢迎您使用学生成绩管理系统--------------\n"<<endl;
cout<<" *******************************************\n\n"<<endl;/*菜单选择*/
cout<<" * 【1】输入学生成绩 * "<<endl;
cout<<" * 【2】显示统计数据 * "<<endl;
cout<<" * 【3】查找学生成绩 * "<<endl;
cout<<" * 【4】修改学生成绩 * "<<endl;
cout<<" * 【5】删除学生成绩 * "<<endl;
cout<<" * 【6】插入学生成绩 * "<<endl;
cout<<" * 【7】按平均分降序排列 * "<<endl;
cout<<" * 【8】显示全部学生成绩 * "<<endl;
cout<<" * 【0】退出本系统 * "<<endl<<endl;
cout<<"***************************************************************"<<endl;
cout<<"请你选择操作(0-8):"<<endl;
c=getchar(); /*读入选择*/
}
while(c<'0'||c>'8');
return(c-'0'); /*返回选择*/
}
void main() /*主函数*/
{
for(;;)
{
switch(menu()) /*选择判断*/
{
case 1:
Input(stud);/*输入学生成绩*/
break;
case 2:
Statistic(stud); /*输出学生统计数据*/
break;
case 3:
Lookup(stud); /*查找学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case 4:
Modify(stud); /*修改学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case 5:
Delete(stud); /*按学号查找,删除学生信息*/
cout<<"\t\t\t";
system("pause");
break;
case 6:
Insert(stud);/*增加学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case 7:
Sort(stud); /*按平均分对成绩记录项进行降序排序*/
cout<<"\t\t\t";
system("pause");
break;
case 8:
Output(stud); /*显示全部学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case 0:
cout<<endl<<" ================================<<感谢您使用学生成绩管理系统>>===============================\n"<<endl; /*结束程序*/
cout<<"\t\t\t";
system("pause");
exit(0);
}
}
}
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
class Stu //构建学生类
{
public:
friend void Input(Stu stud[]) ;
friend void Statistic(Stu stud[]);
friend void Lookup(Stu stud[]) ;
friend void Modify(Stu stud[]) ;
friend void Delete(Stu stud[]) ;
friend void Output(Stu stud[]) ;
friend void Sort(Stu stud[]) ;
friend void Insert(Stu stud[]) ;
friend void Write(Stu stud[],int n);
friend int Read(Stu stud[]);
private:
char class_0[20];
int num;
char name[8];
float elec;
float c_program;
float media;
float english;
float math;
float sport;
float polity;
float average;
int order;
}stud[100];
void Write(Stu stud[],int n) //向文件中写入数据
{
fstream myFile;
myFile.open("student.dat",ios::out|ios::binary);
if(!myFile)
{
cout<<"student.dat can't open!"<<endl;
abort();
}
int count=n;
myFile<<count<<endl<<endl;
for(int i=0;i<=count;i++)
{
myFile<<stud[i].class_0<<" "<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].elec<<" "<<stud[i].c_program<<" "<<stud[i].media<<" "<<stud[i].english
<<" "<<stud[i].math<<" "<<stud[i].sport<<" "<<stud[i].polity<<" "<<stud[i].average<<endl;
}
myFile.close();
}
int Read(Stu stud[]) //从文件中读数据
{
fstream myFile;
myFile.open("student.dat",ios::in|ios::binary);
if(!myFile)
{
cout<<"student.dat can't open!"<<endl;
abort();
}
int count;
myFile.seekg(0);
myFile>>count;
for(int i=0;i<=count;i++)
{
myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].elec>>stud[i].c_program>>stud[i].media>>stud[i].english>>stud[i].math>>stud[i].sport>>stud[i].polity>>stud[i].average;
}
myFile.close();
return count ;
}
void Input(Stu stud[]) //---------------输入学生成绩
{
system("cls"); /*运行前清屏*/
int i=0;
int flag;
char sign;
cout<<endl<<"====>> 请输入学生成绩 <<===="<<endl;
while(sign!='n'&&sign!='N') /*判断*/
{
cout<<" 班级:"; /*交互输入*/
cin>>stud[i].class_0;
loop:
cout<<" 学号:";
cin>>stud[i].num;
int c=0;
while(c<i)
{
c++;
if(stud[i].num==stud[i-c].num)
{
cout<<" 你输入的学号已经存在!请重新输入。"<<endl;
goto loop;
}
}
cout<<" 姓名:";
cin>>stud[i].name;
do{
flag=0;
cout<<" 电子技术成绩:";
cin>>stud[i].elec;
if(stud[i].elec>100 ||stud[i].elec<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" C++程序设计成绩:";
cin>>stud[i].c_program;
if(stud[i].c_program>100 ||stud[i].c_program<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 多媒体技术成绩:";
cin>>stud[i].media;
if(stud[i].media>100 ||stud[i].media<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 大学英语成绩:";
cin>>stud[i].english;
if(stud[i].english>100 ||stud[i].english<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 高等数学成绩:";
cin>>stud[i].math;
if(stud[i].math>100 ||stud[i].math<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 大学体育成绩:";
cin>>stud[i].sport;
if(stud[i].sport>100 ||stud[i].sport<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 马克思主义政治经济学成绩:";
cin>>stud[i].polity;
if(stud[i].polity>100 ||stud[i].polity<1)
cout<<"对不起,请输入1-100之间的数字!!\n";
else
flag=1;
}while(flag==0);
stud[i].average=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7;
cout<<" 平均分为:"<<stud[i].average<<endl;
cout<<"====>提示:是否继续写入学生成绩?(Y/N)";
cin>>sign; /*输入判断*/
i++;
}
Write(stud,i);
}
void Statistic(Stu stud[]) //---------------统计学生数据
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
cout<<endl<<"====>> 输出学生统计数据 <<===="<<endl;
cout<<"班级"<<"\t"<<"学号"<<"\t"<<" 姓名"<<"\t"<<" 平均分"<<endl;
for(int i=0;i<n;i++)
cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].average<<endl;
system("pause");
}
void Lookup(Stu stud[]) //---------------查找学生成绩
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
int s;
int i=0;
cout<<endl<<"====>> 查找学生成绩 <<===="<<endl;
cout<<"请输入需要查找学生的学号:"<<endl;
cin>>s;
while((stud[i].num-s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
cout<<"=====>提示:对不起,无法找到该学生的信息!"<<endl; /*输入失败信息*/
}
else
{
cout<<"---------------------------"<<endl;
cout<<"班级:"<<stud[i].class_0<<endl; /*输出该学生信息*/
cout<<"学号:"<<stud[i].num<<endl;
cout<<"姓名:"<<stud[i].name<<endl;
cout<<"电子技术:"<<stud[i].elec<<endl;
cout<<"C++程序设计:"<<stud[i].c_program<<endl;
cout<<"多媒体技术:"<<stud[i].media<<endl;
cout<<"大学英语:"<<stud[i].english<<endl;
cout<<"高等数学:"<<stud[i].math<<endl;
cout<<"大学体育:"<<stud[i].sport<<endl;
cout<<"马克思主义政治经济学:"<<stud[i].polity<<endl;
cout<<"平均分:"<<stud[i].average<<endl;
}
}
void Modify(Stu stud[]) //---------------修改学生成绩
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
int s;
int i=0;
cout<<endl<<"====>> 修改学生成绩 <<===="<<endl;
cout<<"请输入需要修改成绩学生的学号:"<<endl;
cin>>s;
while((stud[i].num-s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
cout<<"=====>提示:对不起,无该学生的成绩……"<<endl; /*输入失败信息*/
}
else
{
cout<<"----------该学生的信息----------"<<endl; /*格式头*/
cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"c++"<<"\t"<<" 多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<endl;
cout<<"---------------------------------"<<endl;
cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].elec<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[i].average<<endl;
cout<<"请重新输入该学生的信息"<<endl;
cout<<"班级:"<<endl; /*交互输入*/
cin>>stud[i].class_0;
cout<<"学号:"<<endl;
cin>>stud[i].num;
cout<<"姓名:"<<endl;
cin>>stud[i].name;
cout<<"电子技术成绩:"<<endl;
cin>>stud[i].elec;
cout<<"C++程序设计成绩:"<<endl;
cin>>stud[i].c_program;
cout<<"多媒体技术成绩:"<<endl;
cin>>stud[i].media;
cout<<"大学英语成绩:"<<endl;
cin>>stud[i].english;
cout<<"高等数学成绩:"<<endl;
cin>>stud[i].math;
cout<<"大学体育成绩:"<<endl;
cin>>stud[i].sport;
cout<<"马克思主义政治经济学成绩:"<<endl;
cin>>stud[i].polity;
stud[i].average=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7;
cout<<"平均分为:"<<stud[i].average<<endl;
char c;
cout<<"是否保存数据?(y/n)"<<endl;
cin>>c;
if(c!='n'&&c!='N')
Write(stud,n);
}
}
void Delete(Stu stud[]) //---------------按学号查找,删除学生信息
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
int s;
int i=0,j;
cout<<endl<<"====>> 删除学生成绩 <<===="<<endl;
cout<<"请输入需要删除学生的学号:"<<endl; /*交互式问寻*/
cin>>s;
while((stud[i].num-s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
cout<<"====>提示:对不起,无法找到该学生……"<<endl; /*返回失败信息*/
}
else
{
for(j=i;j<n-1;j++) /*删除操作*/
{
strcpy(stud[j].class_0,stud[j+1].class_0);
stud[j].num=stud[j+1].num;
strcpy(stud[j].name,stud[j+1].name);
stud[j].elec=stud[j+1].elec;
stud[j].c_program=stud[j+1].c_program;
stud[j].media=stud[j+1].media;
stud[j].english=stud[j+1].english;
stud[j].math=stud[j+1].math;
stud[j].sport=stud[j+1].sport;
stud[j].polity=stud[j+1].polity;
stud[j].average=stud[j+1].average;
}
cout<<"====>提示:已成功删除!"<<endl; /*返回成功信息*/
}
Write(stud,n-1);
}
void Insert(Stu stud[]) //---------------增加学生成绩
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
char s;
cout<<endl<<"====>> 增加学生成绩<<===="<<endl;
while(s!='n'&&s!='N')
{
cout<<"班级:"<<endl; /*交互输入*/
cin>>stud[n].class_0;
cout<<"学号:";
cin>>stud[n].num;
cout<<"姓名:";
cin>>stud[n].name;
cout<<"电子技术成绩:";
cin>>stud[n].elec;
cout<<"C++程序设计成绩:";
cin>>stud[n].c_program;
cout<<"多媒体技术成绩:";
cin>>stud[n].media;
cout<<"大学英语成绩:";
cin>>stud[n].english;
cout<<"高等数学成绩:";
cin>>stud[n].math;
cout<<"大学体育成绩:";
cin>>stud[n].sport;
cout<<"马克思主义政治经济学成绩:";
cin>>stud[n].polity;
stud[n].average=(stud[n].elec+stud[n].c_program+stud[n].media+stud[n].english+ stud[n].math+stud[n].sport+stud[n].polity)/7;
cout<<"平均分"<<stud[n].average;
n++;
cout<<"=====>提示:插入成功!"<<endl; /*返回成功信息*/
cout<<"是否继续输入(y/n)"<<endl;
cin>>s;
}
Write(stud,n);
}
void Sort(Stu stud[]) //---------------按平均分对学生成绩记录项进行降序排序
{
system("cls"); /*运行前清屏*/
int i,j,k;
float s;
char t[20];
cout<<endl<<"====>> 降序排序成绩 <<===="<<endl;
int n=Read(stud);
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stud[j].average<stud[j+1].average)
{
strcpy(t,stud[j+1].class_0);
strcpy(stud[j+1].class_0,stud[j].class_0);
strcpy(stud[j].class_0,t);
k=stud[j+1].num;
stud[j+1].num=stud[j].num;
stud[j].num=k;
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
s=stud[j+1].elec;
stud[j+1].elec=stud[j].elec;
stud[j].elec=s;
s=stud[j+1].c_program;
stud[j+1].c_program=stud[j].c_program;
stud[j].c_program=s;
s=stud[j+1].media;
stud[j+1].media=stud[j].media;
stud[j].media=s;
s=stud[j+1].english;
stud[j+1].english=stud[j].english;
stud[j].english=s;
s=stud[j+1].math;
stud[j+1].math=stud[j].math;
stud[j].math=s;
s=stud[j+1].sport;
stud[j+1].sport=stud[j].sport;
stud[j].sport=s;
s=stud[j+1].polity;
stud[j+1].polity=stud[j].polity;
stud[j].polity=s;
s=stud[j+1].average;
stud[j+1].average=stud[j].average;
stud[j].average=s;
}
cout<<"----------------------------------------------------"<<endl; /*格式头*/
cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"C++"<<"\t"<<"多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<"\t"<<"名次"<<endl;
cout<<"----------------------------------------------------"<<endl;
for(i=0;i<n;i++) /*循环输入*/
{
stud[i].order=i+1;
cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].elec<<"\t"<<stud[i].c_program<<"\t"<<stud[i].media<<"\t "<<stud[i].english<<" \t"<< stud[i].math<<"\t"<<stud[i].sport<<"\t "<<stud[i].polity<<"\t"<<stud[i].average<<"\t"<<stud[i].order<<endl;
}
Write(stud,n);
}
void Output(Stu stud[]) //---------------显示全部学生成绩
{
system("cls"); /*运行前清屏*/
int n=Read(stud);
cout<<endl<<"====>> 显示全部学生成绩 <<===="<<endl;
if(!stud)
cout<<"没有记录";
else
{
cout<<"----------------------------------------------------"<<endl; /*格式头*/
cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"电子"<<"\t"<<"c++"<<"\t"<<"多媒体"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"体育"<<"\t"<<"政治"<<"\t"<<"平均分"<<endl;
cout<<"------------------------------------------------"<<endl;
for(int i=0;i<n;i++) /*循环输入*/
{
cout<<stud[i].class_0<<"\t "<<stud[i].num<<"\t "<<stud[i].name<<"\t "<<stud[i].elec<<" \t"<<stud[i].c_program<<"\t "<<stud[i].media<<"\t "<<stud[i].english<<"\t "<< stud[i].math<<" \t"<<stud[i].sport<<"\t"<<stud[i].polity<<"\t"<<stud[i].average<<endl;
}
cout<<"--------------------------------------------------------"<<endl;
}
}
int menu() /*菜单函数*/
{
char c;
do
{
system("cls"); /*运行前清屏*/
cout<<"*************************************************************\n"<<endl;
cout<<" -----------------<<欢迎您使用学生成绩管理系统--------------\n"<<endl;
cout<<" *******************************************\n\n"<<endl;/*菜单选择*/
cout<<" * 【1】输入学生成绩 * "<<endl;
cout<<" * 【2】显示统计数据 * "<<endl;
cout<<" * 【3】查找学生成绩 * "<<endl;
cout<<" * 【4】修改学生成绩 * "<<endl;
cout<<" * 【5】删除学生成绩 * "<<endl;
cout<<" * 【6】插入学生成绩 * "<<endl;
cout<<" * 【7】按平均分降序排列 * "<<endl;
cout<<" * 【8】显示全部学生成绩 * "<<endl;
cout<<" * 【0】退出本系统 * "<<endl<<endl;
cout<<"***************************************************************"<<endl;
cout<<"请你选择操作(0-8):"<<endl;
c=getchar(); /*读入选择*/
}
while(c<'0'||c>'8');
return(c-'0'); /*返回选择*/
}
void main() /*主函数*/
{
for(;;)
{
switch(menu()) /*选择判断*/
{
case 1:
Input(stud);/*输入学生成绩*/
break;
case 2:
Statistic(stud); /*输出学生统计数据*/
break;
case 3:
Lookup(stud); /*查找学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case 4:
Modify(stud); /*修改学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case 5:
Delete(stud); /*按学号查找,删除学生信息*/
cout<<"\t\t\t";
system("pause");
break;
case 6:
Insert(stud);/*增加学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case 7:
Sort(stud); /*按平均分对成绩记录项进行降序排序*/
cout<<"\t\t\t";
system("pause");
break;
case 8:
Output(stud); /*显示全部学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case 0:
cout<<endl<<" ================================<<感谢您使用学生成绩管理系统>>===============================\n"<<endl; /*结束程序*/
cout<<"\t\t\t";
system("pause");
exit(0);
}
}
}
追问
非常感激您!愿意帮我做这个系统。这个程序做的很完美,但有点可惜,因为与功能要求上有些出入,再麻烦您一下,麻烦您把程序定向改变一下(根据功能要求),谢谢。
展开全部
以前最课程设计的时候写的,刚刚拿去运行了下,没有问题。至于具体的功能实现你自已再改改。
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
struct course
{
int num;
char name[20];
char kind[10];
int time;
int ttime;
int etime;
int mark;
int term;
};
struct student
{
int snum;
int cnum;
char cname[20];
};
/*课程信息录入*/
void insert()
{
FILE *fp;
struct course c;
int count;
int i;
if((fp=fopen("course.txt","a+"))==NULL)
{
printf("cannot open file\n");
}
printf("\n请输入课程门数:\n");
scanf("%d",&count);
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\n");
for(i=0;i<count;i++)
{
scanf("%d %s %s %d %d %d %d %d",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
fprintf(fp,"%d %s %s %d %d %d %d %d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
}
fclose(fp);
system("cls");
}
/*课程信息浏览*/
void browser()
{
FILE *fp;
struct course c;
int a;
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
}
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
{
int getch();
system("cls");
}
else
exit(0);
}
/*课程信息查询*/
void search()
{
FILE *fp;
struct course c;
int score;
char kind[10];
int a;
int b;
printf("1.按学分查询,2.按课程性质查询.\n");
printf("请选择查询方式,输入选项数字:");
scanf("%d",&b);
if(b==1)
{
printf("\n请输入您要查询的学分:\n");
scanf("%d",&score);
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
if(c.mark==score)
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
}
}
else if(b==2){
printf("\n请输入您要查询的课程性质:\n");
scanf("%s",&kind);
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
if(strcmp(c.kind,kind)==0)
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
}
}
else{
printf("输入错误!");
exit(1);
}
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
{
getch();
system("cls");
}
else
exit(0);
}
/*统计选课情况*/
void xuanke_information()
{
int total=0;
int a;
FILE *fp;
struct student s;
if((fp=fopen("student.txt","r"))==NULL)
{
printf("\nCannot open student!\n");
}
printf(" 学号 课程编号 课程名称\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%d%s\n",&s.snum,&s.cnum,&s.cname);
total++;
printf("%7d%9d%13s\n",s.snum,s.cnum,s.cname);
}
printf("\n选课学生总人数为:%d 人",total);
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
{
getch();
system("cls");
}
else
exit(0);
}
/*学生选修课程*/
void xuan_ke()
{
struct student s;
struct course c;
int a;
FILE *fp;
printf("\n请输入您的学号及您要选择的课程编号:");
scanf("%d%d",&s.snum,&s.cnum);
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
for(;!feof(fp);)
{
fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
if(s.cnum==c.num)
break;
}
fclose(fp);
if((fp=fopen("student.txt","a+"))==NULL)
{
printf("\nCannot open student!\n");
}
fprintf(fp,"%d %d %s\n",s.snum,s.cnum,c.name);
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
{
getch();
system("cls");
}
else
exit(0);
}
/*主菜单*/
int main(void)
{
int n,w=0;
printf("********************************************************************************\n");
printf(" MENU \n");
printf("********************************************************************************\n");
printf(" 1-输入课程信息 \n");
printf(" 2-浏览课程信息 \n");
printf(" 3-查询课程信息 \n");
printf(" 4-统计选课情况 \n");
printf(" 5-进入选课操作 \n");
printf(" 0-退出选课系统 \n");
printf("********************************************************************************\n");
printf(" 请选择输入选项前数字:");
scanf("%d",&n);
do
{
if(n>5||n<0)
{
printf("\n输入错误!请重新输入!\n");
scanf("%d",&n);
}
else w=1;
}while(w==0);
switch(n)
{
case 1:insert();break;
case 2:browser();break;
case 3:search();break;
case 4:xuanke_information();break;
case 5:xuan_ke();break;
case 0:exit(0);
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
struct course
{
int num;
char name[20];
char kind[10];
int time;
int ttime;
int etime;
int mark;
int term;
};
struct student
{
int snum;
int cnum;
char cname[20];
};
/*课程信息录入*/
void insert()
{
FILE *fp;
struct course c;
int count;
int i;
if((fp=fopen("course.txt","a+"))==NULL)
{
printf("cannot open file\n");
}
printf("\n请输入课程门数:\n");
scanf("%d",&count);
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\n");
for(i=0;i<count;i++)
{
scanf("%d %s %s %d %d %d %d %d",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
fprintf(fp,"%d %s %s %d %d %d %d %d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
}
fclose(fp);
system("cls");
}
/*课程信息浏览*/
void browser()
{
FILE *fp;
struct course c;
int a;
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
}
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
{
int getch();
system("cls");
}
else
exit(0);
}
/*课程信息查询*/
void search()
{
FILE *fp;
struct course c;
int score;
char kind[10];
int a;
int b;
printf("1.按学分查询,2.按课程性质查询.\n");
printf("请选择查询方式,输入选项数字:");
scanf("%d",&b);
if(b==1)
{
printf("\n请输入您要查询的学分:\n");
scanf("%d",&score);
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
if(c.mark==score)
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
}
}
else if(b==2){
printf("\n请输入您要查询的课程性质:\n");
scanf("%s",&kind);
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
if(strcmp(c.kind,kind)==0)
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
}
}
else{
printf("输入错误!");
exit(1);
}
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
{
getch();
system("cls");
}
else
exit(0);
}
/*统计选课情况*/
void xuanke_information()
{
int total=0;
int a;
FILE *fp;
struct student s;
if((fp=fopen("student.txt","r"))==NULL)
{
printf("\nCannot open student!\n");
}
printf(" 学号 课程编号 课程名称\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%d%s\n",&s.snum,&s.cnum,&s.cname);
total++;
printf("%7d%9d%13s\n",s.snum,s.cnum,s.cname);
}
printf("\n选课学生总人数为:%d 人",total);
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
{
getch();
system("cls");
}
else
exit(0);
}
/*学生选修课程*/
void xuan_ke()
{
struct student s;
struct course c;
int a;
FILE *fp;
printf("\n请输入您的学号及您要选择的课程编号:");
scanf("%d%d",&s.snum,&s.cnum);
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
for(;!feof(fp);)
{
fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
if(s.cnum==c.num)
break;
}
fclose(fp);
if((fp=fopen("student.txt","a+"))==NULL)
{
printf("\nCannot open student!\n");
}
fprintf(fp,"%d %d %s\n",s.snum,s.cnum,c.name);
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
{
getch();
system("cls");
}
else
exit(0);
}
/*主菜单*/
int main(void)
{
int n,w=0;
printf("********************************************************************************\n");
printf(" MENU \n");
printf("********************************************************************************\n");
printf(" 1-输入课程信息 \n");
printf(" 2-浏览课程信息 \n");
printf(" 3-查询课程信息 \n");
printf(" 4-统计选课情况 \n");
printf(" 5-进入选课操作 \n");
printf(" 0-退出选课系统 \n");
printf("********************************************************************************\n");
printf(" 请选择输入选项前数字:");
scanf("%d",&n);
do
{
if(n>5||n<0)
{
printf("\n输入错误!请重新输入!\n");
scanf("%d",&n);
}
else w=1;
}while(w==0);
switch(n)
{
case 1:insert();break;
case 2:browser();break;
case 3:search();break;
case 4:xuanke_information();break;
case 5:xuan_ke();break;
case 0:exit(0);
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询