学生成绩管理系统、食堂饭卡系统_食堂饭卡管理系统

其他范文 时间:2020-02-28 10:17:21 收藏本文下载本文
【www.daodoc.com - 其他范文】

学生成绩管理系统、食堂饭卡系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“食堂饭卡管理系统”。

一、实验目的1.进一步熟悉数据类型、运算符、表达式、程序控制结构。2.掌握数组和动态链表的熟练使用.3.掌握指针的使用。4.掌握结构体的使用。5.学会使用函数。

6.以上知识的综合练习完成学生成绩管理系统、食堂饭卡终端系统代码的编写。7.要求实验前打印有代码的实验报告,实验课结束后交有手写修改笔记的实验报告。

二、实验环境:(硬件环境、软件环境)

1.windows 7操作系统

2.VC++编译器

三、实验过程:(内容、操作步骤、结果等)

内容一:学生成绩管理系统

需求:

建立一个学生成绩管理系统,实现对学生成绩的查询管理等操作.1.该系统可以使用管理员身份登录或者普通用户登录。2.只有管理员具有录入学生信息的权利。

3.管理员登录后有”显示全部学生信息”、”查询信息(通过名字或者学号查询)”、”排序成绩(可按 各科成绩或者平均成绩排序)”、”通过输入学生学号修改学生信息”、”删除学生”、”添加学生”、”保存信息”等功能。

4.普通用户登录有”显示全部学生信息”、”根据学号查询学生信息”。“按成绩排序”等功能。

系统代码:

#include #include #include typedef struct Student { int number;

char name[20];

float yuwen;

float shuxue;

float yingyu;

float average;}Student;Student stu[100];int stulength;char filename[50]=“student.txt”;

void savefile(){ FILE *fp;

Student *p;

int i;1

p=stu;

fp=fopen(filename,“wb”);

if(fp==NULL)

{ printf(“打开文件失败!n”);

return;

}

for(i=0;i

{ if(fwrite(p,sizeof(Student),1,fp)!=1)

printf(“保存信息失败!n”);

p++;

}

fclose(fp);} void xianshi(){ Student *p;

int i;

p=stu;

for(i=0;i

{ printf(“学号:%d 姓名:%s 语文成绩:%.2f 数学成绩:%.2f 绩:%.2fn”,p->number,p->name,p->yuwen,p->shuxue,p->yingyu,p->average);

p++;

} }

void addbyhand(){ Student *p;

int i,n;

p=stu;

printf(“请输入需要添加学生的人数:n”);

scanf(“%d”,&n);

for(i=0;i

{ printf(“请输入学号:n”);

scanf(“%d”,&(p->number));

printf(“请输入姓名n”);

scanf(“%s”,p->name);

printf(“请输入语文成绩n”);

scanf(“%f”,&(p->yuwen));

printf(“请输入数学成绩n”);

scanf(“%f”,&(p->shuxue));

printf(“请输入英语成绩n”);

scanf(“%f”,&(p->yingyu));

p->average=(p->yuwen+p->shuxue+p->yingyu)/3;

p++;

}

stulength=n;

savefile();

英语成绩:%.2f 平均成} void addbyfile(){ FILE *fp;

Student *p;

int i=0;

p=stu;

fp=fopen(filename,“rb”);

if(fp==NULL)

{ printf(“打开文件失败n”);

return;

}

while(fread(p,sizeof(Student),1,fp)==1)

{

i++;

p++;

}

fclose(fp);

stulength=i;}

void chaxun(){ int i,xz,n;

char m[20];

Student *p;

p=stu;

printf(“1->按学号查询n2->按姓名查询n”);

scanf(“%d”,&xz);

if(xz==1)

{

printf(“请输入查询的学号n”);

scanf(“%d”,&n);

for(i=0;i

{ if(p->number==n)

{ printf(“学号:%d 姓名:%s 语文成绩:%.2f 数学成绩:%.2f 绩:%.2fn”,p->number,p->name,p->yuwen,p->shuxue,p->yingyu,p->average);

break;

}

p++;

}

if(i==stulength)

printf(“没有找到该学生的信息n”);

}

if(xz==2)

{ printf(“请输入查询的姓名n”);

scanf(“%s”,&m);

for(i=0;i

{ if(strcmp(p->name,m)==0)

{ printf(“学号:%d 姓名:%s 语文成绩:%.2f 数学成绩:%.2f

英语成绩:%.2f 英语成绩:%.2f 平均成平均成绩:%.2fn”,p->number,p->name,p->yuwen,p->shuxue,p->yingyu,p->average);

break;

}

p++;

}

if(i==stulength)

printf(“没有找到该学生的信息n”);

} }

void paixu(){ int i,j,xz;

Student m;

printf(“1->按平均成绩排序n2->按语文成绩排序n3->按数学成绩排序n4->按英语成绩排序n”);

scanf(“%d”,&xz);

if(xz==1)

{ for(i=0;i

for(j=i+1;j

if(stu[i].average

{ m=stu[i];

stu[i]=stu[j];

stu[j]=m;

}

for(i=0;i

printf(“学号:%d 姓名:%s 语文成绩:%.2f 数学成绩:%.2f 英语成绩:%.2f 绩:%.2fn”,stu[i].number,stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].yingyu,stu[i].average);

}

if(xz==2)

{ for(i=0;i

for(j=i+1;j

if(stu[i].yuwen

{ m=stu[i];

stu[i]=stu[j];

stu[j]=m;

}

for(i=0;i

printf(“学号:%d 姓名:%s 语文成绩:%.2f 数学成绩:%.2f 英语成绩:%.2f 绩:%.2fn”,stu[i].number,stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].yingyu,stu[i].average);

}

if(xz==3)

{ for(i=0;i

for(j=i+1;j

if(stu[i].shuxue

{ m=stu[i];

stu[i]=stu[j];

stu[j]=m;

平均成平均成

}

for(i=0;i

printf(“学号:%d 姓名:%s 语文成绩:%.2f 数学成绩:%.2f 英语成绩:%.2f 平均成绩:%.2fn”,stu[i].number,stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].yingyu,stu[i].average);

}

if(xz==4)

{ for(i=0;i

for(j=i+1;j

if(stu[i].yingyu

{ m=stu[i];

stu[i]=stu[j];

stu[j]=m;

}

for(i=0;i

printf(“学号:%d 姓名:%s 语文成绩:%.2f 数学成绩:%.2f 英语成绩:%.2f 绩:%.2fn”,stu[i].number,stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].yingyu,stu[i].average);

} }

void tianjia(){ int i,n;

Student *p;

p=stu+stulength;

printf(“请输入需要添加学生信息的个数n”);

scanf(“%d”,&n);

for(i=stulength;i

{ printf(“请输入学号:n”);

scanf(“%d”,&p->number);

printf(“请输入姓名n”);

scanf(“%s”,p->name);

printf(“请输入语文成绩n”);

scanf(“%f”,&p->yuwen);

printf(“请输入数学成绩n”);

scanf(“%f”,&p->shuxue);

printf(“请输入英语成绩n”);

scanf(“%f”,&p->yingyu);

p->average=(p->yuwen+p->shuxue+p->yingyu)/3;

p++;

}

stulength=stulength+n;

savefile();}

void shanchu(){ Student *p,*q;

int i,n,m=0;

平均成

p=stu;

q=stu;

printf(“请输入要删除学生的学号:n”);

scanf(“%d”,&n);

for(i=0;i

{ if(p->number==n)

{ q=q+1;

m=1;

}

*p=*q;

p++;

q++;

}

if(m==1)

stulength--;

else

printf(“请输入正确的学号!n”);

savefile();}

void xiugai(){ int i,n;

Student *p;

p=stu;

printf(“请输入需要修改的学号:n”);

scanf(“%d”,&n);

for(i=0;i

{ if(p->number==n)

{

printf(“请输入语文成绩n”);

scanf(“%f”,&p->yuwen);

printf(“请输入数学成绩n”);

scanf(“%f”,&p->shuxue);

printf(“请输入英语成绩n”);

scanf(“%f”,&p->yingyu);

p->average=(p->yuwen+p->shuxue+p->yingyu)/3;

break;

}

p++;

}

if(i==stulength)

printf(“请输入正确的学号!n”);

savefile();} void administroter(){ int xz;

while(1)

{ printf(“1->添加n2->删除n3->排序n4->查询n5->显示n6->修改n0->退出n”);

scanf(“%d”,&xz);

switch(xz)

{ case 0:return;

case 1:tianjia();break;

case 2:shanchu();break;

case 3:paixu();break;

case 4:chaxun();break;

case 5:xianshi();break;

case 6:xiugai();break;

}

} }

void student(){ int xz;

while(1)

{ printf(“1->排序n2->查询n3->显示n0->退出n”);

scanf(“%d”,&xz);

switch(xz)

{ case 0:return;

case 1:paixu();break;

case 2:chaxun();break;

case 3:xianshi();break;

}

} }

int main(){ int xz;

addbyfile();

if(stulength==0)

addbyhand();

while(1)

{ printf(“**********欢迎登陆成绩管理系统**********n”);

printf(“1->管理员登陆n2->学生登录n0->退出n”);

scanf(“%d”,&xz);

switch(xz)

{ case 0:return 0;

case 1:administroter();

case 2:student();

}

} } 7

内容二:食堂饭卡终端系统

需求:1.饭卡有编号、姓名、余额、状态四个属性。

2.系统实现:添加饭卡,通过编号查询饭卡余额,通过姓名查询饭卡余额,饭卡充值,消费,挂失饭卡,饭卡解锁(消除挂失恢复正常状态),删除饭等功能。

系统代码:

#include #include #include

typedef struct Fanka {

int kh;

char name[20];float yu_e;char state;

struct Fanka *next;}Fanka;

Fanka *fankahead;int fankalenth;char filename[50]=“E:fanka.txt”;

void savefile(){

FILE *fp;

Fanka *p;int i=0;p=fankahead;fp=fopen(filename,“wb”);

if(fp==NULL){ printf(“打开文件失败!n”);

return;

} while(p!=NULL){ if(fwrite(p,sizeof(Fanka),1,fp)!=1)

printf(“保存信息失败!n”);

p=p->next;

i++;}

fclose(fp);}

void addbyhand(){

Fanka *p,*rear;

int i,n;printf(“请输入需要添加饭卡的个数:n”);

scanf(“%d”,&n);

for(i=0;i

printf(“请输入卡号:n”);

scanf(“%d”,&p->kh);

printf(“请输入姓名:n”);

scanf(“%s”,&p->name);

printf(“请输入初始余额:n”);

scanf(“%f”,&p->yu_e);

p->state='1';

if(i==0)

{ fankahead=p;

rear=p;

}

else

{ rear->next=p;

rear=p;

} }

rear->next=NULL;

fankalenth=n;savefile();}

void addbyfile(){

FILE *fp;

Fanka *p,*rear;int i=0;char c;fp=fopen(filename,“rb”);if(fp==NULL){

printf(“打开文件失败,请先建立文件!n”);

return;} if(fscanf(fp,“%c”,&c)==EOF)

addbyhand();else {

p=(Fanka *)malloc(sizeof(Fanka));

fseek(fp,0,SEEK_SET);

while(fread(p,sizeof(Fanka),1,fp)==1){ i++;

if(i==1)

{

fankahead=p;

rear=p;

}

else

{ rear->next=p;

rear=p;

}

p=(Fanka *)malloc(sizeof(Fanka));}

fclose(fp);

rear->next=NULL;

fankalenth=i;} }

void xianshi(){ Fanka *p;

p=fankahead;

while(p!=NULL)

{

if(p->state=='1')

printf(“%d %s %f 正常n”,p->kh,p->name,p->yu_e);

else

printf(“%d %s %f 挂失n”,p->kh,p->name,p->yu_e);

p=p->next;

} }

void chaxun(){

int n,m;

char na[20];

Fanka *p;p=fankahead;printf(“请选择查询的方式:

1、按卡号查询。

2、按姓名查询n”);

scanf(“%d”,&n);if(n==1)

{

printf(“请输入查询的卡号n”);

scanf(“%d”,&m);

while(p!=NULL)

{ if(p->kh==m)

{ if(p->state=='1')

printf(“%d %s %f 正常n”,p->kh,p->name,p->yu_e);

else

printf(“%d %s %f 挂失n”,p->kh,p->name,p->yu_e);

break;

}

p=p->next;

}

if(p==NULL)

printf(“没有找到该卡号的信息!n”);

}

if(n==2){ printf(“请输入查询的姓名n”);

scanf(“%s”,na);

while(p!=NULL)

{ if(p->name==na)

{

if(p->state=='1')

printf(“%d %s %f 正常n”,p->kh,p->name,p->yu_e);

else

printf(“%d %s %f 挂失n”,p->kh,p->name,p->yu_e);

break;

}

p=p->next;

}

if(p==NULL)

printf(“没有找到该卡号的信息!n”);} return;}

void guashi(){ int n;

Fanka *p;

p=fankahead;

printf(“请输入挂失的卡号!n”);

scanf(“%d”,&n);

while(p!=NULL)

{ if(p->kh==n)

{ p->state='0';

break;

}

p=p->next;

}

if(p==NULL)

printf(“此卡无效,请输入正确的卡号!n”);

savefile();}

void jiesuo(){ int n;

Fanka *p;

p=fankahead;

printf(“请输入解锁的卡号!n”);

scanf(“%d”,&n);

while(p!=NULL)

{ if(p->kh==n)

{ p->state='1';

break;

}

p=p->next;

}

if(p==NULL)

printf(“此卡无效,请输入正确的卡号!n”);

savefile();}

void chongzhi(){ int n;

float m;

Fanka *p;

p=fankahead;

printf(“请输入充值的卡号!n”);

scanf(“%d”,&n);

while(p!=NULL)

{ if(p->kh==n&&p->state=='1')

{ printf(“请输入充值的金额:n”);

scanf(“%f”,&m);

printf(“%d %s %f 正常n”,p->kh,p->name,p->yu_e+m);

break;

}

if(p->kh==n&&p->state=='0')

{

printf(“此卡已挂失,请解锁后再充值!n”);break;

}

p=p->next;

}

if(p==NULL)

printf(“此卡无效,请输入真确的卡号n”);

savefile();}

void xiaofei(){ int n;

float m;

Fanka *p;

p=fankahead;

printf(“请输入消费的卡号!n”);

scanf(“%d”,&n);

while(p!=NULL)

{ if(p->kh==n&&p->state=='1')

{ printf(“请输入消费的金额:n”);

scanf(“%f”,&m);

if(p->yu_e>m)

{

p->yu_e=p->yu_e-m;

printf(“%d %s %f 正常n”,p->kh,p->name,p->yu_e);

break;

}

else

{ printf(“余额不足,请充值后再消费!n”);

break;

}

}

if(p->kh==n&&p->state=='0')

{

printf(“此卡已挂失,请解锁后再消费!n”);break;

}

p=p->next;

}

if(p==NULL)

printf(“此卡无效,请输入正确的卡号n”);

savefile();}

void shanchu(){ int n,i=0;

Fanka *p;

p=fankahead;

printf(“请输入删除饭卡的卡号n”);

scanf(“%d”,&n);

if(fankahead->kh==n)

fankahead=p->next;

while(p->next!=NULL)

{ if(p->next->kh!=n)

p=p->next;

else

p->next=p->next->next;

}

fankalenth--;

savefile();} void tianjia(){

Fanka *p,*q;

p=fankahead;

while(p->next!=NULL){p=p->next;}

q=(Fanka *)malloc(sizeof(Fanka));printf(“请输入卡号:n”);

scanf(“%d”,&q->kh);

printf(“请输入姓名:n”);

scanf(“%s”,&q->name);

printf(“请输入初始余额:n”);

scanf(“%f”,&q->yu_e);

q->state='1';

p->next=q;

q->next=NULL;

savefile();

fankalenth++;} int studentlogin(){ int xz;while(1){ system(“CLS”);

printf(“1->显示全部饭卡信息n2->查询饭卡信息n3->饭卡挂失n4->消费n0->退出n”);

scanf(“%d”,&xz);

switch(xz){ case 0:return 0;

case 1:xianshi();break;

case 2:chaxun();break;

case 3:guashi();break;

case 4:xiaofei();break;}

system(“PAUSE”);} return 0;}

int administratorlogin(){ int xz;

while(1)

{ system(“CLS”);printf(“1->显示n2->添加饭卡n3->饭卡解锁n4->饭卡充值n5->删除饭卡n0->退出n”);scanf(“%d”,&xz);

switch(xz){ case 0:return 0;

case 1:xianshi();break;

case 2:tianjia();break;

case 3:jiesuo();break;

case 4:chongzhi();break;

case 5:shanchu();break;}

system(“PAUSE”);}

return 0;

} int main(){

int xz;

addbyfile();

while(1)

{ system(“CLS”);

printf(“************欢迎登陆食堂饭卡管理系统************n”);

printf(“请选择用户登陆身份:n1->管理员登陆n2->学生登陆n0->退出n”);

scanf(“%d”,&xz);

switch(xz)

{ case 0:return 0;

case 1:administratorlogin();break;

case 2:studentlogin();break;

}

system(“PAUSE”);

} return 0;}

C语言食堂饭卡管理系统

食堂饭卡管理系统3人 基本功能:(1)发卡:学生员工持有效证件到管理处缴押金,办理就餐卡,操作人员将相关内容写入卡中,并自动产生编号,持卡人员再预交一定金额款项即可进行就餐。 (2) 存......

学生成绩管理系统

//*学生成绩管理系统*//#include#define N 3struct student{int no;char name[20];float english;float computer;float math;float average;};void getcla(struct student......

单位食堂饭卡申请报告与饭卡管理系统

篇一:xx有限公司就餐卡申请表XX 有限公司就餐卡申请表编号:000018填表日期: 年 月 日1、就餐卡发放分类:属集团员工的发放临时就餐卡,其余外协单位一律发放白卡。2、申请表:信......

07学生成绩管理系统

07:学生成绩管理系统【项目背景】随着多媒体技术和网络通信技术的发展,基于Internet的学生成绩管理系统作为一种全新的教学手段,越来越受到人们的关注。学生成绩管理系统是指利......

毕业设计 学生成绩管理系统

目录目 录摘要 .......................................................................................错误!未定义书签。 Abstract .......................................

下载学生成绩管理系统、食堂饭卡系统word格式文档
下载学生成绩管理系统、食堂饭卡系统.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文