c语言学生c语言成绩管理系统统

学生成绩管理系统(c语言源代码)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
15页1下载券9页1下载券9页1下载券3页¥2.0012页2下载券 5页免费13页1下载券15页4下载券10页1下载券18页2下载券
喜欢此文档的还喜欢13页1下载券14页1下载券13页免费13页免费30页免费
学生成绩管理系统(c语言源代码)|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:18.61KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢C语言学生成绩管理系统_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
13页3下载券33页1下载券37页免费3页¥2.0021页免费 5页免费27页1下载券15页2下载券10页1下载券12页免费
喜欢此文档的还喜欢13页免费13页免费30页免费14页1下载券13页1下载券
C语言学生成绩管理系统|用​C​语​言​做​的​学​生​成​绩​管​理​系​统​,​具​有​更​新​、​添​加​、​查​找​、​删​除​、​排​序​、​写​入​文​件​等​功​能​,​实​验​报​告​内​容​详​尽​,​包​含​源​程​序​代​码​及​运​行​过​程​截​图
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢c语言学生成绩管理系统_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
37页免费21页免费10页免费3页¥2.0013页免费 2页免费12页免费29页2下载券9页1下载券13页1下载券
喜欢此文档的还喜欢13页免费30页免费37页免费13页免费20页2下载券
c语言学生成绩管理系统|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢cxuesheng c语言编写的学生成绩管理系统,属于课程设计。 Other systems 其他 182万源代码下载-
&文件名称: cxuesheng
& & & & &&]
&&所属分类:
&&开发工具: C-C++
&&文件大小: 18 KB
&&上传时间:
&&下载次数: 12
&&提 供 者:
&详细说明:c语言编写的学生成绩管理系统,属于课程设计。
文件列表(日期:)(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&相关搜索:
&输入关键字,在本站182万海量源码库中尽情搜索:
&[] - C语言编写的贪吃蛇游戏的程序,属于课程设计的内容
&[] - 登录的用户和密码均为KQ,考勤管理系统,欢迎一起研究
&[] - C语言课程设计_学生成绩管理系统 非常的详细 调试很正常
&[] - 实现单片机上播放音乐,各个音阶所对应的二进制码与实现方法。
&[] - C语言学生成绩管理系统 c语言学生成绩管理系统
&[] - 1.学生成绩管理系统的设计与实现
要求有以下文档:
(1)概要设计(电子文档)
(2)详细设计(电子文档)
(3)课程设计的报告(打印文档)
选题,设计,实现,测试,参考文献
主要包括以下功能就可以了
(1)用户管理
(2)成绩的管理
查询成绩(按学号, 按班级
&[] - 简单的学生信息管理系统,基本包含学生信息管理机制的调度。
&[] - 《C语言程序设计》课程的课程设计,学生成绩管理系统,包括实验报告
&[] - C语言编写的课程设计是一个师生管理系统的,很具体,还有代码。更生动,还有报告。
&[] - C语言课程设计,学生资料管理系统,绝对完整,用C语言编写学生成绩管理系统 设计程序,要求实现下面功能:&br/& (1)可以输入学生成绩(学号、姓名、性别、课程成绩(多门课程),总分)&br/& (2)可以查看所有学生成绩。&br/& (3)可以插入、删除某个学生的成绩。&br/& (4)根据学号查找某个学生成绩。&br/& (5)对所有学生成绩进行排序(按课程
用C语言编写学生成绩管理系统 设计程序,要求实现下面功能: (1)可以输入学生成绩(学号、姓名、性别、课程成绩(多门课程),总分) (2)可以查看所有学生成绩。 (3)可以插入、删除某个学生的成绩。 (4)根据学号查找某个学生成绩。 (5)对所有学生成绩进行排序(按课程 10
补充:尽量详细点,谢谢!
补充:很急的,大家多帮忙啊!
不区分大小写匿名
#include&stdio.h&&#include&string.h&#define N 500//结构体数组的大小#define JINNIAN &2009//使用时的年份int leve=0,out=0;//leve记录录入函数中第几位学生//功能函数的声明void caidan();/*功能浏览表,供使用者选择功能*/void luru();/*学生信息的录入*/void liulan();/*输出全部学生的信息*/void chaxun();/*学生信息的查询*/void paixu();/*学生信息排序*/void xiugai();/*学生信息修改*/void shanchu();/*学生信息的删除*//*结构体数组存储学生信息*/struct date
}; &struct student& & & & &{& & & & & & int && & & & & & char name[20];& & & & & & char sex[2];& & & & & && & & & & & & & & & & & char adress[50];& & & & & & char cellphone[20];& & & & & & char Email[50];}stu[N];/*主函数包含一个菜单函数*/void main(){ caidan();}void caidan(){ & & int x=0; printf("\n\n\n\n\n\n\n\n\t\t\t 欢迎使用学生信息管理系统!"); printf("\n\n\t\t\t\t\t\t计科01班肖伟军\n\n\n\n\n\n\n"); printf("\t\t*****************************************\n"); printf("\t\t\t1.录入学生信息\t2.浏览学生信息\n"); printf("\t\t\t3.查询学生信息\t4.学生信息排序\n"); printf("\t\t\t5.学生信息修改\t6.学生信息删除\n"); printf("\t\t*****************************************\n");& & printf("\n\t退出请输入:88\n\n\n");//输入88程序执行完毕 printf("请输入功能序号:\n"); scanf("%d",&x); & switch(x)/*每个case后均有菜单函数,功能结束后返回功能表,按88结束*/ {& & & & & & & & case 1:luru();caidan();
& & & & & &case 2:liulan(stu);caidan();
& & & & & &case 3:chaxun();caidan();& & & & & & & & case 4:paixu(stu);caidan();
& & & & & &case 5:xiugai(stu);caidan();
& & & & & &case 6:shanchu(stu);caidan();& & & & & & & & case 88:
default:printf("请输入正确的序号!");caidan() ;& & }} &void luru(){ & & &&& & & & &int q,k=1,r=1,d,b=0;/*r用来辨别信息输入是否错误,输入错误则r赋值1,没有错误则r赋值0,循环终止。初始值赋为1因为最后一次若错误则r=0*/& & & & /*b记录@的个数*/ & & &&
for(;leve&N && k==1;leve++)/*最外层循环,循环一次实现一个学生信息的录入,k控制是否继续录入下一个学生的信息*/& & & & &{& & & & & & printf("请你输入第%d个学生的信息!\n",leve+1);& & & & & & for(q=0;r==1;q++)/*该层循环控制学号的输入,直到输入正确循环终止,下同*/
& &printf("请输入学生学号(学号不为0):");
& &scanf("%d",&stu[leve].number);& & & & & & & & if(stu[leve].number==0)
{ r=1;printf("您输入的学号有误请重输!\n");}//学号的输入不为0
else r=0;//若输入正确将r赋为0终止循环,下同
};r=1;//接着赋值为1开始下次循环,下同& & & & & & getchar();
printf("请输入学生姓名:");
scanf("%s",stu[leve].name);& & & & & & getchar();
for(q=0;r==1;q++)
printf("请输入学生性别:");
& &scanf("%s",stu[leve].sex);& & & & & & & & if(strcmp("男",stu[leve].sex)==0) /*性别只能是男或者女,判断字符是否相等*/
& & & r=0;
else if(strcmp("女",stu[leve].sex)==0)
printf("性别输入错误!\n");
& & & & & & for(q=0;r==1;q++)//年龄范围在14~30之间
printf("请输入学生年龄:");
& & & & & &scanf("%d",&stu[leve].age);& & & & & & & & if(stu[leve].age&30||stu[leve].age&14)
{ r=1;printf("系统鉴定您输入的年龄可能有误请重输!\n");}
& &else r=0;
for(q=0;r==1;q++)//生日
& printf("请输入学生生日:\n月:");
& scanf("%d",&stu[leve].birthday.month);
& if(stu[leve].birthday.month&12||stu[leve].birthday.month&1)//月份限制为1~12月
{r=1;printf("系统鉴定您输入的月份有误请重输!\n");}
&else r=0;
if(stu[leve].birthday.month==2) //若月份为二月日期为1~28
for(q=0;r==1;q++)
& & printf("日:");& & & & & & & & &scanf("%d",&stu[leve].birthday.day);
& if(stu[leve].birthday.day&29||stu[leve].birthday.day&1)
& r=1;printf("系统鉴定您输入的日期有误请重输!\n");}
& & & else r=0;
else if(stu[leve].birthday.month==1||stu[leve].birthday.month==3||stu[leve].birthday.month==5||stu[leve].birthday.month==7||stu[leve].birthday.month==8||stu[leve].birthday.month==10||stu[leve].birthday.month==12) &/*月份为1.3.5.7.8.10.12则日期为1~31*/
for(q=0;r==1;q++)
printf("日:");& & & & & & scanf("%d",&stu[leve].birthday.day);
if(stu[leve].birthday.day&31||stu[leve].birthday.day&1)
r=1;printf("系统鉴定您输入的日期有误请重输!\n");}
& & & else r=0;
}& & & & & &else if(stu[leve].birthday.month==4||stu[leve].birthday.month==6||stu[leve].birthday.month==9||stu[leve].birthday.month==11) & //月份为4.6.9.11则日期为1~30.& & & & & & for(q=0;r==1;q++)
printf("日:");& & & & & & scanf("%d",&stu[leve].birthday.day);
if(stu[leve].birthday.day&30||stu[leve].birthday.day&1)
& r=1;printf("系统鉴定您输入的日期有误请重输!\n");}
& & & else r=0;
}& & & & & & r=1;
for(q=0;r==1;q++)
& & printf("年:");
& & & & scanf("%d",&stu[leve].birthday.year);
if(stu[leve].birthday.year&(JINNIAN-14)||stu[leve].birthday.year&(JINNIAN-30)) /*根据入学年龄常识将年份限定在当前年份的前三十年和前二十年间*/
& r=1;printf("系统鉴定您输入的年份有误请重输!\n");}
getchar();
printf("请输入学生家庭住址:");
& &scanf("%s",stu[leve].adress);& & & & & & getchar();
for(q=0;r==1;q++)
& & printf("请输入学生手机号码:");
& &scanf("%s",stu[leve].cellphone);
if(strlen(stu[leve].cellphone)!=11)//手机号码长度限定为11位
& r=1;printf("系统鉴定您输入的手机号码有误请重输!\n");}
& &getchar();& & & & & & for(q=0;b==0&&r==1;q++)
printf("请输入学生电子邮件:");
& &scanf("%s",stu[leve].Email);
for(d=0;d&=50;d++)
if(stu[leve].Email[d]=='@')//邮箱格式判定
b++;/*若出现@则b自增一次*/
}& & & & & & if(b!=1)/*b不为1,则说明格式错误*/
b=0;r=1;printf("Email格式有误请重输!\n");
}& & & & & & if(b==1)/*b为1,则说明@只有一个,输入正确*/
};r=1;b=0;
& &printf("要继续吗?\n1.是 &2.退出\n");
scanf("%d",&k);
}}void liulan(struct student stu[N]){
printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱");/*顶行输出属性*/& & printf("\n");& & & & for(i=0;i&=N && stu[i].number!=0;i++) {
printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);& & & & & & printf("\n"); }}void chaxun(){ int y,z,i,word=1,nianling,geshu=0;/*y为查询菜单中的变量,z为要查询的学号,geshu记录查询结果中年龄相同或性别相同的学生个数,word用来判断是否有要查询的学生信息*/ char xingming[20],xingbie[10]; printf("\t\t*******************************\n"); printf("\t\t1.按学号查询 &2.按姓名查询\n\t\t3.按性别查询 &4.按年龄查询\n"); printf("\t\t*******************************\n"); printf("请输入功能序号:"); scanf("%d",&y); switch(y)
& & & case 1:printf("请输入要查询的学号:");&
& & & & &scanf("%d",&z);& & & & & & & & &&
&printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n");
& & & & & & &for(i=0;i&N;i++)
& & & & & & & if(z==stu[i].number)//由学号来寻找目标学生
& & & & & & & & & &printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);
& & & &printf("\n");
word=0;/*若有要查询的学生则word赋值0 & 下同*/
&if(word)/*判断word的值 &下同*/
&printf("没有您查询的学生信息!\n");
& case 2:printf("请输入要查询的姓名:");&
& & &scanf("%s",xingming);
& & &printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n");
&for(i=0;i&N;i++)
& & & if(strcmp(xingming,stu[i].name)==0)//姓名字符比较
& & & & & & & &printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);
& & & &printf("\n");
&printf("没有您查询的学生信息!\n");
&& & & & & & case 3:printf("请输入要查询的性别:"); &
& & & & & & & scanf("%s",xingbie);
& & & printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n");
& for(i=0;i&N;i++)/*将结构体中信息逐一比较*/
& & & & if(strcmp(xingbie,stu[i].sex)==0)
& & & & & & & & & &printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);
& & & &printf("\n");
& & & &geshu++;/*若相等个数自增 &下同*/
& if(word==0)
& printf("%s生的个数为:%d",xingbie,geshu);/*输出查询性别的学生个数 &下同*/
& if(word)
&printf("没有您查询的学生信息!\n");
& geshu=0;
& case 4:printf("请输入要查询的年龄:");&
& & & &scanf("%d",&nianling);& & & & & & & & & & printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n");
& & & & & & & &for(i=0;i&N;i++)
& & & & & & & & if(nianling==stu[i].age)
& & & & & & & & & & & printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);
& & & & & & & & & & & & & printf("\n");
& & & & & & & & & & & geshu++;
if(word==0)& & & & & & & & & & & & &printf("%d岁的学生个数为:%d",nianling,geshu);//输出所查询学生的个数
&printf("没有您查询的学生信息!\n");
default :printf("请输入正确的序号!\n");
//有字数限制,这里补充回答void paixu(struct student stu[N]){& & int y,i,j,t,age1,year1,day1,month1,k=0;/*k记录了最后一个学生在结构体数组中的位置,冒泡排序时只比较有有价值数据*/ char name1[20],sex1[2],adress1[50],cellphone1[20],Email1[50];//定义中间变量& & printf("\t\t*******************************\n"); printf("\t\t1.按学号排序 & &2.按年龄排序\n"); printf("\t\t*******************************\n"); printf("请输入功能序号:"); scanf("%d",&y);& & switch(y) {
& & case 1:/*按学号排序*/& & & & printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n");
for(i=0;i&N&&stu[i].number!=0;i++)/*将学号与它的初始值0比较,若为0循环停止 & 下同*/
k++; /*循环一次k做一次自增 & 下同*/
for(j=0;j&k-1;j++)//冒泡排序法,
for(i=0;i&k-j-1;i++)
&if(stu[i].number&stu[i+1].number)//将结构体中的各个数据一一交换
&t=stu[i].
&stu[i].number=stu[i+1].
&stu[i+1].number=t;
&strcpy(name1,stu[i].name);
&strcpy(stu[i].name,stu[i+1].name);
&strcpy(stu[i+1].name,name1);
&strcpy(sex1,stu[i].sex);
&strcpy(stu[i].sex,stu[i+1].sex);
&strcpy(stu[i+1].sex,sex1);
&age1=stu[i].
&stu[i].age=stu[i+1].& & & & & & & & & & & stu[i+1].age=age1;& & & & & & & & & & & month1=stu[i].birthday.
&stu[i].birthday.month=stu[i+1].birthday.
&stu[i+1].birthday.month=month1;
&day1=stu[i].birthday.
& & &stu[i].birthday.day=stu[i+1].birthday.
& & &stu[i+1].birthday.day=day1;
&year1=stu[i].birthday.
&stu[i].birthday.year=stu[i+1].birthday.
&stu[i+1].birthday.year=year1;& & & & & & & & & & & strcpy(adress1,stu[i].adress);
&strcpy(stu[i].adress,stu[i+1].adress);
&strcpy(stu[i+1].adress,adress1);
&strcpy(cellphone1,stu[i].cellphone);
& & & & &strcpy(stu[i].cellphone,stu[i+1].cellphone);
& & &strcpy(stu[i+1].cellphone,cellphone1);
&strcpy(Email1,stu[i].Email);
&strcpy(stu[i].Email,stu[i+1].Email);
&strcpy(stu[i+1].Email,Email1);&
for(i=0;i&=N && stu[i].number!=0;i++)//输出
printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);& & & & & & printf("\n");
}; case 2:/*按年龄排序*/
printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n");
for(i=0,k=0;i&N&&stu[i].number!=0;i++)
};& & & & for(j=0;j&k-1;j++)
for(i=0;i&k-j-1;i++)
&if(stu[i].age&stu[i+1].age)
&t=stu[i].
&stu[i].number=stu[i+1].
&stu[i+1].number=t;
&strcpy(name1,stu[i].name);
&strcpy(stu[i].name,stu[i+1].name);
&strcpy(stu[i+1].name,name1);
&strcpy(sex1,stu[i].sex);
&strcpy(stu[i].sex,stu[i+1].sex);
&strcpy(stu[i+1].sex,sex1);
&age1=stu[i].
&stu[i].age=stu[i+1].& & & & & & & & & & & stu[i+1].age=age1;& & & & & & & & & & & month1=stu[i].birthday.
&stu[i].birthday.month=stu[i+1].birthday.
&stu[i+1].birthday.month=month1;
&day1=stu[i].birthday.
& & &stu[i].birthday.day=stu[i+1].birthday.
& & &stu[i+1].birthday.day=day1;
&year1=stu[i].birthday.
&stu[i].birthday.year=stu[i+1].birthday.
&stu[i+1].birthday.year=year1;& & & & & & & & & & & strcpy(adress1,stu[i].adress);
&strcpy(stu[i].adress,stu[i+1].adress);
&strcpy(stu[i+1].adress,adress1);
&strcpy(cellphone1,stu[i].cellphone);
& & & & &strcpy(stu[i].cellphone,stu[i+1].cellphone);
& & &strcpy(stu[i+1].cellphone,cellphone1);
&strcpy(Email1,stu[i].Email);
&strcpy(stu[i].Email,stu[i+1].Email);
&strcpy(stu[i+1].Email,Email1);
for(i=0;i&=N && stu[i].number!=0;i++)/*输出排序后的学生信息浏览*/
printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);& & & & & & printf("\n");
};& & & & default :printf("请输入正确的序号!\n");& } &}void xiugai(struct student stu[N]){ int z,i,word=1;int q,k=1,r=1,d,b=0;/*k判断使用者是否要录入目前没有的学生信息*/ printf("请输入要修改学生的学号:\n"); scanf("%d",&z);& & printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n"); for(i=0;i&N;i++)
& if(z==stu[i].number)/*详细见查询函数*/
& &printf("您要修改的学生是:\n"); & & & &
& & & &printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);
& &printf("\n");
& &word=0; /*若有该学号word赋值0*/
printf("确认请按:1\n按任意键返回\n");/*提示确认是否修改*/& & & & & & & & scanf("%d",&k);
& { &&& & & & & & & & for(q=0;r==1;q++)/*详见录入函数*/
& &printf("请输入学生学号(学号不为0):");
& &scanf("%d",&stu[i].number);& & & & & & & & if(stu[i].number==0)//学号的输入不为0
{ r=1;printf("您输入的学号有误请重输!\n");}
else r=0;//若输入正确将r赋为0终止循环,下同
};r=1;//接着赋值为1开始下次循环,下同& & & & & & & & getchar();
printf("请输入学生姓名:");
& &scanf("%s",stu[i].name);& & & & & & & & &getchar();
& &for(q=0;r==1;q++)
printf("请输入学生性别:");
& &scanf("%s",stu[i].sex);& & & & & & & & if(strcmp("男",stu[i].sex)==0) //性别只能是男或者女
& & & r=0;
else if(strcmp("女",stu[i].sex)==0)
printf("性别输入错误!\n");
& & & & & & & & for(q=0;r==1;q++)//年龄范围在14~30之间
printf("请输入学生年龄:");
& & & & & &scanf("%d",&stu[i].age);& & & & & & & & if(stu[i].age&30||stu[i].age&14)
{ r=1;printf("系统鉴定您输入的年龄可能有误请重输!\n");}
& &else r=0;
& &for(q=0;r==1;q++)//生日
& & printf("请输入学生生日:\n月:");
& & scanf("%d",&stu[i].birthday.month);
& & if(stu[i].birthday.month&12||stu[i].birthday.month&1)//月份限制为1~12月
{r=1;printf("系统鉴定您输入的月份有误请重输!\n");}
& & else r=0;
if(stu[i].birthday.month==2) //若月份为二月日期为1~28
for(q=0;r==1;q++)
& & printf("日:");& & & & & & & & &scanf("%d",&stu[i].birthday.day);
& if(stu[i].birthday.day&29||stu[i].birthday.day&1)
& r=1;printf("系统鉴定您输入的日期有误请重输!\n");}
& & & else r=0;
else if(stu[i].birthday.month==1||stu[i].birthday.month==3||stu[i].birthday.month==5||stu[i].birthday.month==7||stu[i].birthday.month==8||stu[i].birthday.month==10||stu[i].birthday.month==12) &/*月份为1.3.5.7.8.10.12则日期为1~31*/& & & & & &
for(q=0;r==1;q++)
printf("日:");& & & & & & scanf("%d",&stu[i].birthday.day);
if(stu[i].birthday.day&31||stu[i].birthday.day&1)
r=1;printf("系统鉴定您输入的日期有误请重输!\n");}
& & & else r=0;
}& & & & & &else if(stu[i].birthday.month==4||stu[i].birthday.month==6||stu[i].birthday.month==9||stu[i].birthday.month==11) & //月份为4.6.9.11则日期为1~30.& & & & & & for(q=0;r==1;q++)
printf("日:");& & & & & & scanf("%d",&stu[i].birthday.day);
if(stu[i].birthday.day&30||stu[i].birthday.day&1)
& r=1;printf("系统鉴定您输入的日期有误请重输!\n");}
& & & else r=0;
}& & & & & & r=1;
for(q=0;r==1;q++)
& & printf("年:");
& & & & scanf("%d",&stu[i].birthday.year);
if(stu[i].birthday.year&(JINNIAN-14)||stu[i].birthday.year&(JINNIAN-30)) /*根据入学年龄常识将年份限定在当前年份的前三十年和前二十年间*/
& r=1;printf("系统鉴定您输入的年份有误请重输!\n");}
getchar();
printf("请输入学生家庭住址:");
& &scanf("%s",stu[i].adress);& & & & & & getchar();
for(q=0;r==1;q++)
& & printf("请输入学生手机号码:");
& &scanf("%s",stu[i].cellphone);
if(strlen(stu[i].cellphone)!=11)//手机号码长度限定为11位
& r=1;printf("系统鉴定您输入的手机号码有误请重输!\n");}
& &getchar();& & & & & & for(q=0;b==0&&r==1;q++)
printf("请输入学生电子邮件:");
& &scanf("%s",stu[i].Email);
for(d=0;d&=50;d++)
if(stu[i].Email[d]=='@')//邮箱格式判定
}& & & & & & if(b!=1)
b=0;r=1;printf("Email格式有误请重输!\n");
}& & & & & & if(b==1)
};r=1;b=0; }
printf("没有您查询的学生信息!\n需要录入吗?\n1.是 & 2.否\n");/*若没有要修改的学生提示是否录入*/
scanf("%d",&k);
& &luru();&& & & & & & else if(k==2);/*k为二直接结束修改函数*/& & & & & & else& & & & & & printf("输入错误!\n");
}}void shanchu(struct student stu[N]){ int i,s,l,k=1;/*k判断是否有要删除的学生*/ printf("请输入要删除学生的学号:");& & scanf("%d",&s); for(i=0;i&N;i++)
& & & & & & & if(s==stu[i].number)
& &k=0;/*若有该学号k赋值为0*/
& & & & & & & &printf("您要删除的学生信息为:\n");
& & & & & & & & & &printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n");
printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);
& & & &printf("\n");
printf("确认请按:1\n按任意键返回\n");& & & & & & & & & & & & & & scanf("%d",&k);
{& & & & & & & & & & & & & & & & leve--; /*删除后已录入学生个数减一*/ & &
for(l=i;l&N;l++)
stu[l].number=stu[l+1].
strcpy(stu[l].name,stu[l+1].name);
strcpy(stu[l].sex,stu[l+1].sex);
stu[l].age=stu[l+1].
stu[l].birthday.month=stu[l+1].birthday.
stu[l].birthday.day=stu[l+1].birthday.
stu[l].birthday.year=stu[l+1].birthday.
strcpy(stu[l].adress,stu[l+1].adress);
strcpy(stu[l].cellphone,stu[l+1].cellphone);
strcpy(stu[l].Email,stu[l+1].Email);
& & & &printf("学号 姓 名 性别 年龄 &出生年月 &家庭住址 & &电 话 号 码 & 邮箱\n");
& & & &for(i=0;i&=N && stu[i].number!=0;i++)
& & & & & & & & & & & & & & printf("%2d%6s%4s%4d%4d/%d/%d%15s%15s%15s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].birthday.month,stu[i].birthday.day,stu[i].birthday.year,stu[i].adress,stu[i].cellphone,stu[i].Email);& & & & & & & & & & & & & & & & & & & & &printf("\n");
& } }& & if(k)/*k若未被赋值0,则说明没有需要删除的学生*/
printf("没有您要查询的学生不需要删除!");}
在录入信息的时候多录一项成绩就可以了,排序也稍微改一改
&
&我们这边有成套源代码+论文+答辩PPT+文献综述+开题&需要了可以找我 &
等待您来回答
编程领域专家}

我要回帖

更多关于 c语言成绩管理系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信