C语言课程设计_c语言课程设计

2020-02-27 其他范文 下载本文

C语言课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言课程设计”。

#include #include int N1,N2,kk1,kk2,kk3;struct couse * head1,*head2,*emp1;struct student * head3,*head4,*emp2;struct couse//课程信息结构体 {

int num1;

char name1[20];

int score;

int nelepeo;//课程已选人数

int Melepeo;//课程人数上限

struct couse * next;};

int student();

//学生登陆 int teacher();

//教师登陆 struct student//学生信息结构体 {

int num2;

char name2[20];

int nelenum[50];//已选课程编号

int nelen;//已选课程数量

struct student * next;};

void Ms(){

for(kk1=0;kk1

for(kk2=0;kk2

for(kk3=0;kk3num1);printf(“n课程名称:”);scanf(“%s”,p1->name1);printf(“n学分:”);scanf(“%d”,&p1->score);printf(“n课程人数上限:”);scanf(“%d” ,&p1->Melepeo);printf(“ntttt输入成功!”);p1->nelepeo=0;head1=NULL;while(p1->num1!=0){

N1=N1+1;

if(N1==1)head1=p1;

else p2->next=p1;

p2=p1;

p1=(struct couse *)malloc(sizeof(struct couse));

printf(“n-----------------------------”);

printf(“n课程编号:(输入0结束)”);scanf(“%d”,&p1->num1);printf(“n课程名称:”);scanf(“%s”,p1->name1);printf(“n学分:”);scanf(“%d”,&p1->score);printf(“n课程人数上限:”);scanf(“%d” ,&p1->Melepeo);

p1->nelepeo=0;

printf(“ntttt输入成功!”);} p2->next=NULL;intoc();}

void filec()//录入键盘子函数(从文件录入){ void intoc();

FILE * fp;

char filepath[20];

struct couse *p1,*p2;

N1=0;

printf(“输入要读入的文件路径:”);

getchar();

gets(filepath);

if((fp=fopen(filepath,“r”))==NULL)

{

printf(“找不到%s文件!n”,filepath);

exit(0);

}

p1=p2=(struct couse*)malloc(sizeof(struct couse));

fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

head1=NULL;

while(!feof(fp))

{

N1=N1+1;

if(N1==1)head1=p1;

else p2->next=p1;

p2=p1;

p1=(struct couse *)malloc(sizeof(struct couse));

fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

}

p2->next=NULL;

intoc();}

void inputc()//录入课程主函数 {

int i;

printf(“ttt录入课程信息n”);

printf(“n1.从键盘录入n”);

printf(“2.从文件录入n”);

printf(“3.返回主菜单n”);

printf(“请选择(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):keyboardc();break;

case(2):filec();break;

case(3):system(“cls”);return;break;

//return

} }

void insertc(struct couse *incouse)//课程管理子函数(增加课程){ void intoc();

struct couse *p0,*p1,*p2;

p1=head1;

p0=incouse;

if(head1==NULL)

{

head1=p0;

p0->next=NULL;

}

else

{

while((p0->num1 > p1->num1)&&(p1->next!=NULL))

{

p2=p1;

p1=p1->next;

}

if(p0->num1 num1)

{

if(head1==p1)head1=p0;

else p2->next=p0;

p0->next=p1;

}

else

{

p1->next=p0;

p0->next=NULL;

}

}

N1=N1+1;

intoc();}

void delc(int num1)//课程管理子函数(删除课程){ void intoc();

struct couse *p1,*p2;

if(head1==NULL)

{

printf(“n没有课程,无法删除!n”);

goto end;

}

p1=head1;

while(num1!=p1->num1 && p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(num1==p1->num1)

{

if(p1==head1)head1=p1->next;

else p2->next=p1->next;

printf(“已删除该编号课程!n”);

N1=N1-1;

}

else printf(“无该编号的课程!n”);

end:;

intoc();}

void managementc()//课程管理主函数 {

struct couse * incouse;

struct couse *p1;

int i,num1;

printf(“ttt课程管理n”);

printf(“1.新增课程n”);

printf(“2.删除课程n”);

printf(“3.返回主菜单n”);

printf(“请选择(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

incouse=(struct couse *)malloc(sizeof(struct couse));

printf(“n课程编号:”);

fflush(stdin);

scanf(“%d”,&p1->num1);

printf(“n课程名称:”);

scanf(“%s”,p1->name1);

printf(“n学分:”);

scanf(“%d”,&p1->score);

printf(“n课程人数上限:”);

scanf(“%d” ,&p1->Melepeo);

printf(“ntttt输入成功!”);

incouse->nelepeo=0;

insertc(incouse);

break;

}

case(2):

{

printf(“请输入要删除课程的编号:n”);

scanf(“%d”,&num1);

delc(num1);

break;

}

case(3):system(“cls”);return;break;

} }

void keyboards()//录入学生信息子函数(从键盘录入){

void intos();

int i;

struct student *p1,*p2;

N2=0;

p1=p2=(struct student *)malloc(sizeof(struct student));

printf(“n学生学号:”);

scanf(“%d”,&p1->num2);

printf(“n学生姓名:”);

scanf(“%s”,p1->name2);

p1->nelen=0;

for(i=0;inelenum[i]=0;

head3=NULL;

while(p1->num2!=0)

{

N2=N2+1;

if(N2==1)head3=p1;

else p2->next=p1;

p2=p1;

p1=(struct student *)malloc(sizeof(struct student));

//return

printf(“n学生学号:(输入0结束!)”);

scanf(“%d”,&p1->num2);

printf(“n学生姓名:”);

scanf(“%s”,p1->name2);

p1->nelen=0;

for(i=0;inelenum[i]=0;

}

p2->next=NULL;

intos();return;} void files()//录入学生信息子函数(从文件录入){

int i=0;

FILE * fp;

char filepath[20];

struct student *p1,*p2;

N2=0;

printf(“输入要读入的文件路径:”);

getchar();

gets(filepath);

if((fp=fopen(filepath,“r”))==NULL)

{

printf(“找不到%s文件!n”,filepath);

exit(0);

}

p1=p2=(struct student*)malloc(sizeof(struct student));

fread(p1,sizeof(struct student),1,fp);

head3=NULL;

while(!feof(fp))

{

i=0;

N2=N2+1;

if(N2==1)head3=p1;

else p2->next=p1;

p2=p1;

p1=(struct student *)malloc(sizeof(struct student));

fread(p1,sizeof(struct student),1,fp);

}

p2->next=NULL;}

void inputs()//录入学生信息主函数 {

int i;

printf(“nttt录入学生信息n”);

printf(“n1.从键盘录入n”);

printf(“2.从文件录入n”);

printf(“3.返回主菜单n”);

printf(“请选择(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):keyboards();break;

case(2):files();break;

case(3):system(“cls”);return;break;

}

return 0;}

void inserts(struct student * incouse)//学生信息管理子函数(填加学生信息){ void intos();

struct student *p0,*p1,*p2;

p1=head3;

p0=incouse;

if(head3==NULL)

{

head3=p0;

p0->next=NULL;

}

else

{

while((p0->num2 > p1->num2)&&(p1->next!=NULL))

{

p2=p1;

p1=p1->next;

}

if(p0->num2 num2)

{

if(head3==p1)head3=p0;

else p2->next=p0;

p0->next=p1;

}

else

{

//return

p1->next=p0;

p0->next=NULL;

}

}

N2=N2+1;

intos();}

void dels(int num2)//学生信息管理子函数(删除学生信息){ void intos();

struct student *p1,*p2;

if(head3==NULL)

{

printf(“n没有该学生信息,无法删除!n”);

goto end;

}

p1=head3;

while(num2!=p1->num2 && p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(num2==p1->num2)

{

if(p1==head3)head3=p1->next;

else p2->next=p1->next;

printf(“已删除该学生信息!n”);

N2=N2-1;

}

else printf(“无该学号的学生!n”);

intos();

end:;}

void managements()//学生信息管理主函数 {

struct student * incouse;

int i,num2;

printf(“ttt学生信息管理n”);

printf(“1.新增学生信息n”);

printf(“2.删除学生信息n”);

printf(“3.返回主菜单n”);

printf(“请选择(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

incouse=(struct student *)malloc(sizeof(struct student));

incouse->nelen=0;

incouse->nelenum[0]=0;

printf(“学生学号t学生姓名n”);

scanf(“%d%s”,&incouse->num2,incouse->name2);

inserts(incouse);

break;

}

case(2):

{

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

scanf(“%d”,&num2);

dels(num2);

break;

}

case(3):system(“cls”);return;break;

//return

} }

void elect(struct student * s)//选课 {

void intos();

struct couse * p;

int num1,i;

printf(“请输入要选课的编号:n”);

scanf(“%d”,&num1);

for(i=0;s->nelenum[i]!=0;i++);

s->nelenum[i]=num1;

(s->nelen)++;

p=head1;

while(p->num1!=num1)p=p->next;

(p->nelepeo)++;

intos();} void cheak()//学生选课子函数(查询可选课程){

char e;

struct couse * c;

struct student * s;

int num2,i,j=0,t=0;

printf(“请输入你的学号:”);

scanf(“%d”,&num2);

s=head3;

while((s->num2!=num2)&&(s->next!=NULL))s=s->next;

if(s->num2!=num2)

{

printf(“不存在你的信息,请进入主菜单录入你的信息!n”);

goto end;

}

c=head1;

printf(“你的可选课程编号:n”);

while(c!=NULL)

{

for(t=0,i=0;s->nelenum[i]!=0;i++)

{

if(c->num1==s->nelenum[i])t=1;

}

if(t==0 &&(c->nelepeo!=c->Melepeo))

{

printf(“%dn”,c->num1);

j++;

}

c=c->next;

}

if(j==0)

{

printf(“你已选完所有课程,无法再多选!n”);

goto end;

}

printf(“选课(y/n)?:n”);

getchar();

e=getchar();

i=0;

while((e=='y')||(e=='Y'))

{

elect(s);

printf(“继续选课(y/n)?:n”);

getchar();

e=getchar();

}

end:;} void back(struct student * p)//退课 {

void intos();

struct couse * p1;

int num1,i,j;

printf(“请输入你要退掉的课程编号:n”);

scanf(“%d”,&num1);

p1=head1;

while(p1->num1!=num1)p1=p1->next;

for(i=0;p->nelenum[i]!=num1;i++);

for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1];

p->nelenum[--j]=0;

(p1->nelepeo)--;

printf(“退课成功!n”);

intos();} void hcheak()//学生选课子函数(查询已选课程){

char c;

struct couse * p0;

struct student * p;

int num2,i,f=0;

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

scanf(“%d”,&num2);

p=head3;

while(p->num2!=num2 && p!=NULL)p=p->next;

if(p==NULL)

{

printf(“不存在你的信息,请回主菜单录入信息:n”);

goto end;

}

printf(“已选课程编号:n”);

if(p->nelenum[0]==0)

{

printf(“你还没选课!n”);

goto end;

}

for(i=0;p->nelenum[i]!=0;i++)

{

printf(“%dn”,p->nelenum[i]);

p0=head1;

while(p0->num1!=p->nelenum[i])p0=p0->next;

f=f+p0->score;

}

printf(“总学分:%dn”,f);

printf(“是否进行退课(y/n)?”);

getchar();

c=getchar();

while((c=='y')||(c=='Y'))

{

back(p);

printf(“继续退课(y/n)?”);

getchar();

c=getchar();

(p->nelen)--;

}

end:;} void elective()//学生选课主函数 {

int i;

printf(“ttt学生选课n”);

printf(“1.查询可选课程n”);

printf(“2.查询已选课程n”);

printf(“3.返回主菜单n”);

printf(“请输入(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):cheak();break;

case(2):hcheak();break;

case(3): system(“cls”);return;break;

// return

} } void listc()//输出课程信息 {

struct couse * p;

p=head1;

printf(“课程编号

课程名称

学分

课程已选人数

课程人数上限n”);

while(p!=NULL)

{

printf(“%-8d%10s%6d%8d%12dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

p=p->next;

} }

void lists()//输出学生信息 {

struct student * p;

p=head3;

printf(“学生学号

学生姓名

已选课程数量n”);

while(p!=NULL)

{

printf(“%-4d %10s %6dn”,p->num2,p->name2,p->nelen);

p=p->next;

} } void intoc()//存储课程信息 {

FILE * fp;

struct couse * p;

char filepath[30];

if((fp=fopen(“课程信息.dat”,“a+”))==NULL)

{

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

exit(0);

}

p=head1;

while(p!=NULL)

{

fprintf(fp,“%d %s %d %d %dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

p=p->next;

}

fclose(fp);

printf(“课程信息已保存成功!n”);} void intos()//存储学生信息 { int i;

FILE * fp;

struct student * p;

char filepath[30];

if((fp=fopen(“学生信息.dat”,“a+”))==NULL)

{

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

exit(0);

}

p=head3;

while(p!=NULL)

{

fwrite(p,sizeof(struct student),1,fp);

p=p->next;

}

fclose(fp);

printf(“学生信息已保存成功!n”);

printf(“ntttt选择菜单:”);

printf(“ntttt1.继续添加ntttt2.返回主菜单:”);

printf(“请选择:”);

scanf(“%d”,&i);

switch(i)

{

case 1:inputs();break;

case 2:teacher();break;

default:printf(“n输入有误!n”);} }

void store()//信息主函数 {

int i;

printf(“tt系统信息查看及存储n”);

printf(“1.查看课程信息n”);

printf(“2.查看学生信息n”);

printf(“3.返回主菜单n”);

printf(“请输入(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):listc();break;

case(2):lists();break;

case(3):system(“cls”);return;break;

} }

int main()//主函数

//retuen

{

int i;

FILE *fp;

printf(“nttt欢迎使用学生选课系统!n”);

printf(“n请选择菜单:”);

printf(“ntttt1.教师登陆ntttt2.学生登陆n”);

printf(“请选择:”);

scanf(“%d”,&i);

switch(i)

{

case 1:teacher();break;

case 2:student();break;

default:printf(“输入有误!”);

} }

int student()

{

int i;

printf(“ntttt1.学生选课n”);

printf(“ntttt2.系统信息查看及存储n”);

printf(“ntttt3.退出系统n”);

printf(“请选择:”);

scanf(“%d”,&i);

switch(i)

{

case 1:

{

system(“cls”);

elective();

break;

}

case 2:

{

system(“cls”);

store();

break;

}

default:printf(“输入有误!”);

}

}

int teacher()

{

FILE *fp;

int i;

printf(“菜单:n”);

printf(“1.录入课程信息n”);

printf(“2.课程管理n”);

printf(“3.录入学生信息n”);

printf(“4.学生信息管理n”);

printf(“5.系统信息查看n”);

printf(“6.退出系统n”);

if((fp=fopen(“课程信息.dat”,“rb”))==NULL)

{

printf(“n打开系统文件失败!

n”);

//fp=fopen(“信息.dat”,“rb”));

// }

// if(feof(fp))

// {

printf(“n还未添加课程信息,请添加课程信息!n”);

inputc();

}

while(!feof(fp))

{

emp1=(struct couse*)malloc(sizeof(struct couse));

if(emp1==NULL)

{

printf(“n分配内存失败!n”);

return;

}

fread(emp1,sizeof(struct couse),1,fp);

if(feof(fp))break;

if(head1==NULL)

{

head1=emp1;

head2=emp1;

}

else{

head2->next=emp1;

head2=emp1;

}

head2->next=NULL;

}

fclose(fp);

fp==NULL;

if((fp=fopen(“学生信息.dat”,“rb”))==NULL)

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

//

//if(feof(fp)==1)

// {

printf(“还未添加学生信息,请添加学生信息!”);

inputs();

while(!feof(fp))

{

emp1=(struct student*)malloc(sizeof(struct student));

if(emp2==NULL)

{

printf(“n分配内存失败!n”);

return;

}

fread(emp2,sizeof(struct student),1,fp);

if(feof(fp))break;

if(head3==NULL)

{

head3=emp2;

head4=emp2;

}

else{

head4->next=emp2;

head4=emp2;

}

head4->next=NULL;

}

fclose(fp);

fp==NULL;

printf(“n请输入菜单选项(1~6):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

system(“cls”);

inputc();

break;

}

case(2):

{

system(“cls”);

managementc();

break;

}

case(3):

{

system(“cls”);

inputs();

break;

}

case(4):

{

system(“cls”);

managements();

break;

}

case(5):

{

system(“cls”);

store();

break;

}

case(6):

{

system(“cls”);

printf(“感谢使用本系统!nn再见!n”);

}

}

return 1;

}

C语言课程设计

- 11 前言让自己所学的知识应用于实际生活中,理论联系生活,学以致用,我们将更好服务于民。我们是新一代的年轻人,要想将来在社会上更好的立足,就必须让自己强大起来,努力的学习新......

语言_课程设计1

汇编语言课程实验报告实验名称课程设计1 实验环境硬件平台:Intel Core i5-3210M 操作系统:DOSBox 0.74 in Windows 8.1 软件工具:Turbo C 2.0, Debug, MASM 实验内容将实验7中......

CC语言课程设计

1,/*100-999内的水仙花数的个数*/ #include main() {int a,b,c,d,s,i=0;for(a=100;a{b=a/100;c=a%100/10;d=a%10;s=b*b*b+c*c*c+d*d*d;if(a==s)i++;}printf("%d",i);getch......

C语言课程设计

C语言课程设计总结报告学院:电气学院专业:电子信息科学与技术 学号: 姓名: 一目的:课程设计为我们提供了一个既动手又动脑,独立实践的机会,让我们将课本上的理论知识和实际有机的......

C语言课程设计

C语言课程设计飞机空战小游戏一、实验环境运行系统 WINDOWSXP 编程工具C++6.0 地点 程序设计与仿真实验室桌号19电脑IP地址221.12.10.218 二、实验目的和要求 实验目的:(1)使学......

《C语言课程设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C语言课程设计
点击下载文档
相关专题 c语言课程设计 课程设计 语言 c语言课程设计 课程设计 语言
[其他范文]相关推荐
[其他范文]热门文章
下载全文