C语言程序设计报告 学生选修课系统Word文档下载推荐.docx

上传人:b****4 文档编号:16905871 上传时间:2022-11-27 格式:DOCX 页数:14 大小:72.51KB
下载 相关 举报
C语言程序设计报告 学生选修课系统Word文档下载推荐.docx_第1页
第1页 / 共14页
C语言程序设计报告 学生选修课系统Word文档下载推荐.docx_第2页
第2页 / 共14页
C语言程序设计报告 学生选修课系统Word文档下载推荐.docx_第3页
第3页 / 共14页
C语言程序设计报告 学生选修课系统Word文档下载推荐.docx_第4页
第4页 / 共14页
C语言程序设计报告 学生选修课系统Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言程序设计报告 学生选修课系统Word文档下载推荐.docx

《C语言程序设计报告 学生选修课系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告 学生选修课系统Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

C语言程序设计报告 学生选修课系统Word文档下载推荐.docx

(4)查询功能(至少一种查询方式)——算法。

(5)按学分查询。

(6)某门课程学生选修情况(可选项)。

2、分析:

由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:

在过程中需有浏览、插入、修改、查找、删除学生选课信息等操作,顾应分别建立个功能模块;

另外还应提供键盘式选择菜单实现程序运行。

3、总体设计:

根据题目要求,可以将系统分为六个模块:

1)系统以菜单方式工作模块;

2)课程信息与学生选课信息录入功能模块;

3)课程信息浏览功能模块;

4)查询模块;

5)按学分查询模块;

6)某些课程学生选修情况模块。

4详细设计:

#include<

stdio.h>

stdlib.h>

主流程图:

string.h>

typedefstructsubjects

{

intnum;

charname[20];

charkind[10];

intstime;

intttime;

intetime;

intscore;

intterm;

structsubjects*next;

}SUB;

SUB*create_form()

SUB*head,*tail,*p;

intnum,stime,ttime;

intetime,score,term;

charname[20],kind[10];

intsize=sizeof(SUB);

head=tail=NULL;

printf("

输入选修课程信息:

\n"

);

scanf("

%d%s%s%d%d%d%d%d"

&

num,&

name,&

kind,&

stime,&

ttime,&

etime,&

score,&

term);

while(num!

=0){

p=(SUB*)malloc(size);

p->

num=num;

strcpy(p->

name,name);

kind,kind);

stime=stime;

ttime=ttime;

etime=etime;

score=score;

term=term;

if(head==NULL)

head=p;

else

tail->

next=p;

tail=p;

}

next=NULL;

returnhead;

}

voidsavefile(SUB*head)

SUB*p;

FILE*fp;

fp=fopen("

subjects.txt"

"

w"

fprintf(fp,"

课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n"

for(p=head;

p;

p=p->

next)

%5d%12s%9s%9d%9d%11d%11d%7d\n"

p->

num,p->

name,p->

kind,p->

stime,p->

ttime,p->

etime,p->

score,p->

fclose(fp);

voidsavefileadd(SUB*head)

subjectsadd.txt"

fprintf(fp,"

voidsavefiledel(SUB*head)

subjectsdel.txt"

voidprin(SUB*head)

SUB*ptr;

if(head==NULL){

printf("

没有此门课程记录!

return;

课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n"

for(ptr=head;

ptr;

ptr=ptr->

ptr->

num,ptr->

name,ptr->

kind,ptr->

stime,ptr->

ttime,ptr->

etime,ptr->

score,ptr->

voidsearch(SUB*head)

inta,num;

intt=1;

chartype[10];

charch='

a'

ch1;

while(ch!

='

'

){

若要按课程性质查找请输入1,若要按学分查找请输入2:

%d"

a);

switch(a){

case1:

请输入要查找的课程的性质:

%s"

type);

if(strcmp(type,ptr->

kind)==0){

t=0;

if(t)printf("

未找到!

t=1;

break;

case2:

输入要查找的课程的学分\n"

num);

if(ptr->

score==num){

继续查找请按回车键,结束请按空格键:

ch1=getchar();

//将回车键赋给CH1,否则CASE里面最后输入的回车键会赋给CH,因此用CH1填补。

ch=getchar();

SUB*insert(SUB*head)

SUB*ptr,*ptr2,*subj;

while(ch!

subj=(SUB*)malloc(size);

ptr=subj;

输入要插入的课程信息:

%d%s%s%d%d%d%d%d"

subj->

num,subj->

name,subj->

if(head==NULL){

head=ptr;

head->

else{

for(ptr2=head;

ptr2;

ptr2=ptr2->

if(ptr2->

next==NULL){

ptr2->

next=subj;

subj->

继续插入请按回车,结束请按空格:

//将回车键赋给CH1,否则subj->

term输完后输入的回车键会赋给CH,因此用CH1填补。

SUB*del(SUB*head)

SUB*p1,*p2;

输入想要删除的课程编号:

if(head->

num==num){

p2=head;

head=head->

next;

free(p2);

returnNULL;

p1=head;

p2=head->

while(p2){

if(p2->

p1->

next=p2->

elsep1=p2;

p2=p1->

继续删除请按回车,结束请按空格:

//将回车键赋给CH1,否则num输完后再输入的回车键会赋给CH,因此用CH1填补。

voidchoose(SUB*head)

SUB*p,*q;

inta[5];

intnum,total=0,i=0,j;

输入要选修的课程的编号,编号之间以空格分开,输完后以0结束\n"

scanf("

if(p->

total=total+p->

score;

a[i]=num;

i++;

if(total<

60)printf("

选修总学分未达到60,选修失败!

else{

选修成功!

您选修的课程为:

for(j=0;

j<

i;

j++)

for(q=head;

q;

q=q->

if(q->

num==a[j])

%s"

q->

name);

***********************************\n"

voidmain()

SUB*head=create_form();

savefile(head);

prin(head);

search(head);

head=insert(head);

//注意此处的必要性函数insert的的返回值重新赋给head!

savefileadd(head);

修改后的信息为:

head=del(head);

//注意此处的必要性,数del的的返回值重新赋给head!

savefiledel(head);

修改后的课程信息为:

choose(head);

运行结果:

1mathsbx15140251

2Entgbx15140251

3hhxx1082151

4bbxx25140351

0ggxx12100101

课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期

1mathsbx15140251

2Entgbx15140251

3hhxx1082151

4bbxx25140351

1

bx

2

输入要查找的课程的学分

15

课程设计体会:

通过学习和练习C程序的设计基础,学习到了很多关于C的知识。

在这次学习过程中,毫无疑问的遇到了很多困惑、疑问,难免心情沮丧,失去耐心,信心受挫,但同学的帮助,老师的解惑和自己的坚持。

终于做了出来。

看着这一页页的程序,我感受到了成功的喜悦。

用一句话来形容一下这几天就是:

苦并快乐着。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1