课程管理系统代码设计(课程管理系统任务书)

http://www.itjxue.com  2023-03-18 05:20  来源:未知  点击次数: 

C语言程序设计之学生选修课程管理系统。

#include stdio.h

#include stdlib.h

#include string.hstruct student

{

char name[60];

char ID[7];

int score;

};int dq(struct student st[]);

void xianshi();

void bc(struct student st[]);

void add();

void select();

void zz();

void chazhao();

void xhcz();

void xmcz();

void del();

void xmsc();

void xhsc();

void tj();

void px();

void bjg();

void xg();

void xhxg();

void xmxg();

void bca();

void fh();

struct student st[300]; //这个数组用来保存所有的学生信息 和文件里面的一致

int Number=0; //记录总的学生人数 也就是数组/文件里面的学生人数

void main()

{

int choose=0;

FILE *fp=NULL;

char yesorno;

if((fp=fopen("C://student.dat","rb"))==NULL)

{

printf("\n=========提示:文件不存在,是否要创建一个?(y/n)\n");

scanf("%c",yesorno);

if(yesorno=='y'||yesorno=='Y')

{

//这里仅为了建立文件

fp=fopen("C://student.dat","wb");

fclose(fp);

}

else

exit(0);

}

else

{

Number=dq(st); //要是文件只能够已经有数据 将数据初始化到数组中

}

system("cls");

while(true)

{

xianshi();

printf("\t\t====请选择:");

scanf("%d",choose);

system("cls");

switch(choose)

{

case 0: exit(0);

//退出

break;

case 1: add();

fh();//增加学生成绩

break;

case 2: select();

fh();//查看学生成绩

break;

case 3: chazhao();

fh();// 查找

break;

case 4: del();

fh();//删除

break;

case 5: tj();

fh();//统计

break;

case 6: px();

fh();//排序

break;

case 7: bjg();

fh();//输出不及格

break;

case 8: xg();

fh();//修改

break;

case 9:zz();

fh();//作者

break;

case 10:bca();

fh();//保存

break;

default:

break;

}

fflush(stdin);

getchar();

system("cls");

}

}

void bca()

{

printf("\t=====程序在运行时已自动保存.....\n");

}

void fh()

{

printf("\t===按Enter键返回主菜单\n");

}

void xg() //修改学生信息

{

int way=0;

printf("请选择修改查找方式\n");

printf("1 按姓名查找修改\n");

printf("2 按学号查找修改\n");

scanf("%d",way);

switch(way)

{

case 1: xmxg();

break;

case 2: xhxg();

break;

default: printf("输入有误,结束!\n");

break;

}

}

//按姓名修改

void xmxg()

{

FILE *fp=NULL;

char name[60];

int i=0;

int changeIndex=0;

int index=0;

printf("请输入要修改的学生姓名:");

scanf("%s",name);

for (i=0;iNumber;i++)

{

if (strcmp(name,st[i].name))

{

changeIndex=i; //保存要修改的人的下标

}

break;

}

printf("\t姓名\t学号\t成绩\n");

printf("\t%s\t%s\t%d\n\n",st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score);

printf("请重新输入该学生信息");

printf("姓名:");

scanf("%s",st[changeIndex].name);

printf("学号:");

scanf("%s",st[changeIndex].ID);

printf("成绩:");

scanf("%d",st[changeIndex].score); //信息修改后重新更新文件里面的数据 以保持数据一致性

fp=fopen("C://student.dat","wb");

for (i=0;iNumber;i++)

{

fwrite(st[i],sizeof(struct student),1,fp);

}

fclose(fp);

}

void xhxg()//按学号修改

{

FILE *fp=NULL;

char id[60];

int i=0;

int changeIndex=0;

int index=0;

printf("请输入要修改的学生学号:");

scanf("%s",id);

for (i=0;iNumber;i++)

{

if (strcmp(id,st[i].ID))

{

changeIndex=i; //保存要修改的人的下标

}

break;

}

printf("\t姓名\t学号\t成绩\n");

printf("\t%s\t%s\t%d\n\n",st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score);

printf("请重新输入该学生信息");

printf("姓名:");

scanf("%s",st[changeIndex].name);

printf("学号:");

scanf("%s",st[changeIndex].ID);

printf("成绩:");

scanf("%d",st[changeIndex].score);

//信息修改后重新更新文件里面的数据 以保持数据一致性

fp=fopen("C://student.dat","wb");

for (i=0;iNumber;i++)

{

fwrite(st[i],sizeof(struct student),1,fp);

}

fclose(fp);

printf("\t=======修改成功\n");

}void bjg() //输出不及格人数

{

int i=0;

printf("以下是不及格:\n");

printf("\t姓名\t学号\t成绩\n");

for (i=0;iNumber;i++)

{

if (st[i].score60)

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

}

}

void px()//排序

{

struct student temp;

int wantNUmber=0;

int i=0;

int j=0;

for(i=0;iNumber-1;i++)

{

for(j=i;jNumber-1;j++)

{

if(st[j].scorest[j+1].score)

{

temp=st[j];

st[j]=st[j+1];

st[j+1]=temp;

}

}

}

printf("你想输出前几名的成绩:");

scanf("%d",wantNUmber);

if (wantNUmberNumber)

{

wantNUmber=Number;

} printf("\t姓名\t学号\t成绩\n");

for(i=0;iwantNUmber;i++)

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

}

void tj()//统计

{

int i=0;

double sum=0.0;

for(i=0;iNumber;i++)

{

sum+=st[i].score;

}

printf("全班总分为:%f\n",sum);

printf("平均分为:%f\n",sum/Number);

}

void del()//删除

{

int n=0;

printf("1 按姓名删除\n");

printf("2 按学号删除\n");

scanf("%d",n);

switch(n)

{

case 1: xmsc();

break;

case 2: xhsc();

break;

}

}

void xmsc()//按姓名删除

{

FILE *fp=NULL;

char name[60];

int i=0;

int j=0;

printf("请输入要删除的学生姓名:");

scanf("%s",name);

for(i=0;iNumber;i++)

{

if (strcmp(name,st[i].name)==0) //如果查找到就删除

{

for (j=i;jNumber-1;j++)

{

st[j]=st[j+1];

}

Number--;

}

} //将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了

fp=fopen("C://student.dat","wb");

for (i=0;iNumber;i++)

{

fwrite(st[i],sizeof(struct student),1,fp);

}

fclose(fp);

printf("删除成功;\n");

}

void xhsc()//按学号删除

{

FILE *fp=NULL;

char id[60];

int i=0;

int j=0;

printf("请输入要删除的学生学号:");

scanf("%s",id);

for(i=0;iNumber;i++)

{

if (strcmp(id,st[i].ID)==0) //如果查找到就删除

{

for (j=i;jNumber-1;j++)

{

st[j]=st[j+1];

}

Number--;

}

}

//将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了

fp=fopen("C://student.dat","wb");

for (i=0;iNumber;i++)

{

fwrite(st[i],sizeof(struct student),1,fp);

}

fclose(fp);

printf("删除成功;\n");

}

void chazhao()//查找学生

{

int n=0;

printf("1 按姓名查找\n");

printf("2 按学号查找\n");

scanf("%d",n);

switch(n)

{

case 1: xmcz();

break;

case 2: xhcz();

break;

default: printf("输入有误,结束!\n");

break;

}

}

void xhcz()//按学号查找

{

char id[7];

int i=0;

printf("请输入要查找学生学号:");

scanf("%s",id);

system("cls");

printf("\t姓名\t学号\t成绩\n");

for (i=0;iNumber;i++)

{

if (strcmp(id,st[i].ID)==0)

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

}

}

void xmcz()//按姓名查找

{

char name[7];

int i=0;

printf("请输入要查找学生姓名:");

scanf("%s",name);

system("cls");

printf("\t姓名\t学号\t成绩\n");

for (i=0;iNumber;i++)

{

if (strcmp(name,st[i].name)==0)

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

}

}

void zz()

{

printf("\t**********************************************************\n\n");

printf("\t^^^^^^^^^^ 武汉工程大学邮电与信息工程学院 ^^^^^^^^^^\n\n");

printf("\t^^^^^^^^^ 07网络与安全管理2班 ^^^^^^^^^\n\n");

printf("\t^^^^^^^^ 易樊制作 ^^^^^^^^\n\n");

printf("\t^^^^^^^^^ 禁止CTRL+C 谢谢合作 ^^^^^^^^^\n\n");

printf("\t^^^^^^^^^^ QQ:895115828\n\n");

printf("\t**********************************************************\n\n");

}

void select()//查看学生

{

int i=0;

printf("以下是全部学生成绩\n");

printf("\t姓名\t学号\t成绩\n");

for(i=0;iNumber;i++)

{

printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);

}

}

void add()//增加学生

{

int numberTemp=0;

int i=0;

struct student temp; //临时保存信息

printf("请输入要增加学生成绩个数:");

scanf("%d",numberTemp);

for(i=0;inumberTemp;i++)

{

printf("输入第%d个同学信息\n",i+1);

printf("姓名:");

scanf("%s",temp.name);

printf("学号:");

scanf("%s",temp.ID);

printf("成绩:");

scanf("%d",temp.score);

st[Number++]=temp; //将刚添加的写入到数组

bc(temp); //将刚添加的写入到文件 }

printf("添加成功\n");

}

void bc(struct student *st)

{

FILE *fp=NULL;

fp=fopen("C://student.dat","ab+");

fwrite(st,sizeof(struct student),1,fp);

fclose(fp);

}

int dq(struct student st[])

{

FILE *fp=NULL;

int i=0;

fp=fopen("C://student.dat","rb");

while(fread(st[i],sizeof(struct student),1,fp))

i++;

fclose(fp);

return i;

}

void xianshi()

{

printf("\t*****************************************************************\n");

printf("\t* *\n");

printf("\t* 学生成绩管理系统 *\n");

printf("\t* *\n");

printf("\t* [1] 增加学生成绩 [2] 查看学生成绩 *\n");

printf("\t* [3] 查找学生成绩 [4] 删除学生成绩 *\n");

printf("\t* [5] 统计(总成绩和平均分) [6] 输出前N名学生成绩 *\n");

printf("\t* [7] 输出不及格人数 [8] 修改学生信息 *\n");

printf("\t* [9] 关于作者 [10] 保存数据 *\n");

printf("\t* [0] 退出系统 *\n");

printf("\t*****************************************************************\n");

}运行成功,请你下去后慢慢研究下这个程序,很简单的,祝你成功!~

用C语言设计一个课程信息管理系统

#include iostream

#include string

#include iomanip

#include fstream

using namespace std;

struct List

{

string m_Name;

string m_ID;//可能有的学号里有字母,所以用string类型。

short int m_Chinese;

short int m_Match;

short int m_English;

struct List *Next; //指针域。

};

typedef struct List Node;

typedef Node *Link;

//---------------函数声明-------------------

Link Create(Link Head);

Link Search(Link Head);

Link Search_front(Link Head);

void Release(Link Head);

void Display(Link Head);

void Display_One(Link Head);

void Display(Link Head,fstream ofile);

Link AddInfo(Link Head);

Link DelInfo(Link Head);

Link Modify(Link Head);

void Grade_Stat(Link Head);

Link Sort(Link Head);

//---------------函数实现-------------------

Link Create(Link Head)

{

/*构造一个头节点*/

Head=(Link)new Node;

if(!Head)

{

cout"分配内存失败。"endl;

exit(-1);

}

Head-m_Name="";

Head-m_ID="";

Head-m_Chinese=0;

Head-m_Match=0;

Head-m_English=0;

Head-Next=NULL;

return Head;

}

Link Search(Link Head)

{

cout" 1.按姓名查询 2.按学号查询 "endl;

int select;

cinselect;

while(cin.fail())

{

cout"请选择正确的菜单项:";

cin.clear();

fflush(stdin);

cinselect;

}

Link ptr;

ptr=Head;

if(select==1)

{

string name;

cout"请输入要查询的姓名:";

cinname;

while(ptr!=NULL)

{

if(ptr-m_Name==name)

{

Display_One(ptr);

return ptr;

}

ptr=ptr-Next;

}

cout"没找到,怎么办?"endl;

}

else if(select==2)

{

string ID;

cout"请输入要查询的学号:";

cinID;

while(ptr!=NULL)

{

if(ptr-m_ID==ID)

{

Display_One(ptr);

return ptr;

}

ptr=ptr-Next;

}

cout"没找到,怎么办?"endl;

}

return ptr;

}

Link Search_front(Link Head)

{//返回前驱节点。

cout" 1.按姓名删除 2.按学号删除 "endl;

int select;

cinselect;

while(cin.fail())

{

cout"请选择正确的菜单项:";

cin.clear();

fflush(stdin);

cinselect;

}

Link ptr;

Link front;

ptr=Head-Next;

front=Head;

if(select==1)

{

string name;

cout"请输入要删除的姓名:";

cinname;

while(ptr!=NULL)

{

if(ptr-m_Name==name)

{

Display_One(ptr);

return front;

}

ptr=ptr-Next;

front=front-Next;

}

cout"没找到,怎么办?"endl;

}

else if(select==2)

{

string ID;

cout"请输入要删除的学号:";

cinID;

while(ptr!=NULL)

{

if(ptr-m_ID==ID)

{

Display_One(ptr);

return front;

}

ptr=ptr-Next;

front=front-Next;

}

cout"没找到,怎么办?"endl;

}

return front;

}

void Release(Link Head)

{

Link ptr;

while(Head!=NULL)

{

ptr=Head;

Head=Head-Next;

delete ptr;

}

}

void Display(Link Head)

{

Link ptr;

ptr=Head-Next;

cout"----------------------------------------------------------------------"endl;

cout"---------------------------- 所有学生信息 --------------------------"endl;

cout"---姓名--------学号-----------语文-----------数学-----------英语------"endl;

while(ptr!=NULL)

{

coutsetw(15)leftptr-m_Name

setw(15)leftptr-m_ID

setw(15)leftptr-m_Chinese

setw(15)leftptr-m_Match

setw(15)leftptr-m_Englishendl;

ptr=ptr-Next;

}

}

void Display(Link Head,fstream ofile)

{

Link ptr;

ptr=Head-Next;

ofile"----------------------------------------------------------------------"endl;

ofile"---------------------------- 所有学生信息 --------------------------"endl;

ofile"---姓名--------学号-----------语文-----------数学-----------英语------"endl;

while(ptr!=NULL)

{

ofilesetw(15)leftptr-m_Name

setw(15)leftptr-m_ID

setw(15)leftptr-m_Chinese

setw(15)leftptr-m_Match

setw(15)leftptr-m_Englishendl;

ptr=ptr-Next;

}

}

void Display_One(Link Head)

{

Link ptr;

ptr=Head;

cout"----------------------------------------------------------------------"endl;

cout"---------------------------- 查询结果信息 --------------------------"endl;

cout"---姓名--------学号-----------语文-----------数学-----------英语------"endl;

coutsetw(15)leftptr-m_Name

setw(15)leftptr-m_ID

setw(15)leftptr-m_Chinese

setw(15)leftptr-m_Match

setw(15)leftptr-m_Englishendl;

}

Link AddInfo(Link Head)

{

Link ptr;

ptr=Head;

while(ptr-Next!=NULL)

{

ptr=ptr-Next;

}

Link ptr2;

char again;

do

{

ptr2=(Link)new Node;

if(!ptr2)

{

cout"内存分配失败!"endl;

exit(-1);

}

//数据域

string Name,ID;

short int Chinese,Match,English;

cout"输入姓名:";

cinName;

coutendl"输入学号:";

cinID;

coutendl"语文成绩:";

cinChinese;

coutendl"数据成绩:";

cinMatch;

coutendl"英语成绩:";

cinEnglish;

ptr2-m_Name=Name;

ptr2-m_ID=ID;

ptr2-m_Chinese=Chinese;

ptr2-m_Match=Match;

ptr2-m_English=English;

//指针域

ptr2-Next=NULL;//作为尾节点。

ptr-Next=ptr2;//连接入链表。

ptr=ptr2;//将ptr2作为下一次产生的节点的前驱节点.

cout"是否继续输入?(Y/N) ";

cinagain;

}while(again=='Y'||again=='y');

return Head;

}

Link DelInfo(Link Head)

{

Link ptr;

Link ptr2;

ptr=Head;

Link f_ptr;//前驱节点。

f_ptr=Search_front(ptr);

ptr2=f_ptr-Next;

f_ptr-Next=f_ptr-Next-Next;

delete ptr2;

return Head;

}

Link Modify(Link Head)

{

Link ptr;

ptr=Head;

ptr=Search(ptr);

cout"修改前信息为:"endl;

Display_One(ptr);

//cout"请选择你要修改的选项:A:姓名 B:学号 C:语文成绩 D:数学成绩 E:英语成绩"endl;

string name,ID;

float Chinese,Match,English;

cout"输入新姓名:";

cinname;

coutendl"输入新学号:";

cinID;

coutendl"输入新语文成绩:";

cinChinese;

coutendl"输入新数学成绩:";

cinMatch;

coutendl"输入新英语成绩:";

cinEnglish;

ptr-m_Name=name;

ptr-m_ID=ID;

ptr-m_Chinese=Chinese;

ptr-m_Match=Match;

ptr-m_English=English;

coutendl"修改后信息为:"endl;

Display_One(ptr);

return Head;

}

void Grade_Stat(Link Head)

{//成绩统计。

Link ptr;

ptr=Head;

cout"请输入你要查询的课程名(chinese|match|english)和一个分数范围[min,max]."endl;

string name;

short int min,max;

int SwitchNum;

cout"课程名:";

cinname;

coutendl"分数下限:";

cinmin;

coutendl"分数上限:";

cinmax;

if(name=="chinese")

SwitchNum=1;

else if(name=="match")

SwitchNum=2;

else if(name=="english")

SwitchNum=3;

else

{

cout"请输入一个正确的课程名:"endl;

return;

}

while(ptr!=NULL)

{

switch(SwitchNum)

{

case 1:

if(ptr-m_Chinese=maxptr-m_Chinese=min)

Display_One(ptr);

break;

case 2:

if(ptr-m_Match=maxptr-m_Match=min)

Display_One(ptr);

break;

case 3:

if(ptr-m_English=maxptr-m_English=min)

Display_One(ptr);

}

}

}

Link Sort(Link Head)

{//我创建的是带头节点的链表。用直接插入法。

cout"请输入你想排序的课程名(用中文):";

string course_name;

cincourse_name;

if((Head-Next==NULL)||(Head-Next-Next==NULL))//此步条件判断非常有价值。

{

cout"数据节点数少于2个,不用排序!"endl;

return Head;

}

//-----------第二步;

Link ptr;

Link ptr_F;

Link ptr_N;

ptr=Head-Next-Next;

ptr_F=Head;

Head-Next-Next=NULL;//到此,分成了两个链表。

//第三步。

while(ptr)

{

ptr_N=ptr-Next;

ptr_F=Head;//ptr_F的归位。

while(ptr_F-Next)

{

if(course_name=="语文")

{

if(ptr-m_Chineseptr_F-Next-m_Chinese)

{

ptr-Next=ptr_F-Next;

ptr_F-Next=ptr;

break;

}//if

else

{

ptr_F=ptr_F-Next;

}

}

if(course_name=="数学")

{

if(ptr-m_Matchptr_F-Next-m_Match)

{

ptr-Next=ptr_F-Next;

ptr_F-Next=ptr;

break;

}//if

else

{

ptr_F=ptr_F-Next;

}

}

if(course_name=="英语")

{

if(ptr-m_Englishptr_F-Next-m_English)

{

ptr-Next=ptr_F-Next;

ptr_F-Next=ptr;

break;

}//if

else

{

ptr_F=ptr_F-Next;

}

}

}//while(ptr_F-Next)

if(ptr_F-Next==NULL)

{

ptr-Next=ptr_F-Next;

ptr_F-Next=ptr;//表示插到有序链表的最后面了。

}

ptr=ptr_N;//归位,准备下一次排序。

}//while(ptr)

cout"从高到低,排序成功!"endl;

return Head;

}

//----------主函数----------------------

int main()

{

fstream ofile;

ofile.open("e:\\student.txt",ios_base::out);

if(!ofile)

{

cout"文件打开失败。"endl;

exit(-1);

}

Link head=0;

head=Create(head);

while(1)

{

cout"*****************************************************"endl;

cout"*** 1.添加信息 2.修改信息 3.删除信息 4.信息查询 ***"endl;

cout"*** 5.成绩统计 6.排 序 7.显示/保存 0.退 出 ***"endl;

cout"*****************************************************"endl;

cout"请选择正确的菜单项:";

int sel;

cinsel;

while(cin.fail())

{

cout"请选择正确的菜单项:";

cin.clear();

fflush(stdin);

cinsel;

}

switch(sel)

{

case 0:

exit(0);

case 1:

head=AddInfo(head);

break;

case 2:

head=Modify(head);

break;

case 3:

head=DelInfo(head);

break;

case 4:

Search(head);

break;

case 5:

Grade_Stat(head);

break;

case 6:

Sort(head);

break;

case 7:

Display(head);//在标准显示器上显示。

Display(head,ofile);//在文件中显示。

break;

default:

break;

}

}

Release(head);

return 0;

}

换一下汉字就好了

C++课程设计 设计学校课程管理系统

《C++课程设计》

课程设计题目:学生成绩管理系统

学生班级:*****

学生姓名:*****

学生学号:*****

(2)学生成绩管理系统需求与功能分析

学生成绩的录入、统计、查询、修改、删除、输出。 画出功能结构图。

(3)学生成绩管理系统的数据结构表

序号 成员名(字段名) 数据类型 长度 字段含义

1 class_0 char 20 班级

2 num int 学号

3 name char 8 姓名

4 elec flaot 电子技术

5 c_prog float C 程序设计

6 media flaot 多媒体技术

7 eng float 大学英语

8 math float 高等数学

9 sport float 大学体育

10 polity float 马克思主义政治经济学

11 ave float 平均成绩

12 order int 名次

(4)学生成绩管理系统测试数据表

class_0 num name elec c_prog media eng math sport polity ave order

网络30331 3033101 马云飞 80 70 60 70 70 60 80 表中其余数据自己编造。

(5)使用链表编写程序(手写源程序代码,并给出注解)

0)定义链表结点

1)主函数main():定义链表头指针,调用录入、统计等函数对成绩表进行处理;

2)建立链表函数Create():输入班级到政治课成绩信息;

3)统计函数Statistic():计算平均成绩;

4)查询函数Lookup():查询指定学号学生成绩记录;

5)修改函数Modify():修改指定学号学生成绩记录;

6)删除函数Delete():删除指定学号学生记录;

7)输出函数Output():输出班级所有学生成绩记录;

8)插入函数Insert():按平均分顺序插入新结点。

9) 排序函数Sort():按平均分对学生成绩记录项进行降序排序;

程序如下:

#include stdlib.h

#include stdio.h

#include iostream

#include string

#include fstream

using namespace std;

struct Node//定义链表结点

{

char* class_0;//班级

int number;

char* name;//姓名

float elec;//电子技术成绩

float c_prog;//C程序设计成绩

float media;//多媒体技术成绩

float eng;//大学英语成绩

float math;//高等数学成绩

float sport;//大学体育成绩

float polity;//马克思主义政治经济学成绩

float ave;//平均成绩

int order;//名次

Node* link;

Node(){link=NULL;}

Node(int _number,char* _class_0,char* _name,float _elec,

float _c_prog,float _media,float _eng,float _math,

float _sport,float _polity,float _ave,int _order,Node* next)

{

number=_number;

class_0=new char[21];

strcpy(class_0,_class_0);

name=new char[9];

strcpy(name,_name);

elec=_elec;

c_prog=_c_prog;

media=_media;

eng=_eng;

math=_math;

sport=_sport;

polity=_polity;

ave=_ave;

order=_order;

link=next;

}

~Node()

{

delete []class_0;

delete []name;

}

};

class StudentScore

{

private:

Node* first;//链表的头指针

int choice;//选择数据的读入方式

int fileNum;//当前文件数减一

int fileLoc;//定位当前文件

string* fileName;

int operChoice;

int RecordLength;

public:

StudentScore();

void Save();

void BuildList();//手工建立成绩链表

void ReadInfo(int k);//从内存中读入学生信息

void ClearList();

void Statistic();

void Sort();

void Add();

void Delete();

void PrintList();

void Menu();

};

StudentScore::StudentScore()

{

RecordLength=0;

operChoice=0;

first=NULL;

choice=0;

fileLoc=0;

fileNum=0;

fileName=new string[10];//最多可以存10个文件

}

int GetOrder(Node* first,float ave);

void StudentScore::BuildList()

{

int _number;//学号

char* _class_0=new char[21];//班级

char* _name=new char[9];//姓名

float _elec;//电子技术成绩

float _c_prog;//C程序设计成绩

float _media;//多媒体技术成绩

float _eng;//大学英语成绩

float _math;//高等数学成绩

float _sport;//大学体育成绩

float _polity;//马克思主义政治经济学成绩

float _ave;//平均成绩

int _order;//名次

char c;

Node *p,*r=NULL;

first=NULL;

cout"您要输入学生成绩信息?"endl;

while((c=getchar())=='n');

while(tolower(c)!='n')

{

cin_class_0;//班级

cin_number;

cin_name;//姓名

cin_elec;

cin_c_prog;

cin_media;

cin_eng;

cin_math;

cin_sport;

cin_polity;

_ave=(_elec+_c_prog+_media+_eng+_math+_sport+_polity)/7;//求得平均成绩

_order=GetOrder(first,_ave);

p=new Node(_number,_class_0,_name,_elec,

_c_prog,_media,_eng,_math,_sport,_polity,

_ave,_order,NULL);//建立一个新的结点储存信息

if(first!=NULL)

r-link=p;

else first=p;

r=p;

RecordLength++;

cout"您要输入学生成绩信息?"endl;

while((c=getchar())=='n');

}

}

int GetOrder(Node* first,float ave)//名次记录有严重问题

(责任编辑:IT教学网)

更多

推荐照片处理文章