没有合适的资源?快使用搜索试试~ 我知道了~
学生选修课程C语言系统设计学生选修课管理系统.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 139 浏览量
2022-07-13
22:17:31
上传
评论 2
收藏 84KB DOC 举报
温馨提示
试读
22页
学生选修课程C语言系统设计学生选修课管理系统.doc
资源推荐
资源详情
资源评论
第 1 页
《高级语言程序设计》
题 目:学生选修课管理系统
目录
1...........................................题目说明
2......................................数据结构设计
3......................................系统大纲
4......................................模块设计
5......................................程序代码
6......................................运行结果
7......................................小结
学生选修课管理系统
假定有 n 门课程,,每门课程都有课程编号,课程名称,课程性质,总学时,授
课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得
少于 60)自由选课.试设计一选修课程系统,使之能提供一下功能:
(1) 系统以菜单方式工作;
(2) 课 程 信 息 和 学 生 信 息 的 录 入 功 能 ( 课 程 信 息 有 文 件 保
存)----输入;
(3) 课程信息浏览功能----输出;
(4) 查询功能(至少一种查询方式)---算法;
(5) 按学分查询;
(6) 某门课程学生选修情况(可选项).
二:数据结构设计
本系统的实现,全部采用链表这种数据结构,用链表实现课程的查找,添
加,删除,课程的选修,追加选修的课程.课程信息采用结构体这种数据结构.
三:系统大纲
四:模块设计
(一) 主函数,头文件及结构体声明
主函数设计地比较简洁,只是提供一个主菜单,switch 语句将整个程序分
为两个大的功能模块
[程序]
#include "stdio.h"
主
菜
单
管理员菜单
学生菜单
浏览课程
查询课程
添加课程
删除课程
浏览所有课
程
查询课程信
息
选择选修课
程
浏 览 我 选 修 的
课程
删除错选的课
程
第 2 页
#include "string.h"
#include "stdlib.h"
#include"malloc.h"
typedef struct subjects //课程结构体
int num; //课程编号
char name[20]; //课程名称
char kind[10]; //课程性质
int stime; //总学时
int ttime; //授课学时
int etime; //实验或上机学时
int score; //学分
int term; //开课学期
struct subjects *next;
}SUB;
SUB *head=NULL;
int main()
int n,w=1;
do
system("cls");
puts("\n\n\t\t*****************MENU******************\n\n"
);
puts("\t\t\t\t1.以管理员身份登录\n");
puts("\t\t\t\t2.以学生身份登录\n");
puts("\t\t\t\t3.退出");
puts("\n\n\t\t******************************************
*\n");
printf("Chiose your number(1-3):[ ]\b\b");
scanf("%d",&n);
switch(n)
case 1:Mangers() ;break;
case 2:Students();break;
case 3:w=0;break;
default:;
while(w==1);
return 0;
(二) 管理员功能模块
管理员的功能一共有四个功能:浏览,查询,添加,删除课程.运用字符串
第 3 页
处理函数处理密码的问题,用一个 switch 语句实现函数的调用.
[程序]
void Mangers() //管理员登录菜单
int n,w=1,flag=0,i=3;
char s[8];
char password[7]="123456";
do
printf("\n\nEnter password:");
scanf("%s",s);
if(!strcmp(s,password)) //进行密码匹配
验证
flag=1;
break;
else
printf("\n\nError! You only have %d times! Enter
again:\n",i-1);
i--;
while(i>0);
if(!flag)
printf("you have Enter 3 times!"); //输入密码超过了
3 次!!
exit(0); //自动退出
do
system("cls");
puts("\n\n\t\t**************管理员菜单
*******************\n\n");
puts("\t\t\t\t1---浏览课程\n");
puts("\t\t\t\t2---查询课程\n");
puts("\t\t\t\t3---添加课程\n");
puts("\t\t\t\t4---删除课程\n");
puts("\t\t\t\t5---返回主菜单");
puts("\n\n\t\t***********************************************\n")
;
printf("Chiose your number(1-5):[ ]\b\b");
scanf("%d",&n);
switch(n)
第 4 页
case 1:insert();savefile();break;
case 2:prin();break;
case 3:search();break;
case 4:del();savefile();break;
case 5:return;
default:;
while(w==1);
(三) 学生功能菜单
学生功能菜单包括六个功能:浏览课程,查询课程,选修课程,浏览我所选
修的课程,添加选修课程,删除错选的课程,也是用到 switch 语句来调用函数
[程序]
void Students() //学生登录菜单
int n,w=1;
do
system("cls");
puts("\n\n\t\t************学生菜单**************\n\n");
puts("\t\t\t\t1---浏览所有课程\n");
puts("\t\t\t\t2---查询课程信息\n");
puts("\t\t\t\t3---选择选修课程\n");
puts("\t\t\t\t4---浏览我选修的课程\n");
puts("\t\t\t\t5---删除错选课程\n");
puts("\t\t\t\t6---返回主菜单");
puts("\n\n\t\t***********************************\n");
printf("Chiose your number(1-6):[ ]\b\b");
scanf("%d",&n);
switch(n)
case 1:prin();break;
case 2:search();break;
case 3:choose();break;
case 4:prin();break;
case 5:del();savefile1();break;
case 6:return;
default:;
while(w==1);
(四) 创建链表模块
[程序]
SUB *create_form() //创建链表
第 5 页
SUB *head,*tail,*p;
int num,stime,ttime;
int etime,score,term;
char name[20],kind[10];
int size=sizeof(SUB);
head=tail=NULL;
printf("输入选修课程信息:\n");
scanf("%d%s%s%d%d%d%d%d",&num,name,kind,&stime,&ttime,&etim
e,&score,&term);
while(num!=0)
p=(SUB *)malloc(size);
p->num=num;
strcpy(p->name,name);
strcpy(p->kind,kind);
p->stime=stime;
p->ttime=ttime;
p->etime=etime;
p->score=score;
p->term=term;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d%s%s%d%d%d%d%d",&num,name,kind,&stime,&ttime,
&etime,&score,&term);
tail->next=NULL;
return head;
(五) 浏览模块
浏览模块主要用管理员中的”浏览课程”和学生功能中的”浏览所有
所有课程”,将所有的课程信息输出,即将 all_sub.txt 文件里面的内容全
部输出
[程序]
void prin() //浏览所有课程
SUB *ptr;
head=NULL;
readfile();
剩余21页未读,继续阅读
资源评论
- 2301_779972412023-06-05这个资源值得下载,资源内容详细全面,与描述一致,受益匪浅。
- 千里2023-06-05超级好的资源,很值得参考学习,对我启发很大,支持!
kfcel5889
- 粉丝: 3
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功