高级语言课程设计7题.docx
- 文档编号:6900829
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:14
- 大小:44.67KB
高级语言课程设计7题.docx
《高级语言课程设计7题.docx》由会员分享,可在线阅读,更多相关《高级语言课程设计7题.docx(14页珍藏版)》请在冰豆网上搜索。
高级语言课程设计7题
高级语言课程设计
题目七学生课程管理设计
【说明及要求】
该系统能实现学生选课的一般功能,包括课程信息、学生选课信息的录入、修改、删除、查询功能。
【提示】
(1)设计可以以菜单方式进行;
(2)课程信息包括课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期;
(3)学生选课信息包括学号、课程编号;
(4)能按课程性质、学分查询课程;
(5)按学分降序排序课程信息;
(6)能查询某门课程学生选课情况。
思想:
用文件定义课程信息;
建立一个文件实现对课程信息的录入;
建立多个子函数,将主函数功能分为多个小功能,由子函数实现这些功能;
做一菜单,显示在显示屏上;
printf("主菜单:
\nN录入;F查找;X修改;D删除;Q退出\n\007");
if(n=='N')luru();/*当输入的字符为‘N’时,进入录入子函数*/
elseif(n=='F')chaxun();/*当输入的字符为‘F’时,进入查找子函数*/
elseif(n=='X')xg();/*当输入的字符为‘X’时,进入修改子函数*/
elseif(n=='D')shanchu();/*当输入的字符为‘D’时,进入删除子函数*/
elseif(n=='Q')break;/*当输入的字符为‘Q’时,退出程序*/
elseprintf("输入不正确,请重新输入,(注意区分大小写)");
当输入的字符与菜单中的字符符合时,进入子函数,实现该子函数的功能;
建立多个子函数,子函数分别为
intduqu();/*读取*/
voidpaixu();/*排序*/
intluru();/*录入*/
voidshuru();/*输入*/
voidxg();/*修改*/
voidshanchu();/*删除*/
intchaxun();/*查询*/
voidkc();/*课程性质*/
voidxf();/*学分查询*/
由子函数来实现各自的功能。
流程图
主函数流程图
输入数据流程图
选择进入子函数流程图
程序代码:
#include
#include
#include
#include
#include
#defineH100/*最大允许保存学生信息数*/
#defineprprintf
#definesscanf
charm[H][10][32];//存学生信息,H是行数(学生数),10为列数,32为字符串最大长度
longh;//学生信息总个数
charnp[H];//存行标*/
intduqu();/*读取*/
voidpaixu();/*排序*/
intluru();/*录入*/
voidshuru();/*输入*/
voidxg();/*修改*/
voidshanchu();/*删除*/
intchaxun();/*查询*/
voidkc();/*课程性质*/
voidxf();/*学分查询*/
/*************/
/***主函数****/
/*************/
main()
{
charn;
pr("\n\007");
duqu();
paixu();
for(;;)
{
pr("主菜单:
\nN录入;F查找;X修改;D删除;Q退出\n\007");
scanf("%c",&n);
if(n=='N')luru();
elseif(n=='F')chaxun();
elseif(n=='X')xg();
elseif(n=='D')shanchu();
elseif(n=='Q')break;
elsepr("输入不正确,请重新输入,(注意区分大小写)");
Sleep(1000);
system("cls");/*清屏,stdlib.h中函数*/
}
pr("你按了Q,系统即将关闭\n");
Sleep(1000);/*沉睡1秒,windows.h中的函数*/
return0;
}
/*************/
/*****读取****/
/*************/
intduqu()//读取
{
longi=0;
FILE*fp;
fp=fopen("kecheng.txt","r");
if(fp==NULL){pr("数据库中没有信息,请为数据库录入信息\n");luru();return0;}
rewind(fp);
while(!
feof(fp))/*如果不是文件尾*/
{
i++;
fscanf(fp,"%s%s%s%s%s%s%s%s%s%s\n",m[i][0],m[i][1],m[i][2],m[i][3],m[i][4],m[i][5],m[i][6],m[i][7],m[i][8],m[i][9]);
}
h=i;
return0;
}
/*************/
/****排序*****/
/*************/
voidpaixu()//排序
{
inti,j,k,x;
for(i=0;i<=h;i++)
np[i]=i;
for(k=0;k<=h;k++)
for(j=k;j<=h;j++)
if(strcmp(m[np[j]][8],m[np[k]][8])>0)/*如果m[np[j]][8]大于m[np[k]][8]),下标值交换*/
{
x=np[k];
np[k]=np[j];
np[j]=x;
}
}
/***************************************************************************************************************/
/*************/
/****录入*****/
/*************/
intluru()//录入
{
charn;
for(;;)
{
printf("录入菜单:
S输入;R返回;\n\007");
scanf("%c",&n);
if(n=='S')shuru();
elseif(n=='R'){paixu();return0;}
elseprintf("输入不正确,请重新输入");
system("cls");/*清屏,stdlib.h中函数*/
}
return0;
}
/*************/
/****输入*****/
/*************/
voidshuru()//输入
{
FILE*fp;
fp=fopen("quanbu.txt","at");
if(fp==NULL)fp=fopen("kecheng.txt","w");/*如果没有文件kecheng.txt,创建一个*/
h++;
pr("请输入学号\n\007");
s("%s",m[h][0]);
pr("请输入课程编号\n\007");
s("%s",m[h][1]);
pr("请输入课程名称\n\007");
s("%s",m[h][2]);
pr("请输入课程性质\n\007");
s("%s",m[h][3]);
pr("请输入总学时\n\007");
s("%s",m[h][4]);
pr("请输入授课学时\n\007");
s("%s",m[h][5]);
pr("请输入实验\n\007");
s("%s",m[h][6]);
pr("请输入上机学时\n\007");
s("%s",m[h][7]);
pr("请输入学分\n\007");
s("%s",m[h][8]);
pr("请输入开课学期\n\007");
s("%s",m[h][9]);
fprintf(fp,"%s%s%s%s%s%s%s%s%s%s\n",m[h][0],m[h][1],m[h][2],m[h][3],m[h][4],m[h][5],m[h][6],m[h][7],m[h][8],m[h][9]);
fclose(fp);
Sleep(1000);/*沉睡1秒,windows.h中的函数*/
}
/***************************************************************************************************************/
/*************/
/***查询******/
/*************/
intchaxun()//查询
{
charn;
while(n {system("cls");/*清屏,stdlib.h中函数*/ printf("查寻菜单: X按课程性质查询;M按学分查寻;R返回;\n\007"); scanf("%c",&n); if(n=='X')kc(); elseif(n=='M')xf(); elseif(n=='R')return0; elseprintf("输入不正确,请重新输入"); } Sleep(2000);/*沉睡2秒,windows.h中的函数*/ return0; } /*************/ /**按课程性质查询*/ /*************/ voidkc()//姓名 {inti,J=0; charx[20]; pr("请输入姓名\n\007"); s("%s",x); for(i=0;i { if(strcmp(x,m[np[i]][3])==0)/*如果m[np[i]][3](姓名列)和输入的字符串相同*/ { pr("该同学信息如下\n%-15s%-10s%-15s%-10s%-10s%-20s-15s%-15s%-15s%-15s%\n","学号","课程编号","课程名称","课程性质","总学时","授课学时","实验或上机学时","学分","开课学期"); pr("%-15s%-10s%-15s%-10s%-10s%-20s-15s%-15s%-15s%-15s%\n",m[np[i]][0],m[np[i]][1],m[np[i]][2],m[np[i]][3],m[np[i]][4],m[np[i]][5],m[np[i]][6],m[np[i]][7],m[np[i]][8],m[np[i]][9]); J=1; } } if(J==0)pr("对不起,没有该同学的信息"); pr("\n任意键返回\n"); getchar();getch(); } /*************/ /****删除*****/ /*************/ voidshanchu() { inti,J=0; charx[16]; pr("请输入要修改同学的学号\n\007"); s("%s",x); for(i=0;i if(strcmp(x,m[np[i]][8])==0)/*如果m[np[i]][8](学号列)和输入的字符串相同*/ { strcpy(m[np[i]][8],m[np[i+1]][8]); } pr("\n任意键返回\n"); getchar();getch(); } /*************/ /****修改*****/ /*************/ voidxg() {inti,J=0; charx[16]; pr("请输入要修改同学的学号\n\007"); s("%s",x); for(i=0;i if(strcmp(x,m[np[i]][8])==0)/*如果m[np[i]][8](学号列)和输入的字符串相同*/ { pr("%-15s%-10s%-15s%-10s%-10s%-20s-15s%-15s%-15s%-15s%\n","学号","课程编号","课程名称","课程性质","总学时","授课学时","实验或上机学时","学分","开课学期"); pr("请输入学号\n\007"); s("%s",m[np[i]][0]); pr("请输入课程编号\n\007"); s("%s",m[np[i]][1]); pr("请输入课程名称\n\007"); s("%s",m[np[i]][2]); pr("请输入课程性质\n\007"); s("%s",m[np[i]][3]); pr("请输入总学时\n\007"); s("%s",m[np[i]][4]); pr("请输入授课学时\n\007"); s("%s",m[np[i]][5]); pr("请输入实验\n\007"); s("%s",m[np[i]][6]); pr("请输入上机学时\n\007"); s("%s",m[np[i]][7]); pr("请输入学分\n\007"); s("%s",m[np[i]][8]); pr("请输入开课学期\n\007"); s("%s",m[np[i]][9]); J=1; } if(J==0)pr("对不起,没有该同学的信息"); pr("\n任意键返回\n"); getchar();getch(); } /*************/ /*按学分查寻**/ /*************/ voidxf() {inti,J=0; charx[16]; pr("请输入学号\n\007"); s("%s",x); for(i=0;i if(strcmp(x,m[np[i]][8])==0)/*如果m[np[i]][8](学分列)和输入的字符串相同*/ { pr("%-15s%-10s%-15s%-10s%-10s%-20s-15s%-15s%-15s%-15s%\n","学号","课程编号","课程名称","课程性质","总学时","授课学时","实验或上机学时","学分","开课学期"); pr("%-15s%-10s%-15s%-10s%-10s%-20s-15s%-15s%-15s%-15s%\n",m[np[i]][0],m[np[i]][1],m[np[i]][2],m[np[i]][3],m[np[i]][4],m[np[i]][5]); J=1; } if(J==0)pr("对不起,没有该同学的信息"); pr("\n任意键返回\n"); getchar();getch(); } /****************************************************************************************************************/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言 课程设计