Logo



档案管理系统课程设计源码(开源档案系统)

本文目录一览:

c语言学生档案管理系统要全面的,无错的

#includestdio.h

#includestdlib.h

#includeconio.h

#includedos.h

#includestring.h

#define LEN sizeof(struct student)

#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf\n"

#define DATA stu[i].num,stu[i].name,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum

struct student/*定义学生成绩结构体*/

{ int num;/*学号*/

char name[15];/*姓名*/

double elec;/*选修课*/

double expe;/*实验课*/

double requ;/*必修课*/

double sum;/*总分*/

struct student stu[50];/*定义结构体数组*/

void in();/*录入学生成绩信息*/

void show();/*显示学生信息*/

void order();/*按总分排序*/

void del();/*删除学生成绩信息*/

void modify();/*修改学生成绩信息*/

void menu();/*主菜单*/

void insert();/*插入学生信息*/

void total();/*计算总人数*/

void search();/*查找学生信息*/

void save();/*保存函数*/

void open();/*打开函数*/

void main()/*主函数*/

{ int n;

menu();

scanf("%d",n);/*输入选择功能的编号*/

while(n)

{ switch(n)

{ case 1: in();break;

case 2: search();break;

case 3: del();break;

case 4: modify();break;

case 5: insert();break;

case 6: order();break;

case 7: total();break;

case 8: save();break;

case 9: open();break;

default:break;

getch();

menu();/*执行完功能再次显示菜单界面*/

scanf("%d",n);

void in()/*录入学生信息*/

{ int i,m=0;/*m是记录的条数*/

char ch[2];

FILE *fp;/*定义文件指针*/

if((fp=fopen("data.txt","a+"))==NULL)/*打开指定文件*/

{ printf("无法打开\n");return;}

while(!feof(fp)) {

if(fread(stu[m] ,LEN,1,fp)==1)

m++;/*统计当前记录条数*/

fclose(fp);

if(m==0)

printf("没有记录!\n");

else

system("cls");

show();/*调用show函数,显示原有信息*/

if((fp=fopen("data.txt","wb"))==NULL)

{ printf("无法打开\n");return;}

for(i=0;im;i++) fwrite(stu[i] ,LEN,1,fp);/*向指定的磁盘文件写入信息*/

printf("确认输入:(Y/N):");

scanf("%s",ch);

while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要录入新信息*/

printf("学号:");scanf("%d",stu[m].num);/*输入学生学号*/

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

if(stu[i].num==stu[m].num)

printf("学号存在,输入任意键继续!");

getch();

fclose(fp);

return;

printf("姓名:");scanf("%s",stu[m].name);/*输入学生姓名*/

printf("选修课:");scanf("%lf",stu[m].elec);/*输入选修课成绩*/

printf("实验课:");scanf("%lf",stu[m].expe);/*输入实验课成绩*/

printf("必修课:");scanf("%lf",stu[m].requ);/*输入必修课成绩*/

stu[m].sum=stu[m].elec+stu[m].expe+stu[m].requ;/*计算出总成绩*/

if(fwrite(stu[m],LEN,1,fp)!=1)/*将新录入的信息写入指定的磁盘文件*/

{ printf("无法保存!"); getch(); }

else { printf("%s 保持成功!\n",stu[m].name);m++;}

printf("继续?(Y/N):");/*询问是否继续*/

scanf("%s",ch);

fclose(fp);

printf("OK!\n");

void show()

{ FILE *fp;

int i,m=0;

fp=fopen("data.txt","rb");

while(!feof(fp))

if(fread(stu[m] ,LEN,1,fp)==1)

m++;

fclose(fp);

printf("学号 姓名 选修课 实验课 必修课 总成绩\t\n");

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

printf(FORMAT,DATA);/*将信息按指定格式打印*/

void menu()/*自定义函数实现菜单功能*/

system("cls");

printf("\n\n\n\n\n");

printf("\t\t|-------------学生信息管理系统-----------by:zxl|\n");

printf("\t\t|\t 0. 退出 |\n");

printf("\t\t|\t 1. 录入学生基本信息 |\n");

printf("\t\t|\t 2. 寻找某位学生信息 |\n");

printf("\t\t|\t 3. 删除学生基本信息 |\n");

printf("\t\t|\t 4. 修改学生基本信息 |\n");

printf("\t\t|\t 5. 插入新生基本信息 |\n");

printf("\t\t|\t 6. 排序学生基本信息 |\n");

printf("\t\t|\t 7. 浏览全班学生信息 |\n");

printf("\t\t|\t 8. 保存学生信息到磁盘 |\n");

printf("\t\t|\t 9. 打开学生信息从磁盘 |\n");

printf("\t\t|-----------------------------------------------|\n\n");

printf("\t\t\t选择(0-9):");

void order()/*自定义排序函数*/

{ FILE *fp;

struct student t;

int i=0,j=0,m=0;

if((fp=fopen("data.txt","r+"))==NULL)

printf("无法打开!\n");

return;

while(!feof(fp))

if(fread(stu[m] ,LEN,1,fp)==1)

m++;

fclose(fp);

if(m==0)

printf("没有记录!\n");

return;

if((fp=fopen("data.txt","wb"))==NULL)

printf("无法打开\n");

return;}

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

for(j=i+1;jm;j++)/*双重循环实现成绩比较并交换*/

if(stu[i].sumstu[j].sum)

{ t=stu[i];stu[i]=stu[j];stu[j]=t;}

if((fp=fopen("data.txt","wb"))==NULL)

{ printf("无法打开\n");return;}

for(i=0;im;i++)/*将重新排好序的内容重新写入指定的磁盘文件中*/

if(fwrite(stu[i] ,LEN,1,fp)!=1)

printf("%s 无法保存!\n");

getch();

fclose(fp);

printf("保存成功!");

getch();

void del()/*自定义删除函数*/

{FILE *fp;

int snum,i,j,m=0;

char ch[2];

if((fp=fopen("data.txt","r+"))==NULL)

{ printf("无法打开\n");return;}

while(!feof(fp)) if(fread(stu[m],LEN,1,fp)==1) m++;

fclose(fp);

if(m==0)

printf("没有记录!\n");

return;

printf("请输入学号:");

scanf("%d",snum);

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

if(snum==stu[i].num)

break;

printf("找到学号,删除?(Y/N)");

scanf("%s",ch);

if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/

for(j=i;jm;j++)

stu[j]=stu[j+1];/*将后一个记录移到前一个记录的位置*/

m--;/*记录的总个数减1*/

if((fp=fopen("data.txt","wb"))==NULL)

{ printf("无法打开\n");return;}

for(j=0;jm;j++)/*将更改后的记录重新写入指定的磁盘文件中*/

if(fwrite(stu[j] ,LEN,1,fp)!=1)

{ printf("无法保存!\n");

getch();}

fclose(fp);

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

getch();

void search()/*自定义查找函数*/

{ FILE *fp;

int snum,i,m=0;

char ch[2];

if((fp=fopen("data.txt","rb"))==NULL)

{ printf("无法打开\n");return;}

while(!feof(fp)) if(fread(stu[m],LEN,1,fp)==1) m++;

fclose(fp);

if(m==0) {printf("没有记录!\n");return;}

printf("请输入学号:");

scanf("%d",snum);

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

if(snum==stu[i].num)/*查找输入的学号是否在记录中*/

{ printf("找到学号,显示?(Y/N)");

scanf("%s",ch);

if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)

printf("学号 姓名 选修课 实验课 必修课 总成绩\t\n");

printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/

getch();

}break;

if(i==m) printf("无法找到该学生!\n");/*未找到要查找的信息*/

void modify()/*自定义修改函数*/

{ FILE *fp;

int i,j,m=0,snum;

if((fp=fopen("data.txt","r+"))==NULL)

{ printf("无法打开\n");return;}

while(!feof(fp))

if(fread(stu[m],LEN,1,fp)==1) m++;

if(m==0) {printf("无记录!\n");

fclose(fp);

return;

printf("请输入您要修改信息的学生的学号!\n");

scanf("%d",snum);

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

if(snum==stu[i].num)/*检索记录中是否有要修改的信息*/

break;

printf("找到学号,您可以修改!\n");

printf("姓名:");

scanf("%s",stu[i].name);/*输入名字*/

printf("选修课:");

scanf("%lf",stu[i].elec);/*输入选修课成绩*/

printf("实验课:");

scanf("%lf",stu[i].expe);/*输入实验课成绩*/

printf("必修课:");

scanf("%lf",stu[i].requ);/*输入必修课成绩*/

stu[i].sum=stu[i].elec+stu[i].expe+stu[i].requ;

if((fp=fopen("data.txt","wb"))==NULL)

{ printf("无法打开\n");return;}

for(j=0;jm;j++)/*将新修改的信息写入指定的磁盘文件中*/

if(fwrite(stu[j] ,LEN,1,fp)!=1)

{ printf("无法保存!"); getch(); }

fclose(fp);

printf("修改成功!");

getch();

void insert()/*自定义插入函数*/

{ FILE *fp;

int i,j,k,m=0,snum;

if((fp=fopen("data.txt","r+"))==NULL)

{ printf("无法打开\n");return;}

while(!feof(fp))

if(fread(stu[m],LEN,1,fp)==1) m++;

if(m==0) {printf("无记录!\n");

fclose(fp);

getch();

return;

printf("输入要插入的位置(学号):");

scanf("%d",snum);/*输入要插入的位置*/

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

if(snum==stu[i].num)

break;

for(j=m-1;ji;j--)

stu[j+1]=stu[j];/*从最后一条记录开始均向后移一位*/

printf("现在请输入新信息.\n");

printf("学号:");

scanf("%d",stu[i+1].num);

for(k=0;km;k++)

if(stu[k].num==stu[i+1].num)

printf("学号存在,按任意键继续!");

getch();

fclose(fp);

return;

printf("姓名:");

scanf("%s",stu[i+1].name);

printf("选修课:");

scanf("%lf",stu[i+1].elec);

printf("实验课:");

scanf("%lf",stu[i+1].expe);

printf("必修课:");

scanf("%lf",stu[i+1].requ);

stu[i+1].sum=stu[i+1].elec+stu[i+1].expe+stu[i+1].requ;

if((fp=fopen("data.txt","wb"))==NULL)

{ printf("无法打开\n");return;}

for(k=0;k=m;k++)

if(fwrite(stu[k] ,LEN,1,fp)!=1)/*将修改后的记录写入磁盘文件中*/

{ printf("无法保存!"); getch(); }

fclose(fp);

printf("插入成功!");

getch();

void total()

{ FILE *fp;

int m=0;

if((fp=fopen("data.txt","r+"))==NULL)

{ printf("无法打开\n");return;}

while(!feof(fp))

if(fread(stu[m],LEN,1,fp)==1)

m++;/*统计记录个数即学生个数*/

if(m==0) {printf("无记录!\n");fclose(fp);return;}

printf("本班有%d个学生!\n",m);/*将统计的个数输出*/

show();

getch();

fclose(fp);

这个是成绩管理系统,可行?不过都差不多,课程设计这东西很简单的

急需SQL图书馆管理系统或者学籍档案管理系统的源代码

1.手工建表用企业管理器.

2.sql脚本建表用查询分析器

3.建表方法请参考sql自带帮助.

C++程序设计“师生档案管理系统”

现有学生成绩信息,内容如下

姓名 学号 语文 数学 英语

张明明 01 67 78 82

李成友 02 78 91 88

张辉灿 03 68 82 56

王露 04 56 45 77

陈东明 05 67 38 47

用C/C++编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面:

(一)功能要求:

//(1) 信息维护:

//要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息

//(2) 信息查询:

//要求:查询时可实现按姓名查询、按学号查询

//(3) 成绩统计:

//要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。

//(4) 排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)

#includeiostream.h

#includestring.h

#includefstream.h

class stu

char name[20];

double math,chinese,english,average,sum;

public:

stu()

stu(char n[20],double ma,double chin,double eng)

strcpy(name,n);

math=ma;

chinese=chin;

english=eng;

double getsum()

sum=chinese+english+math;

return sum;

double getaver()

average=getsum()/3;

return average;

friend void main();

void main()

cout"请选择您需要的操作!"endl;

cout"操作:"endl;

cout"(0)数据录入"endl;

cout"(1)增加人员"endl;

cout"(2)删除人员"endl;

cout"(3)修改数据"endl;

cout"查询:"endl;

cout"(4)按总成绩查询"endl;

cout"(5)按姓名查询"endl;

cout"(6)输出所有学生的数据"endl;

cout"成绩名词"endl;

cout"(7)按总分查询排名"endl;

cout"(8)按语文查询排名"endl;

cout"(9)按数学查询排名"endl;

cout"(y)按英语查询排名"endl;

cout"选择相关操作请输入相对的括号里的阿拉伯数字!"endl;

char p;char w;

stu *s[50];

ofstream *file[50];

int i=0;

int j=0;

bool flag2=0;

do

cinp;

if((p='0'p='10'))

flag2=1;

else

cout"指令错误!请重新输入:"endl;

}while(flag2==0);

do{

switch(p)

case '0':

char c;

char name[20];double math,chinese,english;

do{

cout"请输入姓名"endl;

cinname;

cout"请输入数学成绩:"endl;

cinmath;

cout"请输入语文成绩:"endl;

cinchinese;

cout"请输入外语成绩:"endl;

cinenglish;

file[j]=new ofstream("d:\\document",ios::ate);

*file[j]"姓名"name"数学成绩"math"语文成绩"chinese"外语成绩"englishendl;

j++;

s[i]=new stu(name, math, chinese, english);

i++;

cout"数据录入成功,想继续录入吗(y/n)"endl;

cinc;

flag2=0;

do

if(c!='y'c!='n')

cout"指令错误!请重新输入!"endl;

cinc;

else

flag2=1;

}while(flag2==0);

}while(c=='y');

break;

case '4':

double t;char c;

do

int flag1=0;

cout"请输入你要查询学生的总成绩"endl;

cint;

for(int q=0;qi;q++)

if(s[q]-getsum()==t)

flag1=1;

cout"您要查询的学生是:"(*s[q]).nameendl;

if(flag1==0)

cout"对不起!您要查询的学生不存在!"endl;

cout"您想继续查询吗?(y/n)"endl;

cinc;

if(c!='y'c!='n')

cout"指令错误!请重新输入!"endl;

cinc;

while(c=='y');

break;

case '5':

char n[20];int j=0;char c;

do{

int flag=0;

cout"请输入你要查询的学生姓名"endl;

cinn;

for(int j=0;ji;j++)

if(strcmp(n,(*s[j]).name)==0)

flag=1;

cout"您要查询的学生是:"(*s[j]).nameendl;

cout(*s[j]).name"的总成绩成绩是"(*s[j]).getsum()endl"平均成绩是:"(*s[j]).getaver()endl;

if(flag==0)

cout"对不起!您要查询的学生不存在!"endl;

cout"您想继续查询吗?(y/n)"endl;

cinc;

if(c!='y'c!='n')

cout"指令错误!请重新输入!"endl;

cinc;

while(c=='y');

break;

case '1':

char name[20];double math,chinese,english;

char c;

do

cout"请输入您要增加的学生的姓名:"endl;

cinname;

cout"请输入数学成绩:"endl;

cinmath;

cout"请输入语文成绩:"endl;

cinchinese;

cout"请输入外语成绩:"endl;

cinenglish;

file[j]=new ofstream("d:\\document",ios::ate);

*file[j]"姓名"name"数学成绩"math"语文成绩"chinese"外语成绩"englishendl;

j++;

s[i]=new stu(name, math, chinese, english);

i++;

cout"数据录入成功,想继续录入吗(y/n)"endl;

cinc;

if(c!='y'c!='n')

cout"指令错误!请重新输入!"endl;

cinc;

}while(c=='y');

break;

case '2':

char name[20];bool flag3=0;char c;

do{

cout"请输入您要删除的学生姓名:"endl;

cinname;

for(int h=0;hi;h++)

if(strcmp(name,s[h]-name)==0)

flag3=1;

i--;

do{

s[h]=s[h+1];

h++;

}while(h=i);

if(flag3==0)

cout"您要求删除的对象本来就不存在!请检查输入的正确性!";

cout"要继续删除吗?(y/n)"endl;

cinc;

if(c!='y'c!='n')

cout"指令错误!请重新输入!"endl;

cinc;

}while(c=='y');

break;

case '3':

char name[20];double mat,chin,eng;flag2=0;

char c;

do

cout"请输入您要修改的学生的姓名:"endl;

cinname;

for(int h=0;hi;h++)

if(strcmp(name,s[h]-name)==0)

flag2=1;

cout"请输入新的数学成绩:"endl;

cinmat;

cout"请输入新的语文成绩:"endl;

cinchin;

cout"请输入新的外语成绩:"endl;

cineng;

s[h]-chinese=chin;

s[h]-math=mat;

s[h]-english=eng;

cout"数据修改成功!";

if(flag2==0)

cout"您要修改的学生本来就不存在!请检查重新输入!"endl;

cout"想继续修改吗(y/n)"endl;

cinc;

if(c!='y'c!='n')

cout"指令错误!请重新输入!"endl;

cinc;

}while(c=='y');

break;

case '6':

cout"本系统所有学生数据如下:"endl;

if(i==0)

cout"管理系统中没有录入数据或者数据已经被删除!"endl;

for(int k=0;ki;k++)

coutk+1" ""姓名:"" "s[k]-name

"语文:"" "s[k]-chinese"数学:"" "s[k]-math

"外语:"" "s[k]-english"总分:"" "(*s[k]).getsum()

"平均分:"" "(*s[k]).getaver()endl;

break;

case '7':

int t;stu b;

cout"本系统所以学生排名如下:"endl;

for(int x=0;xi-1;x++)

t=x;

for(int y=x+1;yi;y++)

if((s[t]-getsum())(s[y]-getsum()))

t=y;

if(t!=x)

b=*s[x];

*s[x]=*s[t];

*s[t]=b;

if(i==0)

cout"管理系统中没有录入数据或者数据已经被删除!";

for(int k=0;ki;k++)

coutk+1" ""姓名:"" "s[k]-name

"语文:"" "s[k]-chinese"数学:"" "s[k]-math

"外语:"" "s[k]-english"总分:"" "s[k]-getsum()

"平均分:"" "s[k]-getaver()endl;

break;

case '8':

int t;stu b;

cout"本系统所以学生语文排名如下:"endl;

for(int x=0;xi-1;x++)

t=x;

for(int y=x+1;yi;y++)

if((s[t]-chinese)(s[y]-chinese))

t=y;

if(t!=x)

b=*s[t];

*s[t]=*s[x];

*s[x]=b;

if(i==0)

cout"管理系统中没有录入数据或者数据已经被删除!";

for(int k=0;ki;k++)

coutk+1" ""姓名:"" "s[k]-name

"语文:"" "s[k]-chinese"数学:"" "s[k]-math

"外语:"" "s[k]-english"总分:"" "s[k]-getsum()

"平均分:"" "s[k]-getaver()endl;

break;

case '9':

int t;stu b;

cout"本系统所以学生数学排名如下:"endl;

for(int x=0;xi-1;x++)

t=x;

for(int y=x+1;yi;y++)

if((s[t]-math)(s[y]-math))

t=y;

if(t!=x)

b=*s[t];

*s[t]=*s[x];

*s[x]=b;

if(i==0)

cout"管理系统中没有录入数据或者数据已经被删除!";

for(int k=0;ki;k++)

coutk+1" ""姓名:"" "s[k]-name

"语文:"" "s[k]-chinese"数学:"" "s[k]-math

"外语:"" "s[k]-english"总分:"" "s[k]-getsum()

"平均分:"" "s[k]-getaver()endl;

break;

case 'y':

int t;stu b;

cout"本系统所以学生英语排名如下:"endl;

for(int x=0;xi-1;x++)

t=x;

for(int y=x+1;yi;y++)

if((s[t]-english)(s[y]-english))

t=y;

if(t!=x)

b=*s[t];

*s[t]=*s[x];

*s[x]=b;

if(i==0)

cout"管理系统中没有录入数据或者数据已经被删除!";

for(int k=0;ki;k++)

coutk+1" ""姓名:"" "s[k]-name

"语文:"" "s[k]-chinese"数学:"" "s[k]-math

"外语:"" "s[k]-english"总分:"" "s[k]-getsum()

"平均分:"" "s[k]-getaver()endl;

break;

cout"您想继续进行其他操作吗?(y/n)"endl;

bool flag4=0;

do

cinw;

if(w!='y'w!='n')

cout"指令错误!请重新输入!"endl;

else

flag4=1;

}while(flag4==0);

if(w=='y')

cout"请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"endl;

cinp;

}while(w=='y');

for(int x=0;xi;x++)

delete s[x];

cout"delete all members!"endl;

有没有学生档案管理系统,基于C#的,需要源码,

#includeiostream

#includestdlib.h

#includestring.h

#includemalloc.h

#define INIT_SIZE 10

#define INCRE_SIZE 10

#define SUBJECT_NUM 3

#define LEN 3

void show_Start();

void show_Table();

void addRecord();

void Info_delete();

void deleteRecord();

void delete_Num(int);

void delete_Name(char tarName[]);

void Info_modify();

void modifyRecord();

void modify_Num(int);

void modify_Name(char[]);

void Info_query();

void queryRecord();

void query_Num(int);

void query_Name(char[]);

void display();

void quit();

void menu_CMD();

char *subject[SUBJECT_NUM] = {"高代","数分","C语言"};

struct STUDENT

int num;

char name[20];

char sex;

float score[SUBJECT_NUM];

//struct STUDENT stu[LEN + 1];

//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);

int static stuNum = 0;

//先暂时定义三个学生吧...

STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);;

int main()

//record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);

//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);

record[1].num = 1001;

strcpy(record[1].name,"Jason");

record[1].sex = 'M';

record[1].score[0] = 85.0;

record[1].score[1] = 90.0;

record[1].score[2] = 95.0;

record[2].num = 1002;

strcpy(record[2].name,"Jerry");

record[2].sex = 'M';

record[2].score[0] = 85.0;

record[2].score[1] = 90.0;

record[2].score[2] = 95.0;

record[3].num = 1003;

strcpy(record[3].name,"Jessie");

record[3].sex = 'F';

record[3].score[0] = 85.0;

record[3].score[1] = 90.0;

record[3].score[2] = 95.0;

Info_modify();

int key;

cout"请输入您的选择 : ";

cinkey;

if(key == 1)

int targetNum;

cout"请输入您欲修改的学生的学号 : ";

cintargetNum;

modify_Num(targetNum);

coutendl;

display();

if(key == 2)

char targetName[20];

cout"请输入您欲修改学生的姓名 : ";

cintargetName;

modify_Name(targetName);

coutendl;

display();

if(key == 3)

exit(0);

show_Start();

menu_CMD();

return 0;

//修改完后还应该显示

void show_Start()

//coutendl;

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

cout" 这是一个 "endl;

cout" 学生成绩管理系统 "endl;

cout" 可以对学生成绩进行管理 "endl;

cout" 欢迎大家使用 "endl;

cout" Made by Jason "endl;

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

// 显示表头信息,即是 : 学号,姓名,性别,高代,数分,C语言.

void show_Table()

cout"学号""\t""姓名""\t""性别";

cout"\t"subject[0]"\t"subject[1]"\t"subject[2];

coutendl;

void menu_CMD()

int key;

while(1)

cout"1. 增加学生信息"endl;

cout"2. 删除学生信息"endl;

cout"3. 修改学生信息"endl;

cout"4. 查询学生信息"endl;

cout"5. 显示学生信息"endl;

cout"6. 退出"endl;

cout"请输入您的选择 : ";

cinkey;

while(1)

if((key 1)||(key 6))

int key;

cout"您的输入有误,请重新输入!"endl;

cout"请选(1 - 5) : ";

cinkey;

else

break;

switch(key)

case 1:

addRecord();

break;

case 2:

deleteRecord();

break;

case 3:

modifyRecord();

break;

case 4:

queryRecord();

break;

case 5:

display();

break;

case 6:

quit();

break;

//增加学生信息

void addRecord()

if(stuNum == 0)

cout"原来没有记录,现在建立新表!"endl;

stuNum++;

else

cout"现在在当前表的末尾添加新的信息!"endl;

stuNum++;

//如果数组空间不够,重新申请空间

if(stuNum INIT_SIZE)

cout"内存空间不够,现在重新申请新的内存空间!"endl;

record = (STUDENT*)realloc(record,(INIT_SIZE + INCRE_SIZE)*sizeof(STUDENT));

cout"空间申请完成!"endl;

cout"您现在要添加一组新的信息,您确定吗?"endl;

cout"请输入您的选择(Y/N) : ";

char choi;

cinchoi;

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

cout"请输入学号 : ";

cinrecord[stuNum].num;

cout"请输入姓名 : ";

cinrecord[stuNum].name;

cout"请输入性别(M为男,F为女) : ";

cinrecord[stuNum].sex;

int i;

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

cout"请输入"subject[i]"的成绩 : ";

cinrecord[stuNum].score[i];

if((choi == 'N')||(choi == 'n'))

cout"退出添加新学生信息!"endl;

coutendl;

cout"现在已经有"stuNum"条学生的信息了!"endl;

coutendl;

//删除信息 晚上完成...

//显示deleteRecord的表头信息

void Info_delete()

cout"请输入删除方式 : "endl;

cout"1. 按学号删除"endl;

cout"2. 按姓名删除"endl;

cout"3. 退出删除"endl;

//删除学生的信息,包含两个子函数

void deleteRecord()

int key;

coutendl;

Info_delete();

cout"请输入您的选择 : ";

cinkey;

if(key == 1)

int targetNum;

cout"请输入您欲删除学生的学号 : ";

cintargetNum;

//按学号删除

delete_Num(targetNum);

coutendl;

if(key == 2)

char targetName[20];

cout"请输入您欲删除学生的姓名 : ";

cintargetName;

//按姓名删除

delete_Name(targetName);

coutendl;

if(key == 3)

while(1)

menu_CMD();

//按学号删除学生信息

//只用完成删除操作,而不必输出. 输出的操作可以在主菜单中进行

void delete_Num(int tarNum)

int i;

for(i = 1;i = stuNum;i++)

if(record[i].num == tarNum)

//删除还要分两种情况讨论

//1. 欲删除的学生信息是最后一位

//2. 欲删除的学生信息不是最后一位

//第一种情况,欲删除的学生是最后一位

if(i = stuNum)

cout"您所要删除的学生信息是 : "endl;

show_Table();

coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"

record[i].score[0]record[i].score[1]"\t"record[i].score[2];

coutendl;

coutendl"删除后学生信息表为 : "endl;

show_Table();

for(int i = 1;i = stuNum - 1;i++)

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

for(int j = 0;j SUBJECT_NUM;j++)

cout"\t"record[i].score[j];

coutendl;

//显示信息应该放在后面

stuNum--;

cout"现在还剩下"stuNum"条学生的信息";

coutendl;

//2.第二种情况,欲删除的学生不是最后一位

if(i != stuNum)

cout"您所要删除的学生信信息是 : "endl;

show_Table();

coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"

record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];

for(int j = i+1;j = stuNum;j++)

record[j-1] = record[j];

//接着完成输出

coutendl;

cout"删除后学生信息表为 : "endl;

show_Table();

for(int i = 1;i = stuNum-1;i++)

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

for(int j = 0;j SUBJECT_NUM;j++)

cout"\t"record[i].score[j];

coutendl;

stuNum--;

cout"现在还剩下"stuNum"条学生的信息";

coutendl;

stuNum--;

cout"现在还是剩下"stuNum"条学生的信息";

coutendl;

//方法同上

void delete_Name(char tarName[])

int i;

for(i = 1;i = stuNum;i++)

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

//删除还要分两种情况讨论

//1. 欲删除的学生信息是最后一位

//2. 欲删除的学生信息不是最后一位

//第一种情况 : 欲删除学生是最后一位

if(i = stuNum)

cout"您所要删除的学生信息是 : "endl;

show_Table();

coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"

record[i].score[0]record[i].score[1]"\t"record[i].score[2];

coutendl;

coutendl"删除后学生信息表为 : "endl;

show_Table();

for(int i = 1;i = stuNum - 1;i++)

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

for(int j = 0;j SUBJECT_NUM;j++)

cout"\t"record[i].score[j];

coutendl;

//第二种情况 : 欲删除学生不是最后一位

if(i != stuNum)

cout"您所要删除的学生信信息是 : "endl;

show_Table();

coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"

record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];

//整体往前 前移一位

for(int j = i+1;j = stuNum;j++)

record[j-1] = record[j];

coutendl;

//接着完成输出

cout"删除后学生信息表为 : "endl;

show_Table();

for(int i = 1;i = stuNum-1;i++)

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

for(int j = 0;j SUBJECT_NUM;j++)

cout"\t"record[i].score[j];

coutendl;

coutendl;

void delete_Name(char tarName[])

int i;

for(i = 1;i = stuNum;i++)

//删除还要分两种情况讨论

//1. 欲删除的学生信息是最后一位

//2. 欲删除的学生信息不是最后一位

//当欲删除的学生是最后一位,直接输出前面LEN-1位学生的信息

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

if(i == stuNum)

cout"您所要删除的学生信息是 : "endl;

show_Table();

coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"

record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];

coutendl;

cout"删除后学生信息表为 : "endl;

show_Table();

for(int i = 1;i = stuNum-1;i++)

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

for(int j = 0;j SUBJECT_NUM;j++)

cout"\t"record[i].score[j];

coutendl;

stuNum--;

cout"现在还剩下"stuNum"条学生的信息";

coutendl;

//当欲删的学生不是最后一位,整体往前前移一位

if(i != stuNum)

cout"您所要删除的学生信息是 : "endl;

show_Table();

coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t";

coutrecord[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];

coutendl;

//整体往前前移一位

for(int j = i+1;j = stuNum;j++)

record[j-1] = record[j];

//然后输出

coutendl;

cout"删除后学生信息表为 : "endl;

show_Table();

for(int i = 1;i = stuNum-1;i++)

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

for(int j = 0;j SUBJECT_NUM;j++)

cout"\t"record[i].score[j];

coutendl;

stuNum--;

cout"现在还剩下"stuNum"条学生的信息";

coutendl;

stuNum--;

cout"现在还剩下"stuNum"条学生的信息";

coutendl;

//显示modifyRecord的表头信息

void Info_modify()

cout"请输入修改方式 : "endl;

cout"1. 按学号修改"endl;

cout"2. 按姓名修改"endl;

cout"3. 退出修改"endl;

//查询学生的成绩,当然里面包括两个子函数

void modifyRecord()

int key;

coutendl;

Info_modify();

cout"请输入您的选择 : ";

cinkey;

//按学号修改

if(key == 1)

int targetNum;

cout"请输入您欲修改的学生的学号 : ";

cintargetNum;

modify_Num(targetNum);

coutendl;

//display();

//按姓名修改

if(key == 2)

char targetName[20];

cout"请输入您欲修改学生的姓名 : ";

cintargetName;

modify_Name(targetName);

coutendl;

//display();

//退出修改

if(key == 3)

while(1)

menu_CMD();

//按学号修改

void modify_Num(int tarNum)

int i;

for(i = 1;i = stuNum;i++)

if(record[i].num == tarNum)

coutendl"请修改该学生的信息"endl;

cout"请输入该学生的学号 : ";

cinrecord[i].num;

cout"请输入该学生的姓名 : ";

cinrecord[i].name;

cout"请输入该学生的性别 : ";

cinrecord[i].sex;

cout"请输入"subject[0]"的成绩 : ";

cinrecord[i].score[0];

cout"请输入"subject[1]"的成绩 : ";

cinrecord[i].score[1];

cout"请输入"subject[2]"的成绩 : ";

cinrecord[i].score[2];

//按姓名修改

void modify_Name(char tarName[])

int i;

for(i = 1;i = stuNum;i++)

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

coutendl"请修改该学生的信息 : "endl;

cout"请输入该学生的学号 : ";

cinrecord[i].num;

cout"请输入该学生的姓名 : ";

cinrecord[i].name;

cout"请输入该学生的性别 : ";

cinrecord[i].sex;

cout"请输入"subject[0]"的成绩 : ";

cinrecord[i].score[0];

cout"请输入"subject[1]"的成绩 : ";

cinrecord[i].score[1];

cout"请输入"subject[2]"的成绩 : ";

cinrecord[i].score[2];

//显示queryRecord的表头信息

void Info_query()

cout"请输入查询方式 : "endl;

cout"1. 按学号查询"endl;

cout"2. 按姓名查询"endl;

cout"3. 退出查询"endl;

//查询学生信息queryRecord

void queryRecord()

int key;

coutendl;

Info_query();

cout"请输入您的选择 : ";

cinkey;

if(key == 1)

int targetNum;

cout"请输入您欲查询学生的学号 : ";

cintargetNum;

query_Num(targetNum);

coutendl;

if(key == 2)

char targetName[20];

cout"请输入您欲查询学生的学号 : ";

cintargetName;

query_Name(targetName);

coutendl;

//退出查询,退回到主菜单吧...

if(key == 3)

while(1)

menu_CMD();

//按学号查询

void query_Num(int tarNum)

int i;

for(i = 1;i = stuNum;i++)

if(record[i].num == tarNum)

//如果表中有该学生信息的话,仅用输出该学生的信息即可.

//输出该学生的信息

cout"该学生的信息如下 : "endl;

//显示表头信息

show_Table();

//显示该学生具体的信息

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

cout"\t"record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];

coutendl;

//按姓名查询

void query_Name(char tarName[])

int i;

for(i = 1;i = stuNum;i++)

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

cout"该学生的信息如下 : "endl;

show_Table();

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

cout"\t"record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];

coutendl;

//先显示所有学生的信息吧

//显示record里所有学生的成绩

void display()

show_Table();

int i,j;

for(i = 1;i = stuNum;i++)

//cout"学号""\t""姓名""\t""性别";

coutrecord[i].num"\t"record[i].name"\t"record[i].sex;

for(j = 0;j SUBJECT_NUM;j++)

cout"\t"record[i].score[j];

coutendl;

coutendl;

//退出

void quit()

char choi;

cout"您确定要退出吗?"endl;

cout"请输入您的选择(Y/N) : ";

cinchoi;

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

cout"现在退出学生信息管理系统"endl;

exit(0);

//如果不是退出,则接着退回到主界面

else

coutendl;

menu_CMD();

这个是原创的... 在C-Free 4.0里跑过,可以正常运行

你可以试着跑一下,如果有什么问题可以和我联系

| 评论(1)

向TA求助

回答者: 伦落校园4914 来自团队 嘻嘻爱好者 | 二级采纳率:5%

擅长领域: C/C++ 数学

参加的活动: 暂时没有参加的活动

相关内容

2009-2-28求 学生信息管理系统 C程序源代码 1

2007-7-29学生信息管理系统 C/C++ 的 源代码 22

2011-3-16请高手紧急求救啊!!急求学生信息管理系统 源代码 JAVA的 myeclip...

2009-8-31求 MFC 学生信息管理系统 源代码 5

2010-9-9MFC 学生信息管理系统 源代码 那个。。。我也想要可以吗? 1

更多关于学生档案管理系统,源码的问题

学生信息管理系统:... 学生信息管理系统:... 学生信息管理系统:...

2012-2-18学生信息管理系统论文,求高手11

2012-1-22学生信息管理系统论文

2011-12-15谁有学生信息管理系统的论文,发过来哦!要求:B/S的,java+mysql的. ...

2011-12-19求毕业设计vb+access 题目是学生信息管理系统 哪位大神有的 全套发我...

2011-12-15谁有学生信息管理系统的论文,发过来哦!

更多关于学生信息管理系统:论文的问题

回答 共2条

2010-12-22 20:03 Shanglogo | 六级

不知道你要实现什么样的功能,下面的你可以参考一下。

#includeiostream.h

#includeiomanip.h

void input(); //声明7个函数

void output();

void paixu();

void chazhao();

void charu();

void shanchu();

void tongji();

struct Student //结构体

int num;

char name[12];

float math;

float eng;

float com;

float sum;

float ave;

Student x[30];

int N=0;

void main()

int m;

do

{ //开场效果

coutendl;

coutendl;

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

cout" * 欢迎使用学生信息管理系统 *"endl;

cout" * 1.输入信息 2.输出信息 *"endl;

cout" * 3.总分排序 4.查找信息 *"endl;

cout" * 5.插入信息 6.删除信息 *"endl;

cout" * 7.统计分数 8.退出系统 *"endl;

cout" * Made by Shanglogo *"endl;

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

coutendl;

  档案管理系统课程设计源码 


评论


最新评论