(三)查询模块
(1)分析:基本信息的查询按查询方式:按商品的名称查询,可供选择的方式比较丰富。
但本程序只使用了一种。在查询小模块中采用了直接查找的方法,这主要是由于磁盘文件无序的缘故。程序在选择结构上采用了if和else的嵌套形式,看起来有点繁杂,没有用switch语句直观明了,这个地方可以改成更好的。
开始 文件打开 输出错误信息 查询方式 商品的名称 是否继续 结束
(四)删除模块
(1)分析:商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中
把要删掉的内容除去,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐。可以改为另一种办法:设置一个标示符,对有这些标识符的记录在下次输入时跳过,在新商品信息输入时,将其覆盖就行了。在对文件进行删除时,考虑到很多方面,如:查询不到时系统该如何处理等。人性化设计有在删除之前询问是否继续。
[流程图]
开始 文件打开 输出错误信息 查找商品信息 是否查找到 删除操作 输入信息 是否继续 结束
五)修改模块
(1)分析:修改与删除程序相似,管理员信息存放在磁盘中,程序须将该文
件全部取出来,在内存中把要修改的内容修改,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐,可以改进。
开始 文件打开 输出错误信息 查找职工信息 是否查找到 修改操作 输入信息 是否继续 结束
四、题目分析
1、按照系统需要三类用户用它作为主函数:int main() {
user *use; DRESS *dress; ADMIN *adm;
use=(user *)malloc(200*sizeof(user)); userIntiate(use);
adm=(ADMIN *)malloc(sizeof(ADMIN)); adminIntiate(adm);
dress=(DRESS *)malloc(500*sizeof(DRESS)); dressIntiate(dress); while(1) {
if(first(use,adm,dress)==3) continue; } }
2、三类用户的选择登陆为
int *first(user *use,ADMIN *adm,DRESS *dress) {
int chose;
int temp,temp2; while(1)
{ system(\
printf(\ //=========功能菜单========//\\n\ printf(\ // //\\n\ printf(\ // //\\n\ printf(\ // 1,销售员登陆 //\\n\ printf(\ // 2,店长登陆 //\\n\ printf(\ // 3,管理员登陆 //\\n\ printf(\ // //\\n\ printf(\ //=========================//\\n\ printf(\ /=============================请选择服务的种类========================/\\n\ scanf(\ if(chose<1||chose>5) { printf(\ 你的选择出现错误!按任意键重新的进入选择菜单!\\n\ system(\ continue; } switch(chose) {
case 1: { system(\ if(userload(use)==1)
{ usermenu(use,dress); } system(\ break; } case 2: { system(\ if(monload(use)==1) {
monmenu(use,dress); } break; } case 3: { system(\ temp=adminload(adm); if(temp==1) {
system(\
temp2=adminmenu(adm,use,dress); return 3; }
system(\ continue; } default: exit(0); } }//while() }
3、当选择管理员的时候就用如下程序,注明(管理员的初始账号是admin,密码是123456) int regnew(user *use) { char name[21]; char pass[7]={0}; int chose;
相关推荐: