C语言程序设计--班级档案管理系统

作者&投稿:逄费 (若有异议请与网页底部的电邮联系)
c语言课程设计--班级档案管理系统~

//****************************************************************************
//**** 说明:密码所在的文件位于c盘,文件名为1.txt。
//**** 学生基本信息最好保存在C盘,文件名为student.txt。
//****************************************************************************
#include
#include
#include
#include

#define N 3
struct student
{
char name[10];
char no[10];
char sex;
int age;
char bnote[100];
};
void print(bool menu)//打印基本信息
{
if (!menu)
{
printf("学生基本信息录入 ,press 1
");
}
else
{
printf("学生基本信息显示 ,press 2
");
printf("学生基本信息保存 ,press 3
");
printf("学生基本信息删除 ,press 4
");
printf("学生基本信息修改 ,press 5
");
printf("学生基本信息查询 ,press 6
");
}
printf("退出学生信息系统 ,press 7
");
}

bool Check(char pas[6])//密码验证
{
FILE *fp;
char ch;
char a[7]={" "};
int i = 0;
if ((fp=fopen("c:\\1.txt","r"))==NULL)
{
printf("打开文件失败!
");
exit(0);
}
ch=fgetc(fp);
while (ch!=EOF&&i<6)
{
a[i] = ch;
ch=fgetc(fp);
i++;
}
a[6] = '\0';
if (!strcmp(pas,a))
{
return true;
}
else
{
printf("密码错误
");
return false;
}
fclose(fp);
}

void GetInfo(struct student *arr,int n)//学生基本信息录入
{

for (int i = 0;i<n;i++)
{
printf("输入学生的基本信息:name no sex age bnote
");
scanf("%s %s %c %d %s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
}
}
void Display(struct student* arr,int n)//学生基本信息显示
{
printf("学生信息: Name NO Sex age Note
");
for (int i = 0;i<n;i++)
{
printf("%15s%15s%15c%15d%15s
",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
}
}

void Save(struct student* arr,int n)//学生基本信息保存,保存在c:\\student.txt
{
FILE * fp;
fp= fopen("c:\\student.txt","w+");
if (fp == NULL)
{
printf("文件不存在!
");
exit(0);
}

fwrite(arr,sizeof(struct student)*n,n,fp);
fclose(fp);
}

void Modfiy(struct student* arr,int n)//学生基本信息修改
{
char number[10];
bool flag=false;
char pass[6];
printf("请输入密码:
");
scanf("%s",pass);
if (Check(pass))
{
printf("修改学生信息:
");
printf("请输入学号:
");
scanf("%s",number);
for (int i =0;i<n;i++)
{
if (!strcmp(number,arr[i].no))
{
printf("infor: name no sex age note
");
printf("%12s%12s%12c%12d%12s
",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
printf("please input information:
");
scanf("%s%s%c%d%s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
Save(arr,n);
flag = true;
}
}
if (flag == false)
{
printf("该学生不存在!:
");
}
}

}

void Delete(struct student* arr,int n)//学生基本信息删除
{
char number[10];
bool flag=false;
printf("Delete information:
");
printf("please input the no:
");
scanf("%s",number);
for (int i =0;i<n;i++)
{
if (!strcmp(number,arr[i].no))
{
strcpy(arr[i].name," ");
strcpy(arr[i].no," ");
strcpy(arr[i].bnote," ");

arr[i].sex = ' ';
arr[i].age = 0;
Save(arr,n);
flag = true;
}
}
if (flag == true)
{
printf("该学生不存在!:
");
}
}

void Search(struct student* arr,int n)//学生基本信息查询
{
int temp,i;
bool flag=false;
printf("---------------通过学号查询,press 1-------------
");
printf("---------------通过姓名查询,press 2-----------
");
printf("---------------通过性别查询,press 3------------
");
printf("---------------通过年龄查询,press 4------------
");
printf("---------------退出,press 5 ------------
");
scanf("%d",&temp);
switch (temp)
{
case 1://按照学号查询
{
char num[10];
printf("请输入学号:
");
scanf("%s",num);
for ( i =0;i<n;i++)
{
if (!strcmp(num,arr[i].no))
{
printf("%12s%12s%12c%12d%12s
",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.
");
}
}
break;
case 2://按照名字查询
{
char num[10];
printf("please input name:
");
scanf("%s",num);
for ( i =0;i<n;i++)
{
if (!strcmp(num,arr[i].name))
{
printf("%12s%12s%12c%12d%12s",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.
");
}
}
break;
case 3://按照性别查询
{
char ch;
printf("请输入性别:
");
//scanf("%c",&ch);
ch = getch();
for ( i =0;i<n;i++)
{
if (ch == arr[i].sex)
{
printf("%12s%12s%12c%12d%12s
",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("t该学生不存在.
");
}
}
break;
case 4://按照年龄查询
{
char num_age;
printf("请输入年龄:
");
scanf("%d",&num_age);
for ( i =0;i<n;i++)
{
if (num_age == arr[i].age)
{
printf("%12s%12s%12c%12d%12s
",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.
");
}
}
break;
default:
break;
}
}

void main()
{
struct student arr[N];
char ps[6];
bool flag =false;
printf("请输入密码:
");
scanf("%s",ps);
flag = Check(ps);
if (flag)
{
int select;
print(false);
scanf("%d",&select);
while (0<select && select <7 )
{
switch (select)
{
case 1:
GetInfo(arr,N);
print(true);
break;
case 2:
Display(arr,N);
print(true);
break;
case 3:
Save(arr,N);
print(true);
break;
case 4:
Delete(arr,N);
print(true);
break;
case 5:
Modfiy(arr,N);
print(true);
break;
case 6:
Search(arr,N);
print(true);
break;
default:
break;
}
printf("请选择:
");
scanf("%d",&select);
}
}
}

final String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
final String user = "store";
final String password = "store_password";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, user, password);
return con;
}

给,已经编译运行确认了:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define N 10
int M=0;
struct student
{
char num[13];
char name[20];
char sex;
char address[30];
int age;
};

typedef struct LB
{
struct student XINXI;
struct LB *next;
}LB_1,*LB_2;

void CAIDANG()
{
printf(" \t \t \t (欢迎使用本班级档案管理系统)\t\t\t\t\n");
printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入我们的系统 ★*★*★*★*★*★*★*★*★*★\n\n");

printf("1.录入学生资料\t\t\t\t\t4.查询学生信息\n\n");
printf("2.修改学生信息\t\t\t\t\t5.删除学生信息\n\n");
printf("3.保存学生信息\t\t\t\t\t0.退出档案系统\n\n");
printf(" \n");
printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入本系统 ★*★*★*★*★*★*★*★*★*★\n");
}
/*文本颜色*/
void color()
{
textbackground(8);
textcolor(9);
clrscr();
}
void Wrong()
{
printf("\n对不起您的输入错误!\n");
}

void SORRY()
{
printf("\n对不起该同学现没有任何信息!\n");
}

void printe(LB_1 *p)/* 本函数用于输出英文 */
{
printf(" %-2s %s\t %s\t%s\t %d\t \n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age);
}
/* 该函数用于定位链表中符合要求的接点,并返回该指针 */
LB_1 *Locate(LB_2 l,char findmess[],char nameornum[])
{
LB_1 *r;
if(strcmp(nameornum,"num")==0) /* 按学号查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->XINXI.num,findmess)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->XINXI.name,findmess)==0)
return r;
r=r->next;
}
} return 0;
}
/*以下是增加学生信息的函数*/
void TIANJIA(LB_2 l)
{
LB_1 *p,*r,*s;
char num[13];
r=l; s=l->next;
while(r->next!=NULL) /*些处循环一直到最后*/
r=r->next;
while(1)
{
printf(" 请输入添加的学生学号(输入'0'返回上一级菜单:)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break;
while(s)
{
if(strcmp(s->XINXI.num,num)==0)
{
printf("(必看提示):学号为'%s'的学生已有信息,若要修改请你输入'2 修改'!\n",num);
printe(s);
printf("\n");
return;
}
s=s->next;
} p=(LB_1 *)malloc(sizeof(LB_1));
strcpy(p->XINXI.num,num);
printf(" 请你输入学号:");
scanf("%s",p->XINXI.num);
getchar();
printf(" 请你输入姓名:");
scanf("%s",p->XINXI.name);
getchar();
printf(" 请你输入性别:");
scanf("%s",p->XINXI.sex);
getchar();
printf(" 请你输入地址:");
scanf("%s",p->XINXI.address);
getchar();

printf(" 请你输入年龄:");
scanf("%d",&p->XINXI.age);
getchar();

/* 下面是把指针变量转到链表的下一个结点中以便循环的时候使用 */
p->next=NULL;
r->next=p;
r=p; M=1;
}
}
/*以下是删除学生信息的函数*/
void SHANCHU(LB_2 l)
{
int sel;
LB_1 *p,*r;
char findmess[20];
if(!l->next)
{
printf("\n******(必看提示):对不起,现文件中没有信息:所以您不能查询!\n");
return;
}
printf("\n <必看提示> <以学号删除请输入1\n> <以姓名删除请输入2\n> PLEASE:");
scanf("%d",&sel);
if(sel==1)
{
printf("请输入要删除的学生的学号PLEASE:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{ r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n*******(必看提示):该学生的信息已完全删除成功!\n");
M=1;
}
else
SORRY();
}
else if(sel==2)
{
printf("请输入要删除的学生的姓名PLEASE:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{ r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n******(必看提示):该学生信息已成功删除!\n");
M=1;
}
else
SORRY();
}
else
Wrong();
}

/*以下是查询学生信息*/
void CHAXIONG(LB_2 l)
{ int sel;
char findmess[20];
LB_1 *p;
if(!l->next)
{ printf("\n******(必看提示):对不起,现文件中没有信息:所以您不能查询!\n");
return;
}
printf("\n以学号查询请输入1:\n以姓名查询请输入2:\n以性别查询请输入3:\n以性别查询请输入4:\n PLEASE:");
scanf("%d",&sel);
if(sel==1)/*输入学号查询*/
{
printf("请你输入要查找的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{ printf("\t\t\t\t查找结果\n");
printf(" 学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age);
}
else
SORRY();
}
if(sel==2) /* 输入姓名查询 */
{
printf("请你输入要查找的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{ printf("\t\t\t\t查找结果\n");
printf(" 学号:%s\n姓名:%s\n性别:%s\n地址:%s\n年龄:%d\n",p->XINXI.num,p->XINXI.name,p->XINXI.sex,p->XINXI.address,p->XINXI.age);
}
else
SORRY();
}

else
Wrong();
}
/*以下是修改学生信息的函数*/
void XIUGEI(LB_2 l)
{
LB_1 *p;
long int i,j;
char findmess[20];
if(!l->next)
{ printf("\n(必看提示):对不起,现文件中没有信息:所以您不能查询!\n");
return;
}
for(i=1;i<=2;i++)
{
printf("\n\n\n\n\n");
printf("请输入密码:");
scanf("%s",&j);
if(j==2007)break;
else
{if(j!=2007)
return(CAIDANG());
}
}
printf("请你输入要修改的学生学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{ printf("请你输入新学号(原来是%s):",p->XINXI.num);
scanf("%s",p->XINXI.num);
printf("请你输入新姓名(原来是%s):",p->XINXI.name);
scanf("%s",p->XINXI.name);
printf("请你输入新性别(原来是%s):",p->XINXI.sex);
scanf("%s",p->XINXI.sex);
printf("请你输入新地址(原来是%s):",p->XINXI.address);
scanf("%s",p->XINXI.address);
printf("请你输入新年龄(原来是%d):",p->XINXI.age);
scanf("%s",p->XINXI.age);
getchar();
M=1;
}
else
SORRY();
}

/*保存在文件中*/
void BAOCONG(LB_2 l)
{
FILE* fp;
LB_1 *p;
int flag=1,count=0;
fp=fopen("c:\\lyg","wr");
if(fp==NULL)
{
printf("\n=====>提示:重新打开文件时发生错误!\n");
exit(1);
}
p=l->next;
while(p)
{
if(fwrite(p,sizeof(LB_1),1,fp)==1)
{ p=p->next;
count++;
}
else
{ flag=0;
break;
}
}
if(flag)
{ printf("\n 提示;正在保存文件 共保存了%d条信息\n",count);M=0;
}
fclose(fp);
}
/*以下是主函数*/
void main()
{
LB_2 l;/* 连表 */
FILE *fp; /* 文件指针 */
int sel;long i,j,d;
char ch;
char jian;
int count=0;
LB_1 *p,*r;

color();
clrscr();
l=(LB_1*)malloc(sizeof(LB_1));
l->next=NULL;
r=l;
fp=fopen("C:\\lyg","rb");
if(fp==NULL)
{
printf("\t\t\t\t\n\n");
printf("\n");
printf(" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" Welcome to come to our system!!! \n"
" You can only inquire your own messages! If you want to see about other \n"
" students' messages,you need first to send inquirment to them,asking for \n"
" agreement,then you can visit his/her messages! \n"
" Have a good time! now you can come in!!! \n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" 注意:系统启动码为 : ILOVEMYSCHOOLVERYMUCH !!! \n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n"
" *_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*\n");
printf("欢迎使用,本系统中现没有任何记录,您要先创建文件请按以下操做进行PLEASE:\n");
printf("\n 提示:文件还不存在,是否创建?(y/n)请做选择--\n");
printf("\n");
scanf("%c",&jian);
if(jian=='y'||jian=='Y')
{fp=fopen("C:\\lyg","wb");
clrscr();
}
{for(i=1;i<=2;i++)
{
printf("\n\n\n\n\n");
printf("请输入密码:");
scanf("%ld",&j);
if(j==2007)break;
else
{if(j!=2007)return;
}
}
}

exit(0);clrscr();
}
while(!feof(fp))
{
p=(LB_1*)malloc(sizeof(LB_1));
if(fread(p,sizeof(LB_1),1,fp)) /* 将文件的内容放入链表中 */
{
p->next=NULL;
r->next=p;
r=p; /*把该结点放入链表中*/
count++;
}
}
fclose(fp); /* 关闭文件 */
while(1)
{
CAIDANG();
printf("请你选择操作:");
scanf("%d",&sel);
clrscr();
printf("\n\n\n");
if(sel==0)
{
if(M==1)
{ getchar();
printf("\n(必看提示):链表中的信息已经改动,如果确认把改动保存在文件中请做选择(y/n)?\n");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
BAOCONG(l);
}
break;clrscr();
}
switch(sel)
{
case 1: TIANJIA(l);break;
case 4: CHAXIONG(l);break;
case 3: BAOCONG(l);break;
case 2: XIUGEI(l);break;
case 5: SHANCHU(l);break;
default: getchar();break;
}
} end:
getchar();
}

先贴上!自己写的。
/* 简易学生档案管理系统 win-tc和Dev-c++下运行良好,注意不是vc++下*/
#include<stdio.h>
#include<string.h>

#define BUFLEN 80 /* 缓冲区最大字符数 */
#define CODELEN 10 /* 学号最大字符数,实际请更改 */
#define NAMELEN 15 /* 姓名最大字符数,实际请更改*/
#define N 200 /* 最大学生人数,实际请更改*/
#define M 5 /* 课程数,实际请更改 */
struct record
{
char code[CODELEN+1]; /* 学号 */
char name[NAMELEN+1]; /* 姓名 */
int mark[M]; /* 课程成绩 */
float average; /* 平均成绩 */
}stu[N];
int k=1,n,m;
int order[N];

void readfile();/* 函数声明 */
void seek();
void sort();
void insert();
void del();
void display();
void save();
void menu();

int main()
{ while(k)
menu();
system("pause");
return 0;
}

void readfile()/* 建立信息 */
{
char buf[BUFLEN],*p="student.dat";
FILE *fp;
int i=0;
if ((fp=fopen("student.dat","r"))==NULL)
{ printf("Open file %s error! Strike any key to exit!",p);
getch();
exit(0);
}
while(fscanf(fp,"%s %s%d%d%d%f",stu[order[i]].code,stu[order[i]].name,&stu[order[i]].mark[0],&stu[order[i]].mark[1],&stu[order[i]].mark[2],&stu[order[i]].average)==6)
{ i++;
order[i]=i;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}

void seek()
{int i,j,item,flag;
float avr;
char s1[21]; /* 以姓名和学号最长长度+1为准 */
printf("------------------\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
printf("3.按成绩查询\n");
printf("4.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
scanf("%d",&item);
flag=0;
switch(item)
{
case 1:
printf("请输入要查询的学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[order[i]].code,s1)==0)
{ flag=1;
printf("该学生学号、姓名和 %d 门课成绩及平均成绩为:\n",M);
printf("%s %s ",stu[order[i]].code,stu[order[i]].name);
for(j=0;j<M;j++)
printf("%-4d",stu[order[i]].mark[j]);
printf(" %.2f",stu[order[i]].average);
printf("\n");
}
if(flag==0)
printf("该学号不存在!\n"); break;

case 2:
printf("请输入要查询的学生的姓名:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[order[i]].name,s1)==0)
{ flag=1;
printf("该学生学号、姓名和 %d 门课成绩及平均成绩为:\n",M);
printf("%s %s ",stu[order[i]].code,stu[order[i]].name);
for(j=0;j<M;j++)
printf("%-4d",stu[order[i]].mark[j]);
printf(" %.2f",stu[order[i]].average);
printf("\n");
}
if(flag==0)
printf("该姓名不存在!\n"); break;

case 3:
printf("请输入要查询的学生的成绩:\n");
scanf("%f",&avr);
for(i=0;i<n;i++)
if(stu[order[i]].average<avr)
{ flag=1;
printf("该学生学号、姓名和 %d 门课成绩及平均成绩为:\n",M);
printf("%s %s ",stu[order[i]].code,stu[order[i]].name);
for(j=0;j<M;j++)
printf("%-4d",stu[order[i]].mark[j]);
printf(" %.2f",stu[order[i]].average);
printf("\n");
}
if(flag==0)
printf("低于该平均成绩的学生不存在!\n"); break;

case 4:return;

default:printf("请在1-4之间选择\n");
}
}
}

void sort() /*选择排序*/
{ int i,j,t,sum;
for(i=0;i<n;i++)
{ sum=0;
for(j=0;j<M;j++)
sum+=stu[order[i]].mark[j];
stu[order[i]].average=sum/3.0;
}
for(i=0;i<n-1;i++)/*共扫视n-1遍*/
for(j=i+1;j<n;j++)
if(stu[order[i]].average<stu[order[j]].average)
{/*交换名次*/
t=order[i];
order[i]=order[j];
order[j]=t;
}
printf("学生成绩按分数从高到低排列为:\n");
for(i=0;i<n;i++)
{ printf("%-17s %-17s ",stu[order[i]].code,stu[order[i]].name);
for(j=0;j<M;j++)
printf("%-4d",stu[order[i]].mark[j]);
printf(" %.2f\n",stu[order[i]].average);
}
}

void insert()
{ int i=n,j,flag;
printf("请输入待增加的学生数:\n");
scanf("%d",&m);
do
{ flag=1;
while(flag)
{ flag=0;
printf("请输入第 %d 个学生的学号:\n",i+1);
scanf("%s",stu[i].code);
for(j=0;j<i;j++)
if(strcmp(stu[i].code,stu[j].code)==0)
{ printf("已有该学号,请检查后重新录入!\n");
flag=1;
break; /*如有重复立即退出该层循环,提高判断速度*/
}
}
printf("请输入第 %d 个学生的姓名:\n",i+1);
scanf("%s",stu[i].name);
printf("请输入%d门课程的成绩:\n",M);
for(j=0;j<M;j++)
{ printf("course %d:",j+1);
scanf("%d",&stu[i].mark[j]);
}
if(flag==0)
{ order[i]=i;
i++;
}
}while(i<n+m);
n+=m;
printf("录入完毕!\n\n");
}

void del()
{ int i,j,k,flag=0;
char s1[CODELEN+1];
printf("请输入要删除学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[order[i]].code,s1)==0)
{ flag=1;
for(j=i;j<n-1;j++)
stu[order[j]]=stu[order[j+1]];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{ printf("删除成功,显示结果请选择菜单6\n");
n--;
}
}

void display()
{ int i,j;
printf("所有学生学号、姓名和成绩为:\n");
for(i=0;i<n;i++)
{
printf("%-17s%-17s ",stu[order[i]].code,stu[order[i]].name);
for(j=0;j<M;j++)
printf("%-4d",stu[order[i]].mark[j]);
printf(" %.2f",stu[order[i]].average);
printf("\n");
}
}

void save()
{ int i,j,k,flag=0;
FILE *fp;
fp=fopen("student.dat","w");
for(i=0;i<n;i++)
{ fprintf(fp,"%-17s%-17s ",stu[order[i]].code,stu[order[i]].name);
for(j=0;j<M;j++)
fprintf(fp,"%-4d",stu[order[i]].mark[j]);
fprintf(fp," %.2f",stu[order[i]].average);
fprintf(fp,"\n");
}
fclose(fp);
}

void menu()/* 界面 */
{ int num;
printf(" \n\n简易学生信息管理系统\n\n");
printf("*****系统功能菜单*****\n");
printf("----------------------\n");
printf("1.读入学生信息\n");
printf("2.查询学生信息\n");
printf("3.按成绩排序\n");
printf("4.增加学生信息\n");
printf("5.按学号删除信息\n");
printf("6.显示当前信息\n");
printf("7.保存当前学生信息\n");
printf("8.退出系统\n");
printf("----------------------\n");
printf("请选择菜单编号:");
scanf("%d",&num);
switch(num)
{
case 1:readfile();break;/*在主函数中调用子函数时,子函数不要带上类型,这和声明子函数不同*/
case 2:seek();break;
case 3:sort();break;
case 4:insert();break;
case 5:del();break;
case 6:display();break;
case 7:save();break;
case 8:k=0;break;
default:printf("请在1-8之间选择\n");
}
}

班级档案c语言程序提供

//****************************************************************************
//**** 说明:密码所在的文件位于c盘,文件名为1.txt。
//**** 学生基本信息最好保存在C盘,文件名为student.txt。
//****************************************************************************
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

#define N 3
struct student
{
char name[10];
char no[10];
char sex;
int age;
char bnote[100];
};
void print(bool menu)//打印基本信息
{
if (!menu)
{
printf("学生基本信息录入 ,press 1\n");
}
else
{
printf("学生基本信息显示 ,press 2\n");
printf("学生基本信息保存 ,press 3\n");
printf("学生基本信息删除 ,press 4\n");
printf("学生基本信息修改 ,press 5\n");
printf("学生基本信息查询 ,press 6\n");
}
printf("退出学生信息系统 ,press 7\n");
}

bool Check(char pas[6])//密码验证
{
FILE *fp;
char ch;
char a[7]={" "};
int i = 0;
if ((fp=fopen("c:\\1.txt","r"))==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
ch=fgetc(fp);
while (ch!=EOF&&i<6)
{
a[i] = ch;
ch=fgetc(fp);
i++;
}
a[6] = '\0';
if (!strcmp(pas,a))
{
return true;
}
else
{
printf("密码错误\n");
return false;
}
fclose(fp);
}

void GetInfo(struct student *arr,int n)//学生基本信息录入
{

for (int i = 0;i<n;i++)
{
printf("输入学生的基本信息:name no sex age bnote\n");
scanf("%s %s %c %d %s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
}
}
void Display(struct student* arr,int n)//学生基本信息显示
{
printf("学生信息: Name NO Sex age Note\n");
for (int i = 0;i<n;i++)
{
printf("%15s%15s%15c%15d%15s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
}
}

void Save(struct student* arr,int n)//学生基本信息保存,保存在c:\\student.txt
{
FILE * fp;
fp= fopen("c:\\student.txt","w+");
if (fp == NULL)
{
printf("文件不存在!\n");
exit(0);
}

fwrite(arr,sizeof(struct student)*n,n,fp);
fclose(fp);
}

void Modfiy(struct student* arr,int n)//学生基本信息修改
{
char number[10];
bool flag=false;
char pass[6];
printf("请输入密码:\n");
scanf("%s",pass);
if (Check(pass))
{
printf("修改学生信息:\n");
printf("请输入学号:\n");
scanf("%s",number);
for (int i =0;i<n;i++)
{
if (!strcmp(number,arr[i].no))
{
printf("infor: name no sex age note\n");
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
printf("please input information:\n");
scanf("%s%s%c%d%s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
Save(arr,n);
flag = true;
}
}
if (flag == false)
{
printf("该学生不存在!:\n");
}
}

}

void Delete(struct student* arr,int n)//学生基本信息删除
{
char number[10];
bool flag=false;
printf("Delete information:\n");
printf("please input the no:\n");
scanf("%s",number);
for (int i =0;i<n;i++)
{
if (!strcmp(number,arr[i].no))
{
strcpy(arr[i].name," ");
strcpy(arr[i].no," ");
strcpy(arr[i].bnote," ");

arr[i].sex = ' ';
arr[i].age = 0;
Save(arr,n);
flag = true;
}
}
if (flag == true)
{
printf("该学生不存在!:\n");
}
}

void Search(struct student* arr,int n)//学生基本信息查询
{
int temp,i;
bool flag=false;
printf("---------------通过学号查询,press 1-------------\n");
printf("---------------通过姓名查询,press 2-----------\n");
printf("---------------通过性别查询,press 3------------\n");
printf("---------------通过年龄查询,press 4------------\n");
printf("---------------退出,press 5 ------------\n");
scanf("%d",&temp);
switch (temp)
{
case 1://按照学号查询
{
char num[10];
printf("请输入学号:\n");
scanf("%s",num);
for ( i =0;i<n;i++)
{
if (!strcmp(num,arr[i].no))
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.\n");
}
}
break;
case 2://按照名字查询
{
char num[10];
printf("please input name:\n");
scanf("%s",num);
for ( i =0;i<n;i++)
{
if (!strcmp(num,arr[i].name))
{
printf("%12s%12s%12c%12d%12s",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.\n");
}
}
break;
case 3://按照性别查询
{
char ch;
printf("请输入性别:\n");
//scanf("%c",&ch);
ch = getch();
for ( i =0;i<n;i++)
{
if (ch == arr[i].sex)
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("t该学生不存在.\n");
}
}
break;
case 4://按照年龄查询
{
char num_age;
printf("请输入年龄:\n");
scanf("%d",&num_age);
for ( i =0;i<n;i++)
{
if (num_age == arr[i].age)
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("该学生不存在.\n");
}
}
break;
default:
break;
}
}

void main()
{
struct student arr[N];
char ps[6];
bool flag =false;
printf("请输入密码:\n");
scanf("%s",ps);
flag = Check(ps);
if (flag)
{
int select;
print(false);
scanf("%d",&select);
while (0<select && select <7 )
{
switch (select)
{
case 1:
GetInfo(arr,N);
print(true);
break;
case 2:
Display(arr,N);
print(true);
break;
case 3:
Save(arr,N);
print(true);
break;
case 4:
Delete(arr,N);
print(true);
break;
case 5:
Modfiy(arr,N);
print(true);
break;
case 6:
Search(arr,N);
print(true);
break;
default:
break;
}
printf("请选择:\n");
scanf("%d",&select);
}
}
}
//有什么问题9点的时候问我

我有一个和你要求差不多的,没人能你也可以问我要哈,记到采纳,有解释的一个程序


c语言程序设计
试设计一个成绩管理程序,按要求显示输出学生的记录和相关的成绩... 要求假设有一个班级学生n人,期末考试老师要对成绩从高到低列出,并对各科的考试成绩求出其最高分、最低分和平均成绩。试设计一个成绩管理程序,按要求显示输出学生的记录和相关的成绩。 (1)学生成绩的数据来源于程序的结构数组,定义若干个(不少于...

100分!求C语言设计的班费程序急!急!急!
100分!求C语言设计的班费程序急!急!急! 100 C语言中相关知识,设计出班费管理程序。要求如下所述:录入学生信息,每位学生录入的信息有:姓名、学号、性别以及班费缴纳情况。以文件(myfile.txt)的形式保存所有信息。u增加学生... C语言中相关知识,设计出班费管理程序。要求如下所述:录入学生信息,每位学生录入的...

c语言程序设计实验
实验题目:输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:1)排序用一个函数实现。2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均...

c语言程序设计
展开全部 c语言课设帮搞定 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 其他类似问题 2018-11-24 c语言程序设计。。 2016-08-20 c语言程序设计 2018-05-14 c语言程序设计 2012-07-05 C语言程序设计思路 2018-07-05 C语言程序设计问题 2016-03-10 c语言程序设计求助 2016-07-05 c语言...

C语言编写 班级成绩统计分析 要求:1确定学生来自哪些班级,2计算各个班级...
C语言程序设计 班级学生成绩管理系统解决时间:2009-6-26 09:50基本要求1. 初始化成绩表:将原成绩表的信息清空;2. 显示班级学生成绩信息:按要求显示全部或特定学生成绩信息;3. 插入学生成绩:插入一个学生成绩信息;4. 修改学生成绩:先查找要修改成绩的学生学号,如果存在该学生学号,则输入该学生的各科新成绩,替换相...

C语言结构化程序设计的思想和方法原则是什么?
设计思想:结构化程序设计的总体思想是采用模块化结构,自上而下,逐步求精。即首先把一个复杂的大问题分解为若干相对独立的小问题。然后,对每个小问题编写出一个功能上相对独立的程序块(模块)。最后将各程序块进行组装成为一个完整的程序。方法原则:1、只采用三种基本的程序控制结构来编制程序,从而使...

假设有一个班级,n名同学选修了C++语言程序设计
include <IOSTREAM.H>int main(int argc, char* argv[]){int n;cout<<"输入学生人数:"<<endl;cin>>n;int *grade=new int [n];float average=0.0f;for (int i=0;i<n;i++){ cout<<"输入第"<<i+1<<"个学生成绩:"<<endl;cin>>*(grade+i);average+=*(grade+i);}avera...

C语言程序设计,高手们帮帮忙
1.用C语言实现系统;2.利用数组或结构体实现上述题目的数据结构设计;3... 做一个学生信息管理系统建立学生信息数据,包括学号、姓名、性别、三科成绩、出生日期、年龄(必须计算得到)。1. 用C语言实现系统;2. 利用数组或结构体实现上述题目的数据结构设计;3. 系统具有数据的增加、修改、删除、排序、查询、统计和...

C语言程序设计课程设计报告怎么写啊?有谁有样本吗?谢啦!
实 验 报 告 一 课 程 C语言程序设计 实验项目 C程序设计初步 成 绩 专业班级 学 号 指导教师 金发夏 姓 名 序 号 实验日期 一【实验目的】1. 了解使用VC++6.0的开发环境;2. 掌握在该系统上如何编辑、编译、连接和运行一个C程序;3. 通过运行简单的C程序,初步了解...

c语言程序设计题
include<stdio.h> include<conio.h> include<string.h> typedef struct STUDENT { char studentNumber[10];\/*学生学号*\/ char studentName[20];\/*学生姓名*\/ char studentSEX[10];\/*学生性别*\/ char className[20];\/*班级名称*\/ float mark1;\/*第1门成绩*\/ float mark2;\/*第2门成绩*\/ ...

达坂城区19461448213: 怎么用c语言编写班级档案管理系统程序? -
赞姚佐益: 首先问下你自己是不是会C 然后再问下你自己是不是熟练C 接着就是撰写程序文档.把功能实现都写下来 最后开工写代码

达坂城区19461448213: 用C语言设计学生档案管理 -
赞姚佐益: /*用C语言设计学生档案管理 1. 题目描述编写一个程序来管理学生档案,系统能实现以下功能:输入信息:学生信息的输入;修改信息:对学生信息进行添加、删除与修改;查询:能够根据学号...

达坂城区19461448213: c语言课程设计 -- 班级档案管理系统 -
赞姚佐益: //****************************************************************************//**** 说明:密码所在的文件位于c盘,文件名为1.txt.//**** 学生基本信息最好保存在C盘,文件名为student.txt.//****************************************************************************...

达坂城区19461448213: c语言 班级档案管理系统 跪求!急帮帮忙了! -
赞姚佐益: 说明:密码所在的文件位于c盘,文件名为1.txt.//****...

达坂城区19461448213: C语言程序设计 学生档案管理系统 -
赞姚佐益: final String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; final String user = "store"; final String password = "store_password"; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection(url, user, password); return con; }

达坂城区19461448213: c语言程序题目 -
赞姚佐益: #include#include struct list{ int num; int age; struct list *next;};typedef struct list node;typedef node *link;//create listlink create(){ link hea...

达坂城区19461448213: 学生档案管理系统C语言程序设计的功能 -
赞姚佐益: 我自己写的#include <stdio.h>#include<dos.h>#include<stdlib.h> #include<string.h>#include<ctype.h> #include<malloc.h>#define LEN sizeof(STUDENT)typedef struct stu {char num[6]; char name[5]; int score[3]; int sum; float average; int order; ...

达坂城区19461448213: 用C语言编写一个学生信息管理系统
赞姚佐益: #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" jiemian();struct student { char name[50]; char sex[5]; int age; char num[50]; float score1; float score2; float score3; float sum; float ave;}stu[50],del; void gn1() {int...

达坂城区19461448213: c语言_-班级管理系统 -
赞姚佐益: class student { public: char m_strName[10]; // 姓名 int m_nNum; // 学号 float m_dScore[4]; // 成绩 }; void InputScore(student* p, int nNumber) { if(nNumber > 10) { printf("学生已超过10名!\n"); return; } printf("请输入学生学号:"); ...

达坂城区19461448213: c语言学生档案管理系统要全面的,无错的 -
赞姚佐益: #include<stdio.h>#include<stdlib.h>#include<conio.h>#include<dos.h>#include<string.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]....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网