?_
言程序设计
学校
学院:
班级序号:
学号:
姓名:
指导老师:
C语言程序设计报告
一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设 计》课程后进行的一次全面的综合性上机实验。其目的在于为同学提供了一 个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合 起来,锻炼同学的分析解决实际问题的能力。提高学生适应实际,实践编程 的能力。
二、题目
学生选修课程系统设计
假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、 授课学时、实验或商机学时、血粉、开课学期等信息,学生可按要求(如总 学分不得少于60)自由选课。
1、要求:
试设计一个选修课程系统,使之能提供以下功能:
(1)系统以菜单方式工作。
(2)课程信息和学生选课信息输入功能(课程信息用文件保存)一一
课程信息浏览功能一一输出。
(4 ) 查询功能(至少一种查询方式)一一算法。
按学分查询。
某门课程学生选修情况(可选项)。
2、分析:
由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所 以应提供文件的输入输出等操作:在过程中需有浏览、插入、修改、查找、 删除学生选课信息等操作,顾应分别建立个功能模块;另外还应提供键盘式 选择菜单实现程序运行。
3、总体设计:
根据题目要求,可以将系统分为六个模块:
系统以菜单方式工作模块;
课程信息与学生选课信息录入功能模块;
课程信息浏览功能模块;
查询模块;
按学分查询模块;
某些课程学生选修情况模块。
工资信息管理系统
4详细设计:
#i nclude
#i nclude
#in elude
typedef struct subjects
{
int num;
char n ame[20]; char kin d[10]; int stime;
int ttime;
int etime;
int score;
int term;
struct subjects *n ext;
}SUB;
SUB *create_form()
{
SUB *head,*tail,*p;
int nu m,stime,ttime
int etime,score,term;
char name[20],ki nd[10];
int size=sizeof(SUB); head=tail=NULL;
printf(”输入选修课程信息:\n");
sca nf("%d %s %s %d %d %d %d %d",&n um, &n ame,&kin d, &stime, &ttime ,& etime, &score, &term);
while( nu m!=0){
p=(SUB *)malloc(size);
p->num=num;
strcpy(p->n ame ,n ame);
strcpy(p->k in d,k in d);
p->stime=stime; p->ttime=ttime;
p->etime=etime; p->score=score; p->term=term; if(head==NULL)
head=p;
else
tail->n ext=p;
tail=p;
sca nf("%d %s %s %d %d %d %d %d",&n um, &n ame,&ki nd,& stime, &ttime
,& etime, &score, &term);
}
tail-> next=NULL;
retur n head;
}
void savefile(SUB *head)
{
SUB *p;
输出FILE *fp;
输出
fp=fope n( "subjects.txt","w");
总学时 授课学时 实验或\n
总学时 授课学时 实验或
\n “,p_ >n um,p_ >n ame,p-
fprin tf(fp," 课程编号 课程名称 课程性质
上机学时 学分 开课学期\n");
for(p=head;p;p=p->n ext) fprin tf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d
>kin d,p->stime,p->ttime,p->etime,p->score,p->term);
fclose(fp);
}
void savefileadd(SUB *head)
{
SUB *p;
FILE *fp;
fp=fope n(' 'subjectsadd.txt","w");
实验或fprintf(fp," 课程编号 课程名称 课程性质 总学时 授 课学时
实验或
上机学时 学分 开课学期\n ”);
for(p=head;p