当前位置:编程学习 > C/C++ >>

高校学籍管理系统 C++

要求补充下面的代码~

#include<iostream.h>
#include<iomanip.h>
class list
{
public:
 int num,score;
 char name[10];

 class list *next;
 
};
typedef class list node;
typedef node *link;

link p,head,s;  //声明头指针、工作指针、新结点指针

void create() //创建单链表
{


}

void linklist() //遍历单链表
{

}

void insert(int i)/*按位插入*/
{
}


void get(int pos) /*按位查找*/
{
}


void locate(int i) /*按值查找*/
{
}


void del(int i) //按位删除
{
}

void rework(int pos) /*修改*/
{
}

void main() 
{int i;
head=new node;    //建立头指针
p=head;         //工作指针指向头指针

cout<<"请建立学生档案链表:"<<endl;
for(i=1;i<=3;i++)
  create();

int x;    //选择操作项目
int b=1;  //退出标志
while (b)
  {
  cout<<"\n";
  cout<<"请选择你需要做的事情:"<<"\n";
  cout<<"遍历表内容,请输入1"<<"\n";
  cout<<"按位查找,请输入2"<<"\n";
  cout<<"按值查找,请输入3"<<"\n";
  cout<<"插入元素,请输入4"<<"\n";
  cout<<"删除元素,请输入5"<<"\n";
  cout<<"修改信息,请输入6"<<"\n";
  cout<<"退出程序,请输入7"<<"\n";
  cin>>x;
  switch (x)
  {  case 1 :    linklist();
                 break;
    
     case 2 :    cout<<"请输入要查找的位置:";
                 cin>>i;
                 get( i);
     break;

  case 3 :    cout<<"请输入要查找的学生学号:";
                 cin>>i;
                 locate( i); 
                 break;
    
     case 4 :    cout<<"请输入要插入的位置:";
                 cin>>i;
           insert( i);
     linklist();
                 break;

   case 5 :   cout<<"请输入要删除的位置:";
                 cin>>i;
     del( i);
         linklist();
                 break; 

   case 6 :   cout<<"请输入要修改的学生学号:";
                 cin>>i;
                 rework( i);
                  break;   

 

     case 7 :    b=0;
                 break;
}
}

答案:

这是我以前发过的一个,你可以参考下

#include <stdio.h>

#include <stdlib.h>
#include <string.h>

struct 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;i<Number;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;i<Number;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;i<Number;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;i<Number;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;i<Number;i++)
{
if (st[i].score<60)
{
printf("\t%s\t%s\t

上一个:visual c++ 安装程序突然出现
下一个:求C++基础下载视频教程.

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,