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

用C语言做的学生选课系统能够调试运行的

发布网友 发布时间:2022-05-13 07:37

我来回答

2个回答

热心网友 时间:2024-01-30 00:18

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>#define SIZE 100struct proct {
char name[40];
int cost;
int retail;
int on_hand;
int lead_time;
}invtry[SIZE];void display();//显示函数
void enter();//添加函数
void init();//初始化函数
void input(int i);//写入函数
void update();//更新函数
void query();//查询函数
void remove();//删除函数int main()
{
char c;init();
fflush(stdin);
do{
printf("欢迎使用本库存系统\n");
printf("\n");
printf("添加产品信息请按 E \n");
printf("显示产品信息请按 D \n");
printf("更新产品信息请按 U \n");
printf("查询产品信息请按 Q \n");
printf("删除产品信息请按 R \n");
printf("退出程序菜单请按 C \n");
scanf("%c",&c);
fflush(stdin);
if(c=='e' || c=='E')
enter();
else if(c=='d' || c=='D')
display();
else if(c=='u' || c=='U')
update();
else if(c=='q' || c=='Q')
query();
else if(c=='r' || c=='R')
remove();
else if(c=='c' || c=='R')
return 0;
else
printf("你的输入有误\n");
}while(c!='C');
}void init()
{
int i;
for(i=0;i<SIZE;i++)
{
*invtry[i].name='\0';//所有产品名称进行清空
}
printf("初始化完成\n");
}void enter()
{
int i;
for(i=0;i<SIZE;i++)
{
if(*invtry[i].name=='\0')
{
break;
}}
if(i==SIZE)
{
printf("库存信息已满,无法继续增加!");
return;
}
input(i);
}void input(int i)
{
printf("输入产品名称\n");
scanf("%s",invtry[i].name);
printf("输入产品成本\n");
scanf("%d",&invtry[i].cost);
printf("输入产品价格\n");
scanf("%d",&invtry[i].retail);
printf("输入产品库存量\n");
scanf("%d",&invtry[i].on_hand);
printf("输入产品进货周期\n");
scanf("%d",&invtry[i].lead_time);
}void update()
{
int i;
char temp[40];
printf("输入要修改的产品名\n");
scanf("%s",temp);
fflush(stdin);
for(i=0;i<SIZE;i++)
{
if(!strcmp(temp,invtry[i].name))
break;
}
if(i==SIZE)
{
printf("没有找到你输入的产品");
return;
}
printf("请输入新的产品信息");
input(i);
}void display()
{
int i;
for(i=0;i<SIZE;i++)
{
if(*invtry[i].name)
{
printf("产品名称%s\n",invtry[i].name);
printf("产品成本%d\n",invtry[i].cost);
printf("产品价格%d\n",invtry[i].retail);
printf("产品库存%d\n",invtry[i].on_hand);
printf("产品进货周期%d\n",invtry[i].lead_time);
}
}
}void query()
{
int i;
char temp[40];
printf("输入要查询的产品名\n");
scanf("%s",temp);
fflush(stdin);
for(i=0;i<SIZE;i++)
{
if(!strcmp(temp,invtry[i].name))
break;
}
if(i==SIZE)
{
printf("没有找到你输入的产品");
return;
}
printf("产品名称%s\n",invtry[i].name);
printf("产品成本%d\n",invtry[i].cost);
printf("产品价格%d\n",invtry[i].retail);
printf("产品库存%d\n",invtry[i].on_hand);
printf("产品进货周期%d\n",invtry[i].lead_time);
}void remove()
{
int i;
char temp[40];
printf("输入要删除的产品名\n");
scanf("%s",temp);
fflush(stdin);
for(i=0;i<SIZE;i++)
{
if(!strcmp(temp,invtry[i].name))
break;
}
if(i==SIZE)
{
printf("没有找到你输入的产品");
return;
}
for(i;i<SIZE;i++)
{
invtry[i]=invtry[i+1];
}
printf("删除操作成功\n");
} 有一个产品管理的,你把结构体改成学生的就可以了

热心网友 时间:2024-01-30 00:19

运行成功!#include <stdio.h>
#include <stdlib.h>
#include <string.h>struct student
{
char name[60];
char ID[7];
int score;
};int dq(struct student st[]);
void xianshi();
void bc(struct student st[]);
void add();
void select();
void zz();
void chazhao();
void xhcz();
void xmcz();
void del();
void xmsc();
void xhsc();
void tj();
void px();
void bjg();
void xg();
void xhxg();
void xmxg();
void bca();
void fh();
struct student st[300]; //这个数组用来保存所有的学生信息 和文件里面的一致
int Number=0; //记录总的学生人数 也就是数组/文件里面的学生人数
void main()
{
int choose=0;
FILE *fp=NULL;
char yesorno;

if((fp=fopen("C://student.dat","rb"))==NULL)
{
printf("\n=========>提示:文件不存在,是否要创建一个?(y/n)\n");
scanf("%c",&yesorno);
if(yesorno=='y'||yesorno=='Y')
{

//这里仅为了建立文件
fp=fopen("C://student.dat","wb");
fclose(fp);
}
else
exit(0);
}
else
{
Number=dq(st); //要是文件只能够已经有数据 将数据初始化到数组中
}
system("cls");
while(true)
{
xianshi();
printf("\t\t====>请选择:");
scanf("%d",&choose);
system("cls");
switch(choose)
{
case 0: exit(0);
//退出
break;
case 1: add();
fh();//增加学生成绩
break;
case 2: select();
fh();//查看学生成绩
break;
case 3: chazhao();
fh();// 查找
break;
case 4: del();
fh();//删除
break;
case 5: tj();
fh();//统计
break;
case 6: px();
fh();//排序
break;
case 7: bjg();
fh();//输出不及格
break;
case 8: xg();
fh();//修改
break;
case 9:zz();
fh();//作者
break;
case 10:bca();
fh();//保存

break;
default:
break;
}
fflush(stdin);
getchar();
system("cls");
}
}
void bca()
{
printf("\t=====程序在运行时已自动保存.....\n");
}
void fh()
{
printf("\t===>按Enter键返回主菜单\n");
}
void xg() //修改学生信息
{
int way=0;
printf("请选择修改查找方式\n");
printf("1 按姓名查找修改\n");
printf("2 按学号查找修改\n");
scanf("%d",&way);
switch(way)
{
case 1: xmxg();
break;
case 2: xhxg();
break;
default: printf("输入有误,结束!\n");
break;
}
}
//按姓名修改
void xmxg()
{
FILE *fp=NULL;
char name[60];
int i=0;
int changeIndex=0;
int index=0;
printf("请输入要修改的学生姓名:");
scanf("%s",name);
for (i=0;i<Number;i++)
{
if (strcmp(name,st[i].name))
{
changeIndex=i; //保存要修改的人的下标
}
break;
}
printf("\t姓名\t学号\t成绩\n");
printf("\t%s\t%s\t%d\n\n",st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score);
printf("请重新输入该学生信息");
printf("姓名:");
scanf("%s",st[changeIndex].name);
printf("学号:");
scanf("%s",st[changeIndex].ID);
printf("成绩:");
scanf("%d",&st[changeIndex].score); //信息修改后重新更新文件里面的数据 以保持数据一致性
fp=fopen("C://student.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
}
fclose(fp);
}
void xhxg()//按学号修改
{
FILE *fp=NULL;
char id[60];
int i=0;
int changeIndex=0;
int index=0;
printf("请输入要修改的学生学号:");
scanf("%s",id);
for (i=0;i<Number;i++)
{
if (strcmp(id,st[i].ID))
{
changeIndex=i; //保存要修改的人的下标
}
break;
}
printf("\t姓名\t学号\t成绩\n");
printf("\t%s\t%s\t%d\n\n",st[changeIndex].name,st[changeIndex].ID,st[changeIndex].score);
printf("请重新输入该学生信息");
printf("姓名:");
scanf("%s",st[changeIndex].name);
printf("学号:");
scanf("%s",st[changeIndex].ID);
printf("成绩:");
scanf("%d",&st[changeIndex].score);

//信息修改后重新更新文件里面的数据 以保持数据一致性
fp=fopen("C://student.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf("\t=======>修改成功\n");
}void bjg() //输出不及格人数
{
int i=0;
printf("以下是不及格:\n");
printf("\t姓名\t学号\t成绩\n");
for (i=0;i<Number;i++)
{
if (st[i].score<60)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
}
void px()//排序
{
struct student temp;
int wantNUmber=0;
int i=0;
int j=0;
for(i=0;i<Number-1;i++)
{
for(j=i;j<Number-1;j++)
{
if(st[j].score>st[j+1].score)
{
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
}
printf("你想输出前几名的成绩:");
scanf("%d",&wantNUmber);
if (wantNUmber>Number)
{
wantNUmber=Number;
} printf("\t姓名\t学号\t成绩\n");
for(i=0;i<wantNUmber;i++)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
void tj()//统计
{
int i=0;
double sum=0.0;
for(i=0;i<Number;i++)
{
sum+=st[i].score;
}
printf("全班总分为:%f\n",sum);
printf("平均分为:%f\n",sum/Number);
}
void del()//删除
{
int n=0;
printf("1 按姓名删除\n");
printf("2 按学号删除\n");
scanf("%d",&n);
switch(n)
{
case 1: xmsc();
break;
case 2: xhsc();
break;
}
}
void xmsc()//按姓名删除
{
FILE *fp=NULL;
char name[60];
int i=0;
int j=0;
printf("请输入要删除的学生姓名:");
scanf("%s",name);
for(i=0;i<Number;i++)
{
if (strcmp(name,st[i].name)==0) //如果查找到就删除
{
for (j=i;j<Number-1;j++)
{
st[j]=st[j+1];
}
Number--;
}
} //将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了
fp=fopen("C://student.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf("删除成功;\n");

}
void xhsc()//按学号删除
{
FILE *fp=NULL;
char id[60];
int i=0;
int j=0;
printf("请输入要删除的学生学号:");
scanf("%s",id);
for(i=0;i<Number;i++)
{
if (strcmp(id,st[i].ID)==0) //如果查找到就删除
{
for (j=i;j<Number-1;j++)
{
st[j]=st[j+1];
}
Number--;
}
}

//将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了
fp=fopen("C://student.dat","wb");
for (i=0;i<Number;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
}
fclose(fp);
printf("删除成功;\n");
}
void chazhao()//查找学生
{
int n=0;
printf("1 按姓名查找\n");
printf("2 按学号查找\n");
scanf("%d",&n);
switch(n)
{
case 1: xmcz();
break;
case 2: xhcz();
break;
default: printf("输入有误,结束!\n");
break;
}
}
void xhcz()//按学号查找
{
char id[7];
int i=0;
printf("请输入要查找学生学号:");
scanf("%s",id);
system("cls");
printf("\t姓名\t学号\t成绩\n");
for (i=0;i<Number;i++)
{
if (strcmp(id,st[i].ID)==0)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
}
void xmcz()//按姓名查找
{
char name[7];
int i=0;
printf("请输入要查找学生姓名:");
scanf("%s",name);
system("cls");
printf("\t姓名\t学号\t成绩\n");
for (i=0;i<Number;i++)
{
if (strcmp(name,st[i].name)==0)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
}
void zz()
{
printf("\t**********************************************************\n\n");
printf("\t^^^^^^^^^^ 武汉工程大学邮电与信息工程学院 ^^^^^^^^^^\n\n");
printf("\t^^^^^^^^^ 07网络与安全管理2班 ^^^^^^^^^\n\n");
printf("\t^^^^^^^^ 易樊制作 ^^^^^^^^\n\n");
printf("\t^^^^^^^^^ 禁止CTRL+C 谢谢合作 ^^^^^^^^^\n\n");
printf("\t^^^^^^^^^^ QQ:895115828\n\n");
printf("\t**********************************************************\n\n");
}
void select()//查看学生
{
int i=0;
printf("以下是全部学生成绩\n");
printf("\t姓名\t学号\t成绩\n");
for(i=0;i<Number;i++)
{
printf("\t%s\t%s\t%d\n",st[i].name,st[i].ID,st[i].score);
}
}
void add()//增加学生
{
int numberTemp=0;
int i=0;
struct student temp; //临时保存信息
printf("请输入要增加学生成绩个数:");
scanf("%d",&numberTemp);
for(i=0;i<numberTemp;i++)
{
printf("输入第%d个同学信息\n",i+1);
printf("姓名:");
scanf("%s",temp.name);
printf("学号:");
scanf("%s",temp.ID);
printf("成绩:");
scanf("%d",&temp.score);
st[Number++]=temp; //将刚添加的写入到数组
bc(&temp); //将刚添加的写入到文件 }
printf("添加成功\n");
}
void bc(struct student *st)
{
FILE *fp=NULL;
fp=fopen("C://student.dat","ab+");
fwrite(st,sizeof(struct student),1,fp);
fclose(fp);
}
int dq(struct student st[])
{
FILE *fp=NULL;
int i=0;
fp=fopen("C://student.dat","rb");
while(fread(&st[i],sizeof(struct student),1,fp))
i++;
fclose(fp);
return i;
}
void xianshi()
{
printf("\t*****************************************************************\n");
printf("\t* *\n");
printf("\t* 学生成绩管理系统 *\n");
printf("\t* *\n");
printf("\t* [1] 增加学生成绩 [2] 查看学生成绩 *\n");
printf("\t* [3] 查找学生成绩 [4] 删除学生成绩 *\n");
printf("\t* [5] 统计(总成绩和平均分) [6] 输出前N名学生成绩 *\n");
printf("\t* [7] 输出不及格人数 [8] 修改学生信息 *\n");
printf("\t* [9] 关于作者 [10] 保存数据 *\n");
printf("\t* [0] 退出系统 *\n");
printf("\t*****************************************************************\n");
}你下去后可以选择把这个程序打印下来,慢慢的看,肯定会收获些什么,祝你成功!~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 c语言学生选课系统,怎么从主菜单调用下级菜单? 求........: 教务处任选课管理系统C语言程序 C语言程序学生选课 学商务英语可以干什么工作?上专科好就业吗? 商务英语这个专业是什么样,就业好吗 根据课文默写古诗文。(10分)(1)有约不来过夜半,□□□□□□□.(赵师秀《约客》)(2)无言独上西 部编版九年级语文(全一册)理解性默写 古诗文默写。(12分) ①关关雎鸠,在河之洲。________ ___ , &... 三个月大小泰迪腿被我踩到了,走路一瘸一拐的,疼的嗷嗷叫,是骨折吗? 泰迪狗左后腿一瘸一拐的怎么办 咨询狗狗被重物砸到了脚,一瘸一拐怎么办? 泰迪5个月大,在刚擦过得湿地板上跑着摔倒了,前腿受伤了,叫的特别厉害。走路一瘸一拐的,那条腿一用力就 我们家的泰迪狗从板凳上摔下来了,腿肿了,一直用三条腿走路2天了有问题吗 两个月小泰迪从桌子上摔下来之后腿一瘸一拐的怎么回事 泰迪狗腿被我朋友摔了下腿瘸了咋弄 2个月小泰迪从床上摔下来,走路一瘸一拐的,怎么办 刚刚抱着小狗(两个月的小泰迪)不小心摔到地下了。然后看它走起路一瘸一拐的。 给爸爸怎么写信 凶残血腥,5大暴力英雄什么地干活 有谁知道“陆绩怀橘”和“仲由百里负米”的典故 求c语言高手解答,解决问题后有高分,学生选课管理系统 c语言 学生选课系统设计 有什么好看的民国剧 程瑶瑶的人物评价 手机不小心掉水里了但是还能正常使用,都检查了没啥问题,还用去维修吗? 活力影院之烽火姻缘题材电影 手机进水,修好了用的住吗 “孝悌忠信礼义廉耻”其代表涵义都哪些? 孝悌忠信什么意思 手机进水后经过维修人员处理可以用吗 想在宜昌学平面设计,哪个学校好! 腾讯大王卡亲情卡销卡可以省内异地注销吗? 老人总是流鼻血是为什么 跨境电商的报关单贸易方式都有哪些 windows7的麦克风怎么关闭 怎样关掉windows7旗舰版麦克风声音 windows7系统麦克风怎么设置 windows 7怎么关闭麦克风回音 自己是绿码却收到防控短信是中国移动发出的,可信吗? 绿码在手下一句