帮初中同学做的简单的课程设计

因为同学没学链表,结构体,只能简单并且麻烦的做了一个课程设计。内容为存储学生信息和考试成绩,对成绩单进行编辑,排序,删除,显示等功能。

代码如下:

  1 #include <stdio.h>
  2 #include <conio.h>
  3 #include <string.h>
  4 #define NUMSTU 5000      /*最大学生人数*/
  5 #define NUMSCORE 4    /*成绩个数*/
  6 #define NAMELEN 100    /*姓名的最大长度<10*/
  7 void main()
  8 {
  9     char menuItem,subItem;        /*用户输入的菜单项*/
 10     int i,j,l;
 11     unsigned long tempNo;       //用于排序对调内存的中间变量
 12     char tempName[NAMELEN];
 13     float  sum,k;
 14
 15     /*主要数据结构*/
 16     unsigned long no[NUMSTU]={0};        /*学号*/
 17     char name[NUMSTU][NAMELEN]={""};    /*姓名*/
 18     float score[NUMSTU][NUMSCORE]={0};    /*数学、语文、英语、平均成绩*/
 19     int excellentNum[3]={0};            /*每科成绩为优秀(>=90)的人数*/
 20     char subject[NUMSCORE][NAMELEN]={"数学","语文","英语","平均"};
 21     int currentNumStu;                    /*当前表中的学生人数*/
 22
 23     currentNumStu=0;
 24     do
 25     {
 26         printf("|-------------------------------------------------------|\n");
 27         printf("|\t\t\t\t\t\t\t|\n");
 28         printf("|\t\t  请输入选项编号(0 ~~ 7):  \t\t|\n");
 29         printf("|\t\t\t\t\t\t\t|\n");
 30         printf("|-------------------------------------------------------|\n");
 31         printf("|\t\t\t\t\t\t\t|\n");
 32         printf("|\t\t    1——创建成绩单          \t\t|\n");
 33         printf("|\t\t    2——添加学生          \t\t|\n");
 34         printf("|\t\t    3——编辑学生          \t\t|\n");
 35         printf("|\t\t    4——删除学生          \t\t|\n");
 36         printf("|\t\t    5——统计成绩          \t\t|\n");
 37         printf("|\t\t    6——排序成绩单        \t\t|\n");
 38         printf("|\t\t    7——显示成绩         \t\t|\n");
 39         printf("|\t\t    0——退出                 \t\t|\n");
 40         printf("|-------------------------------------------------------|\n");
 41
 42         printf("请输入选项编号(0 ~ 7): ");
 43         /*清除键盘缓冲区*/
 44         fflush(stdin);
 45         scanf("%c",&menuItem);
 46
 47         switch(menuItem)
 48         {
 49             case ‘1‘:/*创建成绩单*/
 50                    if(currentNumStu>0)
 51                    {
 52                        printf("\n不能重新创建学生成绩单\n");
 53                    }
 54                    else
 55                    {
 56                        printf("注意:输入的结束标志为学号为0!\n");
 57                        i=0;
 58                        printf("请输入学号:");
 59                        scanf("%lu",&no[i]);
 60
 61                        /*清除键盘缓冲区*/
 62                        fflush(stdin);
 63                        while(no[i]!=0&&currentNumStu<NUMSTU)
 64                        {
 65                            printf("请输入姓名:");
 66                            gets(name[i]);
 67                           for(j=0; j<NUMSCORE-1; j++)
 68                           {
 69                               printf("请输入%s成绩:",subject[j]);
 70                               scanf("%f",&score[i][j]);
 71                           }
 72
 73                           /*计算平均成绩*/
 74                           sum=0;
 75                           for(j=0; j<NUMSCORE-1; j++)
 76                                 sum = sum+score[i][j];
 77                           score[i][3] =    sum/3;
 78
 79                           currentNumStu++;
 80                            if(currentNumStu==NUMSTU)
 81                            {   printf("成绩单已满!结束创建!!\n");
 82                                break;
 83                            }
 84                            i++;
 85
 86                            printf("请输入学号:");
 87                            scanf("%lu",&no[i]);
 88                            /*清楚键盘缓冲区*/
 89                            fflush(stdin);
 90                        }
 91                    }
 92                    break;
 93             case ‘2‘:
 94                   /*添加学生*/
 95                    if(currentNumStu>=NUMSTU)
 96                    {
 97                        printf("成绩单已满!不可再加学生信息!!\n");
 98                    }
 99                    else
100                    {
101                        i=currentNumStu;
102                        printf("请输入学号:");
103                        scanf("%lu",&no[i]);
104                        fflush(stdin);
105                        printf("请输入姓名:");
106                        gets(name[i]);
107                        for(j=0; j<NUMSCORE-1; j++)
108                        {
109                            printf("请输入%s成绩:",subject[j]);
110                            scanf("%f",&score[i][j]);
111                        }
112
113                           /*计算平均成绩*/
114                        sum=0;
115                        for(j=0; j<NUMSCORE-1; j++)
116                            sum = sum+score[i][j];
117                        score[i][3] =sum/3;
118                        currentNumStu++;
119                        printf("添加成功!");
120                    }
121                    break;
122             case ‘3‘:/*编辑学生信息*/
123                    scanf("%lu",&tempNo);
124                    for(i=0;i<currentNumStu;i++)
125                        if(no[i]==tempNo)
126                            break;
127                    if(i!=currentNumStu)
128                    {
129                        for(j=0; j<NUMSCORE-1; j++)
130                        {
131                            printf("请输入%s成绩:",subject[j]);
132                            scanf("%f",&score[i][j]);
133                        }
134
135                           /*计算平均成绩*/
136                        sum=0;
137                        for(j=0; j<NUMSCORE-1; j++)
138                            sum = sum+score[i][j];
139                        score[i][3] =sum/3;
140                        printf("编辑成功!");
141                    }
142                    else
143                        printf("不存在该学生!\n");
144                    break;
145             case ‘4‘:/*删除指定学号的学生信息*/
146                    printf("请输入学号:");
147                    scanf("%lu",&tempNo);
148                    for(i=0;i<currentNumStu;i++)
149                        if(no[i]==tempNo)
150                            break;
151                    if(i!=currentNumStu)
152                    {
153                        for(;i<currentNumStu-1;i++)
154                        {
155                            no[i]=no[i+1];
156                            strcpy(name[i],name[i+1]);
157                            for(j=0; j<NUMSCORE; j++)
158                            {
159                               score[i][j]=score[i+1][j];
160                            }
161                        }
162                        currentNumStu--;
163                        printf("删除成功!");
164                    }
165                    else
166                        printf("不存在该学生!\n");
167                     break;
168             case ‘5‘:/*统计每科成绩>=90分以上的学生人数*/
169                     if(currentNumStu==0)
170                         printf("目前无记录,请添加成绩单信息!\n");
171                     else
172                     {
173                         for(i=0;i<currentNumStu;i++)
174                             for(j=0; j<NUMSCORE-1; j++)
175                             {
176                                 if(score[i][j]>=90)
177                                     excellentNum[j]++;
178                             }
179                         printf("%10s%10s%10s\n","数学成绩","语文成绩","英语成绩");
180                         for(j=0; j<NUMSCORE-1; j++)
181                             printf("%10d",  excellentNum[j]);
182                         printf("\n");
183                     }
184                     break;
185             case ‘6‘:/*按学号升序或降序排列实现*/
186                     printf("|---------------------------------------|\n");
187                     printf("|                                       |\n");
188                     printf("|               排序菜单                |\n");
189                     printf("|                                       |\n");
190                     printf("|---------------------------------------|\n");
191                     printf("|                                       |\n");
192                     printf("|          1——按学号升序排列          |\n");
193                     printf("|          2——按学号降序排列          |\n");
194                     printf("|---------------------------------------|\n");
195
196                     printf("请输入选项编号(1 ~2): ");
197                     fflush(stdin);
198                     scanf("%c",&subItem);
199
200                     switch(subItem)
201                     {
202                         case ‘1‘:
203                                 if(currentNumStu<2)
204                                 {
205                                     printf("成绩表中少于2人则不做排序!\n");
206                                 }
207                                 else
208                                 {
209                                     /*按学号升序排列*/
210                                     for(i=0;i<currentNumStu-1;i++)
211                                        for(j=i+1; j<currentNumStu; j++)
212                                        {
213                                            if(no[i]>no[j])
214                                            {
215                                                tempNo=no[i];
216                                                no[i]=no[j];
217                                                no[j]=tempNo;
218                                                strcpy(tempName,name[i]);
219                                                strcpy(name[i],name[j]);
220                                                strcpy(name[j],tempName);
221                                                for(l=0; l<NUMSCORE; l++)
222                                                {
223                                                    k=score[i][l];
224                                                    score[i][l]=score[j][l];
225                                                    score[j][l]=k;
226                                                }
227                                            }
228                                        }
229                                     printf("排序结束,请选择菜单项显示信息!\n");
230                                 }
231                                 break;
232                         case ‘2‘:
233                                 if(currentNumStu<2)
234                                 {
235                                     printf("成绩表中少于2人则不做排序!\n");
236                                 }
237                                 else
238                                 {
239                                         /*按学号降序排列*/
240                                     for(i=0;i<currentNumStu-1;i++)
241                                        for(j=i+1; j<currentNumStu; j++)
242                                        {
243                                            if(no[i]<no[j])
244                                            {
245                                                tempNo=no[i];
246                                                no[i]=no[j];
247                                                no[j]=tempNo;
248                                                strcpy(tempName,name[i]);
249                                                strcpy(name[i],name[j]);
250                                                strcpy(name[j],tempName);
251                                                for(l=0; l<NUMSCORE; l++)
252                                                {
253                                                    k=score[i][l];
254                                                    score[i][l]=score[j][l];
255                                                    score[j][l]=k;
256                                                }
257                                            }
258                                        }
259                                         printf("排序结束,请选择菜单项显示信息!\n");
260                                 }
261                                 break;
262                         default:printf("非法输入\n");
263                     }
264                 break;
265             case ‘7‘:/*显示学生信息*/
266                 if(currentNumStu==0)
267                 {
268                     printf("无学生记录,请创建成绩单!\n");
269                 }
270                 else
271                 {
272                     printf("学生信息如下:\n");
273                     printf("%15s%15s%10s%10s%10s%10s\n","学号","姓名","数学成绩","语文成绩","英语成绩","平均成绩");
274                     for(i=0; i<currentNumStu; i++)
275                     {
276                         printf("%15lu",no[i]);
277                         printf("%15s",name[i]);
278                         for(j=0; j<NUMSCORE; j++)
279                             printf("%10.1f",  score[i][j]);
280                         printf("\n");
281                     }
282                 }
283                   break;
284             case ‘0‘:printf("您选择了“0——退出”\n");break;
285             default:printf("非法输入\n");
286         }
287
288     }while(menuItem!=‘0‘);
289 }

时间: 2024-10-08 08:16:22

帮初中同学做的简单的课程设计的相关文章

python练习:做一个简易的课程设计。Student Information Management System

Student Information Management System 犹记得,大一时候,用C语言做这个课程设计,我特么一口老血都要喷出来,现在用Python做,反而有一种亲切感. 做一个menu菜单,在while循环里调用定义的insert(),delete(),modify(),sort(),display(),exit()等函数. import pickle as p import os #Class Item class Item: def __init__(self,name,ag

随便说下课程设计

引子 很快就是学期末尾,一个学年来了,然后又过去.我们的课本呼啦呼啦的又翻了一圈,这也是目前大学的常态了.这几天师弟们也在忙碌着他们的课程设计,帮他们修改了一下.自己也回味起当年事,借此反思,同时也确定当下需要做好的事情. 对于课程设计的态度 以前上学时候,学点知识,看书本总觉得这样应付考试就够了,所谓及格万岁.那个时候根本不知道这门课程到底意味着什么.也是,时下教育总是有着各种怪品味:‘考上大学就轻松了’,‘上学时候不要谈恋爱’不外如是,捎带着学习都成了贬义词.可是事实呢,离开了校园才是真正学

课程设计(物体类),图片可能没有加载出来,自己运行一下就行了

一.课程设计题目与要求(包括题目与系统功能要求) A.<1>设计如下类,其功能和部分成员如下: Object:抽象类,所有的物体都有价值(profit)属性: Point:点的位置: Line(线段),Rectangle,Cuboid, Square,Cube,Circle,Cylinder. <2>功能:能够实现上述物体的移动(move),放大(zoomin),缩小(zoomout),大小比较(compare),打印物品信息(cout<<编号.面积.容积和价值)等操作

帮同学做的大一大作业:《我的家乡—郑州》

---恢复内容开始--- 最近在上海上学的一个高中同学让我帮忙,帮她做她们的计算机课程大作业. 由于关系不错我也不好意思拒绝就帮忙做了,因为这个学期刚刚开始接触HTML5和css,所以制作过程中有很多不懂的,而且由于HTML5是选修课,一星期只有一节,所以做这个花费了比较多的时间,这个网站是我制作的第一个网站,比较有纪念意义,所以发在博客上,作为纪念. 通过去做这个作业,我了解到很多课上学不到的东西.因为没有美工,从头到尾,都是我一个人在臆想,刚开始的时候,根本无从下手,我去参考别人做的家乡网站

web前端课程技术内容之如何做一个简单的手机端页面的翻页

[如何做一个简单的手机端页面的翻页] 第一步:创建移动端页面内 HTML + CSS [注]可用弹性布局 但需要注意的是 外层盒子的定位 第二步: 思考问题 要实现怎样的效果? 1. 手指滑动时触发事件[左右]两个方向 2.点击footer部分的下标实现切换效果 3.点击footer部分的下标实现下标颜色变化 第三步:编写JS代码 添加监听事件 document.addEventListener('DOMContentLoaded',function(){ 创建一个数组用于调用数组属性值 或者

【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎

Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看[demo],扫描后点击屏幕有惊喜哦… 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单的引擎里需要有三种元素:世界(World).发射器(Launcher).粒子(Grain).总得来说就是:发射器存在于世界之中,

使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)

猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51007512 使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Networking做一个简单的多人游戏例子-3/3 7. 在网络中控制Player移动 上一篇中,玩家操

做个简单的男女体重测试

用((:?)如果-否则): namespace 男女体重测试 { class Program { static void Main(string[] args) { double a, b ,n,m; //做个简单的体重测试 while (true) { Console.WriteLine("请输入性别:");                 string sex= Console.ReadLine(); Console.WriteLine("请输入您的体重(kg):&quo

[3] 用D3.js做一个简单的图表吧!

本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 前面说了几节,都是对文字进行处理,这一节中将用 D3.js 做一个简单的柱形图. 做柱形图有很多种方法,比如用 HTML 的 div 标签,或用 svg . 推荐用 SVG 来做各种图形.SVG 意为可缩放矢量图形(Scalable Vector Graphics),SVG 使用 XML 格式定义图像,不清楚什么是SVG的朋友请先在 w3cschools 学习下