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

求写一个 计算机程序设计(c语言) 课程设计报告 要求200行、程序难度定为初级难度。

发布网友 发布时间:2022-05-25 09:39

我来回答

2个回答

热心网友 时间:2023-10-05 07:01

/*学生信息管理系统C语言源代码student.c*/
#include <stdio.h> /*包含输入/输出头文件*/
#include <string.h> /*包含字符串处理头文件*/
#include <stdlib.h>

#define MAXSIZE 100 /*能够处理的学生总人数,可以随意修改*/

typedef struct {/*用于存放生日信息的结构体*/
int year;
int month;
int day;
}Date;

typedef struct Stud{/*用于存放学生信息的结构体*/
char Num[12]; /*学号*/
char Name[10]; /*姓名*/
char Sex[2]; /*性别*/
Date Birthday; /*出生日期*/
float English, DataStructure, CPlusPlus; /*三门课成绩*/
float Sum, Average; /*总成绩、平均成绩*/
}Student;

char CurFile[40]; /*存放当前正在操作的磁盘文件的文件名*/
int IsOpen=0; /*当前是否有磁盘文件被打开标志*/
int found=0; /*在查找学生信息时是否找到标志*/
Student stud[MAXSIZE]; /*用于存放读入内存中的所有学生信息的全局数组*/
int Index=0; /*存放实际学生人数的全局变量*/

/*各自定义函数原型声明*/
void Create(); /*新建学生信息文件*/
void Open(); /*打开学生信息文件,并读取学生信息到全局数组stud中*/
void Display(); /*显示学生信息*/
void Search(); /*查询学生信息*/
int SearchNum(char* Num); /*按学号查询学生信息*/
int SearchName(char* Name); /*按姓名查询学生信息*/
void Append(); /*添加学生信息*/
void Modify(); /*修改学生信息*/
void Delete(); /*删除学生信息*/
void Total(); /*统计所有学生某一科目总成绩*/
void Sort(); /*学生信息排序*/
void Backup(); /*备份学生信息*/
void menu() /*系统功能菜单*/
{
int choice;/*用于保存用户对功能菜单的选择结果*/
for( ; ; )
{ /*显示系统功能菜单*/
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("************ 8.统计学生信息 *****************\n");
printf("************ 9.学生信息排序 *****************\n");
printf("************ 10.备份学生信息 *****************\n");
printf("************ 0.退出系统 *****************\n");
printf("****************************************************\n");
printf(" 请选择要执行的操作(0~8):_");
scanf("%d", &choice);
switch(choice){
case 1: Create();break;
case 2: Open();break;
case 3: Display();break;
case 4: Search();break;
case 5: Append();break;
case 6: Modify();break;
case 7: Delete();break;
case 8: Total();break;
case 9: Sort();break;
case 10: Backup();break;
case 0: return;
default: printf("选择错误!请重新选择。\n");
}/*switch结束*/
}/*for结束*/
}

void ReOrEx()/*在用户执行完一项系统功能后,可以选择:是继续运行系统,还是退出系统*/
{
int n;
printf("\n****************************************************\n");
printf("*************** 1. 返回上级菜单 **************\n");
printf("*************** 0. 退出系统 **************\n");
printf("****************************************************\n");
printf(" 请选择(1/0)?_");
scanf("%d",&n);
if(n==0)
{
printf("\n****************************************************\n");
printf("************* 谢谢使用本系统! ***************\n");
printf("****************************************************\n");
exit(1);
}
}

void main()
{
printf("****************************************************\n");
printf("********* 欢迎使用学生信息管理系统! *********\n");
printf("****************************************************\n");
system("pause");
menu();/*系统功能以菜单的形式提供给用户*/
printf("\n****************************************************\n");
printf("************* 谢谢使用本系统! ***************\n");
printf("****************************************************\n");
}/*main函数结束*/

/*各自定义函数实现代码*/
int New(char* FileName)//创建磁盘文件
{
FILE *fp;
if((fp=fopen(FileName,"w"))==NULL)
{
return 0;
}
else
{
fclose(fp);
Index=0;
return 1;
}
}

void Create()/*新建学生信息文件*/
{
char FileName[40];
printf("请输入新建文件的名称:");
scanf("%s",&FileName);
if(strcmp(FileName,"studentbackup"))
{
strcat(FileName,".dat");
if(!New(FileName))
printf("%s文件创建失败!\n",FileName);
else
{
strcpy(CurFile,FileName);
printf("%s文件创建成功!\n",FileName);
}
}
else
{
printf("%s是备份文件,禁止创建与此文件同名的文件!\n",FileName);
}
ReOrEx();
}
void Open()/*打开学生信息文件*/
{
char FileName[40];
printf("请输入要打开的数据文件的名称:");
scanf("%s",&FileName);
if(strcmp(FileName,"studentbackup"))
{
strcat(FileName,".dat");
if(IsOpen==0)
{
FILE *fp;
if((fp=fopen(FileName,"rb"))==NULL)
{
printf("%s文件打开失败!\n",FileName);
}
else
{
IsOpen=1;
Index=0;
while(!feof(fp))
{
fread(&stud[Index],sizeof(struct Stud),1,fp);
Index++;
}
Index--;
printf("学生总人数为:%d\n",Index);
fclose(fp);
printf("%s文件打开成功!\n",FileName);
strcpy(CurFile,FileName);
}
}
else
printf("%s文件已经打开!\n",FileName);
}
else
printf("%s是备份文件,禁止打开此文件!\n",FileName);
ReOrEx();
}
void Display()/*显示全部学生信息*/
{
int i;
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法显示!\n");
}
else
{
printf("\n 显示所有学生成绩信息\n\n");
printf("%--12s%--11s%--5s%--14s%--12s%--15s%--12s%--12s%--12s\n","Num","Name","Sex","Birthday",
"English","DataStructure","CPlusPlus","Sum","Average");
for(i=0;i<Index;i++)
{
printf("%--12s%--11s%--5s%4d/%2d/%2d%10.2f%15.2f%12.2f%12.2f%12.2f\n\n",stud[i].Num,
stud[i].Name,stud[i].Sex,stud[i].Birthday.year,stud[i].Birthday.month,
stud[i].Birthday.day,stud[i].English,stud[i].DataStructure,stud[i].CPlusPlus,
stud[i].Sum,stud[i].Average);
}
}
ReOrEx();
}

int SearchNum(char* Num)/*按学号查询学生信息*/
{
int i;
for(i=0;i<Index;i++)
{
if(!strcmp(stud[i].Num,Num))
{
printf("对应此学号的学生信息存在!\n");
found=1;
return i;

}
}
printf("没有此学生的信息!\n");
found=0;
return 0;
}

int SearchName(char* Name)/*按姓名查询学生信息*/
{
int i;
for(i=0;i<Index;i++)
{
if(!strcmp(stud[i].Name,Name))
{
printf("对应此学号的学生信息存在!\n");
found=1;
return i;
}
}
printf("没有此学生的信息!\n");
found=0;
return 0;
}

void Search()/*查询学生信息*/
{
int n;
int i;
char Num[12];
char Name[10];
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法查询!\n");
}
else
{
printf("\n 查询某一学生信息\n");
printf("****************************************************\n");
printf("*************** 1. 按学号查询 *************\n");
printf("*************** 2. 按姓名查询 *************\n");
printf("****************************************************\n");
printf(" 请选择(1/2)?_");
scanf("%d",&n);
if(n==1)
{

printf("请输入学生学号:\n");
scanf("%s",Num);
i=SearchNum(Num);
}
else if(n==2)
{

printf("请输入学生姓名:\n");
scanf("%s",&Name);
i=SearchName(Name);
}
printf("该学生的具体信息为:\n\n");
printf("%--12s%--11s%--5s%--14s%--12s%--15s%--12s%--12s%--12s\n","Num","Name","Sex","Birthday",
"English","DataStructure","CPlusPlus","Sum","Average");
printf("%--12s%--11s%--5s%4d/%2d/%2d%10.2f%15.2f%12.2f%12.2f%12.2f\n\n",stud[i].Num,
stud[i].Name,stud[i].Sex,stud[i].Birthday.year,stud[i].Birthday.month,
stud[i].Birthday.day,stud[i].English,stud[i].DataStructure,stud[i].CPlusPlus,
stud[i].Sum,stud[i].Average);
}
ReOrEx();
}

void AddData()/*添加一条学生信息*/
{
char Num[12];
char Name[10];
char Sex[2];
int Year,Month,Day;
float English,DataStructure,CPP;
int location;
if(Index>=MAXSIZE)
{
printf("错误! 学生信息已满,不能添加!\n");
}
else
{ printf("执行添加学生信息操作!\n");

printf("\n请输入学生学号:");
scanf("%s",Num);
location=SearchNum(Num);
if (!found)
{
printf("可以进行添加操作!\n");
printf("\n请输入学生姓名:");
scanf("%s",Name);
printf("\n请输入学生性别:");
scanf("%s",&Sex);
printf("\n请输入学生出生年份:");
scanf("%d",&Year);
printf("\n请输入学生出生月份:");
scanf("%d",&Month);
printf("\n请输入学生出生日:");
scanf("%d",&Day);
printf("\n请输入学生英语成绩:");
scanf("%f",&English);
printf("\n请输入学生数据结构成绩:");
scanf("%f",&DataStructure);
printf("\n请输入学生C++成绩:");
scanf("%f",&CPP);
printf("\n");
strcpy(stud[Index].Num,Num);
strcpy(stud[Index].Name,Name);
strcpy(stud[Index].Sex,Sex);
stud[Index].Birthday.year=Year;
stud[Index].Birthday.month=Month;
stud[Index].Birthday.day=Day;
stud[Index].English=English;
stud[Index].DataStructure=DataStructure;
stud[Index].CPlusPlus=CPP;
stud[Index].Sum=English+DataStructure+CPP;
stud[Index].Average=stud[Index].Sum/3;
Index++;
printf("插入一条学生信息操作成功!\n");
}
else printf("不能进行添加学生信息操作!\n");
}
}

void Save(char* FileName)/*学生信息存盘*/
{
FILE *fp;
int i;
if((fp=fopen(FileName,"wb"))==NULL)
{
printf("文件打开失败!");
return;
}
for(i=0;i<Index;i++)
{
fwrite(&stud[i],sizeof(struct Stud),1,fp);

}
fclose(fp);
}

void Append()/*添加学生信息*/
{
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法添加!\n");
}
else
{
AddData();
Save(CurFile);
}
ReOrEx();
}

void ModifyData()/*修改一条学生信息*/
{
char Num[12];
char Name[10];
char Sex[2];
float English,DataStructure,CPP;
int Year,Month,Day;
int location;
printf("\n执行修改学生信息操作!\n\n");
printf("请输入将要修改的学生的学号:");
scanf("%s",Num);
location=SearchNum(Num);
if (found)
{
printf("可以进行修改学生信息操作!\n");
printf("\n请输入学生姓名:");
scanf("%s",Name);
printf("\n请输入学生性别:");
scanf("%s",&Sex);
printf("\n请输入学生出生年份:");
scanf("%d",&Year);
printf("\n请输入学生出生月份:");
scanf("%d",&Month);
printf("\n请输入学生出生日:");
scanf("%d",&Day);
printf("\n请输入学生英语成绩:");
scanf("%f",&English);
printf("\n请输入学生数据结构成绩:");
scanf("%f",&DataStructure);
printf("\n请输入学生C++成绩:");
scanf("%f",&CPP);
printf("\n");
strcpy(stud[location].Num,Num);
strcpy(stud[location].Name,Name);
strcpy(stud[location].Sex,Sex);
stud[location].Birthday.year=Year;
stud[location].Birthday.month=Month;
stud[location].Birthday.day=Day;
stud[location].English=English;
stud[location].DataStructure=DataStructure;
stud[location].CPlusPlus=CPP;
stud[location].Sum=English+DataStructure+CPP;
stud[location].Average=stud[Index].Sum/3;
printf("执行修改学生信息操作成功!\n");
}
else printf("不能进行修改学生信息操作!\n");
}

void Modify()/*修改学生信息*/
{
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法修改!\n");
}
else
{
ModifyData();
Save(CurFile);
}
ReOrEx();
}

int DeleteData()/*删除一条学生信息*/
{
char Num[12];
int location,i;
printf("\n 执行删除学生信息操作!\n\n");
printf("警告!学生信息一旦删除,将不可恢复。请小心使用该操作!\n\n");
printf("请输入将要删除的学生的学号:\n");
scanf("%s",Num);
location=SearchNum(Num);
if(found)
{
if(location!=MAXSIZE)
{
for(i=location;i<MAXSIZE;i++)
{
strcpy(stud[i].Num,stud[i+1].Num);
strcpy(stud[i].Name,stud[i+1].Name);
strcpy(stud[i].Sex,stud[i+1].Sex);
stud[i].Birthday.year=stud[i+1].Birthday.year;
stud[i].Birthday.month=stud[i+1].Birthday.month;
stud[i].Birthday.day=stud[i+1].Birthday.day;
stud[i].English=stud[i+1].English;
stud[i].DataStructure=stud[i+1].DataStructure;
stud[i].CPlusPlus=stud[i+1].CPlusPlus;
stud[i].Sum=stud[i+1].Sum;
stud[i].Average=stud[i+1].Average;
}
}
Index--;
return 1;
}
return 0;
}

void Delete()/*删除学生信息*/
{
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法删除!\n");
}
else
{
if(DeleteData())
{
Save(CurFile);
printf("删除一条学生信息操作成功!\n");
}
else
{
printf("不能进行删除操作!\n");
printf("删除一条学生信息操作失败!\n");
}
}
ReOrEx();
}

float GetOneCourseSum(int n)/*计算所有学生某一科目的总成绩*/
{
float N=0;
int i;
switch(n){
case 1://计算英语总成绩
{
for(i=0;i<Index;i++)
{
N+=stud[i].English;
}
}
break;
case 2://计算数据结构总成绩
{
for(i=0;i<Index;i++)
{
N+=stud[i].DataStructure;
}
}
break;
case 3://计算C++总成绩
{
for(i=0;i<=Index;i++)
{
N+=stud[i].CPlusPlus;
}
}
break;
}
return N;
}

float GetOneCourseAverage(int n)/*计算所有学生某一科目的平均成绩*/
{
float temp=0;
temp=GetOneCourseSum(n)/Index;
return temp;
}

void Total()//统计某一科目总成绩
{
int x;
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法统计成绩!\n");
}
else
{
printf("\n 统计某一科目总成绩及平均成绩\n");

printf("\n");
printf("****************************************************\n");
printf("*** 1. 统计《英语》课程总成绩及平均成绩 ***\n");
printf("*** 2. 统计《数据结构》课程总成绩及平均成绩 ***\n");
printf("*** 3. 统计《C++》课程总成绩及平均成绩 ***\n");
printf("****************************************************\n");
printf(" 请选择(1-3)?_");
scanf("%d",&x);
switch(x)
{
case 1:
printf("\n英语总成绩为:%5.2f\n\n",GetOneCourseSum(1));
printf("英语平均成绩为:%5.2f\n",GetOneCourseAverage(1));
break;
case 2:
printf("\n数据结构总成绩为:%5.2f\n\n",GetOneCourseSum(2));
printf("数据结构平均成绩为:%5.2f\n",GetOneCourseAverage(2));
break;
case 3:
printf("\nC++总成绩为:%5.2f\n\n",GetOneCourseSum(3));
printf("c++平均成绩为:%5.2f\n",GetOneCourseAverage(3));
break;
default:printf("选择错误!\n");
}
}
ReOrEx();
}

void Bubble(int N)/*冒泡排序*/
{
Student temp;
int change=1;
int i,j;
switch(N){
case 1://按英语成绩排序
{
for(i=Index-1;i>=1 && change;--i)
{
change=0;
for(j=0;j<i;++j)
if(stud[j].English>stud[j+1].English)
{
strcpy(temp.Num,stud[j].Num);
strcpy(temp.Name,stud[j].Name);
strcpy(temp.Sex,stud[j].Sex);
temp.Birthday.year=stud[j].Birthday.year;
temp.Birthday.month=stud[j].Birthday.month;
temp.Birthday.day=stud[j].Birthday.day;
temp.English=stud[j].English;
temp.DataStructure=stud[j].DataStructure;
temp.CPlusPlus=stud[j].CPlusPlus;
temp.Sum=stud[j].Sum;
temp.Average=stud[j].Average;

strcpy(stud[j].Num,stud[j+1].Num);
strcpy(stud[j].Name,stud[j+1].Name);
strcpy(stud[j].Sex,stud[j+1].Sex);
stud[j].Birthday.year=stud[j+1].Birthday.year;
stud[j].Birthday.month=stud[j+1].Birthday.month;
stud[j].Birthday.day=stud[j+1].Birthday.day;
这是学生信息系统一部分,想要的话把你邮箱留下,我把全部发给你追问609094937@qq.com

谢谢啦 我只需要最简单的 200左右就好 如果是这样的就谢谢啦

热心网友 时间:2023-10-05 07:02

在百度文库中打上网吧管理系统就出来了,你去下一个吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在RLC电路中,谐振频率为___同期为___谐振条件为___? 电磁振荡并联 RLC振荡回路的谐振频率与振荡特性 佛手柑水培还是干放 中山市美派电器有限公司怎么样? 成都美派电器有限公司怎么样? 两条不同品牌的DDR3内存条可以一起用吗 驾驶证的牡丹卡多长时间能办下来 新衣服必须用洗衣液洗才能去甲醛吗? 梦见逛街被偷抢 2024年买什么品牌的运动男鞋比较好? 计算机导论课程设计报告摘要怎么写 我三本毕业想考教师资格证考小学的好还是初中的好 想在照片里面添加 一些字或者摄影者名字。要求如下水印效果(水印 、廊桥)型,求怎么制作? 冀东水泥-(000401)目前最有发展前景的股票 冀东水泥的投资建议 冀东水泥000401有回升的可能吗? 000401连续几天下跌,现在可否进入呀? 行书的十字绣哪里有啊 宠辱不惊,闲看庭前花开花落 去留无意,漫随窗外云卷云舒 草根墨田:宠辱不惊,看庭前花开花落,去留无意,望天上云卷云舒 宠辱不惊,去留无意,是什么意思 什么是宠辱不惊,去留无意 宠辱不惊,去留无意的原文 女人生完孩子后,会不会变得更加爱老公? 生完孩子后我感觉现在都不是我想要的? 当你生完孩子后,你对自己有哪些更高的要求? 你好 我是刨妇产的 为什么生完孩子后老觉得心里空空 还特别的想我老公 “女人,为什么生完孩子后更想要” 为什么女人生完孩子特别想要? 欠农村信用社贷款 被起诉到* 拉入黑名单 我在别的银行存储卡里面的钱会不可以存钱吗 会不会被扣? 怎么看出男人是否出轨? 脸上长了好多小痘痘,挤出来都是小白米,是怎么了 脸上的小白痘痘是什么呢? 有什么方法可以让视力在短时间内提高一些? 怎样才能让眼睛的视力变好? 怎样让视力回升 怎么样才能使视力变好 课外阅读史铁生的我与地坛病隙碎笔等作品在班上召开史铁生作品读书交流活动 我与地坛 读书小报 给个板式就行 图文并茂 图别太难画 我与地坛读后感700字 糖尿病人可以喝茶化石茶吗? 你是我曾经拼了命爱过的人歌词啥意思? 网络热歌《你是我曾经拼命爱过的人》,听哭了无数痴情的人 女歌手,是一首伤感歌曲,每句最后一个字经常是en类发音,歌名是什么求解答!最近流行!歌词好像是如下 你是我曾经拼了命爱过的人歌词表达的是对初恋的感情还是对前妻的感情呢? 把郑源的歌曲编首诗 ::你是我生命中最爱的人 &quot;&quot;&quot;是哪首歌中的歌词啊 听说温水坐浴对前列腺有保健作用,用的时候一般温度保持在多少度为好? 前列腺炎患都长期用温水坐浴理疗有什么好处? 中专学历能考个什么有用的证书? 中专毕业。想考个证书。不知道考什么好。求大家帮忙。最好实用些的 。