问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

急求C语言学生选课管理设计和做的过程流程图。谢谢!

发布网友 发布时间:2022-04-30 14:29

我来回答

2个回答

热心网友 时间:2022-06-23 03:34

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

int count = 0;
int cou = 0;
int choose = 0; //用于统计数组个数

/*================定义函数===============*/
void allput(); //把数组整体排序输出
void insert(); //插入新课程
void search(); //搜索指定课程
void delete_(); //删除指定课程
void select(); //选课
void change(); //修改指定课程
void baocun(); //保存,把修改后的数组重新装入文件
void into(); //验证密码
void apply(); //申请密码

struct subject_list{
char num[15]; //装课程编号
char name[30]; //装课程名称
int xueshi;
float xuefen; //分别装学时、学分
}sub[100];

struct secret{
char xuehao[15];
char sec[15];
}stu[1000];

/*================================主函数================================*/
void main()
{
int i=0;
FILE *fp,*fpp;

if((fpp=fopen("e:\\Secret.txt","r")) == NULL){
printf("File open error!\n");
exit(0);
}
while(! feof(fpp)){
fscanf(fpp,"%s%s",stu[i].xuehao,stu[i].sec);
i++;
cou++; //计数
};

system("color df");

/*—————————————————————验证、申请密码——————————————————--——-*/

printf("\n\n\n------------------------------ 请通过密码进入 ------------------------------\n\n\n");

do{
printf(" 1:进入系统;2:申请密码;0:退出\n");
printf(" 请选择功能:");
scanf("%d",&choose);
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
if(choose<0){
printf("输入错误!\n");
exit(0);
}
switch(choose){
case 1: into(); //===========〉引入密码验证函数
if(fclose(fpp)){
printf("Can not close the file!\n"); //====〉关闭文件
exit(0);
}
break;
case 2: apply(); break; //===========〉引入 apply 函数
case 0:
exit(0);
default:
printf("\n 请重新输入!\n");
break;
}
}while(choose!=0);

if((fp=fopen("e:\\LessonInfo.txt","r")) == NULL){
printf("File open error!\n");
exit(0);
}

/* 把文件内容赋给数组 */
i = 0;
while(! feof(fp)){
fscanf(fp,"%s%s%d%f",sub[i].num,sub[i].name,&sub[i].xueshi,&sub[i].xuefen);
i++;
count++; //计数
};

if(fclose(fp)){
printf("Can not close the file!\n"); //====〉关闭文件
exit(0);
}

printf("\n\n\n\n\n\n\n\n\n\n\t 正在启动系统>>>> >>>> >>>>\t\n\n\n\n\n\n\n\n\n\n");
for(i=0;i<100000000;i++);
system("cls");
system("color 1f");

/*———————————————————主体框架——系统操作———————————————————————*/
do{
system("cls");
printf("\n\n");
printf("==============================欢迎进入学生选课系统==============================\n");
printf(" __________________学生选课系统功能选项:__________________ \n");
printf(" | 1. 看所有课程信息 |\n");
printf(" | 2. 搜索指定课程信息 |\n");
printf(" | 3. 添加课程信息 |\n");
printf(" | 4. 删除课程信息 |\n");
printf(" | 5. 修改课程信息 |\n");
printf(" | 6. 选课 |\n");
printf(" |________________________7. 退出___________________________|\n");
printf("*******************************************************************************\n");
printf("请选择功能:");
scanf("%d",&choose);
printf("--------------------------------------\n");

/* 建立分支选择功能选项 */
switch(choose){
case 1: allput(); break; //=================〉引用函数排序输出
case 2: search(); break; //=================〉引用搜索函数
case 3: insert(); break; //=================〉引用插入函数
case 4: delete_(); break; //=================〉引用删除函数
case 5: change(); break; //=================〉引用函数修改内容
case 6: select(); break; //=================〉引用选课函数
case 7: printf("谢谢使用!再见!\n"); exit(0); //=================〉退出
default: printf("请重新输入\n"); break;
}
printf("--------------------------------------------------------------------------------\n");
printf(" 按任意键返回首层\n");
getch();
}while(choose != 7);
}

/*=============把数组整体排序输出================*/
void allput()
{
int i,j,xueshi;
char num[15],name[15];
float xuefen;

/* 冒泡排序 */
for(i=1;i<count;i++)
for(j=0;j<count-1;j++)
if(strcmp(sub[j].num,sub[j+1].num)>0){
strcpy(num,sub[i].num);
strcpy(name,sub[i].name);
xueshi = sub[i].xueshi;
xuefen = sub[i].xuefen;
strcpy(sub[i].num,sub[i+1].num);
strcpy(sub[i].name,sub[i+1].name);
sub[i].xueshi = sub[i+1].xueshi;
sub[i].xuefen = sub[i+1].xuefen;
strcpy(sub[i+1].num,num);
strcpy(sub[i+1].name,name);
sub[i+1].xueshi = xueshi;
sub[i+1].xuefen = xuefen;
}

/* 输出查找到的信息 */
printf("课程编号\t课程名称\t学时\t学分\n");
for(i=0;i<count;i++)
printf("%s\t%s\t%d\t%.1f\n",sub[i].num,sub[i].name,sub[i].xueshi,sub[i].xuefen);
baocun(); //把排序后的数组重新写入文件
}

/*========================================查看指定课程信息=====================================*/
void search()
{
char num[15];
int i,flag=0;

do{
printf("请输入课程编号:");
scanf("%s",num);

for(i=0;i<count;i++){
if(strcmp(num,sub[i].num) == 0){
flag = 1;
break;
}
}

/* 输出查找到的信息 */
if(flag){
printf("课程编号\t课程名称\t学时\t学分\n");
printf("%s\t%s\t%d\t%.1f\n",sub[i].num,sub[i].name,sub[i].xueshi,sub[i].xuefen);
}
else{
printf("无此课程!1:重新输入;2.返回\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("请输入:");
scanf("%d",&choose);
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}
if(choose!=1) return;
}while(flag==0);

}

/*=============================================选课===========================================*/
void select()
{
char stu[15],num_[15];
int i,flag=0;
FILE *fp_;

fp_=fopen("e:\\SelectInfo.txt","a");

if(fp_== NULL){
printf("File open error!\n");
exit(0);
}

do{
printf("请输入学号:");
scanf("%s",stu);
printf("请输入课程编号:");
scanf("%s",num_);

/* 判断要选课程是否存在 */
for(i=0;i<count;i++){
if(strcmp(num_,sub[i].num) == 0){
//strcpy(name,sub[i].name)
flag = 1;
break;
}
}

if(flag){
fprintf(fp_,"%s %s %s\n",stu,num_,sub[i].name);
printf("选课成功!\n");
/* 关闭文件 */
if(fclose(fp_)){
printf("Can not close the file!\n");
exit(0);
}
}
else{
printf("无此课程!1:重新输入;2.返回\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("请输入:");
scanf("%d",&choose);
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}
if(choose!=1) return;
}while(flag==0);
}

/*=======================================添加课程=============================================*/
void insert()
{
int i,j,flag=0;
char num[15];

do{
flag = 0;
printf("请输入课程编号:");
scanf("%s",num);

/* 判断要添加课程是否存在 */
for(i=0;i<count;i++){
if(strcmp(num,sub[i].num) == 0){
flag = 1;
break;
}
}

if(flag){
printf("此课程已存在!1:重新输入;2.返回\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("请输入:");
scanf("%d",&choose);
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
if(choose!=1) return;
}
else{
j=count;
for(i=0;i<count;i++){
if(strcmp(num,sub[i].num)>0) continue;
strcpy(sub[j].num,sub[j-1].num); //后一项覆盖前一项
strcpy(sub[j].name,sub[j-1].name);
sub[j].xueshi = sub[j-1].xueshi;
sub[j].xuefen = sub[j-1].xuefen;
j--;
}
/* 输入要添加的信息 */
strcpy(sub[j].num,num);
printf("请输入课程名称:");
scanf("%s",sub[j].name);
printf("请输入学时:");
scanf("%d",&sub[j].xueshi);
printf("请输入学分:");
scanf("%f",&sub[j].xuefen);

count++;
baocun();
printf("添加成功!\n");
}
}while(flag==1);
}

/*=======================================删除课程===============================================*/
void delete_()
{
char num[15];
int i,j,flag=0;

do{
printf("请输入课程编号:");
scanf("%s",num);

for(i=0;i<count;i++)
if(strcmp(num,sub[i].num) == 0){
flag = 1;
break;
}

if(flag){
for(j=i;j<count-1;j++){
strcpy(sub[j].num,sub[j+1].num); //后一项覆盖前一项
strcpy(sub[j].name,sub[j+1].name);
sub[j].xueshi = sub[j+1].xueshi;
sub[j].xuefen = sub[j+1].xuefen;
}
count--;
baocun(); //引用保存函数
printf("删除成功!\n");
}
else{
printf("无此课程!1:重新输入;2:返回\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("请输入:");
scanf("%d",&choose);
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}
if(choose!=1) return;
}while(flag==0);
}

/*===========================================修改课程==========================================*/
void change()
{
char num[15];
int i,flag=0;

do{
printf("请输入课程编号:");
scanf("%s",num);

/* 判断要修改课程是否存在 */
for(i=0;i<count;i++)
if(strcmp(num,sub[i].num) == 0){
flag = 1;
break;
}

if(flag){
printf("请输入修改后的课程名称:");
scanf("%s",sub[i].name);
printf("请输入学时:");
scanf("%d",&sub[i].xueshi);
printf("请输入学分:");
scanf("%f",&sub[i].xuefen);
baocun(); //引用排序函数,重新写入文件
printf("修改成功!\n");
}
else{
printf("无此课程!1:重新输入;2.返回\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("请输入:");
scanf("%d",&choose);
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}
if(choose!=1) return;
}while(flag==0);
}

/*============================================保存=============================================*/
void baocun()
{
int i;
FILE *fpp;

fpp = fopen("e:\\LessonInfo.txt","w");
/* 把数组装入文件 */
for(i=0;i<count-1;i++)
fprintf(fpp,"%s %s %d %.1f\n",
sub[i].num,sub[i].name,sub[i].xueshi,sub[i].xuefen);
fprintf(fpp,"%s %s %d %.1f",
sub[i].num,sub[i].name,sub[i].xueshi,sub[i].xuefen);
/* 关闭文件 */
if(fclose(fpp)){
printf("Can not close the file!\n");
exit(0);
}
}

/*====================通过密码进入后面的程序=====================*/
void into()
{
int i=0;
char xueh[15],secret[15];

do{
printf(" 请输入学号 :");
scanf("%s",xueh);
printf(" 请输入密码:");
scanf("%s",secret);
for(i=0;i<cou;i++)
if(strcmp(xueh,stu[i].xuehao)==0&&strcmp(secret,stu[i].sec)==0){
choose = 0;
system("cls");
return;
}

//printf("--------------------------------------------------------------------------------\n");
printf("\n 密码错误! 1:重新输入;2 :返回\n\n");
printf(" 请输入:");
scanf("%d",&choose);
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
//if(choose<0) { printf("输入错误!\n"); exit(0);}
if(choose!=1) return;
}while(1);
}

/*==========================申请密码=====================*/
void apply()
{
FILE *fqq;
int i=0,flag = 0;
char xuehao[15];

do{
flag = 0;
printf("\n 请输入学号:");
scanf("%s",xuehao);
for(i=0;i<cou;i++)
if(strcmp(xuehao,stu[i].xuehao)==0)
flag = 1;
if(flag!=1) break;
//printf("--------------------------------------------------------------------------------\n");
printf("\n 学号已存在!1:重新输入;2:返回\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf(" 请输入:");
scanf("%d",&choose);
printf("--------------------------------------------------------------------------------\n");
if(choose<0) { printf("输入错误!"); exit(0); }
if(choose!=1) return;
}while(flag);

fqq=fopen("e:\\Secret.txt","a+");

printf(" 请输入密码:");
scanf("%s",stu[i].sec);

strcpy(stu[i].xuehao,xuehao);
cou++;

fprintf(fqq,"\n%s %s",xuehao,stu[i].sec);
if(fclose(fqq)){
printf("Can not close the file!\n");
exit(0);
}
printf("--------------------------------------------------------------------------------\n");
printf(" 申请成功!是否立即进入:1:进入;2:退出\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf(" 请输入:");
scanf("%d",&choose);
printf("--------------------------------------------------------------------------------\n");
switch (choose){
case 1:
into();
break;
default:
if(fclose(fqq))
printf("Can not close the file!\n");
exit(0);
}
}

热心网友 时间:2022-06-23 03:34

在word里面画啊,可以用插入图画,自己画各种框图。

冒泡排序: (数字都是序号 1~9 为 第一到第九个数字 假如 一共9个数字比较)
1 和 2 比较 小于就交换位置 然后
1 和 3 比较 小于就交换位置 然后
1 和 4 比较 小于就交换位置 然后
......
1 和 9 比较 小于就交换位置 然后
2 和 3 比较 小于就交换位置 然后
2 和 4 比较 小于就交换位置 然后
......
2 和 9 比较 小于就交换位置 然后
3 和 4 比较 小于就交换位置 然后
3 和 5 比较 小于就交换位置 然后
....
...
8 和 9 比较 小于就交换位置 全部结束 所得序列从小到大排列

快速排列:
第一个数 跟 整个序列中间一个数比较 要是小于 就在跟前半段中间个数比较 要是又大于 就跟前半段中的后半段中间个数比较 来确定位置
如:
1 跟 (1+9)/2 比较 小于就继续跟 (1+5)/2比较 大于就跟(5+9)/2比较
然后(假设是小于) 1跟(1+5)/2比较 又大于 那么继续1跟(3+5)/2比较 要是
1大于4那么交换位置
然后第二段: 2 跟 (1+9)/2比较 小于就继续跟 (1+5)/2比较 大于就跟(5+9)/2比较
以此类推...
9跟(1+5)/2 比较........

Dim i As Integer'定义循环变量
Dim num(1 To 20) As Integer'保存随机数
Dim max As Integer, min As Integer'保存最大值和最小值

Me.Show '
max = 0: min = 100 '初始化
Randomize Timer '

For i = 1 To 20
num(i) = Fix(Rnd() * 100) + 1
If num(i) > max Then max = num(i)
If num(i) < min Then min = num(i)
Print num(i);
Next i
Print

Print max
Print min
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
打印机硒鼓安装方法及步骤 如何安装新硒鼓? 我现在很困惑该不该和女友继续发展下去 电脑上字体怎么安装方法简单易行的字体安装步骤及技巧 网页字体显示不出.怎么办? 如何添加电脑上没有的字体解决电脑字体限制增加字体选择多样性_百度知 ... 不有效字体文件 电脑字体识别不了 梦见身上煤炭黑的长辈给我钥匙的预兆 株洲最值得一去的古镇 求高手帮做一份Access《学生选课信息查询管理系统》 学生选课子系统流程图 酷家乐客户端出现黑屏或是白框问题怎么办? 酷家乐mac版怎么安装 苹果系统能安装酷家乐软件吗? 苹果笔记本怎么下载酷家乐 海底捞上市,对于食客来说会有什么影响吗 酷家乐装修设计软件怎么下载啊? 在电脑上怎么下载酷家乐软件 美的空调遥控器调多少度内机就显示多少度!制热能力不是很好,会出热风但是室内温度没有明显变化调30度 美的空调怎么不显示温度? 如何去掉桌面小米生活黄页 美的空调显示室外27℃,室内29℃,什么意思? 小米4的生活黄页为什么打不开? 小米3如何可以进入生活黄页,我怎么找不到在哪?拨号界面怎么没有这个功能,是不是需要安装app? 怀孕初期为什么会流血 小米3系统更新21.0生活黄页没有了 为什么我的小米2s没有生活黄页,我的是稳定版,检查更新却说最新版本? oppo老人机怎样才可以上网 红米1s生活黄页这个app在哪打开?我都找不到。 一、设计题目 实验选课系统 急求c语言:学生选课系统程序设计(最好含流程图 的) 大学选修课程 面向对象 题目 学生选课系统静态结构示意图。。。 求一篇&quot;学生课绩管理系统中的数据库技术&quot;摘要,含英文 学生选课系统数据库表设计 C语言程序设计 学生成绩管理信息系统 车辆限行期间违章的怎么处罚 月结息20,流水大概有多少 ipad可以直接登录soul吗 我在信用社存了28万一年,48万三个月,流水结息是多少? 80元结息相当多少流水 开发论坛需要的技术 做一个论坛需要什么技术。。。有什么教程可以学的么 农行结息2.38流水多少? 求大佬推荐比较好的技术论坛? 有没有好一点的技术论坛啊?? ntfs和fat32的区别 u盘 建一个像百度贴吧这样的论坛需要哪些技术和条件? 想问下使用哪种技术做论坛比较容易上手 开发C#论坛 需要用到那些技术?