b2c信息网

您现在的位置是:首页 > 热点问题 > 正文

热点问题

电子档案管理软件源码(档案数字化管理系统软件)

hacker2022-07-11 16:25:35热点问题94
本文目录一览:1、80分奖励给一个C语言源代码“档案管理系统的设计”2、

本文目录一览:

80分奖励给一个C语言源代码“档案管理系统的设计”

#include stdio.h

#include stdlib.h

#include string.h

#include conio.h

/*********************** 字定义函数声明 ********************************/

void Add(); //增加记录

void Delete(); //删除记录

void Search(); //查找记录

void Alter(); //修改记录

void Views(); //查看所有记录

void delete_all(); //清除所有记录

int check(char strID[]); //查找文件记录中已经存在的学生ID

/********************* 定义学生信息结构体 **********/

struct student

{

//学生信息(学号,姓名,性别,籍贯,电话,住址,民族);

char ID[10];

char name[10];

char sex[4];

char nativePlace[10];

char phone[13];

char nation[6];

};

struct student stu;

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

/********************* main() 主函数 *************************************/

void main()

{

int flag;

while(flag!=7)

{

printf("\n\t\t 【 请选择您所要的操作 】 \n");

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

printf("\t\t‖ 1、增加记录 4、修改记录 ‖\n");

printf("\t\t‖ 2、删除记录 5、清除所有记录 ‖\n");

printf("\t\t‖ 3、查询记录 6、所有记录列表 ‖\n");

printf("\t\t‖ 〖 按任意键退出 〗 ‖\n");

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

scanf("%d",flag);

switch(flag)

{

case 1:

Add(); //增加记录

getch();

system("cls");

break;

case 2:

Delete(); //删除记录

getch();

system("cls");

break;

case 3:

Search(); //查找记录

getch();

system("cls");

break;

case 4:

Alter(); //修改记录

getch();

system("cls");

break;

case 5:

delete_all(); //清空所有记录

getch();

system("cls");

break;

case 6:

Views(); //查看所有记录

getch();

system("cls");

break;

default:

exit(0);

}

}

}

/***************** 插入新记录 *******************************/

void Add()

{

if((fp=fopen("StudentMessage","ab+"))==NULL)

{

printf("学生信息文件打开失败!");

exit(1);

}

else

{

int check_add(char stuID[]);

long flength,offset;

int k=0,t; //t用来接收check()函数的传值

char str[53];

fseek(fp,0,SEEK_END);

flength=ftell(fp)/sizeof(stu); //统计文件中有多少条记录

printf("\t请输入要插入的学生的信息:\n");

input_message:

printf("\t学号:");

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

t=check_add(stu.ID);

if(t==1)

{

printf("\t》 该学号已经存在,不允许重复插入!请重新输入一个学号。《\n");

goto input_message; //跳转到“input_message”标记处继续执行

}

printf("\t姓名:");

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

printf("\t性别:");

scanf("%s",stu.sex);

printf("\t籍贯:");

scanf("%s",stu.nation);

printf("\t电话:");

scanf("%s",stu.phone);

printf("\t名族:");

scanf("%s",stu.nativePlace);

rewind(fp);

//检测文件中是否有空字符串,如果有则在此处插入新记录,如果没有则插入到文件尾

while(!feof(fp))

{

fread(str,sizeof(stu),1,fp);

//检测到空字符串,则将fp所指向的文件关闭,以读写方式重新打开

if(strcmp(str,"")==0)

{

fclose(fp);

fp=fopen("StudentMessage","rb+");

break;

}

k++;

}

offset=sizeof(stu)*k;

fseek(fp,offset,SEEK_SET);

fwrite(stu,sizeof(stu),1,fp);

fclose(fp);

printf("插入数据成功!\n");

}

}

/****************** 检测将要插入的学号是否已存在文件记录中 **************************/

int check(char stuID[10])

{

int id=0,k=1;

FILE *fpp;

struct student checkID;

if((fpp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开一个二进制文件StudentMessage

{

printf("文件打开失败!\n");

exit(1);//打开失败,返回系统

}

while(!feof(fpp))

{

fread(checkID,sizeof(stu),1,fpp);

//检测用户输入的学号是否已经存在,若存在则终止程序的执行

if(strcmp(checkID.ID,stuID)==0)

{

break;

}

id++;

}

fclose(fpp);

return id*k;

}

/******************** 检测输入的学号是否能插入 *****************************************/

int check_add(char stuID[10])

{

int id;

FILE *fpp;

struct student checkID;

if((fpp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开一个二进制文件StudentMessage

{

printf("文件打开失败!\n");

exit(1);//打开失败,返回系统

}

while(!feof(fpp))

{

fread(checkID,sizeof(stu),1,fpp);

//检测用户输入的学号是否已经存在,若存在则终止程序的执行

if(strcmp(checkID.ID,stuID)==0)

{

id=1;

break;

}

else

{

id=0;

}

}

fclose(fpp);

return id;

}

/******************* 根据用户输入的学号删除记录 ************/

void Delete()

{

printf("删除相应记录!\n");

if((fp=fopen("StudentMessage","rb+"))==NULL) //以可读可写方式打开一个二进制文件

{

printf("文件打开失败!\n");

return;

}

else

{

char message[10]; //接收用户需要删除的学号

int i;

long flength;

fseek(fp,0,SEEK_END); //把文件指针移到文件尾

flength=ftell(fp)/sizeof(struct student); //计算文件中有多少条记录

printf("\t请输入您要删除的学号:");

scanf("%s",message);

i=check(message);

long offset=sizeof(stu)*i; //记录要删除的学号的位置

if(flength==0)

{

printf("文件记录为空!\n");

return;

}

else if(iflength)

{

printf("没有该学生信息!\n");

return;

}

else

{

//将要删除的字符串全部置为空

strcpy(stu.ID,"");

strcpy(stu.name,"");

strcpy(stu.sex,"");

strcpy(stu.nation,"");

strcpy(stu.phone,"");

strcpy(stu.nativePlace,"");

fseek(fp,offset,SEEK_SET); //移动指针到要删除的学号的位置

fwrite(stu,sizeof(stu),1,fp); //将置空的信息重新写回到文件中

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

}

fclose(fp);

}

}

/****************** 查找数据 ***************************************/

void Search()

{

if((fp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开StudentMessage文件

{

printf("\t文件打开失败!\n");

return;

}

else

{

char message[10]; //接收用户需要查找的信息

int i;

long flength,offset;

fseek(fp,0,SEEK_END); //将文件指针移文件尾

flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录

printf("\t请输入您要查找的学号:");

scanf("%s",message);

i=check(message);

offset=sizeof(struct student)*i;

if(flength==0)

{

printf("\t文件记录为空!\n");

return;

}

else if(iflength)

{

printf("\t\t查找失败,没有找到相应信息!\n");

return;

}

else

{

//输出查找到的内容

rewind(fp);

fseek(fp,offset,SEEK_SET);

fread(stu,sizeof(struct student),1,fp);

printf("学号:%s ",stu.ID);

printf("姓名:%s ",stu.name);

printf("性别:%s ",stu.sex);

printf("籍贯:%s ",stu.nation);

printf("电话:%s ",stu.phone);

printf("民族:%s\n",stu.nativePlace);

}

fclose(fp);

}

}

/****************** 修改记录 ********************************/

void Alter()

{

printf("修改相应记录!\n");

if((fp=fopen("StudentMessage","rb+"))==NULL)

{

printf("文件打开失败!\n");

exit(1);

}

else

{

char message[10]; //存储用户要修改的学号

int i;

long flength,offset;

fseek(fp,0,SEEK_END); //移动文件指针到文件尾

flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录

printf("\t请输入您要修改的学号:");

scanf("%s",message);

i=check(message);

offset=sizeof(struct student)*i; //记录要修改的记录在文件中的位置

if(flength==0)

{

printf("文件记录为空!\n");

return;

}

else if(iflength)

{

printf("没有该学生信息!\n");

return;

}

else

{

rewind(fp);

fseek(fp,offset,SEEK_SET);

fread(stu,sizeof(struct student),1,fp);

printf("该学生原来的信息:\n");

printf("\t学号:%s ",stu.ID);

printf("姓名:%s ",stu.name);

printf("性别:%s ",stu.sex);

printf("籍贯:%s ",stu.nation);

printf("电话:%s ",stu.phone);

printf("名族:%s\n\n",stu.nativePlace);

printf("请更新该学生的信息:\n");

strcpy(stu.ID,message);

printf("\t姓名:");

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

printf("\t性别:");

scanf("%s",stu.sex);

printf("\t籍贯:");

scanf("%s",stu.nation);

printf("\t电话:");

scanf("%s",stu.phone);

printf("\t名族:");

scanf("%s",stu.nativePlace);

fseek(fp,offset,SEEK_SET); //将文件指针指向要修改的地方

fwrite(stu,sizeof(stu),1,fp); //将修改后的内容重新写回到原来的地方

printf("\t数据更新成功!\n");

}

fclose(fp);

}

}

/************** 查看所有记录 ************************************/

void Views()

{

long flength;

if((fp=fopen("StudentMessage","rb"))==NULL)

{

printf("文件打开失败!\n");

exit(1);

}

fseek(fp,0,SEEK_END); //移动文件指针到文件尾

flength=ftell(fp)/sizeof(struct student); //得到文件中有多少条记录

if(flength==0)

{

printf("文件中没有记录!");

return;

}

rewind(fp); //将文件指针移动到文件头

printf("\t\t\t所有记录列表\n\n");

while(!feof(fp))

{

fread(stu,sizeof(stu),1,fp);

if(strcmp(stu.ID,"")!=0) //检测文件中的空字符串,如果不是空字符串则输出

{

printf("学号:%s ",stu.ID);

printf("姓名:%s ",stu.name);

printf("性别:%s ",stu.sex);

printf("籍贯:%s ",stu.nation);

printf("电话:%s ",stu.phone);

printf("民族:%s\n",stu.nativePlace);

}

}

fclose(fp);

}

/******************** 删除所有记录 ********************************/

void delete_all()

{

int ch;

printf("该操作将删除所有记录,按“0”退出,按“1”继续。\n");

scanf("%d",ch);

switch(ch)

{

case 0:

break;

case 1:

printf("将删除所有记录,继续请按“1”,退出请按“0”。\n");

scanf("%d",ch);

switch(ch)

{

case 0:

break;

case 1:

if (remove("StudentMessage") == 0) //删除StudentMessage文件

{

printf("操作成功,所有记录已经删除!");

}

else

{

perror("remove"); //如果删除不成功则输出系统出错的信息

}

break;

}

}

}

有没有学生档案管理系统,基于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;

人事档案系统源码

网上有这样的程序,可下载,也许有部分功能需要收费,你可以将那一部分屏弊掉来使用。

求C# 学生档案管理系统源代码,带sql数据库的

学生档案管理系统,商业代码没有,学习代码有,可以去25175上看一下,那里有

学生档案管理系统,希望对你的学习成长有所帮助

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

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

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

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

求C语言学生档案管理界面的源代码

# includeiostream.h

# includestring.h

# includestdio.h

# includestdlib.h

# includefstream.h

//*****定义一个学生原子的的数据结构*****//

struct stuatom

{

char *name;

int id;

char sex;

float math, eng, comp, totll, aver;

void show();

void setup();

};

//*********定义一系列对学生的操作**********//

class student

{

private:

stuatom ob[100];

int stulen;

public:

student();

void input();

void order();

void save();

void Query();

void read();

void add();

void del();

};

//********对学生数据的初始化(类的构造函数)**********//

student::student()

{

//用for循环对全部数组中的数据初始化

for(int i=0;i100;i++)

{

ob[i].math=ob[i].eng=ob[i].comp =ob[i].totll =ob[i].aver =0;

ob[i].id =0;

ob[i].sex =' ';

ob[i].name =NULL;

}

this-stulen =0;

}

//********输入学生的数据,并判断是否在规定数据域内*******//

void stuatom::setup()

{

char n[20]; char s;

int b;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

do {

cout" 学号: ";

cinb;

if(b1020||b1001)

cout"Bad data input!!"endlendl;

}while (b1001||b1020);

id=b;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

do{

name=new char[strlen(n)+1];

cout" 姓名: ";

cinn;

if( strlen(n)6 || strlen(n)4 )

cout"Bad data input!!"endlendl;

}while ( strlen(n)6 strlen(n)4 );

strcpy(name,n);

cout" 性别(m/f):" ;

cins;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (s!='m' s!='f')

{

cout"Bad data input!!"endlendl;

cout" 性别(m/f):";

cins;

}

sex=s;

float m, e, co;

cout" 数学: ";

cinm;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (m0 || m100)

{

cout"Bad data input!!"endlendl;

cout" 数学: ";

cinm;

}

math=m;

cout" 英语: ";

cine;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (e0 || e100)

{

cout"Bad data input!!"endlendl;

cout" 英语: ";

cine;

}

eng=e;

cout" 计算机: ";

cinco;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (co0 || co100)

{

cout"Bad data input!!"endlendl;

cout" 计算机: ";

cinco;

}

comp=co;

totll=math+eng+comp;

aver=(math+eng+comp)/3;

}

//*******按照规定格式把该学生的数据显示在屏幕上******//

void stuatom::show()

{

cout.setf(ios::left);

cout.width(6);

cout""id" ";

cout.width(8);

coutname;

cout.width(10);

coutsex;

cout.width(9);

coutmath;

cout.width(9);

couteng;

cout.width(11);

coutcomp;

cout.width(10);

couttotllaverendl;

}

//**************输入学生的数据***********************//

void student::input()

{

int n;

coutendl"输入将要录入的学生数目: ";

cinn;

int j;

//通过循环输入要求输入学生个数的学生的数据。

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

{

cout" 输入学生信息 "jendl;

ob[j].setup();

}

this-stulen=n; //学生个数赋值

//学生数据显示格式

system("cls");

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

//通过循环输出所有学生数据。

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

{

ob[j].show();

}

coutendl;

cout" 是否保存? (Y/N): ";

char Y;

cinY;

system("cls");

}

//**************按照一定格式显示所要查询学生的信息。**************//

void student::Query()

{

int x , i;

coutendl" 输入要查询学生的学号: ";

cinx;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

for(i=0;i=this-stulen ;i++)

{ if (x==ob[i].id)

{

cout.setf(ios::left);

cout.width(6);

cout""ob[i].id" ";

cout.width(8);

coutob[i].name;

cout.width(10);

coutob[i].sex;

cout.width(9);

coutob[i].math;

cout.width(9);

coutob[i].eng;

cout.width(11);

coutob[i].comp;

cout.width(10);

coutob[i].totllob[i].averendl;

}

}

getchar();

}

//*******************保存学生数据**************************//

void student::save()

{

int i;

ofstream outfile;

outfile.open("list.txt",ios::trunc);

if(!outfile)

{

cout"Cannot open output file!\n,";

}

//通过循环把所有的学生数据保存在list.txt里边。

for(i=0; ithis-stulen; i++)

{

outfileob[i].id" "ob[i].name" "ob[i].sex" "

ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;

}

outfile.close();

}

//*************显示所有学生数据*********************//

void student::read()

{

int i;

system("cls");

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

for(i=0; ithis-stulen; i++)

{

ob[i].show();

}

getchar();

}

//*******************一个学生的数据****************//

void student::add()

{

int i, d=this-stulen ;

cout"输入要添加学生的信息:"endl;

ob[d].setup();

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

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

{

ob[i].show();

}

ofstream fout("list.txt",ios::app);

if(!fout)

{

cout"Cannot open output file!\n,";

}

//把添加的学生数据添加到list.txt里边去。

foutob[d].id" "ob[d].name" "ob[d].sex" "

ob[d].math" "ob[d].eng" "ob[d].comp" "ob[d].totll" "ob[d].averendl;

fout.close();

getchar();

}

//*********************删除指定名字学生的数据*******************//

void student::del()

{

int i,p; char x[8];

cout" 输入要删除学生名字:"endl;

cinx;

//通过for循环查找要删除学生的姓名

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

{

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

{

p=i;

coutendl"学号 姓名 性别 数学 英语 计算机 总成绩 平均成绩"endl;

coutob[i].id" "ob[i].name" "ob[i].sex" "ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;

break;

}

else

continue;

}

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

//删除了之后,应该把后面的数据往前移,把要删除的数据覆盖,并且学生长度减1

stulen--;

for(i;istulen;i++)

{

ob[i]=ob[i+1];

}

this-read ();

cout" 删除成功!"endl;

getchar();

}

//***********把学生成绩排序******************//

void student::order()

{

int k,j;

float t; char n[20];

//排序算法。

for(j = 0; j=(2-1); j++)

{

for(k=1; k=(2-j); k++)

{

if(ob[k].totll ob[k + 1].totll)

{

t = ob[k].totll;

ob[k].totll = ob[k+1].totll;

ob[k+1].totll = t;

strcpy(n, ob[k].name);

strcpy(ob[k].name, ob[k+1].name);

strcpy(ob[k+1].name, n);

}

cout" 成绩排名:"endl;

cout" 姓名 总成绩 名次"endl;

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

{

cout" ";

cout.setf(ios::left);

cout.width(9);

coutob[k].name;

cout.width(9);

coutob[k].totllkendl;

}

getchar();

}

}

}

//********************选择菜单。*****************//

void menu()

{

cout"\n\n";

cout"------------------ 学生成绩系统 -----------------"endlendl;

cout"\t\t1.录入与保存学生信息.\n";

cout"\t\t2.读取学生信息.\n";

cout"\t\t3.删除学生信息.\n";

cout"\t\t4.追加学生信息.\n";

cout"\t\t5.查询学生信息.\n";

cout"\t\t6.显示成绩名次.\n";

cout"\t\t7.退出系统......\n\n\n";

cout"\t\t请选择功能项: ";

}

//---------------------------------------------------------------------------------------

void main()

{

student a;

while(1)

{

int SEL;

system("cls");

menu();

cinSEL;

switch(SEL)

{

case 1:

system("cls"); a.input();a.save();break;

case 2:

system("cls"); a.read(); break;

case 3:

system("cls"); a.del(); break;

case 4:

system("cls"); a.add();break;

case 5:

system("cls"); a.Query();break;

case 6:

system("cls"); a.order();break;

case 7:

coutendl" 按任意键退出.... "endl;

getchar();

exit(0);

default:

cout"Bad input!!\n";

break;

}

}

} 我比较忙,没有亲自帮你写,你自己改改吧,框架出来了。

发表评论

评论列表

  • 辙弃迷麇(2022-07-12 03:04:28)回复取消回复

    ord[j]; } //接着完成输出 coutendl; cout"删除后学生信息表为 : "endl; show_Table(); for(int i = 1;i = stuNum-1;i++)

  • 竹祭雾夕(2022-07-12 01:27:05)回复取消回复

    *****// void student::input() { int n; coutendl"输入将要录入的学生数目: "; cinn; int j; //通过循环输入要求输入学生个数的学生的数据。

  • 馥妴栖迟(2022-07-11 19:26:38)回复取消回复

    ob[i].totll =ob[i].aver =0; ob[i].id =0; ob[i].sex =' '; ob[i].name =NULL; } t

  • 世味胭话(2022-07-11 23:54:44)回复取消回复

    : "endl; cout"1. 按学号查询"endl; cout"2. 按姓名查询"endl; cout"3. 退出查询"endl; } //查询学生信息queryRecord void queryRecord(){ int key; co