C语言课程设计报告选课管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计题目:学生选课管理系统
语言程序设计课程设计任务书
实验目的:
本次课程设计的主要目的是综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用,使同学们能进一步熟悉掌握C语言的基本语法,进一步提升自己的编程能力并逐步培养编程思维,进而不断提高同学们解决问题的能力,并为以后的语言学习打下良好的基础。
实验要求:
1. 每人一题,独立完成;设计要求有界面菜单。
2. 此次课程设计在规定的时间必须在实验室完成,不得以任何理由在其他地点进行;
3.每个人需按照选题规则确定好自己的题目(注意不是多人完成一题,每人独立完成一题),不得以任何理由选择其他的题目,当然在完成自己的题目之后根据个人兴趣可以继续选做其他的题目;
4.每人必须撰写课程设计报告(格式附后)。并上交程序代码电子稿(每位同学先建立一个文件夹,取名规则为“学号+姓名”,文件夹里存放上交电子内容,每班取一文件夹名,取名规则为班级号,内放该班同学上交内容,每班学习委员统一收齐后拷贝给指导老师)。
5.课程设计的成绩由两部分组成:考勤(30%)+程序检查成绩(40%)+报告检查成绩(30%)
实现思路:
该程序的主要功能包括:
•学生选课信息的添加(学生选课信息包括学生学号、课程名称、学分)•学生选课信息的删除
•学生选课信息查询(查询每个学生的选课信息,每个学生选课的总学分,选具体某门课程(课程名输入)的学生名单))
个人信息用结构体定义,解决的方案可以用结构体数组,或是链表作为临时数据处理,用文件来存储数据。注意数据定义的数据类型,用函数实现相应的功能,然后在主程序中调用,程序运行的时候用菜单选择功能,比如:添加个人信息―――按数字键1
修改个人信息―――按数字键2
……….
在次函数中用户通过输入选项进入不同的函数模块。当每次运行一个模块后,又进行选择。
实验正文:
#include
#include
#include
#define M 20
#define N 100
int x; //x为供选课程数
/*****主主菜单函数开始*****/
void menu()
{int n,w;
void enter_linformation();
void browse_linformation();
void enter_sinformation();
void search_num();
void search_score();
void l_choice_num();
do
{
puts("\t\t*******************MENU******************\n\n"); puts("\t\t\t\t 1.课程信息录入");
puts("\t\t\t\t 2.学生选课信息录入");
puts("\t\t\t\t 3.课程信息浏览");
puts("\t\t\t\t 4.按课程号查询");
puts("\t\t\t\t 5.按学分查询");
puts("\t\t\t\t 6.某门课程学生选修情况");
puts("\t\t\t\t 7.退出");
puts("\n\n\t\t*****************************************\n"); printf("Choice your number(1-7):[ ]\b\b");
scanf("%d",&n);
if(n<1||n>7)
{
w=1;
getchar();
}
else w=0;
}
while(w==1);
switch(n)
{
case 1:enter_linformation();break;//课程信息录入
case 2:enter_sinformation();break;//学生选课信息录入
case 3:browse_linformation();break;//课程信息浏览
case 4:search_num();break;//按课程号查询
case 5:search_score();break;//按学分查询
case 6:l_choice_num();//某门课程学生选修情况
case 7:exit(0);//退出
}
}
void main()
{
menu();
}
/*****主函数结束*****/
struct lesson
{
int num; //课程编号
char name[20]; //课程名称
char kind[10]; //课程性质
int stime; //总学时
int ttime; //授课学时
int etime; //实验或上机学时
int score; //学分
int term; //开课学期
int choice_num; //选修该课的学生人数
}les[M]; //les[M]中每个数组元素对应一条课程信息
struct student
{
int number; //学号
int num[20]; //课程编号
}stu[N]; //stu[n]中每个数组元素对应一条学生选课信息
void printf_face()//公共函数1:显示数据结构项目函数
{
printf("\n\tnumber name kind stime etime ttime score term\n");
}
void printf_one(int i) //公共函数2:显示一个课程信息记录
{printf("\n\t%d %s %s %d %d %d %d %d\n ",les[i].num,les[i].name,les[i].kind,les[i].stime,
les[i].ttime,les[i].etime,les[i].score,les[i].term);
}
//课程信息录入模块
void l_input(int i) //输入一个记录到函数
{
scanf("%d",&les[i].num);
scanf("%s",&les[i].name);
scanf("%s",&les[i].kind);
scanf("%d",&les[i].stime);
scanf("%d",&les[i].ttime);