一段C程序~~到底错在哪了?累死我了!也可以从编一个~多谢!

来源:百度知道 编辑:UC知道 时间:2024/05/06 06:20:35
问题~~~
一、课程设计题目:教师上课随机点名
二、课程设计工作自2006年6月18日起至2006年6月22日止
三、课程设计内容:
用C语言编写软件完成以下任务:
教师在每次上课时,需要对学生随机点名提问。每次只提问1名同学,对于任何一位同学的提问次数不可超过3次。如果所有的同学都被提问了3次,则次数归0,重新开始。学生信息应事先保存到文件myfile.dat中。学生共有4人,名单如下:
20013011001 杜永宁 20013011002 王传华
20013011003 殷泳 20013011004 杨柳青
所谓点名,是指计算器将某位同学的姓名和学号打印到屏幕上,则表示该同学被点名1次。
四、课程设计要求:
程序质量:
l 贯彻事件驱动的程序设计思想。
l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
l 用户界面中的菜单至少应包括“开始点名”、“显示所有同学点名情况”、“保存点名”、“退出”4项。

我的程序~

#include<stdio.h>
#include<string.h>
main()
{
int a=0,b=0,c=0,d=0;
char chr='O';
char t[]="noEnd";
//char *m[]={"20013011001杜永宁","20013011002王传华","20013011003殷泳","20013011004杨柳青"};

printf("........... A 开始点名.........end 结束点名...........\n");
printf("........... B 显示显示所有同学点名情况 ...........\n");
printf("......

好象switch语句中只能case int;case 后面必须是整形,而不能是字符;将chr强制转化为整形应该OK;你可以去试下

回来再看.

//////////////////////////////////////////////////////
// 2007.6.27 答复
// 你的那个数组char t[]="noEnd"; 会边界溢出的,你可以把它改成char t[32] = "noEnd";或者用我提供的动态数组。
//////////////////////////////////////////////////////
我添加了个随机数,你看看合适不?
另外,你写代码的风格很好,继续努力!

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

#define STUDENT_COUNT 4

void main()
{
int a=0,b=0,c=0,d=0;
char chr='O';
char *t = NULL;
char *m[]={"20013011001杜永?","20013011002王??","20013011003殷泳","20013011004?柳青"};
int i = 0;

printf("........... A ?始点名.........end ?束点名...........\n");
printf("........... B ?示?示所有同学点名情况 ...........\n");
printf("........... C 保存点名 ...........\n