| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 474 人关注过本帖
标题:我想修改这程序,可是C语言不过关,希望大家帮帮我
取消只看楼主 加入收藏
suping1842
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-6-30
收藏
 问题点数:0 回复次数:1 
我想修改这程序,可是C语言不过关,希望大家帮帮我
编写一个学生信息管理系统,主要实现下列功能:
(1)录入功能:提供学生基本信息和某学期各科成绩的录入功能,学生信息要齐全。
(2)查询功能,可以按照姓名或班级关键字查询学生基本信息。
(3)修改功能,修改学生的信息和成绩。
(4)排序功能,可以按学生姓名、单科成绩和平均成绩等进行排序。
(5)统计功能,可以按照各分数段对学生人数进行统计。
(7)数据备份功能,将学生的基本信息备份到硬盘的普通文本文件,并且能读出


按照上面的要求,改一下下面的程序,如果可以的话,再帮我把每句都用中文翻译,答辩时要用!唉!
#include <iostream.h>
#include<iomanip.h>
#include <string.h>
void sort( char xh[][20],char xm[][20],float s[]);
void insert( char xh[][20],char xm[][20],float s[]);
void disp(char xh[][20],char xm[][20],float s[]);
void record(char xh[][20],char xm[][20],float s[]);
void del(char xh[][20],char xm[][20],float s[]);
int n=0;
void main()
{ char m; //若定义为整型,则选择时按了字符键,总有死循环发生;
char xh[20][20],xm[20][20];
float s[20]; a
cout<<" 简易学生信息管理系统\n"<<endl;
do{

cout<<"*****系统功能菜单*****"<<endl;
cout<<"______________________"<<endl;

cout<<"1. 录入学生信息"<<endl;
cout<<"2. 按成绩排序"<<endl;
cout<<"3. 增加学生信息"<<endl;
cout<<"4. 按学号删除信息"<<endl;
cout<<"5. 显示当前信息"<<endl;
cout<<"6. 退出系统"<<endl;
cout<<"______________________"<<endl;
cout<<"请选择:";
cin>>m;
cout<<endl;

switch(m)
{case '1': record(xh,xm,s);break; //这里1-6原为数字,但现皆改为字符了;
case '2': sort(xh,xm,s); break;
case '3': insert(xh,xm,s);break;
case '4': del(xh,xm,s); break;
case '5': disp(xh,xm,s);break;
case '6': break;

default: cout<<"选择错误!"<<endl;break;
}
if(m=='6')
{cout<<"退出系统!"<<endl; break;}

}while(1);
}


void record(char xh[][20],char xm[][20],float s[]) //录入信息
{
int i ;
cout<<"请输入待录入的学生数:\n";
cin>>n;
for(i=0;i<n;i++)
{cout<<"请输入第"<<i+1<<"个同学的学号、姓名、分数:\n";
cin>>xh[i]>>xm[i]>>s[i];
for(int l=0;l<i;l++)
if(strcmp(xh[l],xh[i])==0)
{cout<<"已有该学号,请检查后重新输入!"<<endl;
i--;}
}
cout<<"\n录入完毕!\n"<<endl;
}

void sort(char xh[][20],char xm[][20],float s[]) //排序信息
{int i,j,p;
float f;
char st[20];
if(n==0)cout<<"无信息可排序!"<<endl;
else
{ for(i=0;i<n;i++)
{ p=i;
for(j=i+1;j<n;j++)
if(s[j]<s[p])p=j;

if(p!=i)
{ f=s[i];s[i]=s[p];s[p]=f;
strcpy(st,xm[i]);
strcpy(xm[i],xm[p]);
strcpy(xm[p],st);
strcpy(st,xh[i]);
strcpy(xh[i],xh[p]);
strcpy(xh[p],st);
}
}
cout<<"\n按分数由小到大的排序结果为:\n"<<endl;
cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"分数"<<endl;
for(i=0;i<n;i++)
cout<<setw(8)<<xh[i]<<setw(8)<<xm[i]<<setw(8)<<s[i]<<endl;}
}

void insert(char xh[][20],char xm[][20],float s[])//增加信息
{
int i,j,k;
cout<<"请输入待增加学生数:"<<endl;
cin>>k;
for(i=0,j=n;j<n+k;j++,i++)
{cout<<"请输入第"<<i+1<<"个待增加同学的学号、姓名、分数:\n";
cin>>xh[j]>>xm[j]>>s[j];
for(int l=0;l<j;l++) //每录入一个都要检查前面是否有与之重复的学号;
if(strcmp(xh[l],xh[j])==0)
{cout<<"已有该学号,请检查后重新输入!"<<endl;
j--;i--;}

}
n=n+k;
cout<<"\n增加录入完毕!\n"<<endl;
}

void disp(char xh[][20],char xm[][20],float s[])//显示信息
{int i;
if(n==0)
cout<<"无可显示信息!"<<endl;
else
{cout<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"分数"<<endl;
for(i=0;i<n;i++)
cout<<setw(8)<<xh[i]<<setw(8)<<xm[i]<<setw(8)<<s[i]<<endl;}
}

void del(char xh[][20],char xm[][20],float s[])
{
int i,k;
char str[20];
if(n==0)cout<<"无信息可删除!"<<endl;
else
{cout<<"请输入待删除学生的学号"<<endl;
cin>>str;
for(i=0;i<n;i++)
{
if(strcmp(str,xh[i])==0)
break;
}
if(i>=n)
cout<<"系统无该学生信息!"<<endl;
else
{for(k=i;k<n-1;k++)
{strcpy(xh[k],xh[k+1]);
strcpy(xm[k],xm[k+1]);
s[k]=s[k+1];
}

n=n-1;
cout<<"\n删除完毕!\n"<<endl;}
}

}
搜索更多相关主题的帖子: 5555555 
2008-06-30 16:17
suping1842
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-6-30
收藏
得分:0 
帮帮我啊
帮帮啊
2008-07-02 08:44
快速回复:我想修改这程序,可是C语言不过关,希望大家帮帮我
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013164 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved