高校学籍管理系统 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++基础下载视频教程.