送上来找人骂的程序

hexuhui 2003-10-16 06:24:46
下午贴了一个,被各位高手骂了一通,小弟感激不尽。
请各位高手继续批评下面的用户注册程序,主要从:
1.编程风格
2.程序结构
3.有无错误
两个方面
#include <stdio.h>
#include <string.h>
struct stu_info
{
char UID[20];
int age;
char PWD[20];
};

int showMainMenu()
{
/* 显示主菜单并且返回用户的选择 */
int s;
printf("您要?\n");
printf("1.注册新用户\n");
printf("2.使用已经注册的用户名登陆\n");
while (s!=49 && s!=50)
{
s=getchar();
}
return s-48;
}

int checkUID(const char *UID)
{
/* 检查用户名的长度 将来会增加更多的检查条件 */
if (strlen(UID)<4 || strlen(UID)>10)
{
return 1;
}
else
{
return 0;
}
}

int checkPWD(const char *PWD, const char * confirmPWD)
{

/* 密码必须和确认密码箱等,这里没有直接返回strcmp的值是因为还要增加更多的密码验证条件 */

if (strcmp(PWD,confirmPWD)==0)
{
return 0;
}
else
{
return 1;
}
}


int regist()
{
struct stu_info newStudent;
char confirmPWD[20];
strcpy(newStudent.PWD,"");
newStudent.age=0;
strcpy(newStudent.UID,"");

while(checkUID(newStudent.UID)!=0)
{
printf("\n请输入您的姓名:");
scanf("%20s",newStudent.UID);
}


while (newStudent.age<5 || newStudent.age>100)
{
printf("\n请输入您的年龄:");
scanf("%d",&newStudent.age);
}


while (checkPWD(newStudent.PWD,confirmPWD)!=0)
{
printf("\n请输入您的密码:");
scanf("%s",&newStudent.PWD);
printf("请再次输入您的密码:");
scanf("%s",confirmPWD);
}
printf("\n注册已经完成...\n");
return 0;
}



void main()
{
int select=0;
select=showMainMenu(); /* 调用showMain函数显示菜单并返回用户的选择 */

switch (select)
{
case 1:
regist();
break;
default:
printf("Found error");

}
}
...全文
52 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Meyer 2003-10-18
  • 打赏
  • 举报
回复
不要要求太高,做个稍大点的东西
大概 2-3k的程序,你就会发现自己组织代码的水平了.
Meyer 2003-10-18
  • 打赏
  • 举报
回复
>>跨平台、不同的编译器会发生什么情况等等
呵呵,如果你要提到跨平台这么高的水准那你的 showMainMenu()
也就没法用了,
毕竟不是所有平台都是使用的ASC编码
bbgbianbaogui 2003-10-17
  • 打赏
  • 举报
回复
继续
hexuhui 2003-10-17
  • 打赏
  • 举报
回复
大哥们 数据存储那块我是要加进去的 现在还没做。
希望大家苛刻的给我的程序挑毛病(跨平台、不同的编译器会发生什么情况等等)

谢谢了!
rockypan 2003-10-17
  • 打赏
  • 举报
回复
写得不错,如果有更多的人贴代码出来就好了:D
(我是新手)
Andy84920 2003-10-17
  • 打赏
  • 举报
回复
首先我认为程序的正确性是最重要的.
如果一个程序在怎么完美,它是错误的.那什么也不要谈!
这是程序的第一个要保证的东西!
liuhelh 2003-10-17
  • 打赏
  • 举报
回复
楼上说的很对
你这个注册程序并不能保存信息 难道你打算一直把注册内容保存在内存中吗?
所以需要一个文件来保存信息。
sevencat 2003-10-17
  • 打赏
  • 举报
回复
不过说老实话你这个程序很难看出你的功底。
因为功能太简单了。
你可以尝试一下
一开始从某文件中读入所有的密码和用户名:
加入一个列表中。
登录的时候进行检查。

或者你可以用数据库存放用户名和密码再进行查询。(比如说Mysql数据库中读出来)


毕竟简单的东西很难说你怎么样就像我写一段
#include <iostream>
int main()
{
char chartemp;
std::cin>>chartemp;
return 0;
}
然后拿出来问人家:
我这段程序写的怎么样?
请从下面几点来分析:
meijing 2003-10-17
  • 打赏
  • 举报
回复
在C++可以用常量,比用宏好像要好些
sharkhuang 2003-10-17
  • 打赏
  • 举报
回复
我给你体提的意见是不要用太多的数字!这些都喜都可以用宏代替!!!
sevencat 2003-10-17
  • 打赏
  • 举报
回复
不错了。
比我以前写得好多了 。


从这个开始慢慢来,
打好基础。
很快你就会是高手了
ionlic 2003-10-17
  • 打赏
  • 举报
回复
to TianGuangZao(天光早)

你也太激动了吧? 不觉得有些臆断吗?

我看不出楼主写的c吗? 我仅仅想问一下。

------------------------
to:楼主。我觉得你写的格式不错。 仅仅有一个问题想说:就是注释。

c的注释是/* */。 因为在有些时候编程,你可能想注释掉一段代码,进而写另一段代码。这样就可能出现注释符号的嵌套,这样在编程时会给你带来写麻烦。如果你是在c++的一些编译环境下写程序的话,用//注释符号会比较好些。当然可能通用性不好。
iceandfire 2003-10-17
  • 打赏
  • 举报
回复
同意TianGuangZao的看法!
我也提几个看法:
如果习惯使用tab键,那么将tab设为4最好,每行最大字符为80个为合适,这样在打印纸上可完全打出。
还有一点和zoohoo是一样的,不要有多个return出口,如果return 1后面有return 2之类的,那么最好将1或2赋与变量x,再return x。这是种好的习惯。
还有,你的程序所有存储都在内存中,可否考虑将数据脱机存储?
zoohoo 2003-10-17
  • 打赏
  • 举报
回复
不错不错,提3点小意见
1 不要使用tab,用空格代替
2 函数最好只有一个出口
3 main函数最好写成这样,int main(int argc, char *argv[]),在同unix保持兼容。
TianGuangZao 2003-10-17
  • 打赏
  • 举报
回复
to ionlic(ionlic):
明明是 c 程序,干嘛一定非得和 c++ 扯上边。
难道 c 程序员非得懂 c++ 不可?
难道不懂 c++ 就写不出优秀的 c 代码吗?
gyhs 2003-10-17
  • 打赏
  • 举报
回复
可以
oyd 2003-10-17
  • 打赏
  • 举报
回复
很不错,结构清晰易懂
换个复杂的程序再来给我们看看
ionlic 2003-10-17
  • 打赏
  • 举报
回复
学过c++吗?

若学过
建议你看看effective c++的第一部分 呵呵。

好象还有本什么design pattern 都是有关这些方面的
【新人注意:下载后评价,CSDN会把下载分还给你!切记!不放心的请看完下面:】 ==================== 我晕死,声明几点: 1.我对人的人十分无奈也无语,素质低就不要出来丢人了; 2.资源是我觉得好才放上来跟大家分享的,简易便携,平时带到机房或者测试都很方便,这个完整纯净的版本现在网上已经不好找了,要么就是广告捆绑什么的一堆; 3.至于下载分,只要你评论了,不仅退还所有分还多送1分,CSDN的老规矩,怕什么。我也要下资源,赚点积分而已; 4.病毒的问题已经解释过很多遍了(见简介),信不信装不装凭自己判断,请少数人注意文明,低碳生活,谢谢大家; 5.没用过的可以先看评论~多翻几页,相信你会找到答案。诚请先试用后评价,祝您使用愉快,谢谢! ======================================== 关于有人说资源是“盗取来的”:哦,好吧,我被你打败了。你真的很逗,事实上你可以联系原作者,让他亲自发送到你邮箱。 我先声明这个的确不是我写的程序,是网上收集来的,拿来给大家分享。CSDN上的资源很多都是转载分享的,如果还是不放心大家尽可以自己上网找,名字见标题上的几个都可以,别打错。很好的软件,很多软件站都有搜藏,但是我下过发现很多不完整或者有垃圾广告插件乱七八糟的。 关于报毒的问题:这个没有办法,因为不是正常的网站访问程序,没有安装认证的安全策略,觉得心里别扭的只能安装IIS、阿帕奇之类的大玩意了,我是不喜欢配置太麻烦才用的这个,简单无需配置。但是个人保证:安全无毒!而且无垃圾。本人已经使用三年了~杀软也就在安装时报个警,安装好再开杀软好了,就没事了。敬请放心使用! 本人一向凭着谨慎的态度上传资源,如有担心,您可以在下载先使用后再评论,出了问题再差评就是!别误导别人。 详细的介绍还看简介,祝您使用愉快,谢谢! ============================================================ 【简介】 小旋风ASP服务器,适合学习ASP的时候用。帮你构建asp网页服务器,希望能给你帮助。 因为很多人都是装的Windows XP HOME版的操作系统(囧,我的XP_Pro_SP3装IIS也出错,包括505、501错误一大堆,com密码什么的网上讲的头头是道,可是怎么试都出错,难道真是RP - -),不能装IIS(会报这样那样的错误),这个正好派上用场,做好网页后再复制到IIS服务器上就可以运行了。具体使用方法简单,里面附有说明文档! 小旋风ASPWeb2005服务器是在NETBOX核心下开发的一套简洁(只有1M多点)强大(完全支持ACCESS,SQL数据库)的ASPWEB服务器,使用这个软件的您完全可以抛弃体积庞大的WINNT,WIN2000服务器系统及漏洞百出的IIS了。现在你可以在任何一个系统上调试和发布您的ASP程序了。目前测试通过的操作系统为:Windows 98;Windows 98 SE;Windows ME;Windows NT+IE4;Windows 2000;Windows XP;Windows .NET Server。 注意:安装时有些杀毒软件会检测它有病毒,不过事实上并不是,安装的时候先把杀毒软件暂停一下,等装好后再打开。我一直用的,没有任何问题,请放心使用! ==================================================================================

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧