主页 > 科技生活 >侠客风云传风吹雪攻略_仓库管理系统编程 >

侠客风云传风吹雪攻略_仓库管理系统编程

仓库管理系统编程
建议使用PHP+Mysql写
很容易的
用C语言编程实现一个简单的学生成绩管理系统
最低0.27元开通文库会员,查看完整内容>

原发布者:水瓶小鑫123

#include#include#include#include#defineN30#defineM3typedefstructstudent{charnumber[10];charname[20];floatscore[M];floataver;floattotal;}STU;STUstu[N];intn;voidinputscore(void);voidsavescore(void);voidavergescore(void);voidtotal(void);voidmodifyscore(void);voidlookscore(void);voidsearchscore(void);voidstatistic(void);voidadd(void);voidmodify(void);voiddelscore(void);voidmenu(void);voidmain(){shortintflag=0;menu();do{flag=1;switch(getch()){case'1':inputscore();break;/*输入*/case'2':lookscore();break;/*成绩*/case'3':searchscore();break;/*查找成绩*/case'4':statistic();break;/*成绩统计*/case'5':modify();break;/*修改成绩*/case'6':add();break;/*添加成绩*/case'7':delscore();break;/*删除成绩*/case'8':savescore();break;/*保存成绩*/case'9':exit(0);break;/*退出程序*/default:printf("输入有误\n");}printf("意键继续\n");getch();menu();

#include
#include
#include
#include

typedefstructstudent
{
charnum[16];
charname[20];
floatscore[4];
structstudent*next;
}stu;

stu*head;//链针

stu*create()//创建链表,从文件读息
{
printf("Readingstudentinformation: ");
stu*p=NULL;//指针,指向插入的结点
stu*q=NULL;//指针,用于在其后插入结点
head=NULL;//一开始链表为空
FILE*r=fopen("input.dat","r");
p=(stu*)malloc(sizeof(stu));
while(fscanf(r,"%s%s%f%f%f",p->num,p->name,&p->score[0],&p->score[1],&p->score[2])!=EOF)
{
p->score[3]=(p->score[0]+p->score[1]+p->score[2])/3.0;
fprintf(stdout,"%s %s %g %g %g %.2f ",p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3]);
p->next=NULL;
if(head==NULL)//head为空,要插入第一个
{
head=p;
}//结点,让头指针指向结点p
else
{//否则不是头结点,应将p结点
q->next=p;//插入到q结点的后面
}
q=p;//q指向当前最后一个结点
p=(stu*)malloc(sizeof(stu));
}
fclose(r);
if(head!=NULL)
{
q->next=NULL;//让q所指的最后一个结点的指针域为空说明这已是链尾了
}
returnhead;//返回头指针
}





voidsort(stu**head,intn)
{
FILE*w=NULL;
if(n==0)
{
w=fopen("sortByMath.dat","w");
}
elseif(n==1)
{
w=fopen("sortByEnglish.dat","w");
}
elseif(n==2)
{
w=fopen("sortByComputer.dat","w");
}
elseif(n==3)
{
w=fopen("sortByAvg.dat","w");
}
stu*q,*t,*p;
stu*new_head=newstu;
new_head->next=*head;
p=new_head;
t=NULL;
while(t!=new_head->next)
{
p=new_head;
q=p->next;
while(q->next!=t)
{
if((p->next->score[n])<(q->next->score[n]))
{
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
}
p=p->next;
q=p->next;
}
t=q;
}
*head=new_head->next;


p=*head;
q=p->next;
printf("学号 姓名 数学 英语 计算机 平均成绩 ");
intgrade=1;
while(p!=NULL)
{
fprintf(w,"%s %s %g %g %g %.2f %d ",
p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3],grade);
fprintf(stdout,"%s %s %g %g %g %.2f %d ",
p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3],grade);
if(q!=NULL&&q->score[3]score[3])grade+=1;
p=p->next;
if(q!=NULL)q=q->next;
}
printf(" ");
fclose(w);
}

voidcount(stu*head)
{
floatcnt[4][8];
inti,j;
for(i=0;i<4;i++)
{
for(j=0;j<8;j++)
{
if(j!=2)cnt[i][j]=0;
elsecnt[i][j]=100;
}
}
stu*r=head;
while(r!=NULL)
{
r=r->next;
}
}
intmain()
{
head=create();
printf("Sortingbyaveragescore: ");
sort(&head,3);

system("pause");
return0;
}


追问

哈喽……刚刚看到你回复我的问题了
先谢谢了~
但是能不能请大神帮忙再补充一下在屏幕上打印出所有不及格学生的下列信息:学号,姓名,不及格的课程名,该不及格课程成绩。
阔以的话加QQ说好了…具体看私信阔以么~?追答

你可调用第一个函数,读取数据存入链表,然后遍历链表就可以了,剩下的都不难。你自己写着看吧。本回答被网友采纳帮做课程设计,价格白菜,需要的话,回复我
求C编程 怎么编程学生成绩管理系统?


#include
#include
#include
#include
#include
#define MAX 80
void input();
void sort();
void display();
void insert();
void del();
void average();
void find();
void save();
void read();
void del_file();
void average();
void modify();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主*/
{
int as;
start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
/*一下为功能模块*/
do
{
printf("\n\t\t\t\t1.学员信\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.从文件读入学员信息\n\t\t\t\t9.删除文件中学员信息\n\t\t\t\t10.保存学员信息\n\t\t\t\t11.退出\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
scanf("%d",&as);
switch(as)
{
case 1:system("cls");input();break;
case 2:system("cls");display();break;
case 3:system("cls");sort();break;
case 4:system("cls");insert();break;
case 5:system("cls");del();break;
case 6:system("cls");modify();break;
case 7:system("cls");find();break;
case 8:system("cls");read();break;
case 9:system("cls");del_file();break;
case 10:system("cls");save();break;
case 11:system("exit");exit(0);
default:system("cls");goto start;
}
}while(1);
/*至此功能选择结束*/
}
void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
average();
for(i=1;i{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void display()/*显示数据函数*/
{
int i;
char as;
average();
do
{
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
for(i=0;iprintf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void insert()/*插入数据函数*/
{
char ch;
do
{
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i,j;
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void save()/*保存数据函数*/
{
FILE *fp;
int i;
char filepath[20];
printf("输入要保存的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
for(i=0;i{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
fclose(fp);
printf("学生信息已保存在%s中!\n",filepath);
system("pause");
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;iif(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void average()/*求平均数*/
{
int i;
for(i=0;i{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20],as;
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;iif(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
sort();
break;
}
system("cls");
}

void read()
{
FILE *fp;
int i;
char filepath[20];
printf("输入要读入的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
system("pause");
exit(0);
}
now_no=0;
for(i=0;i{
fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);
now_no++;
}
fclose(fp);
printf("保存的在文件%s中的所有信息已经读入!\n",filepath);
system("pause");
system("cls");
}

void del_file()
{
FILE *fp;
char filepath[20];
printf("输入要删除的文件路径:");
fflush(stdin);
gets(filepath);
fp=fopen(filepath,"w");
fclose(fp);
printf("保存的在文件%s中的所有信息已经删除!\n",filepath);
system("pause");
system("cls");
}

别人给我找的

给你一个课程表的系统,希望能给你一发:

#include"stdio.h"
#include"stdlib.h"
struct clsset
{
char class12[20];
char class34[20];
char class56[20];
}cls[5],cls2;
void save()
{
FILE *fp;
int i;
int j=1;
fp=fopen("class.txt","wb");
if(fp==NULL)
{
printf("Cannot open the file !\n");
exit(0);
}
printf("请您所编排的课程表:\n\a");
for(i=0;i<5;i++,j++)
{
printf("星期%d:\t",j);
scanf("%s%s%s",&cls[i].class12,&cls[i].class34,&cls[i].class56);
fwrite(&cls[i],sizeof(struct clsset),1,fp);
}
fclose(fp);
}
void somedaycls()
{
FILE *fp;
int no;
fp=fopen("class.txt","rb");
if(fp==NULL)
{
printf("Cannot open the file!\n");
exit(0);
}
Lable: printf("请输入星期代号(用1,2,3,4,5表示):");
scanf("%d",&no);
if(no>=1&&no<=5)
{
fseek(fp,(no-1)*sizeof(clsset),0);
fread(&cls2,sizeof(clsset),1,fp);
printf("\n星期%d\t%s,%s,%s\n\a",no,cls2.class12,cls2.class34,cls2.class56);
fclose(fp);
}
else
{
printf("请输入1~5之间的数字!\n\a");
goto Lable;
}
}
void clssheet()
{
FILE *fp;
int i;
int j=1;
fp=fopen("class.txt","rb");
if(fp==NULL)
{
printf("Cannot open the file!\n");
exit(0);
}
printf("\a");
for(i=0;i<5;i++,j++)
{
fread(&cls[i],sizeof(clsset),1,fp);
printf("星期%d\t%-10s\t%-10s\t%-10s\n",j,cls[i].class12,cls[i].class34,cls[i].class56);
}
fclose(fp);
}
int main()
{
int option;
Loop: printf("1。课程表设置\n\a");
printf("2。查阅某天课程\n");
printf("3。查阅整个课程表\n");
printf("4。退出系统\n");
printf("请选择要操作的命令(1~4)");
scanf("%d",&option);
switch(option)
{
case 1:save();getchar();getchar();goto Loop;break;
case 2:somedaycls();getchar();getchar();goto Loop;break;
case 3:clssheet();getchar();getchar();goto Loop;break;
case 4:printf("系统已经退出!\n");break;
default:printf("输入错误!\n\a");getchar();
goto Loop;
}
}兄弟,你这个十分含金量很高啊,如果不是人家已经做好了程序发个给你,估计没有人会去特意为你编这个程
C语言编程:客户信息管理系统
此处。


上一篇: 下一篇: