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

用C语言设计一个课程信息管理系统

发布网友 发布时间:2022-05-05 00:58

我来回答

2个回答

热心网友 时间:2022-06-28 00:51

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;

struct List
{
string m_Name;
string m_ID;//可能有的学号里有字母,所以用string类型。
short int m_Chinese;
short int m_Match;
short int m_English;
struct List *Next; //指针域。
};

typedef struct List Node;
typedef Node *Link;

//---------------函数声明-------------------
Link Create(Link Head);
Link Search(Link Head);
Link Search_front(Link Head);
void Release(Link Head);
void Display(Link Head);
void Display_One(Link Head);
void Display(Link Head,fstream& ofile);
Link AddInfo(Link Head);
Link DelInfo(Link Head);
Link Modify(Link Head);
void Grade_Stat(Link Head);
Link Sort(Link Head);
//---------------函数实现-------------------
Link Create(Link Head)
{
/*构造一个头节点*/
Head=(Link)new Node;
if(!Head)
{
cout<<"分配内存失败。"<<endl;
exit(-1);
}
Head->m_Name="";
Head->m_ID="";
Head->m_Chinese=0;
Head->m_Match=0;
Head->m_English=0;
Head->Next=NULL;
return Head;
}

Link Search(Link Head)
{
cout<<" 1.按姓名查询 2.按学号查询 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
ptr=Head;
if(select==1)
{
string name;
cout<<"请输入要查询的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;

}
else if(select==2)
{
string ID;
cout<<"请输入要查询的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return ptr;
}

Link Search_front(Link Head)
{//返回前驱节点。
cout<<" 1.按姓名删除 2.按学号删除 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
Link front;
ptr=Head->Next;
front=Head;
if(select==1)
{
string name;
cout<<"请输入要删除的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;

}
else if(select==2)
{
string ID;
cout<<"请输入要删除的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return front;
}

void Release(Link Head)
{
Link ptr;
while(Head!=NULL)
{
ptr=Head;
Head=Head->Next;
delete ptr;
}
}

void Display(Link Head)
{
Link ptr;
ptr=Head->Next;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 所有学生信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
ptr=ptr->Next;

}
}
void Display(Link Head,fstream& ofile)
{
Link ptr;
ptr=Head->Next;
ofile<<"----------------------------------------------------------------------"<<endl;
ofile<<"---------------------------- 所有学生信息 --------------------------"<<endl;
ofile<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
ofile<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
ptr=ptr->Next;

}
}

void Display_One(Link Head)
{
Link ptr;
ptr=Head;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 查询结果信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
}

Link AddInfo(Link Head)
{
Link ptr;
ptr=Head;
while(ptr->Next!=NULL)
{
ptr=ptr->Next;
}
Link ptr2;
char again;
do
{
ptr2=(Link)new Node;
if(!ptr2)
{
cout<<"内存分配失败!"<<endl;
exit(-1);
}
//数据域
string Name,ID;
short int Chinese,Match,English;
cout<<"输入姓名:";
cin>>Name;
cout<<endl<<"输入学号:";
cin>>ID;
cout<<endl<<"语文成绩:";
cin>>Chinese;
cout<<endl<<"数据成绩:";
cin>>Match;
cout<<endl<<"英语成绩:";
cin>>English;

ptr2->m_Name=Name;
ptr2->m_ID=ID;
ptr2->m_Chinese=Chinese;
ptr2->m_Match=Match;
ptr2->m_English=English;

//指针域
ptr2->Next=NULL;//作为尾节点。
ptr->Next=ptr2;//连接入链表。
ptr=ptr2;//将ptr2作为下一次产生的节点的前驱节点.

cout<<"是否继续输入?(Y/N) ";
cin>>again;

}while(again=='Y'||again=='y');
return Head;
}

Link DelInfo(Link Head)
{
Link ptr;
Link ptr2;
ptr=Head;
Link f_ptr;//前驱节点。
f_ptr=Search_front(ptr);

ptr2=f_ptr->Next;
f_ptr->Next=f_ptr->Next->Next;
delete ptr2;
return Head;
}

Link Modify(Link Head)
{
Link ptr;
ptr=Head;
ptr=Search(ptr);
cout<<"修改前信息为:"<<endl;
Display_One(ptr);
//cout<<"请选择你要修改的选项:A:姓名 B:学号 C:语文成绩 D:数学成绩 E:英语成绩"<<endl;
string name,ID;
float Chinese,Match,English;
cout<<"输入新姓名:";
cin>>name;
cout<<endl<<"输入新学号:";
cin>>ID;
cout<<endl<<"输入新语文成绩:";
cin>>Chinese;
cout<<endl<<"输入新数学成绩:";
cin>>Match;
cout<<endl<<"输入新英语成绩:";
cin>>English;

ptr->m_Name=name;
ptr->m_ID=ID;
ptr->m_Chinese=Chinese;
ptr->m_Match=Match;
ptr->m_English=English;

cout<<endl<<"修改后信息为:"<<endl;
Display_One(ptr);

return Head;
}

void Grade_Stat(Link Head)
{//成绩统计。
Link ptr;
ptr=Head;
cout<<"请输入你要查询的课程名(chinese|match|english)和一个分数范围[min,max]."<<endl;
string name;
short int min,max;
int SwitchNum;
cout<<"课程名:";
cin>>name;
cout<<endl<<"分数下限:";
cin>>min;
cout<<endl<<"分数上限:";
cin>>max;
if(name=="chinese")
SwitchNum=1;
else if(name=="match")
SwitchNum=2;
else if(name=="english")
SwitchNum=3;
else
{
cout<<"请输入一个正确的课程名:"<<endl;
return;
}
while(ptr!=NULL)
{
switch(SwitchNum)
{
case 1:
if(ptr->m_Chinese<=max&&ptr->m_Chinese>=min)
Display_One(ptr);
break;
case 2:
if(ptr->m_Match<=max&&ptr->m_Match>=min)
Display_One(ptr);
break;
case 3:
if(ptr->m_English<=max&&ptr->m_English>=min)
Display_One(ptr);
}
}

}

Link Sort(Link Head)
{//我创建的是带头节点的链表。用直接插入法。
cout<<"请输入你想排序的课程名(用中文):";
string course_name;
cin>>course_name;
if((Head->Next==NULL)||(Head->Next->Next==NULL))//此步条件判断非常有价值。
{
cout<<"数据节点数少于2个,不用排序!"<<endl;
return Head;
}
//-----------第二步;
Link ptr;
Link ptr_F;
Link ptr_N;
ptr=Head->Next->Next;
ptr_F=Head;
Head->Next->Next=NULL;//到此,分成了两个链表。
//第三步。
while(ptr)
{
ptr_N=ptr->Next;
ptr_F=Head;//ptr_F的归位。
while(ptr_F->Next)
{
if(course_name=="语文")
{
if(ptr->m_Chinese>ptr_F->Next->m_Chinese)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="数学")
{
if(ptr->m_Match>ptr_F->Next->m_Match)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="英语")
{
if(ptr->m_English>ptr_F->Next->m_English)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
}//while(ptr_F->Next)
if(ptr_F->Next==NULL)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;//表示插到有序链表的最后面了。
}

ptr=ptr_N;//归位,准备下一次排序。

}//while(ptr)
cout<<"从高到低,排序成功!"<<endl;
return Head;
}

//----------主函数----------------------
int main()
{

fstream ofile;
ofile.open("e:\\student.txt",ios_base::out);
if(!ofile)
{
cout<<"文件打开失败。"<<endl;
exit(-1);
}

Link head=0;
head=Create(head);

while(1)
{

cout<<"*****************************************************"<<endl;
cout<<"*** 1.添加信息 2.修改信息 3.删除信息 4.信息查询 ***"<<endl;
cout<<"*** 5.成绩统计 6.排 序 7.显示/保存 0.退 出 ***"<<endl;
cout<<"*****************************************************"<<endl;
cout<<"请选择正确的菜单项:";
int sel;
cin>>sel;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>sel;
}
switch(sel)
{
case 0:
exit(0);
case 1:
head=AddInfo(head);
break;
case 2:
head=Modify(head);
break;
case 3:
head=DelInfo(head);
break;
case 4:
Search(head);
break;
case 5:
Grade_Stat(head);
break;
case 6:
Sort(head);
break;
case 7:
Display(head);//在标准显示器上显示。
Display(head,ofile);//在文件中显示。
break;
default:
break;
}
}

Release(head);
return 0;
}
换一下汉字就好了

热心网友 时间:2022-06-28 00:51

#include
#include
#include
#define N 10
struct majors //课程信息结构体
{
int num; // 课程编号
char majorsname[12]; //课程名称
char teachername[15]; //授课老师
char clas[20]; //课程所属专业(扩展功能)
int a,b,c; //学分 课号 价格(扩展功能)
double pjf; // 课程质量评分(扩展功能)
};

void main()
{
void shuru(struct majors stu[N]); //子函数定义
void chuli(struct majors stu[N]);
void xiugai(struct majors stu[N]);
void shuchu(struct majors stu[N]);
void paixu(struct majors stu[N]);
void chaxun(struct majors stu[N]);
void tongj(struct majors stu[N]);
double pjf(struct majors stu[N]);
void bjgkm(struct majors stu[N]);
struct majors stu[N];
int i=0,j=0,p=0,u=0;
char str[70][500];
FILE *fp1,*fp;
if((fp=fopen("课程信息.txt","r"))==NULL) //提示文件存盘问题
printf("注意:为免出错,第一次使用本程序,请选1 手动输入课程信息. \n");
else
{
for(i=1;i<=N;i++)
{
if(i==1)
fp=fopen("课程信息.txt","r");
fscanf(fp,"%d%s%s%s%d%d%d",&stu[i].num,stu[i].name,stu[i].teachername,stu[i].clas,&stu[i].a,&stu[i].b,&stu[i].c);
if(1==N)
fclose(fp);
}
}
int choice;
do{
for(i=0;i<18;i++)
printf("**");
printf("主菜单");
for(j=0;j<18;j++)
printf("**");
printf("\n");
printf("#请选择:1 课程信息输入 2课程信息修改与删除 3 课程信息查询 4 信息输出 5 退出#\n");
for(i=0;i<20;i++)
printf("***");
printf("**\n");
scanf("%d",&choice);
switch(choice)
{
case 1 :
shuru(stu) ; break;
case 2 :
xiugai(stu) ; break;
case 3 :
chuli(stu) ; break;
case 4 :
shuchu(stu) ; break;
case 5 : break;
default : puts("error"); return;
}

} while(choice!=5);
fp1=fopen("课程信息.txt","w");
for(i=1;i<=N;i++)
{

fprintf(fp1,"%d ",stu[i].num);
fprintf(fp1,"%s ",stu[i].name);
fprintf(fp1,"%s ",stu[i].teachername);
fprintf(fp1,"%s ",stu[i].clas);
fprintf(fp1,"%d ",stu[i].a);
fprintf(fp1,"%d ",stu[i].b);
fprintf(fp1,"%d ",stu[i].c);
fprintf(fp1,"\n");
}
puts("信息已保存在“课程信息.txt”中 Thank you!!");
fclose(fp1);
}

void shuru(struct majors stu[N])
{
}
void chuli(struct majors stu[N])
{
}
void xiugai(struct majors stu[N])
{
}
void shuchu(struct majors stu[N])
{
}
void paixu(struct majors stu[N])
{
}
void chaxun(struct majors stu[N])
{
}
void tongj(struct majors stu[N])
{
}
//double pjf(struct majors stu[N])
//{

//}
void bjgkm(struct majors stu[N])
{
}
怎样做一个C语言课程信息管理系统

首先 要定义机构体 然后就是设计函数 也就是系统功能 录入 查询 删除 修改等 switch语句设计菜单 include &lt;stdio.h&gt; include &lt;stdlib.h&gt; define NULL 0 typedef struct student { char clas[20];char name[20];char number[20];int math;int english;int computer;float sum;float ave;struct st...

软件设计与开发

在深圳市法本信息技术股份有限公司,软件设计与开发是我们核心业务的核心竞争力。我们遵循先进的软件开发方法论,如敏捷开发,确保项目高效迭代。设计过程中,我们注重用户体验与需求深度分析,通过原型设计与系统架构规划,打造高可用、易扩展的软件系统。开发环节则强调代码质量与团队协作,利用云原生技术栈加速产品上线,为客户提供稳定、安全、高效的软件解决方案。深圳市法本信息技术股份有限公司专注于数字化技术服务,致力为客户提供先进的数字化平台、技术和解决方案,以数字化技术为依托,聚焦自主安全可控的实时智能计算(Real-time Intelligent Computing , RTIC)关键技术和产品,助力金融、互联网、软...

用C语言编写学生信息管理系统,十万火急!

if((fread(&amp;info[i],sizeof(info[i]),1,fp))!=1)break;} printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");for(j=0,k=1;j

C语言程序设计 题目:学生信息管理系统

(1)学生信息录入功能 1)用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、语文四门课成绩。 2)可插入一个或多个学生信息到当前编辑的班级数据中。 (2)文件保存功能 1)学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和重新保存2)用户输入学生信息可随时保存数据文件。 (3)...

C语言课程设计:学生学籍管理系统。有谁有代码给我做个参考吗?谢谢了...

case '1': read(); //调用建立链表的函数;输出链表信息;print();printf("\nPress any key Continue ");//getchar();getchar();break;case '2': //调用按学号查找学生信息的函数;并输出查找结果信息;long c;printf("input the number you want to find:");scanf("%ld",&amp;c);find(c...

写一个学生信息的管理系统,用C语言和数据结构,我想请问一下基本的框架...

while(1){ system("cls");//清屏 printf(" ---学生成绩管理系统---\n\n");printf(" 1--创建学生成绩表 2--插入学生成绩\n\n");printf(" 3--删除学生成绩 4--按学号查找\n\n");printf(" 5--显示学生成绩表 6--成绩统计\n\n");printf(" 0--退出\n\...

用C语言设计一个学生信息查询系统程序

1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。2、编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。3、在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。5、在Stu源文件的...

c语言课程设计学籍管理系统

printf("请输入学生个数;");scanf("%d",&amp;n);printf("请输入信息和成绩\n");printf("姓名,学号,英语,高数,C语言,体育:");printf("\n");stu p,q;p=q=(stu)malloc(sizeof(student));head=p;for(i=0;i&lt;n;i++){ p-&gt;next=q;p=q;scanf("%s%d%d%d",q-&gt;name,&amp;q-&gt;num,...

c语言课程设计学生成绩管理系统

if ((p=fopen("c:\\kemu.txt","r"))==NULL){ printf("您好,欢迎使用学生成绩管理系统\n\n因为您是第一次使用,请输入科目名称(三科)\n\n");p=fopen("c:\\kemu.txt","w");printf("输入课程1名称:");scanf("%s",frist[0].name);fprintf(p,"%s\n",frist[0].name);printf(...

c语言课程设计求助 学生管理系统 要求:1.可输入学生学号、姓名、性别...

int stuscore[3]; //学生3门课成绩 };int main() { int i, j;student stu[10];//为了简单,此处只输入前3个学生的数据。如果要输入10个学生数据,把for中3改成10即可 for(i = 0; i &lt; 3; i++) { printf("请输入第%d个学生学号:", i + 1);scanf("%s", stu[i].stuNum);...

C语言设计一个学生学籍管理系统,要求文件形式保存,且用到链表

char filename[] = "D:\\编程学习\\编程实践\\c语言课程设计1 学生信息管理\\data.txt"; //文件名,此处为简化编程,采用固定地址名称,未作输入 FILE *fp; pstu head,ptr; //创建带表头结点的空单链表head,用来存放载入信息 head = (pstu)malloc(SIZE); ptr = head; ptr-&gt;next = NULL; //加载...

C语言程程设计职工信息管理系统 职工信息管理系统c语言课程设计 C语言课题设计学生信息管理系统 职工信息管理系统设计C语言 c语言班级信息管理系统设计 c语言课程信息管理系统 c语言课程设计管理系统登录 课程信息管理系统设计 C语言程序学生信息管理系统
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...和O3、1H216O和2H218O.下列有关说法正确的是( )A.35Cl和37Cl互称为... ...做环境分析指示物.下列说法中正确的是( )A.1H216O在相同 ...1H、2H、3H,氧也有3钟同位素:16O、17O、18O,那么水的种类最多有... 全身没力气、想睡觉怎么回事 我的乙肝检查单 请帮忙看看 帮忙看看乙肝检查报告 谢谢 万分感谢!好人一生平安 麻烦帮我看看乙肝两对半的结果 五冶集团由哪家控股 我的苹果6手机百度视频播放不了是什么原因? 高一怎么选科历生地 春节初四可以清垃圾吗 清理 白色垃圾活动总结 你与同学到某小区开展清扫垃圾活动时,看到一位中年妇女正在把垃圾倒在水池边,你赶忙上前劝阻,中年妇女 腾讯电脑管家垃圾清理的那个主题公益活动,办的很好,捐助爱心人人有责,不是么? sk2去角质化妆水使用方法 sk2化妆水乳液美容乳液美容液顺序 假设你是李华,你校英语俱乐部定于本周六在海边清理垃圾公益活动,写一则通知_百度问一问 在公共关系的产生和发展历史中, 报刊宣传活动 与 清垃圾运动 起到了哪些作用? 山西长治小伙徒手清垃圾,我们该如何爱心接力? 什么是公共关系学中的“清垃圾运动” 雪铁龙世嘉CNG现在能跑滴滴快车吗? 雪铁龙新世嘉不能加入专车? 18款雪铁龙c4世嘉能跑滴滴吗 什么样的车才能注册嘀嘀打车? 雪铁龙一八款C4世嘉能跑滴滴吗? 雪铁龙世嘉可以申请滴滴打车不 雪铁龙C4世嘉可以注册滴滴吗,滴滴车型里只有世嘉,没有C4世嘉,另外奇瑞艾瑞泽5,启辰D60也没有 怎么我注册滴滴车C4世嘉不可以注册? C4世嘉怎么注册不了滴滴? 六盘水市申请加入网络约车要如何办理 我有一台东风雪铁龙世嘉车,想成为滴滴快车 C语言编写学生选课管理信息系统 课程信息管理系统 C语言 怎么用c语言制作课程信息管理系统,课程哦,求大神,简单一点的也可以, 用C语言写一个 学生选课系统 就是一个学生管理系统,c语言,我需要在这个学生信息管理和课程信息 学生选课系统C语言程序 这个选课系统用c语言怎么写…… 教务信息管理系统(C语言) C语言课程任务设计——学生信息管理系统 360Hz原生触控采样率HDR10+和360Hz多指触控采样率谁更好? iQOO 7触控采样率到底是多少? 三位数乘两位数立竖式计算练习题_三四年级 小华在计算一个三位数乘两位数时,把两位数30写成36,这样接多出1080,那么正确? 地板有油如何清理的干净 360儿童卫士软件怎样更新手机 怎样测试手机的触控采样率 360儿童卫士怎么用 红米k30的触控采样率是多少 孔子的教育名言有哪些? 买了一个360儿童卫士3,不知怎么使用,安装卡后,怎么也打不进电话,求操作方法,谢谢.