问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

西安理工C语言课程设计学生成绩管理系统

发布网友 发布时间:2023-03-16 07:54

我来回答

4个回答

热心网友 时间:2023-10-29 01:40

#include<stdio.h>
#include<stdlib.h>/*系统标准输出函数,如system()*/
#include<string.h>
#include <conio.h>/*键盘输入函数getch()*/
#define N 3/*定义总人数*/
#define size 10 /*定义学号的个数*/

struct student /*定义结构体*/
{ char xuehao[15];/*学号*/
char xingming[20];/*姓名*/
char xingbie[10];/*性别*/
int math;/*数学成绩*/

int chinese;/*语文成绩*/

int english;/*英语成绩*/

}stu[N];

int cnt=1;/*定义变量cnt存放通讯录中总人数*/
void shuru();/*输入功能函数*/
void xianshi();/*显示功能函数*/
int chazhao();/*查找功能函数*/
int xiugai();/*修改功能函数*/
void xmchazhao();/*按姓名查找*/
void xhchazhao();/*按学号查找*/
void tuichu();/*退出函数*/
void xuehao();/*学号修改信息函数*/
void save();/*保存函数*/

void main()
{ int a;

while(1)
{printf("\n\n\n\n");
printf("\t\t ****----欢迎进入学生管理系统----****\n");
printf("\t\t ****----------1 输入信息--------****\n");
printf("\t\t ****----------2 显示信息--------****\n");
printf("\t\t ****----------3 查找信息--------****\n");
printf("\t\t ****----------4 修改信息--------****\n");
printf("\t\t ****----------5 退出系统--------****\n\n\n");
printf("\t\t\t请输入选择菜单: ");
scanf("%d",&a);
switch(a)
{
case 1:
shuru();
break;
case 2:
xianshi();
break;
case 3:
chazhao();
break;
case 4:
xuehao();
break;
case 5:
tuichu();

}
}
}

void save()/*保存函数*/
{
FILE *fp;
int i;
if((fp=fopen("stu_list","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<N;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}

void xuehao()/*输入学号修改信息函数*/
{ char num[size];
char array[size]={'3','1','0','0','4','3','2','0','3','1'};
int i,count=0,n;//n为最多允许输入错误次数
system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t请输入你的学号:\n\n\t\t\t");
for(n=0;n<3;n++)
{for(i=0;i<size;i++)//输入学号
{
num[i]=getch();

if(num[i]==8)//使用退格键消除错误输入,重新输入
{
if(num[i]!=13&&num[i]!=8)//当输入的不是回车键和退格键的时候,输出*号
printf("*");//用*号代替输入的信息

printf("\b");//退格,当前位置移到前一列
i--;
printf(" ");
printf("\b");
i--;

}

}

for(i=0;i<size;i++)//比较学号
{
if(num[i]==array[i]) count++;}//count 为对比记数器,用于判断输入学号是否存在.

if(count==size)
{
system("cls");
printf("\n\n\n\n\n\n\n\t\t\t学号正确!\n\n\t\t\t按任意键修改信息\n\t\t\t");
getch();
system("cls");
xiugai();
}
else

{
system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t学号错误!\n\n\t\t\t请重新输入\n\n\t\t\t");
}
}
if(n==3)
{
printf("您已经输错三次,按任意键退出\n\t\t\t");
getch();
exit(0);
}
}

void shuru()/*输入函数*/
{system("cls");
printf("\n");
printf("请输入学生的姓名:");
scanf (" %s",stu[cnt].xingming);
printf("\n请输入学生的性别:");
scanf (" %s",stu[cnt].xingbie);
printf("\n请输入学生的学号:");
scanf (" %s",stu[cnt].xuehao);

printf("\n请输入学生的数学成绩:");
scanf (" %d",&stu[cnt].math);

printf("\n请输入学生的语文成绩:");
scanf (" %d",&stu[cnt].chinese);
printf("\n请输入学生的英语成绩:");
scanf (" %d",&stu[cnt].english);

cnt++;
system("cls");
printf("\n\n\n\n\n\n\t\t***************保存成功!*****************\n");
printf("\n\t\t*****是否继续添加?(不区分大小写 Y/N)*****\n\n\t\t\t");
if(getch()=='y'||getch()=='Y')
shuru();
else
{ getch();
system("cls");
return;
}
save();
}

void xianshi()/*显示函数*/
{
int i; system("cls");

if(cnt!=1)
{
printf("以下为通讯录所有成员信息\n");
for(i=1;i<cnt;i++)
{
printf(" 姓名:%s\n",stu[i].xingming);
printf(" 学号:%s\n",stu[i].xuehao);

printf(" 性别:%s\n",stu[i].xingbie);
printf(" 数学成绩:%d\n",stu[i].math);
printf(" 语文成绩:%d\n",stu[i].chinese);
printf(" 英语成绩:%d\n",stu[i].english);

} printf("\n\t\t************************************************\n");
printf("\n\t\t\t按任意键返回主菜单: \n\t\t\t");
getch(); system("cls");
main();

}
else
{
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf("\t\t\t通讯录中无任何纪录!");
printf("\n\n\t\t\t按任意键返回主菜单! ");
getch(); system("cls");
main();
}

}

int chazhao()/*查找函数*/
{

int a;
system("cls");
printf("\n\n\n\n\n\n");
printf("\t**********************查询菜单************************\n");
printf("\t********************1-按姓名查询**********************\n");
printf("\t********************2-按学号查询**********************\n");
printf("\t********************3-返回主菜单**********************\n");
printf("\n\t\t\t 请按数字键选择:");
getchar();
scanf("%d",&a);
switch(a)
{
case 1:xmchazhao(); break;
case 2:xhchazhao();break;
case 3:system("cls");
}
return 0;system("cls");
}

void xmchazhao()/*姓名查找函数*/
{
char b[20];int i=1;
system("cls");
printf(" \n\n请输入您要查找的学生姓名:\n");
getchar();
scanf("%s",b);
while(strcmp(stu[i].xingming,b)!=0&&i<N)
i++;
if(i==N)
{ system("cls");
printf("\n\n\n\n\n\n\n\n");
printf("\t\t\t没有您要找的学生信息!\n");
printf("\n\t\t\t按任意键返回查找菜单:");
getch(); chazhao();system("cls");

}
else
{ system("cls");
printf(" 姓名:%s\n",stu[i].xingming);
printf(" 学号:%s\n",stu[i].xuehao);

printf(" 性别:%s\n",stu[i].xingbie);
printf(" 数学成绩:%d\n",stu[i].math);
printf(" 语文成绩 :%d\n",stu[i].chinese);
printf(" 英语成绩:%d\n",stu[i].english);

}
printf("\n\t******是否继续查找(不区分大小写 <Y/N>)******?\n\n");
if(getch()=='y'||getch()=='Y')
chazhao();
save();
system("cls");
}

void xhchazhao()/*学号查找函数*/
{
char b[20];int i=1;
system("cls");
printf(" \n\n请输入您要查找的学生学号:\n");
getchar();
scanf("%s",b);
while(strcmp(stu[i].xuehao,b)!=0&&i<N)
i++;
if(i==N)
{ system("cls");
printf("\t\t\t没有您要找的学生信息!\n");
printf("\n\t\t\t按任意键返回查找菜单:");
getch(); chazhao();system("cls");

}
else
{ system("cls");
printf(" 姓名:%s\n",stu[i].xingming);
printf(" 学号:%s\n",stu[i].xuehao);

printf(" 性别:%s\n",stu[i].xingbie);

printf(" 数学成绩:%d\n",stu[i].math);
printf(" 语文成绩:%d\n",stu[i].chinese);
printf(" 英语成绩:%d\n",stu[i].english);

}
printf("\n\t******是否继续查找(不区分大小写 Y/N)******?\n\n");
if(getch()=='y'||getch()=='Y')
chazhao();
save();
system("cls");
}

int xiugai()/*修改函数*/
{
int b,d,i,e,f,g,h;char s[20],s1[10],s2[20],s3[50],c[15];system("cls");
for(i=0;i<N;i++)
{

system("cls");
printf("\n\n\n\n\n\n\n\t\t\t请输入要修改的学生姓名: ");
getchar();
scanf("%s",s);
while(strcmp(stu[i].xingming,s)!=0&&i<N)
i++;
if(i==N)
{ system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t没有您要找的学生信息\n\n");
printf("\t\t\t是否继续修改?<Y/N>\n\n\t\t\t");
if(getch()=='y'||getch()=='Y')
xiugai();
system("cls");
main();
}
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t1 改姓名\n");
printf("\t\t\t\t2 改学号\n");
printf("\t\t\t\t3 改性别\n");

printf("\t\t\t\t4 改数学成绩\n");
printf("\t\t\t\t5 语文成绩\n");
printf("\t\t\t\t6英语成绩\n");
printf("\t\t\t\t0 返回主菜单\n");
printf("\t\t\t\t请输入您的选择: ");
getchar();
scanf("%d",&b);
switch(b)
{
case 1:system("cls");printf("请输入修改后的姓名:\n");
getchar();
scanf("%s",s);
strcpy(stu[i].xingming,s);
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 2:system("cls");printf("请输入修改后的学号:\n");
getchar();
scanf("%s",c);
strcpy(stu[i].xuehao,c);
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 3:system("cls");printf("请输入修改后的性别:\n");
getchar();
scanf("%s",s1);
strcpy(stu[i].xingbie,s1);
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}

case 4:system("cls");printf("请输入修改后的数学成绩:\n");
getchar();
scanf("%d",&e);
stu[i].math=e;
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 5:system("cls");printf("请输入修改后的语文成绩:\n");
getchar();
scanf("%d",&f);
stu[i].chinese=f;
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 6:system("cls");printf("请输入修改后的英语成绩:\n");
getchar();
scanf("%d",&g);
stu[i].english=g;
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 0:getch();system("cls");main(); }
}

return 0;
}

void tuichu()
{
system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否退出系统?<y/n>\n\n\t\t\t");
if(getch()=='y'||getch()=='Y')
{exit(0);}
else
{system("cls");
main();}
}

热心网友 时间:2023-10-29 01:41

不用*编多少行程序,实现功能就行,要有创新,得分就会高!
这个C语言的课程设计很重要的,请学弟认真对待,我西安理工2010届的,毕业了啊。祝你学业有成!好运!呵呵

热心网友 时间:2023-10-29 01:41

你好 我是负责课程设计的老师 所有任务请独立完成 不要尝试抄袭 一经发现 一律不及格

热心网友 时间:2023-10-29 01:42

哈哈!!! 哈哈!!!
我有,你们老师好逗啊....
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
猫咪丢了之后心里很难过,然后男友担心我就重新去领养了一只小花猫,可是... 有关名侦探柯南黑暗组织!! qq上删除的好友怎么找回来,六个月以上的。只要能找到QQ号就行,我可以... 六个月内删掉的qq好友能找回吗? 急!!因欠费而停机的手机能收到短信吗 手机关机之后停机信息是否可以收到 手机欠费后冲了钱但还是欠费会收到短信吗 手机停机了,包月的流量没用完,能收到微信吗? 德州到潍坊用不用隔离? 南都周刊2011年有一篇社论≪躺在时间的河流上怀念他们≫写得很棒... 西安财经学院2011年C语言试题答案 被盗了怎么注销实名认证? 被盗了怎么解除实名绑定? 深圳特产是什么?听说今年新出了一款鹏城八珍,朋友推荐的,不知道咋样? 华为手机支付宝界面变成灰色怎么办 2023年一月一号高速公路免费吗 2023月旦节高速免费不 2023元旦高速公路免费几天 元旦休息高速收费吗 关山大道关南小区站到汉口火车站怎样乘车 武汉关山到武昌火车站坐哪路车? 苹果手机怎么开启定位功能 绿箩土培如何养 鱼腥草和苦瓜能不能一起吃 产后吃红糖煮鸡蛋好不好,产后掉头发应该吃什么食物好 怎样锁定手机横屏或竖屏 qq阅读存小说的文件名 怎么才能不退群情况下不接群消息 电脑屏幕闲示姓名和电话号怎么回事 2019年8月份固安县社会保险怎么扣,上的四险,我们公司每个人扣的不一样,有谁知道怎么回事 帮忙解答C语言题【*12.04.12*夜西安】1,编程在屏幕上显示文字“少壮不努力,老大徒伤悲”。2,编程输入两 nova9怎么查看微信好友撤回的图片? 群投票小程序可以改数据吗知乎 食管癌做完手术多久不能吃东西 食道癌手术后多久可以进食 食道癌手术后多久能喝鸡汤 食道癌手术后一个月内饮食需注意什么? 梦见踢打是什么征兆 手机绑定的qq怎么注销? 怎么把苹果手机的短信导出到安卓手机? 怎么把iphone短信导入安卓 iphone 6怎么设置左上角返回键下划线? 手机上有耳机标记但是没有声音怎么办 不越狱的情况下,怎样把iPad程序安装到iPhone上? 廾厷是什么字,怎么读? 惠普打印机3610一直显示正在准备打印机,不工作是什么原因,怎么处理 用垂头造句(大约30个左右) 伸腿 &#160;&#160;[shēn tuǐ]什么意思?近义词和反义词是什么?英文翻译是什么? 白居易的《长相思》究竟是“月明人倚楼”还是“月明人依楼”? 北京八里庄街道申请转码